solace-ui-components 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/LICENSE +200 -0
  2. package/NOTICE +35 -0
  3. package/README.md +60 -0
  4. package/THIRD_PARTY_LICENSES.txt +1144 -0
  5. package/dist/components/NoAccess.d.ts +4 -0
  6. package/dist/components/SolaceAccordion.d.ts +61 -0
  7. package/dist/components/SolaceAttributeBadge.d.ts +68 -0
  8. package/dist/components/SolaceBackDrop.d.ts +3 -0
  9. package/dist/components/SolaceBreadcrumb.d.ts +50 -0
  10. package/dist/components/SolaceCard.d.ts +10 -0
  11. package/dist/components/SolaceCardHeader.d.ts +10 -0
  12. package/dist/components/SolaceCategorizedSearch.d.ts +4 -0
  13. package/dist/components/SolaceChip.d.ts +91 -0
  14. package/dist/components/SolaceCircularProgress.d.ts +37 -0
  15. package/dist/components/SolaceComponentProps.d.ts +14 -0
  16. package/dist/components/SolaceDatePicker.d.ts +46 -0
  17. package/dist/components/SolaceDetailMessage.d.ts +22 -0
  18. package/dist/components/SolaceDonutChart.d.ts +40 -0
  19. package/dist/components/SolaceDrawer.d.ts +49 -0
  20. package/dist/components/SolaceEmptyStateBanner.d.ts +3 -0
  21. package/dist/components/SolaceEnvironmentChip.d.ts +33 -0
  22. package/dist/components/SolaceEnvironmentLabel.d.ts +11 -0
  23. package/dist/components/SolaceEnvironmentSelectChip.d.ts +56 -0
  24. package/dist/components/SolaceErrorBox.d.ts +22 -0
  25. package/dist/components/SolaceFeatureTag.d.ts +13 -0
  26. package/dist/components/SolaceHTMLAttributesProps.d.ts +4 -0
  27. package/dist/components/SolaceLearningBanner.d.ts +26 -0
  28. package/dist/components/SolaceLinearProgress.d.ts +3 -0
  29. package/dist/components/SolaceMenu.d.ts +60 -0
  30. package/dist/components/SolaceMenuItem.d.ts +78 -0
  31. package/dist/components/SolaceMessageBox.d.ts +38 -0
  32. package/dist/components/SolaceNotificationCounter.d.ts +38 -0
  33. package/dist/components/SolacePagination.d.ts +38 -0
  34. package/dist/components/SolacePopover.d.ts +7 -0
  35. package/dist/components/SolaceResponsiveItemList.d.ts +80 -0
  36. package/dist/components/SolaceSearchAndFilter.d.ts +69 -0
  37. package/dist/components/SolaceTag.d.ts +39 -0
  38. package/dist/components/SolaceTextDiff.d.ts +40 -0
  39. package/dist/components/SolaceToasts.d.ts +19 -0
  40. package/dist/components/SolaceToolTip.d.ts +63 -0
  41. package/dist/components/SolaceTree.d.ts +45 -0
  42. package/dist/components/SolaceTruncatableLink.d.ts +29 -0
  43. package/dist/components/SolaceTypography.d.ts +3 -0
  44. package/dist/components/dialog/SolaceConfirmationDialog.d.ts +36 -0
  45. package/dist/components/fileuploader/SolaceFileUploader.d.ts +30 -0
  46. package/dist/components/fileuploader/fileUploaderUtils.d.ts +17 -0
  47. package/dist/components/form/Button/SolaceLearningButton.d.ts +4 -0
  48. package/dist/components/form/ErrorText.d.ts +7 -0
  49. package/dist/components/form/FormChildBase.d.ts +68 -0
  50. package/dist/components/form/HelperText.d.ts +7 -0
  51. package/dist/components/form/SolaceAttributeValuePair.d.ts +87 -0
  52. package/dist/components/form/SolaceAttributeValuePairForm.d.ts +109 -0
  53. package/dist/components/form/SolaceAutoCompleteTextField.d.ts +11 -0
  54. package/dist/components/form/SolaceButton.d.ts +23 -0
  55. package/dist/components/form/SolaceCheckBox.d.ts +73 -0
  56. package/dist/components/form/SolaceChipTextArea/SolaceChipTextArea.d.ts +4 -0
  57. package/dist/components/form/SolaceChipTextArea/SolaceChipTextArea.styles.d.ts +9 -0
  58. package/dist/components/form/SolaceCodeEditor.d.ts +56 -0
  59. package/dist/components/form/SolaceLabel.d.ts +33 -0
  60. package/dist/components/form/SolacePicker.d.ts +146 -0
  61. package/dist/components/form/SolaceRadio.d.ts +62 -0
  62. package/dist/components/form/SolaceRadioGroup.d.ts +75 -0
  63. package/dist/components/form/SolaceSelect.d.ts +99 -0
  64. package/dist/components/form/SolaceSelectAutocomplete.d.ts +188 -0
  65. package/dist/components/form/SolaceSelectAutocompleteItem.d.ts +45 -0
  66. package/dist/components/form/SolaceSelectAutocompleteResponsiveTags.d.ts +20 -0
  67. package/dist/components/form/SolaceStackLabel.d.ts +41 -0
  68. package/dist/components/form/SolaceStepper/SolaceStepIcon.d.ts +14 -0
  69. package/dist/components/form/SolaceStepper/SolaceStepper.d.ts +10 -0
  70. package/dist/components/form/SolaceStepper/SolaceStepperFooter.d.ts +3 -0
  71. package/dist/components/form/SolaceTextArea.d.ts +108 -0
  72. package/dist/components/form/SolaceTextField.d.ts +126 -0
  73. package/dist/components/form/SolaceToggle.d.ts +58 -0
  74. package/dist/components/form/SolaceToggleButtonGroup.d.ts +15 -0
  75. package/dist/components/form/WarningText.d.ts +7 -0
  76. package/dist/components/jsonschemaform/SolaceJsonSchemaForm.d.ts +79 -0
  77. package/dist/components/jsonschemaform/jsonSchemaFormUtils.d.ts +11 -0
  78. package/dist/components/layout/SolaceGrid.d.ts +8 -0
  79. package/dist/components/layout/SolaceGridList.d.ts +26 -0
  80. package/dist/components/layout/SolaceGridListMultiSelect.d.ts +26 -0
  81. package/dist/components/layout/SolaceIconTabs.d.ts +30 -0
  82. package/dist/components/layout/SolaceList.d.ts +4 -0
  83. package/dist/components/layout/SolaceListItem.d.ts +4 -0
  84. package/dist/components/layout/SolaceListItemButton.d.ts +4 -0
  85. package/dist/components/layout/SolacePageHeader.d.ts +60 -0
  86. package/dist/components/layout/SolaceSidePanelLayout.d.ts +64 -0
  87. package/dist/components/layout/SolaceSplitPane.d.ts +13 -0
  88. package/dist/components/layout/SolaceStack.d.ts +3 -0
  89. package/dist/components/layout/SolaceTabs.d.ts +53 -0
  90. package/dist/components/table/SolaceTable.d.ts +187 -0
  91. package/dist/components/table/components/ContentControlMenu.d.ts +15 -0
  92. package/dist/components/table/hooks/useClickedOutside.d.ts +1 -0
  93. package/dist/components/table/hooks/useExpandableRows.d.ts +28 -0
  94. package/dist/components/table/hooks/useSolaceTable.d.ts +35 -0
  95. package/dist/components/table/hooks/useTableBodyRenderHelper.d.ts +24 -0
  96. package/dist/components/table/hooks/useTableHeaderRenderHelper.d.ts +28 -0
  97. package/dist/components/table/table-utils.d.ts +51 -0
  98. package/dist/constants.d.ts +10 -0
  99. package/dist/hooks/useScrollIndicator.d.ts +6 -0
  100. package/dist/index.d.ts +141 -0
  101. package/dist/index.js +6 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/index.modern.mjs +37 -0
  104. package/dist/index.modern.mjs.map +1 -0
  105. package/dist/index.test.d.ts +1 -0
  106. package/dist/resources/icons/ArrowLeft.d.ts +4 -0
  107. package/dist/resources/icons/ArrowRight.d.ts +4 -0
  108. package/dist/resources/icons/CheckBoxIcons.d.ts +4 -0
  109. package/dist/resources/icons/CheckCircleIcon.d.ts +5 -0
  110. package/dist/resources/icons/CheckFilled16Icon.d.ts +3 -0
  111. package/dist/resources/icons/CloseIcon.d.ts +5 -0
  112. package/dist/resources/icons/CollapseIcon.d.ts +4 -0
  113. package/dist/resources/icons/DeleteIcon.d.ts +6 -0
  114. package/dist/resources/icons/EllipsisIcon.d.ts +4 -0
  115. package/dist/resources/icons/Error16Icon.d.ts +3 -0
  116. package/dist/resources/icons/ErrorIcon.d.ts +3 -0
  117. package/dist/resources/icons/ExpandIcon.d.ts +4 -0
  118. package/dist/resources/icons/FilterIcon.d.ts +5 -0
  119. package/dist/resources/icons/IconProps.d.ts +4 -0
  120. package/dist/resources/icons/InfoIcon.d.ts +3 -0
  121. package/dist/resources/icons/MoreHorizOutlinedIcon.d.ts +2 -0
  122. package/dist/resources/icons/MoveIcon.d.ts +6 -0
  123. package/dist/resources/icons/OpenExternalIcon.d.ts +2 -0
  124. package/dist/resources/icons/RadioIcons.d.ts +3 -0
  125. package/dist/resources/icons/SearchIcon.d.ts +5 -0
  126. package/dist/resources/icons/SelectIcons.d.ts +3 -0
  127. package/dist/resources/icons/SortIcons.d.ts +7 -0
  128. package/dist/resources/icons/SuccessIcon.d.ts +3 -0
  129. package/dist/resources/icons/UploadIcon.d.ts +3 -0
  130. package/dist/resources/icons/VerticalDotsIcon.d.ts +4 -0
  131. package/dist/resources/icons/VisibilityHideIcon.d.ts +5 -0
  132. package/dist/resources/icons/VisibilityShowIcon.d.ts +5 -0
  133. package/dist/resources/icons/WarnIcon.d.ts +3 -0
  134. package/dist/resources/theme.d.ts +68 -0
  135. package/dist/resources/trackingapi.d.ts +8 -0
  136. package/dist/resources/typography.d.ts +12 -0
  137. package/dist/theming/base/themeMapping.d.ts +6 -0
  138. package/dist/theming/boomi/themeMapping.d.ts +5 -0
  139. package/dist/theming/sap/themeMapping.d.ts +5 -0
  140. package/dist/theming/solace/themeMapping.d.ts +5 -0
  141. package/dist/theming/themeUtils.d.ts +10 -0
  142. package/dist/types/ThemeMapping.d.ts +224 -0
  143. package/dist/types/fieldTypes.d.ts +5 -0
  144. package/dist/types/index.d.ts +25 -0
  145. package/dist/types/modes.d.ts +4 -0
  146. package/dist/types/numericTypes.d.ts +6 -0
  147. package/dist/types/sizing.d.ts +13 -0
  148. package/dist/types/solaceCard.d.ts +87 -0
  149. package/dist/types/solaceCardHeader.d.ts +36 -0
  150. package/dist/types/solaceCategorizedSearch.d.ts +87 -0
  151. package/dist/types/solaceChip.d.ts +26 -0
  152. package/dist/types/solaceChipTextArea.d.ts +89 -0
  153. package/dist/types/solaceDatePicker.d.ts +16 -0
  154. package/dist/types/solaceEmptyStateBanner.d.ts +18 -0
  155. package/dist/types/solaceGrid.d.ts +9 -0
  156. package/dist/types/solaceLearningButton.d.ts +4 -0
  157. package/dist/types/solaceList.d.ts +130 -0
  158. package/dist/types/solacePageHeader.d.ts +62 -0
  159. package/dist/types/solacePopover.d.ts +71 -0
  160. package/dist/types/solaceProgress.d.ts +22 -0
  161. package/dist/types/solaceStack.d.ts +8 -0
  162. package/dist/types/solaceStepper.d.ts +81 -0
  163. package/dist/types/solaceTooltip.d.ts +8 -0
  164. package/dist/types/solaceTypography.d.ts +10 -0
  165. package/dist/types/solacefileUploader.d.ts +60 -0
  166. package/dist/types/states.d.ts +4 -0
  167. package/dist/types/statuses.d.ts +7 -0
  168. package/dist/types/supportedThemes.d.ts +6 -0
  169. package/dist/types/sx.d.ts +16 -0
  170. package/dist/utils.d.ts +4 -0
  171. package/package.json +113 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.modern.mjs","sources":["../src/resources/icons/SelectIcons.tsx","../src/components/SolaceToasts.tsx","../src/components/NoAccess.tsx","../src/components/SolaceBackDrop.tsx","../node_modules/@mui/utils/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/object-assign/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/utils/deepmerge/deepmerge.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/utils/capitalize/capitalize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/system/esm/createBox.js","../node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/system/esm/Box/Box.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/system/esm/Box/boxClasses.js","../node_modules/@mui/utils/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/utils/clamp/clamp.js","../node_modules/@mui/utils/setRef/setRef.js","../node_modules/@mui/utils/useId/useId.js","../node_modules/@mui/utils/useForkRef/useForkRef.js","../node_modules/@mui/utils/useTimeout/useTimeout.js","../node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/utils/visuallyHidden/visuallyHidden.js","../node_modules/@mui/utils/composeClasses/composeClasses.js","../src/resources/icons/OpenExternalIcon.tsx","../src/types/solaceTooltip.ts","../src/components/SolaceToolTip.tsx","../src/resources/trackingapi.ts","../src/components/form/SolaceButton.tsx","../src/components/form/SolaceAutoCompleteTextField.tsx","../src/components/form/SolaceCheckBox.tsx","../src/components/form/SolaceRadio.tsx","../src/components/form/SolaceLabel.tsx","../src/components/form/SolaceStackLabel.tsx","../src/components/form/HelperText.tsx","../src/resources/icons/ErrorIcon.tsx","../src/resources/typography.ts","../src/components/form/ErrorText.tsx","../src/resources/icons/WarnIcon.tsx","../src/components/form/WarningText.tsx","../src/components/form/FormChildBase.tsx","../src/components/form/SolaceRadioGroup.tsx","../src/components/SolaceAttributeBadge.tsx","../node_modules/diff/libesm/diff/base.js","../node_modules/diff/libesm/diff/line.js","../src/components/SolaceTextDiff.tsx","../src/types/modes.ts","../src/types/solaceChip.ts","../src/types/statuses.ts","../src/types/states.ts","../src/components/SolaceChip.tsx","../src/components/SolaceTag.tsx","../src/resources/icons/CloseIcon.tsx","../src/components/SolaceErrorBox.tsx","../src/constants.ts","../src/resources/icons/InfoIcon.tsx","../src/resources/icons/SuccessIcon.tsx","../src/components/SolaceMessageBox.tsx","../src/components/SolaceLearningBanner.tsx","../src/components/layout/SolaceTabs.tsx","../src/components/SolaceTypography.tsx","../src/components/layout/SolaceSidePanelLayout.tsx","../src/components/dialog/SolaceConfirmationDialog.tsx","../src/resources/icons/ArrowRight.tsx","../src/components/SolaceMenuItem.tsx","../src/hooks/useScrollIndicator.tsx","../src/components/SolaceMenu.tsx","../src/components/form/SolaceTextField.tsx","../src/components/form/SolaceSelect.tsx","../src/components/form/SolaceSelectAutocomplete.tsx","../src/components/form/SolaceSelectAutocompleteItem.tsx","../src/components/SolaceDetailMessage.tsx","../src/components/SolaceResponsiveItemList.tsx","../src/components/form/SolaceSelectAutocompleteResponsiveTags.tsx","../src/components/form/SolaceTextArea.tsx","../src/components/form/SolaceChipTextArea/SolaceChipTextArea.styles.tsx","../src/components/form/SolaceChipTextArea/SolaceChipTextArea.tsx","../src/components/form/SolaceToggle.tsx","../src/components/table/components/ContentControlMenu.tsx","../src/theming/sap/themeMapping.ts","../src/theming/base/themeMapping.ts","../src/theming/solace/themeMapping.ts","../src/types/supportedThemes.ts","../src/theming/boomi/themeMapping.ts","../src/theming/themeUtils.ts","../src/components/table/table-utils.tsx","../src/components/table/hooks/useTableBodyRenderHelper.tsx","../src/components/table/hooks/useExpandableRows.tsx","../src/resources/icons/SortIcons.tsx","../src/components/table/hooks/useTableHeaderRenderHelper.tsx","../src/components/SolaceCircularProgress.tsx","../src/components/table/SolaceTable.tsx","../src/components/table/hooks/useSolaceTable.tsx","../src/resources/icons/ArrowLeft.tsx","../src/components/SolacePagination.tsx","../src/resources/icons/ExpandIcon.tsx","../src/resources/icons/CollapseIcon.tsx","../src/components/form/SolaceCodeEditor.tsx","../src/components/SolacePopover.tsx","../src/resources/icons/DeleteIcon.tsx","../src/resources/icons/MoveIcon.tsx","../src/components/form/SolaceAttributeValuePair.tsx","../src/components/form/SolaceAttributeValuePairForm.tsx","../src/resources/icons/VerticalDotsIcon.tsx","../src/components/SolaceDrawer.tsx","../src/components/layout/SolaceGridList.tsx","../src/components/layout/SolaceGridListMultiSelect.tsx","../src/components/SolaceNotificationCounter.tsx","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/react-dom/server.browser.js","../src/resources/icons/EllipsisIcon.tsx","../src/components/layout/SolaceSplitPane.tsx","../src/components/SolaceAccordion.tsx","../src/components/layout/SolaceStack.tsx","../src/components/layout/SolaceGrid.tsx","../src/components/SolaceBreadcrumb.tsx","../src/components/form/SolaceToggleButtonGroup.tsx","../src/types/solaceProgress.ts","../src/components/SolaceLinearProgress.tsx","../src/types/fieldTypes.ts","../src/resources/icons/FilterIcon.tsx","../src/resources/icons/SearchIcon.tsx","../src/components/SolaceSearchAndFilter.tsx","../src/components/layout/SolaceList.tsx","../src/components/layout/SolaceListItem.tsx","../src/components/layout/SolaceListItemButton.tsx","../src/components/form/Button/SolaceLearningButton.tsx","../src/resources/icons/Error16Icon.tsx","../src/resources/icons/CheckFilled16Icon.tsx","../src/components/form/SolaceStepper/SolaceStepIcon.tsx","../src/components/form/SolaceStepper/SolaceStepperFooter.tsx","../src/components/form/SolaceStepper/SolaceStepper.tsx","../src/components/SolaceEmptyStateBanner.tsx","../src/components/SolaceCardHeader.tsx","../src/components/SolaceCard.tsx","../src/resources/icons/MoreHorizOutlinedIcon.tsx","../src/resources/icons/CheckCircleIcon.tsx","../src/types/solaceDatePicker.ts","../src/types/solaceStepper.ts","../src/types/solaceCategorizedSearch.ts","../src/types/solacePageHeader.ts","../src/resources/theme.ts","../src/components/SolaceDatePicker.tsx","../src/components/fileuploader/fileUploaderUtils.ts","../node_modules/attr-accept/dist/es/index.js","../src/resources/icons/UploadIcon.tsx","../src/components/fileuploader/SolaceFileUploader.tsx","../src/components/SolaceDonutChart.tsx","../src/resources/icons/VisibilityShowIcon.tsx","../src/resources/icons/VisibilityHideIcon.tsx","../src/components/jsonschemaform/jsonSchemaFormUtils.tsx","../src/components/jsonschemaform/SolaceJsonSchemaForm.tsx","../src/components/SolaceTruncatableLink.tsx","../src/components/SolaceEnvironmentChip.tsx","../src/components/SolaceEnvironmentLabel.tsx","../src/components/SolaceFeatureTag.tsx","../src/components/layout/SolaceIconTabs.tsx","../src/components/layout/SolacePageHeader.tsx","../node_modules/@mui/base/utils/extractEventHandlers.js","../node_modules/@mui/base/useButton/useButton.js","../node_modules/@mui/base/utils/useRootElementName.js","../node_modules/@mui/base/useSelect/useSelect.types.js","../node_modules/@mui/base/useList/listActions.types.js","../node_modules/@mui/base/useList/listReducer.js","../node_modules/@mui/base/utils/useControllableReducer.js","../node_modules/@mui/base/utils/areArraysEqual.js","../node_modules/@mui/base/useList/useList.js","../node_modules/@mui/base/useList/ListContext.js","../node_modules/@mui/base/useSelect/defaultOptionStringifier.js","../node_modules/@mui/base/useCompound/useCompoundParent.js","../node_modules/@mui/base/useSelect/selectReducer.js","../node_modules/@mui/base/utils/combineHooksSlotProps.js","../node_modules/@mui/base/useSelect/useSelect.js","../node_modules/@mui/base/useSelect/SelectProvider.js","../node_modules/@mui/base/utils/ClassNameConfigurator.js","../node_modules/@mui/base/utils/omitEventHandlers.js","../node_modules/@mui/base/utils/useSlotProps.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/base/utils/mergeSlotProps.js","../node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/cjs/scheduler-tracing.production.min.js","../node_modules/scheduler/tracing.js","../node_modules/react-dom/index.js","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@mui/base/Portal/Portal.js","../node_modules/@mui/base/generateUtilityClass/index.js","../node_modules/@mui/base/generateUtilityClasses/index.js","../node_modules/@mui/base/Unstable_Popup/popupClasses.js","../node_modules/@mui/base/useTransition/TransitionContext.js","../node_modules/@mui/base/Unstable_Popup/PopupContext.js","../node_modules/@mui/base/Unstable_Popup/Popup.js","../node_modules/@mui/base/useTransition/useTransitionTrigger.js","../node_modules/@mui/base/Select/selectClasses.js","../node_modules/@mui/base/Select/Select.js","../node_modules/@mui/base/utils/useTextNavigation.js","../node_modules/@mui/base/Option/optionClasses.js","../node_modules/@mui/base/Option/Option.js","../node_modules/@mui/base/useOption/useOption.js","../node_modules/@mui/base/useList/useListItem.js","../node_modules/@mui/base/useCompound/useCompoundItem.js","../node_modules/@mui/base/useOption/useOptionContextStabilizer.js","../src/components/SolaceEnvironmentSelectChip.tsx","../src/components/form/SolacePicker.tsx","../src/components/SolaceCategorizedSearch.tsx"],"sourcesContent":["/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createSvgIcon } from \"@mui/material\";\n\nexport const SelectDropdownIcon = createSvgIcon(\n\t<path\n\t\td=\"M16.233,9.111L12,13.334L7.769,9.112c-0.157-0.157-0.412-0.157-0.57,0L6.359,9.96c-0.157,0.157-0.157,0.406,0,0.563\n\tl5.361,5.361c0.155,0.155,0.406,0.155,0.561,0l5.362-5.362c0.154-0.154,0.154-0.405,0-0.559l-0.851-0.851\n\tC16.637,8.957,16.387,8.957,16.233,9.111z\"\n\t/>,\n\t\"SelectDropDownIcon\"\n);\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Snackbar, useTheme } from \"@mui/material\";\nimport Alert from \"@mui/material/Alert\";\nimport CancelOutlinedIcon from \"@mui/icons-material/CancelOutlined\";\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\nimport ReportProblemOutlinedIcon from \"@mui/icons-material/ReportProblemOutlined\";\nimport React from \"react\";\n\nexport type SolaceToastsProps = {\n\t/** @deprecated This prop will be removed in a future version. Target: August 2025 */\n\tseverity?: \"success\" | \"info\" | \"warning\" | \"error\";\n\tmessage: React.ReactNode;\n\topen?: boolean;\n\taction?: React.ReactNode;\n\tautoDismiss?: boolean;\n\tonClose: (event: React.SyntheticEvent<Element> | Event) => void;\n};\n\n/**\n * Provides toasts that match solace ui guidelines.\n * If severity is not passed in no icon would be shown.\n * Default action button is close icon, but can be overwritten by any react element.\n * @type SolaceToasts\n * @param props\n * @returns JSX.Element\n */\nexport default function SolaceToasts(props: SolaceToastsProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst iconMapping = {\n\t\tsuccess: <CheckCircleOutlineIcon sx={{ color: theme.palette.ux.brand.wMain }} />,\n\t\terror: <CancelOutlinedIcon sx={{ color: theme.palette.ux.error.w100 }} fontSize=\"inherit\" />,\n\t\tinfo: <InfoOutlinedIcon sx={{ color: theme.palette.ux.info.w100 }} fontSize=\"inherit\" />,\n\t\twarning: <ReportProblemOutlinedIcon sx={{ color: theme.palette.ux.warning.w100 }} fontSize=\"inherit\" />\n\t};\n\n\tconst { message, severity, open, action, autoDismiss = true, onClose } = props;\n\n\treturn (\n\t\t<Snackbar\n\t\t\tclassName=\"alert-toast\"\n\t\t\topen={open}\n\t\t\tmessage={severity === undefined && message}\n\t\t\t//if null, autoHide is disabled, if there is action then 8000 else 4000\n\t\t\tautoHideDuration={!autoDismiss ? null : action ? 8000 : 4000}\n\t\t\tresumeHideDuration={1000}\n\t\t\tonClose={(_event, reason) => {\n\t\t\t\t// disable close on clickaway\n\t\t\t\tif (onClose && reason !== \"clickaway\") {\n\t\t\t\t\tonClose(_event);\n\t\t\t\t}\n\t\t\t}}\n\t\t\taction={action}\n\t\t\trole=\"toast\"\n\t\t\tanchorOrigin={{ vertical: \"bottom\", horizontal: \"center\" }}\n\t\t>\n\t\t\t{severity && (\n\t\t\t\t<Alert\n\t\t\t\t\tstyle={{ padding: severity ? \"0 16px 0 8px\" : \"0 16px\" }}\n\t\t\t\t\ticon={iconMapping[severity]}\n\t\t\t\t\tseverity={severity}\n\t\t\t\t>\n\t\t\t\t\t{message}\n\t\t\t\t</Alert>\n\t\t\t)}\n\t\t</Snackbar>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Grid, styled, Typography } from \"@mui/material\";\nimport BlockIcon from \"@mui/icons-material/Block\";\n\nconst StyledGrid = styled(Grid)(() => ({ minHeight: \"calc(100vh - 108px)\" }));\n\nexport default function NoAccess(props: { pageName: string }): JSX.Element {\n\treturn (\n\t\t<StyledGrid container direction=\"column\" justifyContent=\"center\" alignItems=\"center\" spacing={2}>\n\t\t\t<Grid item>\n\t\t\t\t<Box display=\"flex\" flexDirection=\"row\">\n\t\t\t\t\t<BlockIcon color=\"error\" fontSize=\"large\" />\n\t\t\t\t\t<Typography variant=\"h4\">Access Required</Typography>\n\t\t\t\t</Box>\n\t\t\t</Grid>\n\t\t\t<Grid item>\n\t\t\t\t<Typography variant=\"body1\">\n\t\t\t\t\t{`You do not have access to ${props.pageName}. To request access, please contact your Solace account representative.`}\n\t\t\t\t</Typography>\n\t\t\t</Grid>\n\t\t</StyledGrid>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Backdrop, BackdropProps, CircularProgress, styled } from \"@mui/material\";\n\nconst StyledBackDrop = styled(Backdrop)(({ theme }) => ({\n\tzIndex: theme.zIndex.drawer + 1,\n\tcolor: theme.palette.ux.primary.text.w10\n}));\n\nexport default function SolaceBackDrop(props: BackdropProps): JSX.Element {\n\treturn (\n\t\t<StyledBackDrop {...props}>\n\t\t\t<CircularProgress />\n\t\t</StyledBackDrop>\n\t);\n}\n","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * <Box sx={theme => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","'use client';\n\nimport createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport ClassNameGenerator from '@mui/utils/ClassNameGenerator';\nimport createBox from '../createBox';\nimport boxClasses from './boxClasses';\nconst Box = createBox({\n defaultClassName: boxClasses.root,\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","/**\n * @mui/styled-engine v5.15.14\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nconst boxClasses = generateUtilityClasses('MuiBox', ['root']);\nexport default boxClasses;","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport clamp from '@mui/utils/clamp';\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return clamp(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexport const private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nexport function private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nexport function private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nexport function blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example <div id={useId()} />\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","const visuallyHidden = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n};\nexport default visuallyHidden;","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst SIZE = 16;\n\nfunction Container() {\n\treturn (\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M8.66667 4.00008H11.1194L7.21643 7.90309L8.15924 8.8459L12 5.00514V7.33341H13.3333V2.66675H8.66667V4.00008ZM2.66667 4.00008H7.33333V5.33341H3.33333V12.6667H10.6667V8.66675H12V13.3334C12 13.7016 11.7015 14.0001 11.3333 14.0001H2.66667C2.29848 14.0001 2 13.7016 2 13.3334V4.66675C2 4.29856 2.29848 4.00008 2.66667 4.00008Z\"\n\t\t/>\n\t);\n}\n\nexport function OpenExternalIcon() {\n\treturn (\n\t\t<svg width={`${SIZE}px`} height={`${SIZE}px`} viewBox={`0 0 ${SIZE} ${SIZE}`} className=\"SolaceOpenExternalIcon\">\n\t\t\t<Container></Container>\n\t\t</svg>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst text = \"text\";\nconst overflow = \"overflow\";\nconst rich = \"rich\";\n/** @deprecated - as of Nov 12, 2024 the 'html variant is being deprecated in favour of using the rich variant**/\nconst html = \"html\";\n\nexport const TooltipVariant = {\n\ttext: text,\n\toverflow: overflow,\n\trich: rich,\n\t/** @deprecated [Nov 2024] the \"html\" variant for SolaceTooltip has been deprecated, please use rich variant instead */\n\thtml: html\n};\n\nexport type TooltipVariantTypes = (typeof TooltipVariant)[keyof typeof TooltipVariant];\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled, Tooltip } from \"@mui/material\";\nimport { Fade } from \"@mui/material\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { TooltipVariant, TooltipVariantTypes } from \"../types/solaceTooltip\";\n\nexport interface SolaceTooltipProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, a randomly generated value will be used in order to make it accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Tooltip title\n\t */\n\ttitle?: string | JSX.Element;\n\t/**\n\t * Different type of tooltip, default to `text`\n\t */\n\tvariant?: TooltipVariantTypes;\n\t/**\n\t * Tooltip referenced element.\n\t */\n\tchildren: string | JSX.Element;\n\t/**\n\t * Tooltip placement, default to `bottom`\n\t */\n\tplacement?:\n\t\t| \"bottom-end\"\n\t\t| \"bottom-start\"\n\t\t| \"bottom\"\n\t\t| \"left-end\"\n\t\t| \"left-start\"\n\t\t| \"left\"\n\t\t| \"right-end\"\n\t\t| \"right-start\"\n\t\t| \"right\"\n\t\t| \"top-end\"\n\t\t| \"top-start\"\n\t\t| \"top\";\n\t/**\n\t * Tooltip maximum width, default to small\n\t */\n\tmaxWidth?: \"small\" | \"medium\" | \"full\";\n\t/**\n\t * Disable listener to show tooltip when referenced element is focused, default to false\n\t */\n\tdisableFocusListener?: boolean;\n\t/**\n\t * Disable listener to show tooltip when referenced element is hovered, default to false\n\t */\n\tdisableHoverListener?: boolean;\n\t/**\n\t * The number of milliseconds to wait before showing the tooltip. Default is 500ms\n\t */\n\tenterDelay?: number;\n\t/**\n\t * The number of milliseconds to wait before showing the tooltip when one was already recently opened. Default is 0ms\n\t */\n\tenterNextDelay?: number;\n\t/**\n\t * The number of milliseconds to wait before hiding the tooltip. Default is 0ms\n\t */\n\tleaveDelay?: number;\n\t/**\n\t * Controlled open state for tooltip. If `true`, the component is shown\n\t */\n\topen?: boolean;\n\t/**\n\t * Callback fired when the component requests to be open. Used in conjunction with `open` and `onClose`\n\t */\n\tonOpen?: (event: React.SyntheticEvent) => void;\n\t/**\n\t * Callback fired when the component requests to be closed. Used in conjunction with `open` and `onOpen`\n\t */\n\tonClose?: (event: Event | React.SyntheticEvent<Element, Event>) => void;\n}\n\nconst OverflowDiv = styled(\"div\")(() => ({\n\twhiteSpace: \"nowrap\",\n\toverflow: \"hidden\",\n\ttextOverflow: \"ellipsis\",\n\tposition: \"relative\",\n\t// adding this empty block to prevent showing tooltip twice on Safari\n\t\"&::after\": {\n\t\tcontent: '\"\"',\n\t\tdisplay: \"block\"\n\t}\n}));\n\nfunction SolaceTooltip({\n\tid,\n\ttitle,\n\tvariant = TooltipVariant.text,\n\tchildren,\n\tplacement = \"bottom\",\n\tmaxWidth = \"small\",\n\tdisableFocusListener = false,\n\tdisableHoverListener = false,\n\tenterDelay = 500,\n\tenterNextDelay = 0,\n\tleaveDelay = 0,\n\topen,\n\tonOpen,\n\tonClose,\n\tdataQa,\n\tdataTags\n}: SolaceTooltipProps) {\n\tconst [internalOpen, setInternalOpen] = useState(false);\n\tconst textElementRef = useRef<HTMLDivElement>(null);\n\n\tconst handleOpen = useCallback(\n\t\t(event: React.SyntheticEvent) => {\n\t\t\t// if empty, don't open the tooltip.\n\t\t\tif (isEmpty(title)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet shouldOpen = true;\n\t\t\tif (\n\t\t\t\tvariant === \"overflow\" &&\n\t\t\t\ttextElementRef.current &&\n\t\t\t\ttextElementRef.current.scrollWidth <= textElementRef.current.clientWidth\n\t\t\t) {\n\t\t\t\tshouldOpen = false;\n\t\t\t}\n\t\t\tif (shouldOpen) {\n\t\t\t\tsetInternalOpen(true);\n\t\t\t\tif (onOpen) {\n\t\t\t\t\tonOpen(event);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[onOpen, title, variant]\n\t);\n\n\tconst handleClose = useCallback(\n\t\t(event: Event | React.SyntheticEvent<Element, Event>) => {\n\t\t\tsetInternalOpen(false);\n\t\t\tif (onClose) {\n\t\t\t\tonClose(event);\n\t\t\t}\n\t\t},\n\t\t[onClose]\n\t);\n\n\treturn (\n\t\t<Tooltip\n\t\t\tid={id}\n\t\t\ttitle={title ?? \"\"}\n\t\t\tclasses={{\n\t\t\t\ttooltip: `${variant === TooltipVariant.html || variant === TooltipVariant.rich ? \"htmlContent\" : \"\"} ${\n\t\t\t\t\tmaxWidth ? maxWidth + \"Width\" : \"\"\n\t\t\t\t}`\n\t\t\t}}\n\t\t\tplacement={placement}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t\tdisableFocusListener={disableFocusListener}\n\t\t\tdisableHoverListener={disableHoverListener}\n\t\t\tenterDelay={enterDelay}\n\t\t\tenterNextDelay={enterNextDelay}\n\t\t\tleaveDelay={leaveDelay}\n\t\t\tTransitionComponent={Fade}\n\t\t\tTransitionProps={{ timeout: { enter: 150, exit: 200 } }}\n\t\t\topen={open ?? internalOpen}\n\t\t\tonOpen={handleOpen}\n\t\t\tonClose={handleClose}\n\t\t>\n\t\t\t{variant === \"overflow\" ? (\n\t\t\t\t<OverflowDiv ref={textElementRef}>{children}</OverflowDiv>\n\t\t\t) : typeof children === \"string\" ? (\n\t\t\t\t<span>{children}</span>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</Tooltip>\n\t);\n}\n\nexport default SolaceTooltip;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet dataCollectionApi: React.Dispatch<\n\tReact.SetStateAction<{\n\t\t[key: string]: unknown;\n\t}>\n>;\n\nexport const initializeDataTrackingApi = (api: React.Dispatch<React.SetStateAction<{ [key: string]: unknown }>>) => {\n\t// Initialize the data tracking API here\n\t// For example, you can assign an instance of the API to the `dataCollectionApi` variable\n\n\tdataCollectionApi = api;\n};\n\n// Export the dataCollectionApi variable so that it can be used by other components\nexport { dataCollectionApi };\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, IconButton, Link, SxProps, Theme, useTheme } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport { OpenExternalIcon } from \"../../resources/icons/OpenExternalIcon\";\nimport SolaceTooltip from \"../SolaceToolTip\";\n\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { dataCollectionApi } from \"../../resources/trackingapi\";\n\nexport interface SolaceButtonProps extends SolaceComponentProps {\n\tid?: string;\n\tvariant: \"call-to-action\" | \"outline\" | \"text\" | \"icon\" | \"link\";\n\t\"aria-label\"?: string;\n\t\"aria-labelledby\"?: string;\n\tisDisabled?: boolean;\n\tunderline?: \"none\" | \"hover\" | \"always\";\n\ttitle?: string;\n\thref?: string;\n\tcomponent?: \"button\" | \"span\";\n\ttype?: \"button\" | \"submit\" | \"reset\";\n\tstartIcon?: symbol | JSX.Element;\n\tendIcon?: symbol | JSX.Element;\n\tonClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n\tchildren?: string | JSX.Element;\n\tdense?: boolean; // only applicable to link variant\n\topenLinkInNewTab?: boolean;\n\tdisabledFocusState?: boolean;\n}\n\n// Todo: Refactor this function to reduce its Cognitive Complexity from 18 to the 15 allowed\n// eslint-disable-next-line sonarjs/cognitive-complexity\nfunction SolaceButton({\n\tid,\n\tvariant = \"text\",\n\t\"aria-label\": ariaLabel,\n\t\"aria-labelledby\": ariaLabelledby,\n\tisDisabled = false,\n\tunderline = \"hover\",\n\ttitle = \"\",\n\thref,\n\tcomponent = \"button\",\n\ttype = \"button\",\n\tstartIcon,\n\tendIcon,\n\tonClick,\n\tdataQa,\n\tdataTags,\n\tchildren,\n\tdense = false,\n\topenLinkInNewTab = href ? true : false,\n\teventName,\n\tdisabledFocusState = false\n}: SolaceButtonProps): JSX.Element {\n\tconst handleClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n\t\tif (onClick) {\n\t\t\tonClick(event);\n\t\t}\n\t\tdataCollectionApi && dataCollectionApi({ title, variant, id, href, dataQa, dataTags, eventName });\n\t};\n\tconst theme = useTheme();\n\n\tif (variant === \"icon\") {\n\t\tconst focusStyles: SxProps<Theme> = disabledFocusState\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\t\"&.MuiIconButton-root.Mui-focusVisible\": {\n\t\t\t\t\t\toutline: `1px solid ${theme.palette.ux.accent.n2.wMain}`,\n\t\t\t\t\t\toutlineOffset: \"1px\",\n\t\t\t\t\t\tborderRadius: \"3px\"\n\t\t\t\t\t}\n\t\t\t };\n\n\t\treturn (\n\t\t\t<SolaceTooltip title={title}>\n\t\t\t\t<IconButton\n\t\t\t\t\taria-label={ariaLabel}\n\t\t\t\t\taria-labelledby={ariaLabelledby}\n\t\t\t\t\tdata-qa={dataQa}\n\t\t\t\t\tdata-tags={dataTags}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tid={id}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\thref={href}\n\t\t\t\t\tcomponent={href ? \"a\" : \"button\"}\n\t\t\t\t\tsx={focusStyles}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</IconButton>\n\t\t\t</SolaceTooltip>\n\t\t);\n\t} else if (variant === \"link\") {\n\t\tlet styles;\n\t\tif (!href && !dense) {\n\t\t\tstyles = {\n\t\t\t\tpadding: `${theme.spacing(6 / 8)} ${theme.spacing(16 / 8)}`,\n\t\t\t\tborderRadius: theme.spacing(4 / 8),\n\t\t\t\tminWidth: \"100px\",\n\t\t\t\theight: theme.spacing(32 / 8),\n\t\t\t\t\"&.Mui-focusVisible\": {\n\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\toutline: `1px solid ${theme.palette.ux.accent.n2.wMain}`,\n\t\t\t\t\toutlineOffset: \"-1px\"\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\tstyles = {\n\t\t\t\tpadding: \"0\",\n\t\t\t\tdisplay: \"inline-flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tverticalAlign: \"inherit\",\n\t\t\t\t\"&.Mui-focusVisible\": {\n\t\t\t\t\toutline: `1px solid ${theme.palette.ux.accent.n2.wMain}`,\n\t\t\t\t\toutlineOffset: \"1px\"\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\treturn (\n\t\t\t<SolaceTooltip title={title}>\n\t\t\t\t<Link\n\t\t\t\t\tid={id}\n\t\t\t\t\tdata-qa={dataQa}\n\t\t\t\t\tdata-tags={dataTags}\n\t\t\t\t\tcomponent={href ? \"a\" : \"button\"}\n\t\t\t\t\ttarget={openLinkInNewTab ? \"_blank\" : \"_self\"}\n\t\t\t\t\thref={href}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\tunderline={isDisabled ? \"none\" : underline ?? \"hover\"}\n\t\t\t\t\tsx={styles}\n\t\t\t\t\tonClick={handleClick}\n\t\t\t\t>\n\t\t\t\t\t<Box sx={{ marginRight: href ? theme.spacing(4 / 8) : 0 }} component=\"span\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</Box>\n\t\t\t\t\t{href && openLinkInNewTab && <OpenExternalIcon></OpenExternalIcon>}\n\t\t\t\t</Link>\n\t\t\t</SolaceTooltip>\n\t\t);\n\t} else {\n\t\tenum MATERIAL_VARIANTS {\n\t\t\tcontained = \"contained\",\n\t\t\toutlined = \"outlined\",\n\t\t\ttext = \"text\"\n\t\t}\n\n\t\tconst BUTTON_VARIANT_MAP = {\n\t\t\t\"call-to-action\": MATERIAL_VARIANTS.contained,\n\t\t\toutline: MATERIAL_VARIANTS.outlined,\n\t\t\ttext: MATERIAL_VARIANTS.text\n\t\t};\n\n\t\tlet padding;\n\t\tif (startIcon) {\n\t\t\tpadding = `${theme.spacing(4 / 8)} ${theme.spacing(16 / 8)} ${theme.spacing(4 / 8)} ${theme.spacing(6 / 8)}`;\n\t\t} else if (endIcon) {\n\t\t\tpadding = `${theme.spacing(4 / 8)} ${theme.spacing(6 / 8)} ${theme.spacing(4 / 8)} ${theme.spacing(16 / 8)}`;\n\t\t} else {\n\t\t\tpadding = `${theme.spacing(6 / 8)} ${theme.spacing(16 / 8)}`;\n\t\t}\n\n\t\treturn (\n\t\t\t<SolaceTooltip title={title}>\n\t\t\t\t<Button\n\t\t\t\t\tid={id}\n\t\t\t\t\tdata-qa={dataQa}\n\t\t\t\t\tdata-tags={dataTags}\n\t\t\t\t\tstartIcon={startIcon}\n\t\t\t\t\tendIcon={endIcon}\n\t\t\t\t\tcomponent={component}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\tvariant={BUTTON_VARIANT_MAP[variant]}\n\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\tsx={{ padding: padding }}\n\t\t\t\t>\n\t\t\t\t\t<div style={{ width: \"100%\", textAlign: \"center\" }}>{children}</div>\n\t\t\t\t</Button>\n\t\t\t</SolaceTooltip>\n\t\t);\n\t}\n}\n\nexport default SolaceButton;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, FormHelperText, InputLabel, styled, TextField, TextFieldProps, useTheme } from \"@mui/material\";\nimport ErrorOutlineOutlinedIcon from \"@mui/icons-material/ErrorOutlineOutlined\";\n\ntype CommonAutoCompleteTextFieldProps = TextFieldProps;\n\nconst StyledAutoCompleteTextField = styled(TextField)(({ theme }) => ({\n\tmarginTop: theme.spacing(),\n\tmarginBottom: theme.spacing(0.5),\n\t\".MuiInputBase-root.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline\": {\n\t\tborderColor: theme.palette.ux.deprecated.secondary.wMain\n\t}\n})) as unknown as React.ComponentType<TextFieldProps>;\n\nexport default function SolaceAutoCompleteTextField(props: CommonAutoCompleteTextFieldProps): JSX.Element {\n\tconst { InputProps, label, helperText, ...rest } = props;\n\tconst theme = useTheme();\n\t/**\n\t * Inline styles should be fixed once global css issues are resolved.\n\t */\n\n\treturn (\n\t\t<Box>\n\t\t\t<InputLabel\n\t\t\t\trequired={props.required}\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tdisabled={props.disabled}\n\t\t\t\terror={props.error}\n\t\t\t\tsx={{ color: theme.palette.ux.secondary.text.wMain }}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</InputLabel>\n\t\t\t<StyledAutoCompleteTextField\n\t\t\t\tInputProps={{\n\t\t\t\t\t...InputProps,\n\t\t\t\t\tstyle: { paddingTop: \"5px\", paddingBottom: \"5px\" }\n\t\t\t\t}}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t{props.error && (\n\t\t\t\t<FormHelperText component={\"div\"} error role=\"error\">\n\t\t\t\t\t<Box display=\"flex\">\n\t\t\t\t\t\t<ErrorOutlineOutlinedIcon fontSize=\"small\" sx={{ marginRight: theme.spacing() }} />\n\t\t\t\t\t\t{helperText}\n\t\t\t\t\t</Box>\n\t\t\t\t</FormHelperText>\n\t\t\t)}\n\t\t</Box>\n\t);\n}\n\nSolaceAutoCompleteTextField.defaultProps = {\n\tvariant: \"outlined\",\n\tfullWidth: true\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Checkbox, FormHelperText, useTheme, FormLabel } from \"@mui/material\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ErrorOutlineOutlinedIcon from \"@mui/icons-material/ErrorOutlineOutlined\";\nimport React, { useEffect, useState } from \"react\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport SolaceHTMLAttributeProps from \"../SolaceHTMLAttributesProps\";\nimport clsx from \"clsx\";\nimport { Remove } from \"@mui/icons-material\";\n\nexport interface SolaceCheckboxChangeEvent {\n\tname: string;\n\tvalue: boolean;\n}\n\nexport interface SolaceCheckBoxProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `checkbox` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\tsubTextProps?: { label?: string | JSX.Element; light?: boolean };\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag to check or uncheck the `checkbox`\n\t */\n\tchecked?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `checkbox` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to disable the `checkbox`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `checkbox` is changed\n\t */\n\tonChange?: (event: SolaceCheckboxChangeEvent) => void;\n\t/**\n\t * Boolean flag to set the checkbox to indeterminate\n\t */\n\tindeterminate?: boolean;\n\t/**\n\t * Boolean flag to set the checkbox to readOnly\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Boolean flag to allow font weight of medium (default to regular) for label\n\t */\n\tboldLabel?: boolean;\n\t/**\n\t * Display the label with a larger font\n\t */\n\tlargeLabel?: boolean;\n}\n\ninterface CheckBoxLabelProps {\n\tid: string;\n\thtmlForId?: string;\n\trequired: boolean;\n\tdisabled: boolean;\n\tbold: boolean;\n\tlarge: boolean;\n\treadOnly: boolean;\n\tchildren?: JSX.Element | string;\n}\n\nfunction CheckBoxLabel({\n\tid,\n\thtmlForId,\n\trequired = false,\n\tdisabled = false,\n\tbold = false,\n\tlarge = false,\n\treadOnly = false,\n\tchildren\n}: CheckBoxLabelProps): JSX.Element {\n\tconst theme = useTheme();\n\treturn (\n\t\t<FormLabel\n\t\t\tid={id}\n\t\t\thtmlFor={htmlForId}\n\t\t\trequired={required}\n\t\t\tdisabled={disabled}\n\t\t\tsx={{ display: \"block\", fontSize: large ? theme.typography.subtitle1 : theme.typography.body1 }}\n\t\t\tclassName={clsx({ \"bold-label\": bold, \"check-box-label\": true, readOnly: readOnly })}\n\t\t>\n\t\t\t{children}\n\t\t</FormLabel>\n\t);\n}\n\nconst SolaceCheckBox = ({\n\tid,\n\tname,\n\tlabel,\n\ttitle,\n\thelperText,\n\thasErrors = false,\n\tchecked = false,\n\trequired = false,\n\tdisabled = false,\n\tindeterminate = false,\n\treadOnly = false,\n\tboldLabel = false,\n\tlargeLabel = false,\n\tsubTextProps = { label: \"\", light: false },\n\tonChange,\n\tdataQa,\n\tdataTags\n}: SolaceCheckBoxProps): JSX.Element => {\n\tconst theme = useTheme();\n\tconst [selected, setSelected] = useState(checked);\n\n\tuseEffect(() => {\n\t\tsetSelected(checked);\n\t}, [checked]);\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetSelected(event.target.checked);\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.checked\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getHelperText = () => (\n\t\t<Box display=\"flex\">\n\t\t\t{hasErrors && <ErrorOutlineOutlinedIcon sx={{ marginRight: theme.spacing() }} />}\n\t\t\t{helperText}\n\t\t</Box>\n\t);\n\n\tconst getId = () => {\n\t\treturn id ? id : name;\n\t};\n\n\t// No need to get custom icons as we're using MUI's built-in icons\n\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<Box display=\"grid\" gridTemplateColumns=\"auto 1fr\" gridTemplateRows=\"auto auto\" alignItems=\"center\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tid={`${getId()}-checkbox`}\n\t\t\t\t\tname={name}\n\t\t\t\t\tindeterminate={indeterminate}\n\t\t\t\t\tinputProps={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"aria-labelledby\": label ? `${getId()}-label` : \"\",\n\t\t\t\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\t\t\t\"data-tags\": dataTags\n\t\t\t\t\t\t} as SolaceHTMLAttributeProps\n\t\t\t\t\t}\n\t\t\t\t\trole=\"checkbox\"\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tdisabled={disabled || readOnly}\n\t\t\t\t\tclassName={clsx({ readOnly: readOnly })}\n\t\t\t\t\tdisableRipple\n\t\t\t\t\tchecked={selected}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tcheckedIcon={<CheckIcon />}\n\t\t\t\t\tindeterminateIcon={<Remove />}\n\t\t\t\t/>\n\t\t\t\t{label && (\n\t\t\t\t\t<Box>\n\t\t\t\t\t\t<CheckBoxLabel\n\t\t\t\t\t\t\tid={`${getId()}-label`}\n\t\t\t\t\t\t\thtmlForId={`${getId()}-checkbox`}\n\t\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tbold={boldLabel || (!!subTextProps.label && !subTextProps.light)}\n\t\t\t\t\t\t\tlarge={largeLabel}\n\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</CheckBoxLabel>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t\t{subTextProps.label && (\n\t\t\t\t\t<Box gridColumn=\"2\" gridRow=\"2\">\n\t\t\t\t\t\t<FormLabel\n\t\t\t\t\t\t\tid={`${id}-subtext`}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tclassName={clsx({ \"light-sub-text\": subTextProps.light, \"check-box-label\": true })}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{subTextProps.label}\n\t\t\t\t\t\t</FormLabel>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t\t{helperText && (\n\t\t\t\t\t<Box gridColumn=\"2\" gridRow=\"3\">\n\t\t\t\t\t\t<FormHelperText error={hasErrors} component=\"div\" sx={{ marginTop: theme.spacing(0.25) }}>\n\t\t\t\t\t\t\t{getHelperText()}\n\t\t\t\t\t\t</FormHelperText>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t</React.Fragment>\n\t);\n};\n\nexport default SolaceCheckBox;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, FormLabel, InputLabel, Radio, useRadioGroup, useTheme } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport SolaceHTMLAttributeProps from \"../SolaceHTMLAttributesProps\";\nimport clsx from \"clsx\";\nexport interface SolaceRadioChangeEvent {\n\tname: string;\n\tvalue: boolean;\n}\n\nexport interface SolaceRadioProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `radio` element\n\t */\n\tname: string;\n\t/**\n\t * Value assign to the `radio` element\n\t */\n\tvalue?: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\tsubText?: string | JSX.Element;\n\t/**\n\t * allow subText to be displayed at 55% black (default to 80%)\n\t */\n\tlightSubText?: boolean;\n\t/**\n\t * Boolean flag to check or uncheck the `radio`\n\t */\n\tchecked?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `radio` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to disable the `radio`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Display the label with a larger font\n\t */\n\tlargeLabel?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `radio` is changed\n\t */\n\tonChange?: (event: SolaceRadioChangeEvent) => void;\n\t/**\n\t * Boolean flag to set the radio to readOnly\n\t */\n\treadOnly?: boolean;\n}\n\ninterface LabelElementProps {\n\tbold: boolean;\n\tlarge: boolean;\n\tdisabled: boolean;\n\tchildren: string | JSX.Element;\n}\n\nfunction LabelElement({ children, bold, large, disabled }: LabelElementProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst typography = large ? theme.typography.subtitle1 : theme.typography.body1;\n\t// 24 px is the row height in the grid because it's the height of the svg\n\t// It needs to be 24 px, because otherwise the text won't be centered\n\t// Attempts to find another solution: 1\n\treturn (\n\t\t<Box\n\t\t\tcomponent={\"span\"}\n\t\t\tsx={{\n\t\t\t\tfontSize: typography.fontSize,\n\t\t\t\tlineHeight: \"24px\",\n\t\t\t\tfontWeight: bold ? \"medium\" : \"regular\",\n\t\t\t\tcolor: disabled ? theme.palette.ux.secondary.text.w50 : theme.palette.ux.primary.text.wMain\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</Box>\n\t);\n}\n\nfunction SolaceRadio({\n\tid,\n\tname,\n\tlabel,\n\tvalue,\n\ttitle,\n\tsubText,\n\tlightSubText = false,\n\tchecked = false,\n\trequired = false,\n\tdisabled = false,\n\tlargeLabel = false,\n\tonChange,\n\tdataQa,\n\tdataTags,\n\treadOnly = false\n}: SolaceRadioProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst [selected, setSelected] = useState(checked);\n\tconst radioGroup = useRadioGroup();\n\n\tuseEffect(() => {\n\t\tsetSelected(checked);\n\t}, [checked]);\n\n\tuseEffect(() => {\n\t\tif (radioGroup) {\n\t\t\tsetSelected(radioGroup.value === value);\n\t\t}\n\t}, [radioGroup, value]);\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetSelected(event.target.checked);\n\t\tif (onChange && event.target.checked) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.checked\n\t\t\t});\n\t\t}\n\t};\n\n\tif (!id) {\n\t\tid = name;\n\t}\n\n\treturn (\n\t\t<Box display=\"grid\" gridTemplateColumns=\"auto 1fr\" gridTemplateRows=\"auto auto\" alignItems=\"center\">\n\t\t\t<Radio\n\t\t\t\tid={`${id}-radio`}\n\t\t\t\tname={name}\n\t\t\t\tvalue={value}\n\t\t\t\tinputProps={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"aria-labelledby\": label ? `${id}-label` : \"\",\n\t\t\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\t\t\"data-tags\": dataTags\n\t\t\t\t\t} as SolaceHTMLAttributeProps\n\t\t\t\t}\n\t\t\t\trole=\"radio\"\n\t\t\t\ttitle={title}\n\t\t\t\tclassName={clsx({ readOnly: readOnly })}\n\t\t\t\tdisabled={disabled || readOnly}\n\t\t\t\tdisableRipple\n\t\t\t\tchecked={selected}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\t\t\t{label && (\n\t\t\t\t<Box>\n\t\t\t\t\t<InputLabel\n\t\t\t\t\t\tid={`${id}-label`}\n\t\t\t\t\t\thtmlFor={`${id}-radio`}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tsx={{ color: theme.palette.ux.primary.text.wMain, cursor: disabled ? \"auto\" : \"pointer\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t<LabelElement bold={largeLabel || subText !== undefined} large={largeLabel} disabled={disabled}>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</LabelElement>\n\t\t\t\t\t</InputLabel>\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t{subText && (\n\t\t\t\t<Box gridColumn=\"2\" gridRow=\"2\">\n\t\t\t\t\t<FormLabel\n\t\t\t\t\t\tid={`${id}-subtext`}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName={clsx({ \"light-sub-text\": lightSubText, \"radio-btn-label\": true })}\n\t\t\t\t\t>\n\t\t\t\t\t\t{subText}\n\t\t\t\t\t</FormLabel>\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t</Box>\n\t);\n}\n\nexport default SolaceRadio;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormLabel } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nexport interface SolaceLabelProps {\n\t/**\n\t * Unique identifier of the label\n\t */\n\tid: string;\n\t/**\n\t * identifier used for specifying which form element this label is bound to\n\t */\n\thtmlForId?: string;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag for readOnly labels, changes font color to 55% black\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Boolean flag to suppress line breaks (text wrapping) within the label\n\t */\n\tnoWrap?: boolean;\n\t/**\n\t *\n\t */\n\tchildren?: React.ReactNode;\n}\n\nfunction SolaceLabel({\n\tid,\n\thtmlForId,\n\trequired = false,\n\tdisabled = false,\n\treadOnly = false,\n\tnoWrap = false,\n\tchildren\n}: SolaceLabelProps): JSX.Element {\n\treturn (\n\t\t<FormLabel\n\t\t\tid={id}\n\t\t\thtmlFor={htmlForId}\n\t\t\trequired={required}\n\t\t\tdisabled={disabled}\n\t\t\tsx={{\n\t\t\t\tdisplay: \"block\",\n\t\t\t\twhiteSpace: noWrap ? \"nowrap\" : \"normal\"\n\t\t\t}}\n\t\t\tclassName={clsx({ \"read-only\": readOnly })}\n\t\t>\n\t\t\t{children}\n\t\t</FormLabel>\n\t);\n}\n\nexport default SolaceLabel;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormLabel, useTheme } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nexport interface SolaceStackLabelProps {\n\t/**\n\t * Unique identifier of the label\n\t */\n\tid: string;\n\t/**\n\t * identifier used for specifying which form element this label is bound to\n\t */\n\thtmlForId?: string;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag for readOnly labels, changes font color to 55% black\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Boolean flag to allow font size of 16px (default to 14px)\n\t */\n\tlarge?: boolean;\n\t/**\n\t * Boolean flag to allow font weight of medium (default to regular)\n\t */\n\tbold?: boolean;\n\t/**\n\t * Boolean flag to suppress line breaks (text wrapping) within the label\n\t */\n\tnoWrap?: boolean;\n\t/**\n\t *\n\t */\n\tchildren?: React.ReactNode;\n}\n\nfunction SolaceStackLabel({\n\tid,\n\thtmlForId,\n\trequired = false,\n\tdisabled = false,\n\tlarge = false,\n\tbold = false,\n\treadOnly = false,\n\tnoWrap = false,\n\tchildren\n}: SolaceStackLabelProps): JSX.Element {\n\tconst theme = useTheme();\n\treturn (\n\t\t<FormLabel\n\t\t\tid={id}\n\t\t\thtmlFor={htmlForId}\n\t\t\trequired={required}\n\t\t\tdisabled={disabled}\n\t\t\tclassName={clsx({ \"bold-label\": bold, \"read-only\": readOnly })}\n\t\t\tsx={{\n\t\t\t\tdisplay: \"block\",\n\t\t\t\tfontSize: large ? theme.typography.subtitle1 : theme.typography.body1,\n\t\t\t\twhiteSpace: noWrap ? \"nowrap\" : \"normal\"\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</FormLabel>\n\t);\n}\n\nexport default SolaceStackLabel;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormLabel, useTheme } from \"@mui/material\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\n\nexport interface HelperTextProps extends SolaceComponentProps {\n\tchildren: string | JSX.Element;\n}\n\nfunction HelperText({ children }: HelperTextProps): JSX.Element {\n\tconst theme = useTheme();\n\treturn (\n\t\t<FormLabel\n\t\t\tsx={{\n\t\t\t\tcolor: theme.palette.ux.secondary.text.wMain,\n\t\t\t\tfontSize: theme.typography.caption.fontSize,\n\t\t\t\tmarginTop: \"2px\"\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</FormLabel>\n\t);\n}\n\nexport default HelperText;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconProps } from \"./IconProps\";\nimport { SvgIcon } from \"@mui/material\";\n\nexport function ErrorIcon({ size, fill }: IconProps): JSX.Element {\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<path\n\t\t\t\td=\"M11.208 14.784C11.2827 14.8587 11.3733 14.896 11.48 14.896H12.776C12.8933 14.896 12.984 14.8587 13.048 14.784C13.1227 14.7093 13.16 14.6187 13.16 14.512V7.184C13.16 7.06667 13.1227 6.976 13.048 6.912C12.984 6.83733 12.8933 6.8 12.776 6.8H11.48C11.3733 6.8 11.2827 6.83733 11.208 6.912C11.1333 6.98667 11.096 7.07733 11.096 7.184V14.512C11.096 14.6187 11.1333 14.7093 11.208 14.784Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M11.112 17.888C11.1867 17.9627 11.2773 18 11.384 18H12.872C12.9893 18 13.0853 17.9627 13.16 17.888C13.2347 17.8133 13.272 17.7227 13.272 17.616V16.128C13.272 16.0107 13.2347 15.9147 13.16 15.84C13.0853 15.7653 12.9893 15.728 12.872 15.728H11.384C11.2773 15.728 11.1867 15.7653 11.112 15.84C11.0373 15.9147 11 16.0107 11 16.128V17.616C11 17.7227 11.0373 17.8133 11.112 17.888Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t\t<path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Default base font size in pixels for theme scaling\n// Currently used in Storybook decorator for theme provider\nexport const DEFAULT_BASE_SIZE = 16;\n\nexport type BASE_FONT_PX_SIZE_TYPES = {\n\txxs: number;\n\txs: number;\n\tsm: number;\n\tmd: number;\n\tlg: number;\n\txl: number;\n\txxl: number;\n\thuge: number;\n};\n\nexport const BASE_FONT_PX_SIZES: BASE_FONT_PX_SIZE_TYPES = {\n\txxs: 10,\n\txs: 12,\n\tsm: 14,\n\tmd: 16,\n\tlg: 18,\n\txl: 20,\n\txxl: 24,\n\thuge: 30\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormLabel, useTheme, styled } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { ErrorIcon } from \"../../resources/icons/ErrorIcon\";\nimport { BASE_FONT_PX_SIZES } from \"../../resources/typography\";\nimport { CSSProperties } from \"@mui/styled-engine\";\n\nconst ErrorTextContainer = styled(Box)(({ theme }) => ({\n\t...(theme.mixins.formComponent_ErrorText.container as CSSProperties)\n}));\n\nconst ErrorTextLabel = styled(FormLabel)(({ theme }) => ({\n\t...(theme.mixins.formComponent_ErrorText.label as CSSProperties)\n}));\n\nexport interface ErrorTextProps extends SolaceComponentProps {\n\tchildren: string | JSX.Element;\n}\n\nfunction ErrorText({ children }: ErrorTextProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst size = theme.typography.subtitle1.fontSize?.toString();\n\treturn (\n\t\t<ErrorTextContainer>\n\t\t\t<ErrorIcon size={size ? parseInt(size) : BASE_FONT_PX_SIZES.md} fill={theme.palette.ux.error.wMain} />\n\t\t\t<ErrorTextLabel>{children}</ErrorTextLabel>\n\t\t</ErrorTextContainer>\n\t);\n}\n\nexport default ErrorText;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconProps } from \"./IconProps\";\nimport { SvgIcon } from \"@mui/material\";\n\nexport function WarnIcon({ size, fill }: IconProps): JSX.Element {\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<path\n\t\t\t\td=\"M11.8746 14.996C11.9493 15.0706 12.04 15.108 12.1466 15.108H13.4426C13.56 15.108 13.6506 15.0706 13.7146 14.996C13.7893 14.9213 13.8266 14.8306 13.8266 14.724V10.396C13.8266 10.2786 13.7893 10.188 13.7146 10.124C13.6506 10.0493 13.56 10.012 13.4426 10.012H12.1466C12.04 10.012 11.9493 10.0493 11.8746 10.124C11.8 10.1986 11.7626 10.2893 11.7626 10.396V14.724C11.7626 14.8306 11.8 14.9213 11.8746 14.996Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M11.7786 18.1C11.8533 18.1746 11.944 18.212 12.0506 18.212H13.5386C13.656 18.212 13.752 18.1746 13.8266 18.1C13.9013 18.0253 13.9386 17.9346 13.9386 17.828V16.34C13.9386 16.2226 13.9013 16.1266 13.8266 16.052C13.752 15.9773 13.656 15.94 13.5386 15.94H12.0506C11.944 15.94 11.8533 15.9773 11.7786 16.052C11.704 16.1266 11.6666 16.2226 11.6666 16.34V17.828C11.6666 17.9346 11.704 18.0253 11.7786 18.1Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t\t<path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M11.7919 3.79001C12.1726 3.10304 13.1604 3.10304 13.5411 3.79001L22.2358 19.4772C22.6053 20.1437 22.1233 20.962 21.3612 20.962H3.97177C3.20973 20.962 2.72771 20.1437 3.09713 19.4772L11.7919 3.79001ZM5.66936 18.962L12.6665 6.3376L19.6636 18.962H5.66936Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormLabel, useTheme, styled } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { WarnIcon } from \"../../resources/icons/WarnIcon\";\nimport { BASE_FONT_PX_SIZES } from \"../../resources/typography\";\nimport { CSSProperties } from \"@mui/styled-engine\";\n\nconst WarningTextContainer = styled(Box)(({ theme }) => ({\n\t...(theme.mixins.formComponent_WarningText.container as CSSProperties)\n}));\n\nconst WarningTextLabel = styled(FormLabel)(({ theme }) => ({\n\t...(theme.mixins.formComponent_WarningText.label as CSSProperties)\n}));\n\nexport interface WarningTextProps extends SolaceComponentProps {\n\tchildren: string | JSX.Element;\n}\n\nfunction WarningText({ children }: WarningTextProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst size = theme.typography.subtitle1.fontSize?.toString();\n\treturn (\n\t\t<WarningTextContainer>\n\t\t\t<WarnIcon size={size ? parseInt(size) : BASE_FONT_PX_SIZES.md} fill={theme.palette.ux.warning.w100}></WarnIcon>\n\t\t\t<WarningTextLabel>{children}</WarningTextLabel>\n\t\t</WarningTextContainer>\n\t);\n}\n\nexport default WarningText;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, styled } from \"@mui/material\";\nimport SolaceLabel from \"./SolaceLabel\";\nimport SolaceStackLabel from \"./SolaceStackLabel\";\nimport HelperText from \"./HelperText\";\nimport ErrorText from \"./ErrorText\";\nimport WarningText from \"./WarningText\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { SX } from \"../../types/sx\";\n\ninterface ChildrenContainerProps {\n\tinlineLabel: boolean;\n}\n\nconst ChildrenContainer = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"inlineLabel\"\n})<ChildrenContainerProps>(({ theme, inlineLabel }) => ({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\tflexGrow: 1,\n\tmaxWidth: \"100%\",\n\tpaddingLeft: inlineLabel ? \"36px\" : \"0px\",\n\t\"&.hasWarnings\": {\n\t\t\"fieldset.MuiOutlinedInput-notchedOutline, fieldset.MuiInputBase-inputMultiline\": {\n\t\t\tborderColor: `${theme.palette.ux.warning.w100}`\n\t\t}\n\t}\n}));\n\nexport interface FormChildBaseProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * Boolean flag to allow labels to be rendered as SolaceStackLabel component, which provides more props, such as large, bold\n\t */\n\tstackLabel?: boolean;\n\t/**\n\t * Boolean flag to allow StackSolaceLabel component to be rendered with larger font size of 16px (default to 14px)\n\t */\n\tlarge?: boolean;\n\t/**\n\t * Boolean flag to allow StackSolaceLabel component to be rendered with font weight of medium (default to regular)\n\t */\n\tbold?: boolean;\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tvalue?: string;\n\t/**\n\t * Content to display as supportive/explanatory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * HelperText when the `input` in error state\n\t */\n\terrorText?: string | JSX.Element;\n\t/**\n\t * HelperText when the `input` in warning state\n\t */\n\twarningText?: string | JSX.Element;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired: boolean;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled: boolean;\n\t/**\n\t * Boolean flag to set the `input` in a read-only state\n\t */\n\treadOnly: boolean;\n\t/**\n\t * Display the label horizontally\n\t */\n\tinlineLabel: boolean;\n\t/**\n\t * Center align the inline label, this will e used only for single line field label\n\t */\n\tcenterInlineLabel?: boolean;\n\n\tchildren: JSX.Element;\n\t/**\n\t * The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.\n\t */\n\tsx?: SX;\n}\n\nfunction FormChildBase({\n\tid,\n\tlabel,\n\tstackLabel,\n\tlarge,\n\tbold,\n\trequired,\n\tdisabled,\n\treadOnly,\n\tinlineLabel,\n\tcenterInlineLabel,\n\thelperText,\n\terrorText,\n\twarningText,\n\tchildren,\n\tsx\n}: FormChildBaseProps): JSX.Element {\n\treturn (\n\t\t<Box\n\t\t\tdisplay=\"flex\"\n\t\t\tflexDirection={inlineLabel ? \"row\" : \"column\"}\n\t\t\tjustifyContent=\"space-between\"\n\t\t\talignItems={centerInlineLabel ? \"flex-start\" : \"\"}\n\t\t\tsx={sx}\n\t\t>\n\t\t\t{stackLabel && label && (\n\t\t\t\t<div style={{ marginTop: centerInlineLabel ? \"5.5px\" : \"\" }}>\n\t\t\t\t\t<SolaceStackLabel\n\t\t\t\t\t\tid={`${id}-label`}\n\t\t\t\t\t\thtmlForId={`${id}`}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tlarge={large}\n\t\t\t\t\t\tbold={bold}\n\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</SolaceStackLabel>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!stackLabel && label && (\n\t\t\t\t<div style={{ marginTop: centerInlineLabel ? \"5.5px\" : \"\" }}>\n\t\t\t\t\t<SolaceLabel\n\t\t\t\t\t\tid={`${id}-label`}\n\t\t\t\t\t\thtmlForId={`${id}`}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\tnoWrap={inlineLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</SolaceLabel>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<ChildrenContainer inlineLabel={inlineLabel} className={warningText ? \"hasWarnings\" : \"\"}>\n\t\t\t\t{children}\n\t\t\t\t{helperText && !errorText && !warningText && <HelperText>{helperText}</HelperText>}\n\t\t\t\t{warningText && !errorText && <WarningText>{warningText}</WarningText>}\n\t\t\t\t{errorText && <ErrorText>{errorText}</ErrorText>}\n\t\t\t</ChildrenContainer>\n\t\t</Box>\n\t);\n}\n\nexport default FormChildBase;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, RadioGroup, Grid, useTheme } from \"@mui/material\";\nimport React, { useEffect, useState, useRef, useMemo } from \"react\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport FormChildBase from \"./FormChildBase\";\n\nconst keyMapping: Record<string, number> = {\n\tArrowDown: 1,\n\tArrowRight: 1,\n\tArrowUp: -1,\n\tArrowLeft: -1\n};\n\nexport interface SolaceRadioGroupChangeEvent {\n\tname: string;\n\tvalue: string;\n}\n\nexport interface SolaceRadioGroupProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `radio group` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * Boolean flag to render stack label for a group of select components\n\t */\n\tstackLabel?: boolean;\n\t/**\n\t * Boolean flag to allow font size of 16px (default to 14px) for stack label\n\t */\n\tlarge?: boolean;\n\t/**\n\t * Boolean flag to allow font weight of medium (default to regular) for stack label\n\t */\n\tbold?: boolean;\n\t/**\n\t * Content to display as supportive/explanatory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * The value of the selected 'radio' managed by this group\n\t */\n\tvalue?: string;\n\t/**\n\t * Boolean flag to control whether to stack the label on top of the `input` element (false) or place them inline to one another (true)\n\t */\n\tinlineLabel?: boolean;\n\t/**\n\t * Boolean flag to control whether to arrange the `input` elements horizontally\n\t */\n\tinline?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `radio group` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to disable the `radio group`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to disable the `radio group`\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `radio group` is changed\n\t */\n\tonChange?: (event: SolaceRadioGroupChangeEvent) => void;\n\t/**\n\t * Callback function to trigger whenever the value of the `radio group` is changed\n\t */\n\tchildren: Array<React.ReactNode>;\n}\n\nfunction SolaceRadioGroup({\n\tid,\n\tname,\n\tlabel,\n\tstackLabel = true, // use stack label for radio group\n\tlarge = false,\n\tbold = false,\n\tvalue,\n\thelperText,\n\thasErrors = false,\n\treadOnly = false,\n\trequired = false,\n\tdisabled = false,\n\tinlineLabel = false,\n\tinline = false,\n\tonChange,\n\tchildren\n}: SolaceRadioGroupProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst [selected, setSelected] = useState(value);\n\tconst radioGroupRef = useRef<HTMLDivElement>(null);\n\n\tuseEffect(() => {\n\t\tsetSelected(value);\n\t}, [value]);\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetSelected(event.target.value);\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.value\n\t\t\t});\n\t\t}\n\t};\n\n\tif (!id) {\n\t\tid = name;\n\t}\n\n\tuseEffect(() => {\n\t\tconst group = radioGroupRef.current;\n\t\tif (!group) return;\n\n\t\tconst focusTarget = group.querySelector(`input[value=\"${selected}\"]`) ?? group.querySelector(\"input\");\n\n\t\tif (focusTarget && focusTarget instanceof HTMLElement) {\n\t\t\tfocusTarget.focus();\n\t\t}\n\t}, [selected]);\n\n\tconst radioOptions = useMemo((): string[] => {\n\t\t/*\n\t\t * 1. Convert the children prop to an array.\n\t\t * 2. Filter valid React elements.\n\t\t * 3. Map over the valid elements to extract their \"value\" prop.\n\t\t * 4. Filter out any null or undefined values.\n\t\t * This ensures that the radioOptions array only contains valid string values,\n\t\t * and it will only be recomputed when the \"children\" prop changes.\n\t\t * */\n\t\treturn React.Children.toArray(children)\n\t\t\t.filter(React.isValidElement)\n\t\t\t.map((child) => (child as React.ReactElement).props.value)\n\t\t\t.filter((option): option is string => option !== null && option !== undefined);\n\t}, [children]);\n\n\tconst handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (disabled || readOnly) return;\n\n\t\tif (radioOptions.length === 0) return;\n\n\t\tconst delta = keyMapping[event.key] ?? 0;\n\t\tif (delta === 0) return;\n\n\t\tevent.preventDefault();\n\n\t\tconst currentIndex = selected ? radioOptions.indexOf(selected) : 0;\n\t\tconst newIndex = (currentIndex + delta + radioOptions.length) % radioOptions.length;\n\n\t\tif (newIndex !== currentIndex) {\n\t\t\tconst newValue = radioOptions[newIndex];\n\t\t\tsetSelected(newValue);\n\t\t\tonChange?.({ name, value: newValue });\n\t\t}\n\t};\n\n\tconst getRadioGroup = () => {\n\t\tconst childItems: Array<React.ReactNode> = children.map((child, i) => (\n\t\t\t<Grid item key={i}>\n\t\t\t\t{child}\n\t\t\t</Grid>\n\t\t));\n\n\t\treturn (\n\t\t\t<Box display=\"flex\" flexDirection=\"row\" justifyContent=\"flex-start\" alignItems=\"center\">\n\t\t\t\t<RadioGroup\n\t\t\t\t\taria-label={name}\n\t\t\t\t\tname={name}\n\t\t\t\t\trole=\"radiogroup\"\n\t\t\t\t\tvalue={selected}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tref={radioGroupRef}\n\t\t\t\t>\n\t\t\t\t\t<Grid container spacing={inline ? 4.5 : 1.5} direction={inline ? \"row\" : \"column\"}>\n\t\t\t\t\t\t{childItems}\n\t\t\t\t\t</Grid>\n\t\t\t\t</RadioGroup>\n\t\t\t</Box>\n\t\t);\n\t};\n\n\treturn (\n\t\t<FormChildBase\n\t\t\tid={id}\n\t\t\tlabel={label}\n\t\t\tstackLabel={stackLabel}\n\t\t\tlarge={large}\n\t\t\tbold={bold}\n\t\t\thelperText={helperText}\n\t\t\terrorText={hasErrors ? helperText : undefined}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\trequired={required}\n\t\t\tinlineLabel={inlineLabel}\n\t\t>\n\t\t\t<Box sx={{ marginTop: inlineLabel ? 0 : theme.spacing(1), marginBottom: hasErrors ? theme.spacing(1.25) : 0 }}>\n\t\t\t\t{getRadioGroup()}\n\t\t\t</Box>\n\t\t</FormChildBase>\n\t);\n}\n\nexport default SolaceRadioGroup;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Chip, useTheme } from \"@mui/material\";\nimport { BASE_SIZE_TYPES } from \"../types/sizing\";\nimport { BASE_FONT_PX_SIZE_TYPES, BASE_FONT_PX_SIZES } from \"../resources/typography\";\nimport { CHIP_COLORS } from \"../types/solaceChip\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\nconst CHIP_PX_HEIGHTS: BASE_SIZE_TYPES = {\n\txs: 12,\n\tsm: 18,\n\tmd: 24,\n\tlg: 30\n};\n\nconst CHIP_PX_BORDER_RADIUS: BASE_SIZE_TYPES = {\n\txs: 20,\n\tsm: 30,\n\tmd: 40,\n\tlg: 50\n};\n\nexport interface SolaceAttributeProps extends SolaceComponentProps {\n\t/**\n\t * \tThe content of the component.\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * \tThe variant to use.\n\t */\n\tvariant?: \"filled\" | \"outlined\";\n\t/**\n\t * If true, the component is disabled.\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * If the content exceeds the maxWidth (in px), ellipsis will be shown within the chip.\n\t */\n\tmaxWidth?: string | number;\n\t/**\n\t * Sets the border color of the component\n\t */\n\tborderColor?: CHIP_COLORS;\n\t/**\n\t * Sets the border radius of the component\n\t */\n\tborderRadius?: keyof BASE_SIZE_TYPES;\n\t/**\n\t * Flag to change the border to dashed for the outlined chip variant\n\t */\n\tdashedBorder?: boolean;\n\t/**\n\t * Sets the fill color of the chip\n\t */\n\tfillColor?: CHIP_COLORS;\n\t/**\n\t * Flag to set the label font weight to bold\n\t */\n\tboldLabel?: boolean;\n\t/**\n\t * Sets the text color of the label\n\t */\n\tlabelColor?: CHIP_COLORS;\n\t/**\n\t * Sets the vertical size of the chip\n\t */\n\theight?: keyof BASE_SIZE_TYPES;\n\t/**\n\t * Font size\n\t */\n\tsize?: keyof BASE_FONT_PX_SIZE_TYPES;\n\t/**\n\t * Flag for controlling the size of the chip component\n\t */\n\tcompressed?: boolean;\n\t/**\n\t * If true, the chip will appear clickable, and will raise when pressed\n\t */\n\tclickable?: boolean;\n\t/**\n\t * if the callback function is set, the chip will show the delete button\n\t */\n\tonDelete?: (id: string | number) => void;\n}\n\nexport default function SolaceAttribute({\n\tlabel,\n\tvariant = \"filled\",\n\tdisabled = false,\n\tmaxWidth = \"100%\",\n\tdashedBorder = false,\n\tborderColor,\n\tlabelColor,\n\tborderRadius = \"md\",\n\tfillColor,\n\tboldLabel = true,\n\theight = \"sm\",\n\tdataQa,\n\tsize = \"xs\",\n\tcompressed = false,\n\tclickable = false,\n\tonDelete\n}: SolaceAttributeProps): JSX.Element {\n\tconst CHIP_COLOR_MAP = useTheme().palette.ux.deprecated.chip;\n\treturn (\n\t\t<Chip\n\t\t\tsx={{\n\t\t\t\tmaxWidth: typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth,\n\t\t\t\tfontSize: BASE_FONT_PX_SIZES[size],\n\t\t\t\tborderColor: `${borderColor && CHIP_COLOR_MAP[borderColor]}`,\n\t\t\t\tborderStyle: `${dashedBorder && \"dashed\"}`,\n\t\t\t\tborderRadius: `${CHIP_PX_BORDER_RADIUS[borderRadius]}px`,\n\t\t\t\tfontWeight: `${boldLabel ? 500 : 400}`,\n\t\t\t\theight: `${CHIP_PX_HEIGHTS[height]}px`,\n\t\t\t\tbackgroundColor: `${fillColor && CHIP_COLOR_MAP[fillColor]}`,\n\t\t\t\tcolor: `${labelColor && CHIP_COLOR_MAP[labelColor]}`,\n\t\t\t\tpaddingLeft: `${compressed ? \"0px\" : \"2px\"}`,\n\t\t\t\tpaddingRight: `${compressed ? \"0px\" : \"2px\"}`\n\t\t\t}}\n\t\t\tlabel={label}\n\t\t\tvariant={variant}\n\t\t\tsize={compressed ? \"small\" : \"medium\"}\n\t\t\tdisabled={disabled}\n\t\t\tclickable={clickable}\n\t\t\tonDelete={onDelete}\n\t\t\tdeleteIcon={<CloseIcon />}\n\t\t\tdata-qa={dataQa}\n\t\t\tclassName=\"solaceAttributeBadge\"\n\t\t/>\n\t);\n}\n","export default class Diff {\n diff(oldStr, newStr, \n // Type below is not accurate/complete - see above for full possibilities - but it compiles\n options = {}) {\n let callback;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n else if ('callback' in options) {\n callback = options.callback;\n }\n // Allow subclasses to massage the input prior to running\n const oldString = this.castInput(oldStr, options);\n const newString = this.castInput(newStr, options);\n const oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n const newTokens = this.removeEmpty(this.tokenize(newString, options));\n return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n }\n diffWithOptionsObj(oldTokens, newTokens, options, callback) {\n var _a;\n const done = (value) => {\n value = this.postProcess(value, options);\n if (callback) {\n setTimeout(function () { callback(value); }, 0);\n return undefined;\n }\n else {\n return value;\n }\n };\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let editLength = 1;\n let maxEditLength = newLen + oldLen;\n if (options.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n const abortAfterTimestamp = Date.now() + maxExecutionTime;\n const bestPath = [{ oldPos: -1, lastComponent: undefined }];\n // Seed editLength = 0, i.e. the content starts with the same values\n let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // Identity per the equality and tokenizer\n return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n }\n // Once we hit the right edge of the edit graph on some diagonal k, we can\n // definitely reach the end of the edit graph in no more than k edits, so\n // there's no point in considering any moves to diagonal k+1 any more (from\n // which we're guaranteed to need at least k+1 more edits).\n // Similarly, once we've reached the bottom of the edit graph, there's no\n // point considering moves to lower diagonals.\n // We record this fact by setting minDiagonalToConsider and\n // maxDiagonalToConsider to some finite value once we've hit the edge of\n // the edit graph.\n // This optimization is not faithful to the original algorithm presented in\n // Myers's paper, which instead pointlessly extends D-paths off the end of\n // the edit graph - see page 7 of Myers's paper which notes this point\n // explicitly and illustrates it with a diagram. This has major performance\n // implications for some common scenarios. For instance, to compute a diff\n // where the new text simply appends d characters on the end of the\n // original text of length n, the true Myers algorithm will take O(n+d^2)\n // time while this optimization needs only O(n+d) time.\n let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n // Main worker method. checks all permutations of a given edit length for acceptance.\n const execEditLength = () => {\n for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n let basePath;\n const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n // No one else is going to attempt to use this value, clear it\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath - 1] = undefined;\n }\n let canAdd = false;\n if (addPath) {\n // what newPos will be after we do an insertion:\n const addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n const canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath] = undefined;\n continue;\n }\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the old string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n basePath = this.addToPath(addPath, true, false, 0, options);\n }\n else {\n basePath = this.addToPath(removePath, false, true, 1, options);\n }\n newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // If we have hit the end of both strings, then we are done\n return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n }\n else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n };\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback(undefined);\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n }());\n }\n else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n const ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n }\n addToPath(path, added, removed, oldPosInc, options) {\n const last = path.lastComponent;\n if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n };\n }\n else {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n };\n }\n }\n extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options.oneChangePerToken) {\n basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n }\n if (commonCount && !options.oneChangePerToken) {\n basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n basePath.oldPos = oldPos;\n return newPos;\n }\n equals(left, right, options) {\n if (options.comparator) {\n return options.comparator(left, right);\n }\n else {\n return left === right\n || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n }\n }\n removeEmpty(array) {\n const ret = [];\n for (let i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n castInput(value, options) {\n return value;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tokenize(value, options) {\n return Array.from(value);\n }\n join(chars) {\n // Assumes ValueT is string, which is the case for most subclasses.\n // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n // assume tokens and values are strings, but not completely - is weird and janky.\n return chars.join('');\n }\n postProcess(changeObjects, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n options) {\n return changeObjects;\n }\n get useLongestToken() {\n return false;\n }\n buildValues(lastComponent, newTokens, oldTokens) {\n // First we convert our linked list of components in reverse order to an\n // array in the right order:\n const components = [];\n let nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n const componentLen = components.length;\n let componentPos = 0, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n const component = components[componentPos];\n if (!component.removed) {\n if (!component.added && this.useLongestToken) {\n let value = newTokens.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n const oldValue = oldTokens[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = this.join(value);\n }\n else {\n component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n // Common case\n if (!component.added) {\n oldPos += component.count;\n }\n }\n else {\n component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n }\n}\n","import Diff from './base.js';\nimport { generateOptions } from '../util/params.js';\nclass LineDiff extends Diff {\n constructor() {\n super(...arguments);\n this.tokenize = tokenize;\n }\n equals(left, right, options) {\n // If we're ignoring whitespace, we need to normalise lines by stripping\n // whitespace before checking equality. (This has an annoying interaction\n // with newlineIsToken that requires special handling: if newlines get their\n // own token, then we DON'T want to trim the *newline* tokens down to empty\n // strings, since this would cause us to treat whitespace-only line content\n // as equal to a separator between lines, which would be weird and\n // inconsistent with the documented behavior of the options.)\n if (options.ignoreWhitespace) {\n if (!options.newlineIsToken || !left.includes('\\n')) {\n left = left.trim();\n }\n if (!options.newlineIsToken || !right.includes('\\n')) {\n right = right.trim();\n }\n }\n else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {\n if (left.endsWith('\\n')) {\n left = left.slice(0, -1);\n }\n if (right.endsWith('\\n')) {\n right = right.slice(0, -1);\n }\n }\n return super.equals(left, right, options);\n }\n}\nexport const lineDiff = new LineDiff();\nexport function diffLines(oldStr, newStr, options) {\n return lineDiff.diff(oldStr, newStr, options);\n}\nexport function diffTrimmedLines(oldStr, newStr, options) {\n options = generateOptions(options, { ignoreWhitespace: true });\n return lineDiff.diff(oldStr, newStr, options);\n}\n// Exported standalone so it can be used from jsonDiff too.\nexport function tokenize(value, options) {\n if (options.stripTrailingCr) {\n // remove one \\r before \\n to match GNU diff's --strip-trailing-cr behavior\n value = value.replace(/\\r\\n/g, '\\n');\n }\n const retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n // Ignore the final empty token that occurs if the string ends with a new line\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n }\n // Merge the content and line separators into single tokens\n for (let i = 0; i < linesAndNewlines.length; i++) {\n const line = linesAndNewlines[i];\n if (i % 2 && !options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n }\n else {\n retLines.push(line);\n }\n }\n return retLines;\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\nimport * as Diff from \"diff\";\nimport React from \"react\";\n\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport SolaceStackLabel from \"./form/SolaceStackLabel\";\n\nconst DiffContainer = styled(\"div\")({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\twidth: \"100%\"\n});\n\nconst HeaderContainer = styled(\"div\")({\n\tdisplay: \"flex\",\n\twidth: \"100%\"\n});\n\nconst HeaderPane = styled(\"div\")(({ theme }) => ({\n\tflex: 1,\n\tminWidth: 0,\n\tpadding: theme.spacing(1, 2, 0.5, 0)\n}));\n\nconst CodeDiffContainer = styled(\"div\")(({ theme }) => ({\n\tborder: `1px solid ${theme.palette.ux.secondary.w40}`,\n\tborderRadius: theme.shape.borderRadius,\n\tfontFamily: \"monospace\",\n\tfontSize: \"14px\",\n\toverflow: \"hidden\"\n}));\n\nconst DiffSplitView = styled(\"div\")({\n\tdisplay: \"flex\",\n\twidth: \"100%\"\n});\n\nconst DiffPane = styled(\"div\")({\n\tflex: 1,\n\tminWidth: 0\n});\n\nconst DiffLine = styled(\"div\")<{ lineType: \"normal\" | \"insert\" | \"delete\" | \"empty\" }>(({ theme, lineType }) => ({\n\tdisplay: \"flex\",\n\tminHeight: \"1.2em\",\n\tlineHeight: \"1.2em\",\n\t...(lineType === \"insert\" && {\n\t\tbackgroundColor: theme.palette.ux.success.w10\n\t}),\n\t...(lineType === \"delete\" && {\n\t\tbackgroundColor: theme.palette.ux.warning.w10,\n\t\tmixBlendMode: \"multiply\"\n\t}),\n\t...(lineType === \"empty\" && {\n\t\tbackgroundColor: theme.palette.ux.error.wMain,\n\t\topacity: 0.1\n\t})\n}));\n\nconst DiffGutter = styled(\"div\")(({ theme }) => ({\n\tcolor: theme.palette.ux.secondary.text.wMain,\n\tbackgroundColor: theme.palette.ux.background.w20,\n\ttextAlign: \"center\",\n\tminWidth: theme.spacing(3),\n\tpadding: theme.spacing(0, 0.5),\n\tborderRight: `1px solid ${theme.palette.ux.secondary.w40}`,\n\tuserSelect: \"none\",\n\tflexShrink: 0\n}));\n\nconst DiffContent = styled(\"div\")(({ theme }) => ({\n\tpadding: theme.spacing(0, 1),\n\twhiteSpace: \"pre-wrap\",\n\toverflow: \"hidden\",\n\twordWrap: \"break-word\",\n\tflex: 1\n}));\n\nconst NoDifferencesContainer = styled(\"div\")(({ theme }) => ({\n\tpadding: theme.spacing(2),\n\ttextAlign: \"center\",\n\tcolor: theme.palette.ux.secondary.text.wMain\n}));\n\n// Type definitions for diff changes\ninterface DiffChange {\n\ttype: \"insert\" | \"delete\" | \"normal\";\n\tisInsert?: boolean;\n\tisDelete?: boolean;\n\tisNormal?: boolean;\n\tcontent: string;\n\toldLineNumber?: number;\n\tnewLineNumber?: number;\n\tlineNumber?: number;\n}\n\ninterface DiffHunk {\n\tcontent: string;\n\toldStart: number;\n\tnewStart: number;\n\toldLines: number;\n\tnewLines: number;\n\tchanges: DiffChange[];\n}\n\nexport interface SolaceTextDiffProps extends SolaceComponentProps {\n\t/**\n\t * unique identifier\n\t */\n\tid: string;\n\t/**\n\t * \tText 1 for comparison\n\t */\n\ttext1: string;\n\t/**\n\t * \tText 2 for comparison\n\t */\n\ttext2: string;\n\t/**\n\t * Header content to display above the old text pane.\n\t */\n\ttext1Header?: string | JSX.Element;\n\t/**\n\t * Header content to display above the new text pane.\n\t */\n\ttext2Header?: string | JSX.Element;\n\t/**\n\t * Text to display when there is no content to compare.\n\t * @default 'No content to compare'\n\t */\n\tnoContentText?: string;\n\t/**\n\t * Text to display when there are no differences.\n\t * @default 'No Differences'\n\t */\n\tnoDifferencesText?: string;\n\t/**\n\t * Whether to hide the diff and show the noDifferencesText when there are no differences.\n\t * @default false\n\t */\n\thideWhenNoDifferences?: boolean;\n}\n\nconst createChangesArray = (change: Diff.Change, lines: string[], oldStart: number, newStart: number): DiffChange[] => {\n\tconst type = change.added ? \"insert\" : change.removed ? \"delete\" : \"normal\";\n\n\treturn lines.map((line, i) => {\n\t\tconst diffChange: DiffChange = {\n\t\t\ttype,\n\t\t\tcontent: line\n\t\t};\n\n\t\tif (type === \"insert\") {\n\t\t\tdiffChange.isInsert = true;\n\t\t\tdiffChange.newLineNumber = newStart + i;\n\t\t\tdiffChange.lineNumber = newStart + i;\n\t\t} else if (type === \"delete\") {\n\t\t\tdiffChange.isDelete = true;\n\t\t\tdiffChange.oldLineNumber = oldStart + i;\n\t\t\tdiffChange.lineNumber = oldStart + i;\n\t\t} else {\n\t\t\t// normal\n\t\t\tdiffChange.isNormal = true;\n\t\t\tdiffChange.oldLineNumber = oldStart + i;\n\t\t\tdiffChange.newLineNumber = newStart + i;\n\t\t}\n\t\treturn diffChange;\n\t});\n};\n\nconst getChangeLines = (change: Diff.Change): string[] => {\n\tif (!change.value) {\n\t\treturn [];\n\t}\n\tconst lines = change.value.split(\"\\n\");\n\tif (lines.length > 0 && lines[lines.length - 1] === \"\") {\n\t\tlines.pop();\n\t}\n\treturn lines;\n};\n\nexport default function SolaceTextDiff(props: SolaceTextDiffProps): JSX.Element {\n\tconst {\n\t\tid,\n\t\ttext1,\n\t\ttext2,\n\t\ttext1Header,\n\t\ttext2Header,\n\t\tnoContentText = \"No content to compare\",\n\t\tnoDifferencesText = \"No Differences\",\n\t\thideWhenNoDifferences = false\n\t} = props;\n\n\tconst hunks = React.useMemo((): DiffHunk[] => {\n\t\tconst changes = Diff.diffLines(text1, text2);\n\t\tconst hunks: DiffHunk[] = [];\n\t\tlet oldStart = 1;\n\t\tlet newStart = 1;\n\t\tfor (const change of changes) {\n\t\t\tconst lines = getChangeLines(change);\n\t\t\tif (lines.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst changesArr = createChangesArray(change, lines, oldStart, newStart);\n\n\t\t\tconst hunk: DiffHunk = {\n\t\t\t\tcontent: \"\",\n\t\t\t\toldStart,\n\t\t\t\tnewStart,\n\t\t\t\toldLines: change.added ? 0 : lines.length,\n\t\t\t\tnewLines: change.removed ? 0 : lines.length,\n\t\t\t\tchanges: changesArr\n\t\t\t};\n\t\t\thunks.push(hunk);\n\t\t\tif (!change.added) {\n\t\t\t\toldStart += lines.length;\n\t\t\t}\n\t\t\tif (!change.removed) {\n\t\t\t\tnewStart += lines.length;\n\t\t\t}\n\t\t}\n\t\treturn hunks;\n\t}, [text1, text2]);\n\n\t// Collect all changes from all hunks\n\tconst allChanges = React.useMemo(() => {\n\t\treturn hunks.flatMap((hunk) => hunk.changes);\n\t}, [hunks]);\n\n\t// Helper function to render a single line\n\tconst renderLine = (change: DiffChange, side: \"old\" | \"new\", index: number) => {\n\t\tconst lineNumber = side === \"old\" ? change.oldLineNumber : change.newLineNumber;\n\t\tconst shouldShow = side === \"old\" ? !change.isInsert : !change.isDelete;\n\n\t\tif (!shouldShow) {\n\t\t\treturn (\n\t\t\t\t<DiffLine key={`${side}-empty-${index}`} lineType=\"empty\">\n\t\t\t\t\t<DiffGutter>&nbsp;</DiffGutter>\n\t\t\t\t\t<DiffContent>&nbsp;</DiffContent>\n\t\t\t\t</DiffLine>\n\t\t\t);\n\t\t}\n\n\t\tconst lineType = change.isInsert ? \"insert\" : change.isDelete ? \"delete\" : \"normal\";\n\n\t\treturn (\n\t\t\t<DiffLine key={`${side}-${lineNumber || index}`} lineType={lineType}>\n\t\t\t\t<DiffGutter>{lineNumber || \"\"}</DiffGutter>\n\t\t\t\t<DiffContent>{change.content}</DiffContent>\n\t\t\t</DiffLine>\n\t\t);\n\t};\n\n\tif (!text1 && !text2) {\n\t\treturn (\n\t\t\t<CodeDiffContainer id={`code-diff-${id}`}>\n\t\t\t\t<NoDifferencesContainer>{noContentText}</NoDifferencesContainer>\n\t\t\t</CodeDiffContainer>\n\t\t);\n\t}\n\n\tif (hideWhenNoDifferences && allChanges.every((change) => change.isNormal)) {\n\t\treturn (\n\t\t\t<CodeDiffContainer id={`code-diff-${id}`}>\n\t\t\t\t<NoDifferencesContainer>{noDifferencesText}</NoDifferencesContainer>\n\t\t\t</CodeDiffContainer>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DiffContainer>\n\t\t\t{(text1Header || text2Header) && (\n\t\t\t\t<HeaderContainer>\n\t\t\t\t\t<HeaderPane>\n\t\t\t\t\t\t{text1Header && <SolaceStackLabel id={`diff-text1Header-${id}`}>{text1Header}</SolaceStackLabel>}\n\t\t\t\t\t</HeaderPane>\n\t\t\t\t\t<HeaderPane>\n\t\t\t\t\t\t{text2Header && <SolaceStackLabel id={`diff-text2Header-${id}`}>{text2Header}</SolaceStackLabel>}\n\t\t\t\t\t</HeaderPane>\n\t\t\t\t</HeaderContainer>\n\t\t\t)}\n\t\t\t<CodeDiffContainer id={`code-diff-${id}`}>\n\t\t\t\t<DiffSplitView>\n\t\t\t\t\t<DiffPane>{allChanges.map((change, idx) => renderLine(change, \"old\", idx))}</DiffPane>\n\t\t\t\t\t<DiffPane>{allChanges.map((change, idx) => renderLine(change, \"new\", idx))}</DiffPane>\n\t\t\t\t</DiffSplitView>\n\t\t\t</CodeDiffContainer>\n\t\t</DiffContainer>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum MODES {\n\tLIGHT_MODE = \"lightMode\",\n\tDARK_MODE = \"darkMode\"\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BASE_SIZE_TYPES } from \"./sizing\";\n\nexport enum CHIP_COLORS {\n\tROYAL_BLUE = \"royalBlue\",\n\tDARK_BLUE = \"darkBlue\",\n\tOPAQUE_BLUE = \"opaqueBlue\",\n\tinfoBlue = \"infoBlue\",\n\tinfoBgBlue = \"infoBgBlue\",\n\twarnYellow = \"warnYellow\",\n\twarnBgYellow = \"warnBgYellow\",\n\tLIGHT_GREY = \"lightGrey\",\n\tSMOKE_GREY = \"smokeGrey\",\n\tDARK_GREY = \"darkGrey\",\n\tWHITE = \"white\",\n\tINFO_LIGHT_BG_BLUE = \"infoLightBgBlue\",\n\tERROR_BG_RED = \"errorBgRed\",\n\tSUCCESS_BG_GREEN = \"successBgGreen\",\n\tINFO_BLUE_LABEL = \"infoLightLabelBlue\",\n\tERROR_RED_LABEL = \"errorLabel\",\n\tSUCCESS_GREEN_LABEL = \"successLabel\"\n}\n\nexport enum CHIP_VARIANT {\n\tFILLED = \"filled\",\n\tOUTLINED = \"outlined\"\n}\n\nexport const CHIP_PX_HEIGHTS: BASE_SIZE_TYPES = {\n\txs: 14,\n\tsm: 18,\n\tmd: 24,\n\tlg: 30\n};\n\nexport const CHIP_PX_BORDER_RADIUS: BASE_SIZE_TYPES = {\n\txs: 2,\n\tsm: 3,\n\tmd: 4,\n\tlg: 5\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum STATUSES {\n\tNO_STATUS = \"\",\n\tSUCCESS_STATUS = \"successStatus\",\n\tINFO_STATUS = \"infoStatus\",\n\tWARN_STATUS = \"warnStatus\",\n\tERROR_STATUS = \"errorStatus\"\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum STATES {\n\tNOT_SELECTED = \"notSelectedState\",\n\tACTIVE = \"activeState\"\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Chip, useTheme } from \"@mui/material\";\nimport { BASE_SIZE_TYPES } from \"../types/sizing\";\nimport { BASE_FONT_PX_SIZE_TYPES, BASE_FONT_PX_SIZES } from \"../resources/typography\";\nimport { MODES } from \"../types/modes\";\nimport { CHIP_COLORS, CHIP_PX_BORDER_RADIUS, CHIP_PX_HEIGHTS, CHIP_VARIANT } from \"../types/solaceChip\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { STATUSES } from \"../types/statuses\";\nimport { STATES } from \"../types/states\";\nimport { ErrorIcon } from \"../resources/icons/ErrorIcon\";\n\nexport interface SolaceChipProps extends SolaceComponentProps {\n\t/**\n\t * \tThe content of the component.\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * \tThe variant to use ... standard (filled) vs choice (outlined).\n\t */\n\tvariant?: CHIP_VARIANT;\n\t/**\n\t * If true, the component is disabled.\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * If the content exceeds the maxWidth (in px), ellipsis will be shown within the chip.\n\t */\n\tmaxWidth?: string | number;\n\t/**\n\t * Sets the border color of the component\n\t */\n\tborderColor?: CHIP_COLORS;\n\t/**\n\t * Sets the border radius of the component\n\t */\n\tborderRadius?: keyof BASE_SIZE_TYPES;\n\t/**\n\t * Flag to change the border to dashed for the outlined chip variant\n\t */\n\tdashedBorder?: boolean;\n\t/**\n\t * Sets the fill color of the chip\n\t */\n\tfillColor?: CHIP_COLORS;\n\t/**\n\t * Flag to set the label font weight to bold\n\t */\n\tboldLabel?: boolean;\n\t/**\n\t * Sets the text color of the label\n\t */\n\tlabelColor?: CHIP_COLORS;\n\t/**\n\t * Sets the vertical size of the chip\n\t */\n\theight?: keyof BASE_SIZE_TYPES;\n\t/**\n\t * Font size\n\t */\n\tsize?: keyof BASE_FONT_PX_SIZE_TYPES;\n\t/**\n\t * Flag for controlling the size of the chip component\n\t */\n\tcompressed?: boolean;\n\t/**\n\t * If true, the chip will appear clickable, and will raise when pressed\n\t */\n\tclickable?: boolean;\n\t/**\n\t * Sets the mode of the chip (default is LIGHT_MODE)\n\t */\n\tmode?: MODES;\n\t/**\n\t * Sets the status of the chip (default is NO_STATUS)\n\t */\n\tstatus?: STATUSES;\n\t/**\n\t * Sets the state of the chip (default is NOT_SELECTED)\n\t */\n\tstate?: STATES;\n\t/**\n\t * Add a leading icon ... ensure the size of the icon is 14x14 pixels\n\t */\n\ticon?: JSX.Element;\n\t/**\n\t * if the callback function is set, the chip will show the delete button\n\t */\n\tonDelete?: (id: string | number) => void;\n\t/**\n\t * if the callback function is set, the chip will notify when clicked\n\t */\n\tonClick?: () => void;\n}\n\nexport default function SolaceChip({\n\tlabel,\n\tvariant = CHIP_VARIANT.FILLED,\n\tdisabled = false,\n\tmaxWidth = \"100%\",\n\tdashedBorder = false,\n\tborderColor,\n\tlabelColor,\n\tborderRadius = \"md\",\n\tfillColor,\n\tboldLabel = false,\n\theight = \"md\",\n\tdataQa,\n\tsize = \"sm\",\n\tcompressed = false,\n\tclickable = false,\n\tmode = MODES.LIGHT_MODE,\n\tstatus = STATUSES.NO_STATUS,\n\tstate = STATES.NOT_SELECTED,\n\ticon,\n\tonDelete,\n\tonClick\n}: SolaceChipProps): JSX.Element {\n\tconst CHIP_COLOR_MAP = useTheme().palette.ux.deprecated.chip;\n\tconst theme = useTheme();\n\n\treturn (\n\t\t<Chip\n\t\t\tsx={{\n\t\t\t\tmaxWidth: typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth,\n\t\t\t\tfontSize: BASE_FONT_PX_SIZES[size],\n\t\t\t\tborderColor: `${borderColor && CHIP_COLOR_MAP[borderColor]}`,\n\t\t\t\tborderStyle: `${dashedBorder && \"dashed\"}`,\n\t\t\t\tborderRadius: `${CHIP_PX_BORDER_RADIUS[borderRadius]}px`,\n\t\t\t\tfontWeight: `${boldLabel ? 500 : 400}`,\n\t\t\t\theight: `${CHIP_PX_HEIGHTS[height]}px`,\n\t\t\t\tbackgroundColor: `${fillColor && CHIP_COLOR_MAP[fillColor]}`,\n\t\t\t\tcolor: `${labelColor && CHIP_COLOR_MAP[labelColor]}`,\n\t\t\t\tpaddingLeft: `${compressed ? \"0px\" : \"2px\"}`,\n\t\t\t\tpaddingRight: `${compressed ? \"0px\" : \"2px\"}`\n\t\t\t}}\n\t\t\tlabel={label}\n\t\t\tvariant={variant}\n\t\t\tsize={compressed ? \"small\" : \"medium\"}\n\t\t\tdisabled={disabled}\n\t\t\tclickable={clickable}\n\t\t\tonDelete={onDelete}\n\t\t\tdeleteIcon={<CloseIcon />}\n\t\t\tdata-qa={dataQa}\n\t\t\tclassName={`solaceChip ${mode} ${status} ${state}`}\n\t\t\tonClick={onClick}\n\t\t\ticon={\n\t\t\t\t<>\n\t\t\t\t\t{icon && <span className=\"leadingIcon\">{icon}</span>}\n\t\t\t\t\t{status === STATUSES.ERROR_STATUS && (\n\t\t\t\t\t\t<span className=\"errorIcon\">\n\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t<ErrorIcon size={14} fill={theme.palette.ux.error.w100} />{\" \"}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t}\n\t\t/>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useTheme, Chip } from \"@mui/material\";\nimport { BASE_FONT_PX_SIZES } from \"../resources/typography\";\nimport { CHIP_COLORS, CHIP_PX_BORDER_RADIUS, CHIP_PX_HEIGHTS, CHIP_VARIANT } from \"../types/solaceChip\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\n\nexport interface SolaceTagProps extends SolaceComponentProps {\n\t/**\n\t * \tThe content of the component.\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * \tThe variant to use ... filled vs outlined\n\t */\n\tvariant?: CHIP_VARIANT;\n\t/**\n\t * If the label is of type string and exceeds the maxWidth (in px), ellipsis will be\n\t * shown within the component\n\t */\n\tmaxWidth?: string | number;\n\t/**\n\t * Sets the fill color of the component\n\t */\n\tfillColor?: CHIP_COLORS;\n\t/**\n\t * Sets the border color of the component\n\t */\n\tborderColor?: CHIP_COLORS;\n\t/**\n\t * Sets the text color of the label\n\t */\n\tlabelColor?: CHIP_COLORS;\n\t/**\n\t * If true, hover and click effects will be applied to the component\n\t */\n\tclickable?: boolean;\n\t/**\n\t * Add a leading icon ... ensure the size of the icon is 14x14 pixels\n\t */\n\ticon?: JSX.Element;\n}\n\nexport default function SolaceTag({\n\tlabel,\n\tvariant = CHIP_VARIANT.FILLED,\n\tmaxWidth = \"100%\",\n\tfillColor,\n\tborderColor,\n\tlabelColor,\n\tclickable = false,\n\ticon,\n\tdataQa\n}: SolaceTagProps): JSX.Element {\n\tconst CHIP_COLOR_MAP = useTheme().palette.ux.deprecated.chip;\n\n\treturn (\n\t\t<Chip\n\t\t\tsx={{\n\t\t\t\tmaxWidth: typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth,\n\t\t\t\tfontSize: `${BASE_FONT_PX_SIZES[\"xs\"]}px`,\n\t\t\t\tborderColor: `${borderColor && CHIP_COLOR_MAP[borderColor]} !important`, // need important to override theme values\n\t\t\t\tborderRadius: `${CHIP_PX_BORDER_RADIUS[\"xs\"]}px`,\n\t\t\t\tfontWeight: 400,\n\t\t\t\theight: `${CHIP_PX_HEIGHTS[\"sm\"]}px`,\n\t\t\t\tbackgroundColor: `${fillColor && CHIP_COLOR_MAP[fillColor]} !important`, // need important to override theme values\n\t\t\t\tcolor: `${labelColor && CHIP_COLOR_MAP[labelColor]} !important`, // need important to override theme values\n\t\t\t\tpaddingLeft: \"2px\",\n\t\t\t\tpaddingRight: \"2px\"\n\t\t\t}}\n\t\t\tlabel={label}\n\t\t\tvariant={variant}\n\t\t\tsize=\"medium\"\n\t\t\tclickable={clickable}\n\t\t\tdata-qa={dataQa}\n\t\t\tclassName=\"solaceTag\"\n\t\t\ticon={<>{icon && <span className=\"leadingIcon\">{icon}</span>}</>}\n\t\t/>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon, useTheme } from \"@mui/material\";\n\nexport const CloseIcon = ({ size = 24, fill = \"\" }): JSX.Element => {\n\tconst theme = useTheme();\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<path\n\t\t\t\td=\"M18.0899 16.4598C18.4804 16.8503 18.4804 17.4834 18.0899 17.874C17.6994 18.2645 17.0662 18.2645 16.6757 17.874L11.9331 12.7171L7.19041 17.874C6.79988 18.2645 6.16672 18.2645 5.77619 17.874C5.38567 17.4834 5.38567 16.8503 5.77619 16.4598L10.5188 11.3029L5.77619 6.56026C5.38567 6.16973 5.38567 5.53657 5.77619 5.14604C6.16672 4.75552 6.79988 4.75552 7.19041 5.14604L11.9331 9.88869L16.6757 5.14604C17.0662 4.75552 17.6994 4.75552 18.0899 5.14604C18.4804 5.53657 18.4804 6.16973 18.0899 6.56026L13.3473 11.3029L18.0899 16.4598Z\"\n\t\t\t\tfill={fill || theme.palette.ux.secondary.wMain}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled, useTheme } from \"@mui/material\";\nimport React from \"react\";\nimport SolaceButton from \"./form/SolaceButton\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { ErrorIcon } from \"../resources/icons/ErrorIcon\";\nimport { CloseIcon } from \"../resources/icons/CloseIcon\";\nimport { getCloseButtonAriaLabel } from \"../utils\";\n\nconst Container = styled(\"div\")(({ theme }) => ({\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tjustifyContent: \"space-between\",\n\theight: \"100%\",\n\tbackgroundColor: theme.palette.ux.error.w10,\n\tborderRadius: \"2px\",\n\tborderLeft: `3px solid ${theme.palette.ux.error.w100}`,\n\tpaddingRight: \"4px\",\n\tcolor: theme.palette.ux.error.w100\n}));\n\nconst MessageSection = styled(\"div\")(({ theme }) => ({\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tgap: theme.spacing(),\n\tpadding: theme.spacing()\n}));\n\nexport interface SolaceErrorBoxProps extends SolaceComponentProps {\n\t/**\n\t * the error message to display in the error box\n\t */\n\tmessage: string | JSX.Element;\n\t/**\n\t * Boolean flag to control whether to show an error icon in front of the error message\n\t */\n\tshowErrorIcon?: boolean;\n\t/**\n\t * Boolean flag to control whether to show a close button in the end of the error box\n\t */\n\tshowCloseButton?: boolean;\n\t/**\n\t * Callback function after the message box is closed\n\t */\n\tonClose?: () => void;\n}\n\nfunction SolaceErrorBox({\n\tmessage,\n\tshowErrorIcon = true,\n\tshowCloseButton = false,\n\tonClose\n}: SolaceErrorBoxProps): JSX.Element | null {\n\tconst theme = useTheme();\n\tconst [open, setOpen] = React.useState(true);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t\tonClose?.();\n\t};\n\n\treturn open ? (\n\t\t<Container>\n\t\t\t<MessageSection>\n\t\t\t\t{showErrorIcon && <ErrorIcon size={20} fill={theme.palette.ux.error.w100} />}\n\t\t\t\t{message}\n\t\t\t</MessageSection>\n\t\t\t{showCloseButton && (\n\t\t\t\t<SolaceButton aria-label={getCloseButtonAriaLabel()} variant=\"icon\" onClick={handleClose}>\n\t\t\t\t\t<CloseIcon size={24} />\n\t\t\t\t</SolaceButton>\n\t\t\t)}\n\t\t</Container>\n\t) : null;\n}\n\nexport default SolaceErrorBox;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const constants = {\n\tmaxLength: 255,\n\tmenuItemHeight: 38,\n\tmenuItemHeightMultiline: 58,\n\tGridListItemHeight: 53,\n\tDEFAULT_NUM_OF_MENUITEM_DISPLAYED: 9,\n\tcloseButtonAriaLabel: \"Close\",\n\tactionMenuAriaLabel: \"More Actions\",\n\tclearButtonAriaLabel: \"Clear\"\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconProps } from \"./IconProps\";\nimport { SvgIcon } from \"@mui/material\";\n\nexport function InfoIcon({ size, fill }: IconProps): JSX.Element {\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<path\n\t\t\t\td=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S16.4,20,12,20\n\t\t\t\t\tz M12.6,7h-1.2C11.2,7,11,7.2,11,7.4v1.2C11,8.8,11.2,9,11.4,9h1.2C12.8,9,13,8.8,13,8.6V7.4C13,7.2,12.8,7,12.6,7z M12.6,10h-1.2\n\t\t\t\t\tc-0.2,0-0.4,0.2-0.4,0.4v6.2c0,0.2,0.2,0.4,0.4,0.4h1.2c0.2,0,0.4-0.2,0.4-0.4v-6.2C13,10.2,12.8,10,12.6,10z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t\t<path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconProps } from \"./IconProps\";\nimport { SvgIcon } from \"@mui/material\";\n\nexport function SuccessIcon({ size, fill }: IconProps): JSX.Element {\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<path\n\t\t\t\td=\"M13.6946 2.13962C6.85362 1.01462 1.01462 6.85362 2.13962 13.6946C2.82062 17.8376 6.16262 21.1796 10.3056 21.8606C17.1466 22.9856 22.9856 17.1466 21.8606 10.3056C21.1786 6.16162 17.8376 2.82062 13.6946 2.13962ZM13.5676 19.8496C7.94262 20.9256 3.07362 16.0566 4.14962 10.4316C4.75062 7.28662 7.28662 4.75062 10.4316 4.14962C16.0566 3.07362 20.9256 7.94262 19.8496 13.5676C19.2476 16.7126 16.7126 19.2476 13.5676 19.8496ZM16.0646 8.10462L9.99962 14.1696L7.92162 12.1006C7.76762 11.9466 7.51762 11.9466 7.36362 12.1016L6.51762 12.9476C6.35962 13.1056 6.35962 13.3606 6.51762 13.5186L9.71362 16.8926C9.87162 17.0506 10.1266 17.0506 10.2846 16.8926L17.4756 9.52462C17.6316 9.36862 17.6326 9.11462 17.4766 8.95762L16.6326 8.10762C16.4766 7.94862 16.2216 7.94762 16.0646 8.10462Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { styled, Theme, useTheme } from \"@mui/material\";\nimport SolaceButton from \"./form/SolaceButton\";\nimport { ErrorIcon } from \"../resources/icons/ErrorIcon\";\nimport { InfoIcon } from \"../resources/icons/InfoIcon\";\nimport { SuccessIcon } from \"../resources/icons/SuccessIcon\";\nimport { CloseIcon } from \"../resources/icons/CloseIcon\";\nimport { WarnIcon } from \"../resources/icons/WarnIcon\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { CSSProperties } from \"@mui/styled-engine\";\nimport { getCloseButtonAriaLabel } from \"../utils\";\n\nconst InfoBoxContainer = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.component_MessageBox.container as CSSProperties)\n}));\nconst InfoBoxMessageContainer = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.component_MessageBox.messageContainer as CSSProperties)\n}));\nconst DetailsContainer = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.component_MessageBox.detailsContainer as CSSProperties)\n}));\nconst MessageTextContainer = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"color\" })<{ color?: string }>(\n\t({ theme, color }) => ({\n\t\t...(theme.mixins.component_MessageBox.messageTextContainer as CSSProperties),\n\t\tcolor: color\n\t})\n);\nconst IconContainer = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.component_MessageBox.iconContainer as CSSProperties)\n}));\nconst InfoBoxMessage = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.component_MessageBox.message as CSSProperties)\n}));\n\ninterface SolaceInfoBoxProps extends SolaceComponentProps {\n\t/**\n\t * the info message to display in the info box\n\t */\n\tmessage: string | JSX.Element;\n\t/**\n\t * Boolean flag to control whether to show an info icon in front of the info message\n\t */\n\tshowIcon?: boolean;\n\t/**\n\t * Boolean flag to control whether to show a close button in the end of the info box\n\t */\n\tshowCloseButton?: boolean;\n\t/**\n\t * Callback function after the message box is closed\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Variants, currently supports error, info, warn and success, default to info, can be expanded as needed\n\t */\n\tvariant: \"info\" | \"error\" | \"warn\" | \"success\";\n\t/**\n\t * message text color\n\t */\n\tcolor?: string;\n\t/**\n\t * If true, compact vertical padding is used\n\t */\n\tdense?: boolean;\n\t/**\n\t * To display further details about the message\n\t */\n\tdetails?: string | JSX.Element;\n}\n\nfunction renderIcons(theme: Theme, variant: \"info\" | \"error\" | \"warn\" | \"success\"): JSX.Element {\n\tconst variantMap = {\n\t\tinfo: { Icon: InfoIcon, color: theme.palette.ux.info.w100 },\n\t\terror: { Icon: ErrorIcon, color: theme.palette.ux.error.w100 },\n\t\twarn: { Icon: WarnIcon, color: theme.palette.ux.warning.w100 },\n\t\tsuccess: { Icon: SuccessIcon, color: theme.palette.ux.success.w100 }\n\t};\n\n\tconst { Icon, color } = variantMap[variant] || variantMap.info;\n\n\treturn <Icon size={24} fill={color} />;\n}\n\nfunction SolaceMessageBox({\n\tmessage,\n\tshowIcon = true,\n\tshowCloseButton = false,\n\tonClose,\n\tvariant = \"info\",\n\tcolor,\n\tdense = false,\n\tdetails,\n\tdataQa,\n\tdataTags\n}: SolaceInfoBoxProps): JSX.Element | null {\n\tconst [open, setOpen] = React.useState(true);\n\tconst theme = useTheme();\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t\tonClose?.();\n\t};\n\tconst getColor = () => {\n\t\tconst colorOverride = color || theme.mixins.component_MessageBox.messageTextContainer.color;\n\t\tif (colorOverride) {\n\t\t\tif (variant === \"error\") {\n\t\t\t\treturn color || theme.palette.ux.error.w100;\n\t\t\t}\n\t\t\treturn colorOverride;\n\t\t}\n\t\tswitch (variant) {\n\t\t\tcase \"error\":\n\t\t\t\treturn theme.palette.ux.error.w100;\n\t\t\tcase \"warn\":\n\t\t\t\treturn theme.palette.ux.primary.text.wMain;\n\t\t\tcase \"success\":\n\t\t\t\treturn theme.palette.ux.success.w100;\n\t\t\tcase \"info\":\n\t\t\t\treturn theme.palette.ux.info.w100;\n\t\t}\n\t};\n\n\treturn open ? (\n\t\t<React.Fragment>\n\t\t\t<InfoBoxContainer className={variant} data-qa={dataQa} data-tags={dataTags}>\n\t\t\t\t<InfoBoxMessageContainer>\n\t\t\t\t\t<InfoBoxMessage className={`${dense ? \"dense\" : \"\"}`}>\n\t\t\t\t\t\t{showIcon && (\n\t\t\t\t\t\t\t<IconContainer className={`iconContainer ${dense ? \"dense\" : \"\"}`}>\n\t\t\t\t\t\t\t\t{renderIcons(theme, variant)}\n\t\t\t\t\t\t\t</IconContainer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<MessageTextContainer color={getColor()}>{message}</MessageTextContainer>\n\t\t\t\t\t</InfoBoxMessage>\n\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t<SolaceButton aria-label={getCloseButtonAriaLabel()} variant=\"icon\" onClick={handleClose}>\n\t\t\t\t\t\t\t<CloseIcon size={24} />\n\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t)}\n\t\t\t\t</InfoBoxMessageContainer>\n\t\t\t\t{!!details && <DetailsContainer>{details}</DetailsContainer>}\n\t\t\t</InfoBoxContainer>\n\t\t</React.Fragment>\n\t) : null;\n}\n\nexport default SolaceMessageBox;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { isValidElement } from \"react\";\nimport { styled } from \"@mui/material\";\nimport SolaceButton from \"./form/SolaceButton\";\nimport { CloseIcon } from \"../resources/icons/CloseIcon\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { getCloseButtonAriaLabel } from \"../utils\";\n\nconst BannerContainer = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"backgroundColor\" && prop !== \"hasTitle\"\n})<{\n\tbackgroundColor?: string;\n\thasTitle: boolean;\n}>(({ backgroundColor, hasTitle, theme }) => ({\n\tbackgroundColor: backgroundColor ?? theme.palette.ux.background.w20,\n\tcolor: theme.palette.ux.primary.text.wMain,\n\tborderRadius: \"4px\",\n\tdisplay: \"flex\",\n\tflexDirection: hasTitle ? \"column\" : \"row\",\n\tjustifyContent: \"space-between\",\n\talignContent: \"flex-start\",\n\tpadding: theme.spacing(2)\n}));\n\nconst TitleRow = styled(\"div\")({\n\tdisplay: \"flex\",\n\tjustifyContent: \"space-between\",\n\talignItems: \"center\"\n});\n\nconst TitleSection = styled(\"div\")(({ theme }) => ({\n\tfontSize: theme.typography.subtitle1.fontSize,\n\tfontWeight: theme.typography.fontWeightMedium\n}));\n\ninterface SolaceLearningBannerProps extends SolaceComponentProps {\n\t/**\n\t * The title of the banner.\n\t */\n\ttitle?: string | JSX.Element;\n\t/**\n\t * The content of the banner.\n\t */\n\tchildren: JSX.Element;\n\t/**\n\t * Boolean flag to control whether to show a close button in the end of the banner\n\t */\n\tshowCloseButton?: boolean;\n\t/**\n\t * Callback function after the banner is closed\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Background color of the banner\n\t */\n\tbackgroundColor?: string;\n}\n\nfunction SolaceLearningBanner({\n\ttitle,\n\tchildren,\n\tshowCloseButton = false,\n\tonClose,\n\tbackgroundColor,\n\tdataQa,\n\tdataTags\n}: SolaceLearningBannerProps): JSX.Element | null {\n\tconst [open, setOpen] = React.useState(true);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t\tonClose?.();\n\t};\n\n\treturn open ? (\n\t\t<BannerContainer backgroundColor={backgroundColor} hasTitle={!!title} data-qa={dataQa} data-tags={dataTags}>\n\t\t\t{title && (\n\t\t\t\t<>\n\t\t\t\t\t<TitleRow>\n\t\t\t\t\t\t{isValidElement(title) ? title : <TitleSection>{title}</TitleSection>}\n\t\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t\t<SolaceButton aria-label={getCloseButtonAriaLabel()} variant=\"icon\" onClick={handleClose}>\n\t\t\t\t\t\t\t\t<CloseIcon size={24} />\n\t\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TitleRow>\n\t\t\t\t\t{children}\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{!title && (\n\t\t\t\t<>\n\t\t\t\t\t{children}\n\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<SolaceButton aria-label={getCloseButtonAriaLabel()} variant=\"icon\" onClick={handleClose}>\n\t\t\t\t\t\t\t\t<CloseIcon size={24} />\n\t\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</BannerContainer>\n\t) : null;\n}\n\nexport default SolaceLearningBanner;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\nimport { Box, Tabs, Tab, Theme } from \"@mui/material\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { BASE_FONT_PX_SIZES, BASE_FONT_PX_SIZE_TYPES } from \"../../resources/typography\";\n\nexport interface TabProps {\n\t/**\n\t * Label of the tab\n\t */\n\tlabel: string | JSX.Element;\n\t/**\n\t * Unique identifier of the tab\n\t */\n\tvalue: string;\n\t/**\n\t * The route pathname of the tab. For tabs that have different routes.\n\t */\n\thref?: string;\n\t/**\n\t * Optional click handler if routes is not used for navigation. For in-page navigation.\n\t */\n\tonTabClick?: (tabValue: string) => void;\n\t/**\n\t * If the tab is disabled\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Size of the tab font\n\t */\n\tsize?: keyof BASE_FONT_PX_SIZE_TYPES;\n\t/**\n\t * Tab index for keyboard navigation\n\t */\n\ttabIndex?: number;\n}\n\nexport interface SolaceTabsProps extends SolaceComponentProps {\n\ttabs: TabProps[];\n\t/**\n\t * The value of the active tab\n\t */\n\tactiveTabValue: string;\n\t/**\n\t * Callback fired when the value changes.\n\t */\n\tonTabClick?: (value: string) => void;\n\tsize?: keyof BASE_FONT_PX_SIZE_TYPES;\n\t/**\n\t * scrollable will invoke scrolling properties and allow for horizontally scrolling of the tab bar.\n\t * fullWidth will make the tabs grow to use all the available space.\n\t * standard will render the default state.\n\t */\n\tvariant?: \"fullWidth\" | \"scrollable\" | \"standard\";\n}\n\nconst tabStyles = (theme: Theme, size: keyof BASE_FONT_PX_SIZE_TYPES) => ({\n\theight: \"100%\",\n\tfontSize: BASE_FONT_PX_SIZES[size],\n\t\"&.Mui-focusVisible\": {\n\t\tpadding: \"11px 15px 13px 15px\",\n\t\tborder: `1px solid ${theme.palette.ux.accent.n2.wMain}`\n\t}\n});\n\nfunction AnchorTab(props: TabProps) {\n\tconst { onTabClick, size = \"sm\", ...rest } = props;\n\n\tconst onClickCallBack = (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n\t\tevent.preventDefault();\n\t\tif (onTabClick) {\n\t\t\t// The unique tab value is passed back to the callback function\n\t\t\tonTabClick(props.value);\n\t\t}\n\t};\n\n\treturn <Tab component=\"a\" onClick={onClickCallBack} disableRipple sx={(theme) => tabStyles(theme, size)} {...rest} />;\n}\n\nfunction SolaceTabs({\n\ttabs,\n\tactiveTabValue,\n\tonTabClick,\n\tsize = \"sm\",\n\tvariant = \"standard\"\n}: SolaceTabsProps): JSX.Element {\n\t// Find initial focused index directly (without useMemo)\n\tconst [focusedTabIndex, setFocusedTabIndex] = React.useState(() =>\n\t\ttabs.findIndex((tab) => tab.value === activeTabValue)\n\t);\n\n\t// Update focused tab index when active tab changes\n\tReact.useEffect(() => {\n\t\tconst activeIndex = tabs.findIndex((tab) => tab.value === activeTabValue);\n\t\tif (activeIndex !== -1) {\n\t\t\tsetFocusedTabIndex(activeIndex);\n\t\t}\n\t}, [activeTabValue, tabs]);\n\n\tconst handleChange = (_e: React.SyntheticEvent, value: string) => {\n\t\tonTabClick?.(value);\n\t};\n\n\tconst handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tconst { key } = event;\n\n\t\tif ([\"ArrowRight\", \"ArrowDown\"].includes(key)) {\n\t\t\tevent.preventDefault();\n\t\t\tconst newIndex = (focusedTabIndex + 1) % tabs.length;\n\t\t\tsetFocusedTabIndex(newIndex);\n\t\t} else if ([\"ArrowLeft\", \"ArrowUp\"].includes(key)) {\n\t\t\tevent.preventDefault();\n\t\t\tconst newIndex = (focusedTabIndex - 1 + tabs.length) % tabs.length;\n\t\t\tsetFocusedTabIndex(newIndex);\n\t\t} else if (key === \" \" || key === \"Enter\") {\n\t\t\tevent.preventDefault();\n\t\t\tonTabClick?.(tabs[focusedTabIndex].value);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Box sx={{ width: \"100%\", fontSize: BASE_FONT_PX_SIZES[size] }}>\n\t\t\t<Tabs\n\t\t\t\tvalue={activeTabValue}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\tclassName={tabs.length === 1 ? \"singleTab\" : \"\"}\n\t\t\t\tvariant={variant}\n\t\t\t>\n\t\t\t\t{tabs.map((item) => (\n\t\t\t\t\t<AnchorTab\n\t\t\t\t\t\t{...item}\n\t\t\t\t\t\tkey={`anchorTab-${item.value}`}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\ttabIndex={item.value === activeTabValue ? 0 : -1}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Tabs>\n\t\t</Box>\n\t);\n}\n\nexport default SolaceTabs;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Typography, useTheme } from \"@mui/material\";\nimport { SolaceTypographyProps } from \"../types\";\n\nexport default function SolaceTypography(props: SolaceTypographyProps) {\n\tconst theme = useTheme();\n\n\tconst colorMap = {\n\t\tinfo: theme.palette.ux.info.w100,\n\t\terror: theme.palette.ux.error.w100,\n\t\twarning: theme.palette.ux.warning.w100,\n\t\tsuccess: theme.palette.ux.success.w100\n\t};\n\n\tconst { variant = \"body1\", children, color, ...rest } = props;\n\n\treturn (\n\t\t<Typography variant={variant} color={color ? colorMap[`${color}`] : \"textPrimary\"} {...rest}>\n\t\t\t{children}\n\t\t</Typography>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useState, useEffect } from \"react\";\nimport { Box, Drawer, IconButton, styled, useTheme } from \"@mui/material\";\nimport { CloseIcon } from \"../../resources/icons/CloseIcon\";\nimport SolaceTypography from \"../SolaceTypography\";\nimport SolaceTooltip from \"../SolaceToolTip\";\n\nexport enum PANEL_POSITION {\n\tLEFT = \"left\",\n\tRIGHT = \"right\"\n}\n\n// Use `shouldForwardProp` to get rid of the warning that React does not recognize the custom prop on a DOM element.\nconst Main = styled(\"main\", { shouldForwardProp: (prop) => prop === \"children\" })<{\n\tshowSidePanel: boolean;\n\toverlayContent: boolean;\n\tsidePanelPosition: PANEL_POSITION;\n\tsidePanelWidth: number | string;\n}>(({ theme, showSidePanel, sidePanelPosition, overlayContent }) => ({\n\tflexGrow: 1,\n\ttransition: theme.transitions.create(\"margin\", {\n\t\teasing: theme.transitions.easing.easeIn,\n\t\tduration: theme.transitions.duration.leavingScreen\n\t}),\n\t...(showSidePanel &&\n\t\tsidePanelPosition === PANEL_POSITION.RIGHT &&\n\t\t!overlayContent && {\n\t\t\tmarginRight: 0,\n\t\t\ttransition: theme.transitions.create(\"margin\", {\n\t\t\t\teasing: theme.transitions.easing.easeOut,\n\t\t\t\tduration: theme.transitions.duration.enteringScreen\n\t\t\t})\n\t\t}),\n\t...(showSidePanel &&\n\t\tsidePanelPosition === PANEL_POSITION.LEFT &&\n\t\t!overlayContent && {\n\t\t\ttransition: theme.transitions.create(\"margin\", {\n\t\t\t\teasing: theme.transitions.easing.easeOut,\n\t\t\t\tduration: theme.transitions.duration.enteringScreen\n\t\t\t}),\n\t\t\tmarginLeft: 0\n\t\t})\n}));\n\ninterface BaseSolaceSidePanelLayoutProps {\n\t/**\n\t * The content you want to show/hide in the side panel\n\t */\n\tsidePanelContent?: JSX.Element;\n\t/**\n\t * Flag signifying if the side panel is expanded or collapsed\n\t */\n\tshowSidePanel: boolean;\n\t/**\n\t * The desired width of the side panel\n\t */\n\tsidePanelWidth?: number | string;\n\t/**\n\t * property to control which side of the main content the side panel is rendered on\n\t */\n\tsidePanelPosition?: PANEL_POSITION;\n\t/**\n\t * Optional flag to have side panel (drawer) float over main content. default is set to false (shifting the main content)\n\t */\n\toverlayContent?: boolean;\n\t/**\n\t * Optional title to display in the side panel banner\n\t */\n\tsidePanelTitle?: string;\n\t/**\n\t * Optional flag to control whether to show standard padding in the side panel content area\n\t */\n\tshowStandardPadding?: boolean;\n\t/**\n\t * The main content that is render on the screen regardless if the side panel is\n\t * expanded or collapsed. As the side panel expands, the main content area shall be\n\t * responsive and shink to accomodate it's size\n\t */\n\tchildren: JSX.Element;\n}\n\ninterface WithClosingButton extends BaseSolaceSidePanelLayoutProps {\n\t/**\n\t * Flag to show a close button in the side panel\n\t */\n\tshowClosingButton: true;\n\t/**\n\t * Callback function invoked when the close button is clicked (required when showClosingButton is true)\n\t */\n\tonPanelClose: () => void;\n}\n\ninterface WithoutClosingButton extends BaseSolaceSidePanelLayoutProps {\n\t/**\n\t * Flag to show a close button in the side panel\n\t */\n\tshowClosingButton?: false;\n\t/**\n\t * Callback function invoked when the close button is clicked\n\t */\n\tonPanelClose?: () => void;\n}\n\nexport type SolaceSidePanelLayoutProps = WithClosingButton | WithoutClosingButton;\n\nfunction SolaceSidePanelLayout({\n\tchildren,\n\tsidePanelContent,\n\tshowSidePanel,\n\tsidePanelWidth = \"400px\",\n\tsidePanelPosition = PANEL_POSITION.RIGHT,\n\toverlayContent = false,\n\tshowClosingButton = false,\n\tonPanelClose,\n\tsidePanelTitle,\n\tshowStandardPadding = false\n}: SolaceSidePanelLayoutProps): JSX.Element {\n\tconst theme = useTheme();\n\t// Internal state to control the panel visibility\n\tconst [internalPanelOpen, setInternalPanelOpen] = useState(showSidePanel);\n\t// Sync internal state with external showSidePanel prop when it changes\n\tuseEffect(() => {\n\t\tsetInternalPanelOpen(showSidePanel);\n\t}, [showSidePanel]);\n\n\tconst handleClose = () => {\n\t\tsetInternalPanelOpen(false);\n\t\tif (onPanelClose) {\n\t\t\tonPanelClose();\n\t\t}\n\t};\n\n\treturn (\n\t\t<Box\n\t\t\tsx={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: \"100%\",\n\t\t\t\tposition: \"relative\",\n\t\t\t\toverflow: \"hidden\",\n\t\t\t\t...(sidePanelPosition === PANEL_POSITION.RIGHT && { flexDirection: \"row-reverse\" })\n\t\t\t}}\n\t\t\tid={\"drawer-container\"}\n\t\t>\n\t\t\t<Drawer\n\t\t\t\tsx={{\n\t\t\t\t\twidth: internalPanelOpen ? sidePanelWidth : \"0px\",\n\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\"& .MuiDrawer-paper\": {\n\t\t\t\t\t\twidth: sidePanelWidth,\n\t\t\t\t\t\tboxSizing: \"border-box\"\n\t\t\t\t\t},\n\t\t\t\t\ttransition: \"width 0.25s\"\n\t\t\t\t}}\n\t\t\t\tPaperProps={{ style: { position: \"absolute\" } }}\n\t\t\t\tBackdropProps={{ style: { position: \"absolute\", display: \"none\" } }}\n\t\t\t\tModalProps={{\n\t\t\t\t\tcontainer: document.getElementById(\"drawer-container\"),\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\tleft: sidePanelPosition === PANEL_POSITION.RIGHT ? \"unset\" : 0, // by default MUI puts left and right set to 0 ... want\n\t\t\t\t\t\tright: sidePanelPosition === PANEL_POSITION.LEFT ? \"unset\" : 0 // to pick and choose when to force panel to left or right\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tvariant={overlayContent ? \"temporary\" : \"persistent\"}\n\t\t\t\tanchor={sidePanelPosition}\n\t\t\t\topen={internalPanelOpen}\n\t\t\t>\n\t\t\t\t{/* Banner with title and close button */}\n\t\t\t\t{(showClosingButton || sidePanelTitle) && (\n\t\t\t\t\t<Box\n\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tpaddingY: theme.spacing(2),\n\t\t\t\t\t\t\tpaddingX: theme.spacing(3),\n\t\t\t\t\t\t\tborderBottom: \"1px solid\",\n\t\t\t\t\t\t\tborderBottomColor: theme.palette.ux.secondary.w40\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Title area */}\n\t\t\t\t\t\t<Box sx={{ flex: 1, overflow: \"hidden\" }}>\n\t\t\t\t\t\t\t{sidePanelTitle && (\n\t\t\t\t\t\t\t\t<SolaceTypography variant=\"h1\" component=\"h1\">\n\t\t\t\t\t\t\t\t\t<SolaceTooltip title={sidePanelTitle} variant=\"overflow\">\n\t\t\t\t\t\t\t\t\t\t{sidePanelTitle}\n\t\t\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Box>\n\n\t\t\t\t\t\t{/* Close button */}\n\t\t\t\t\t\t{showClosingButton && (\n\t\t\t\t\t\t\t<Box sx={{ marginLeft: theme.spacing(2) }}>\n\t\t\t\t\t\t\t\t<IconButton onClick={handleClose} title=\"Close\" size=\"small\">\n\t\t\t\t\t\t\t\t\t<CloseIcon size={24} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t{/* Panel content */}\n\t\t\t\t<Box\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\t\t...(showStandardPadding ? { padding: \"24px\" } : {}),\n\t\t\t\t\t\tposition: \"relative\"\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{sidePanelContent}\n\t\t\t\t</Box>\n\t\t\t</Drawer>\n\t\t\t<Main\n\t\t\t\tshowSidePanel={internalPanelOpen}\n\t\t\t\tsidePanelPosition={sidePanelPosition}\n\t\t\t\tsidePanelWidth={sidePanelWidth}\n\t\t\t\toverlayContent={overlayContent}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Main>\n\t\t</Box>\n\t);\n}\nexport default SolaceSidePanelLayout;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n\tBreakpoint,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogContentText,\n\tDialogTitle,\n\tstyled\n} from \"@mui/material\";\nimport { ReactNode } from \"react\";\n\nimport SolaceButton, { SolaceButtonProps } from \"../form/SolaceButton\";\n\nexport type actionProps = Partial<SolaceButtonProps> & { label: string; id?: string };\n\nconst CustomAction = styled(\"div\")(({ theme }) => ({\n\tmarginRight: \"auto\",\n\tpaddingRight: theme.spacing(1)\n}));\n\nconst Footer = styled(\"div\")(({ theme }) => ({\n\tmargin: `${theme.spacing(2)} -${theme.spacing(3)} -${theme.spacing(3)}`\n}));\n\nexport interface SolaceConfirmationDialogProps {\n\ttitle?: string | JSX.Element;\n\tcontentText?: string;\n\tactions?: actionProps[];\n\tcustomAction?: JSX.Element;\n\t/**\n\t * whether to disable the default padding of Dialog and Dialog Title components\n\t * @default false\n\t */\n\tdisableDefaultPadding?: boolean;\n\tisOpen: boolean;\n\t/**\n\t * whether to show an indeterminate linear progress indicator at the bottom border of the dialog\n\t */\n\tlinearProgressIndicator?: boolean;\n\t/**\n\t * To override the display attribute of DialogContent, default: block\n\t * currently supports block, contents, and flex\n\t */\n\tcontentLayout?: \"block\" | \"contents\" | \"flex\";\n\tmaxWidth?: Breakpoint;\n\tchildren?: ReactNode;\n\t/**\n\t * Footer content to be displayed at the bottom of the dialog\n\t */\n\tfooter?: ReactNode;\n}\n\nfunction SolaceConfirmationDialog({\n\ttitle,\n\tcontentText,\n\tactions,\n\tcustomAction,\n\tdisableDefaultPadding = false,\n\tisOpen = false,\n\tmaxWidth = \"dialogMd\",\n\tcontentLayout = \"block\",\n\tlinearProgressIndicator = false,\n\tchildren,\n\tfooter = null\n}: SolaceConfirmationDialogProps): JSX.Element {\n\tconst linearProgressIndicatorClass = linearProgressIndicator ? \"linearProgressIndicator\" : \"\";\n\tconst disablePaddingClass = disableDefaultPadding ? \"disableDefaultPadding\" : \"\";\n\treturn (\n\t\t<Dialog open={isOpen} maxWidth={maxWidth} className={`${linearProgressIndicatorClass} ${disablePaddingClass}`}>\n\t\t\t<DialogTitle>\n\t\t\t\t<div data-qa=\"title\" style={{ wordBreak: \"break-word\" }}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent data-qa=\"content\" sx={{ display: contentLayout }}>\n\t\t\t\t{contentText && <DialogContentText>{contentText}</DialogContentText>}\n\t\t\t\t{children}\n\t\t\t</DialogContent>\n\t\t\t{(customAction || (actions && actions.length > 0)) && (\n\t\t\t\t<DialogActions>\n\t\t\t\t\t{customAction && <CustomAction>{customAction}</CustomAction>}\n\t\t\t\t\t{actions?.map((action) => (\n\t\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\t\tdataQa={action.dataQa}\n\t\t\t\t\t\t\tkey={action.label}\n\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\tvariant={action.variant ?? \"text\"}\n\t\t\t\t\t\t\tisDisabled={action.isDisabled}\n\t\t\t\t\t\t\tendIcon={action.endIcon}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t))}\n\t\t\t\t</DialogActions>\n\t\t\t)}\n\t\t\t{footer && <Footer>{footer}</Footer>}\n\t\t</Dialog>\n\t);\n}\n\nexport default SolaceConfirmationDialog;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\n\nexport const ArrowRightIcon = ({ className = \"\" }): JSX.Element => {\n\treturn (\n\t\t<SvgIcon className={className} width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" data-testid=\"ArrowRightIcon\">\n\t\t\t<path\n\t\t\t\td=\"M9.73,6.117L8.892,7c-0.156,0.156-0.156,0.373,0,0.529l4.443,4.46l-4.443,4.481C8.736,16.627,8.723,16.844,8.879,17\n\tl0.851,0.883c0.156,0.156,0.414,0.156,0.57,0l5.583-5.61c0.156-0.156,0.156-0.41,0-0.567L10.3,6.117\n\tC10.143,5.961,9.886,5.961,9.73,6.117z\"\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { MenuItem, ListItemIcon, Grid, Typography, useTheme, Menu, Divider, ListSubheader } from \"@mui/material\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { ArrowRightIcon } from \"../resources/icons/ArrowRight\";\nimport clsx from \"clsx\";\nimport { groupBy, flatten } from \"lodash\";\n\nexport interface SolaceMenuItemProps extends SolaceComponentProps {\n\tid?: string;\n\t/**\n\t * Name attribute to show as menu item label for default menuItems,for custom menu items JSX.Element type is passed.\n\t */\n\tname: string | JSX.Element;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\tsubText?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\tsupplementalText?: string;\n\t/**\n\t * Adds an Icon to left handside of the menu item label for Supporting visuals and helping differentiate between menu options\n\t */\n\ticon?: JSX.Element | HTMLElement;\n\t/**\n\t * Adds a secondary action (ex. more info icon button) to the right end of menu item\n\t */\n\tsecondaryAction?: JSX.Element | HTMLElement;\n\t/**\n\t * The callback function runs when the user clicks on a menu item\n\t */\n\tonMenuItemClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n\t/**\n\t * callback function on menu close action\n\t */\n\tonMenuClose?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n\t/**\n\t * Adds a divider to the bottom of menuItem\n\t */\n\tdivider?: boolean;\n\t/**\n\t * Boolean flag to disable the menuItem\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Optional attribute to group Menu items and show categoryHeading\n\t */\n\tcategoryHeading?: string;\n\t/**\n\t * Optional flag to close the menu on menuItemClick, the default is set to true.\n\t */\n\tcloseOnSelect?: boolean;\n\t/**\n\t * Optional flag for subMenu items\n\t */\n\tsubMenuItems?: SolaceMenuItemProps[];\n\t/**\n\t * Optional flag for the height of menu items\n\t */\n\titemHeight?: number;\n\t/**\n\t * Optional flag for identify the selected menu item\n\t */\n\tselected?: boolean;\n\t/**\n\t * Content to display in a tooltip when the menuItem is disabled\n\t */\n\tdisabledMenuItemTooltipContent?: string;\n\t/**\n\t * Optional attribute to define the maximum width of submenu popper\n\t */\n\tsubMenuMaxWidth?: number;\n\t/**\n\t * Optional attribute to set the initial directional preference for nested submenus.\n\t * Each submenu level will attempt to open in this direction, but will flip if there's insufficient space.\n\t * This ensures directional consistency across nested levels while preventing off-screen rendering.\n\t * \"left\" or \"right\". If not provided, defaults to \"right\".\n\t */\n\tsubMenuDirection?: \"left\" | \"right\";\n}\n\nconst DEFAULT_MENU_POPOVER_MAX_WIDTH = 335;\n\nconst SolaceMenuItem = ({\n\tid,\n\tname,\n\tsubText,\n\tsupplementalText,\n\ticon,\n\tsecondaryAction,\n\tonMenuItemClick,\n\tonMenuClose,\n\tdivider,\n\tdisabled,\n\tsubMenuItems,\n\tcloseOnSelect,\n\titemHeight,\n\tselected,\n\tsubMenuMaxWidth = DEFAULT_MENU_POPOVER_MAX_WIDTH,\n\tsubMenuDirection = \"right\",\n\tdataQa,\n\tdataTags\n}: SolaceMenuItemProps) => {\n\tconst theme = useTheme();\n\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\tconst [subMenuRef, setSubMenuRef] = useState<null | HTMLElement>(null);\n\tconst [subMenuVisible, setSubMenuVisible] = useState(false);\n\tconst [finalDirection, setFinalDirection] = useState<\"left\" | \"right\">(\"right\");\n\tconst isSubMenuOpen = Boolean(anchorEl);\n\n\tconst handleMenuClose = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n\t\t// don't bubble click event on menu closed by user clicking on any area in the window\n\t\tevent.stopPropagation();\n\t\tsetAnchorEl(null);\n\t\tsetSubMenuVisible(false);\n\t\tsetSubMenuRef(null);\n\n\t\t// close the menu\n\t\tif (onMenuClose) {\n\t\t\tonMenuClose(event);\n\t\t}\n\t};\n\n\tconst handleMouseEnterOnMenuItem = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n\t\tconst element = event.currentTarget;\n\t\tsetAnchorEl(element);\n\t\t// Position calculation will happen in useEffect after submenu is measured\n\t};\n\n\tconst handleClose = () => {\n\t\tsetAnchorEl(null);\n\t\tsetSubMenuVisible(false);\n\t\tsetSubMenuRef(null);\n\t};\n\n\t// Two-phase rendering: measure submenu first, then position and show it\n\tuseEffect(() => {\n\t\tif (subMenuRef && anchorEl) {\n\t\t\t// Get the actual submenu width from the rendered (but invisible) element\n\t\t\tconst subMenuWidth = subMenuRef.offsetWidth;\n\t\t\tconst rect = anchorEl.getBoundingClientRect();\n\t\t\tconst spaceOnRight = window.innerWidth - rect.right;\n\t\t\tconst spaceOnLeft = rect.left;\n\n\t\t\t// Start with the preferred direction, but flip if there's insufficient space\n\t\t\tlet shouldOpenToLeft: boolean;\n\n\t\t\tif (subMenuDirection === \"left\") {\n\t\t\t\t// Prefer left, but flip to right if insufficient space on left\n\t\t\t\tshouldOpenToLeft = spaceOnLeft >= subMenuWidth || spaceOnLeft > spaceOnRight;\n\t\t\t} else {\n\t\t\t\t// Prefer right, but flip to left if insufficient space on right\n\t\t\t\tshouldOpenToLeft = spaceOnRight < subMenuWidth;\n\t\t\t}\n\n\t\t\tsetFinalDirection(shouldOpenToLeft ? \"left\" : \"right\");\n\n\t\t\t// Now make the submenu visible with correct positioning\n\t\t\tsetSubMenuVisible(true);\n\t\t} else if (!anchorEl) {\n\t\t\t// If the anchorEl is null, ensure submenu is hidden\n\t\t\tsetSubMenuVisible(false);\n\t\t\tsetFinalDirection(\"right\");\n\t\t}\n\t}, [subMenuRef, anchorEl, subMenuDirection]);\n\n\t// Render subMenuItems with categoryHeading grouping\n\tconst renderGroupedSubMenuItems = () => {\n\t\tif (!subMenuItems || subMenuItems.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// group subMenuItems based on categoryHeading if provided\n\t\tconst groupedSubMenuItems = groupBy(subMenuItems, (item: SolaceMenuItemProps) => item.categoryHeading);\n\n\t\t// creating subMenuItemsList under each categoryHeading, if no categoryHeading is provided it will be just list of menuItems\n\t\tconst subMenuItemsList = Object.keys(groupedSubMenuItems).map((categoryHeading) => {\n\t\t\tconst list = [];\n\t\t\tconst categoryheader =\n\t\t\t\tcategoryHeading === \"undefined\" ? null : (\n\t\t\t\t\t<ListSubheader className=\"categoryHeader\" key={categoryHeading}>\n\t\t\t\t\t\t{categoryHeading}\n\t\t\t\t\t</ListSubheader>\n\t\t\t\t);\n\t\t\tlist.push(categoryheader);\n\n\t\t\tconst itemsList = groupedSubMenuItems[categoryHeading].map((item, index) => {\n\t\t\t\treturn (\n\t\t\t\t\t<SolaceMenuItem\n\t\t\t\t\t\tid={`${item.name}-${index}`}\n\t\t\t\t\t\tkey={`${item.name}-${index}`}\n\t\t\t\t\t\tname={item.name}\n\t\t\t\t\t\titemHeight={itemHeight ? itemHeight : 38} // default height is 38\n\t\t\t\t\t\tcloseOnSelect={closeOnSelect}\n\t\t\t\t\t\tsubText={item?.subText}\n\t\t\t\t\t\tsupplementalText={item?.supplementalText}\n\t\t\t\t\t\tdivider={!!item?.divider}\n\t\t\t\t\t\tdisabled={!!item?.disabled}\n\t\t\t\t\t\ticon={item?.icon}\n\t\t\t\t\t\tsecondaryAction={item?.secondaryAction}\n\t\t\t\t\t\tonMenuItemClick={item?.onMenuItemClick}\n\t\t\t\t\t\tonMenuClose={handleMenuClose}\n\t\t\t\t\t\tsubMenuItems={item?.subMenuItems}\n\t\t\t\t\t\tsubMenuMaxWidth={item.subMenuMaxWidth ?? subMenuMaxWidth}\n\t\t\t\t\t\tsubMenuDirection={finalDirection}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t});\n\t\t\tlist.push(itemsList);\n\t\t\treturn list;\n\t\t});\n\n\t\treturn flatten(subMenuItemsList);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tid={id}\n\t\t\t\tkey={id}\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tdata-tags={dataTags}\n\t\t\t\tonClick={(e) => {\n\t\t\t\t\t// stop click event on the menu item from being bubbled up to parent, causing unexpected extra click event\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tif (closeOnSelect) {\n\t\t\t\t\t\thandleMenuClose(e);\n\t\t\t\t\t}\n\t\t\t\t\tif (onMenuItemClick) {\n\t\t\t\t\t\tonMenuItemClick(e);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tonMouseEnter={handleMouseEnterOnMenuItem}\n\t\t\t\tonMouseLeave={handleClose}\n\t\t\t\tdisabled={!!disabled}\n\t\t\t\tclassName={clsx({\n\t\t\t\t\tmultiline: !!subText && typeof name === \"string\",\n\t\t\t\t\twideMenu: !!supplementalText && typeof name === \"string\",\n\t\t\t\t\tselectedItem: selected\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{typeof name === \"string\" ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{icon && (\n\t\t\t\t\t\t\t<ListItemIcon className=\"menuItemIcon\" style={{ paddingRight: theme.spacing(1) }}>\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid container direction={\"column\"} justifyContent=\"center\">\n\t\t\t\t\t\t\t<Grid container justifyContent={\"space-between\"} direction={\"row\"} alignItems={\"center\"}>\n\t\t\t\t\t\t\t\t<Typography variant=\"body1\" noWrap>\n\t\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{supplementalText && (\n\t\t\t\t\t\t\t\t\t<Grid className=\"supplementalText\" item>\n\t\t\t\t\t\t\t\t\t\t{supplementalText}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t{subText && (\n\t\t\t\t\t\t\t\t<Grid className=\"subtext\" item>\n\t\t\t\t\t\t\t\t\t<span className=\"subtext\">{subText}</span>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t{secondaryAction && (\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\tsx={{ marginLeft: `${subText ? 0 : theme.spacing(3)}`, width: \"auto\" }}\n\t\t\t\t\t\t\t\tjustifyContent={\"end\"}\n\t\t\t\t\t\t\t\talignItems={\"center\"}\n\t\t\t\t\t\t\t\tclassName=\"menuItemIcon\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{secondaryAction}\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{subMenuItems && subMenuItems.length > 0 && (\n\t\t\t\t\t\t\t<Grid container sx={{ marginLeft: theme.spacing(3), width: \"auto\" }} alignItems={\"center\"}>\n\t\t\t\t\t\t\t\t<ArrowRightIcon />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tname\n\t\t\t\t)}\n\t\t\t\t{subMenuItems && subMenuItems.length > 0 && (\n\t\t\t\t\t<Menu\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tkey={`key-${id}`}\n\t\t\t\t\t\tdata-qa={`${dataQa}-subMenu-${id}`}\n\t\t\t\t\t\tdata-tags={`${dataTags}-subMenu-${id}`}\n\t\t\t\t\t\tanchorEl={anchorEl}\n\t\t\t\t\t\topen={isSubMenuOpen}\n\t\t\t\t\t\tanchorOrigin={{\n\t\t\t\t\t\t\tvertical: \"top\",\n\t\t\t\t\t\t\thorizontal: finalDirection === \"left\" ? \"left\" : \"right\"\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttransformOrigin={{\n\t\t\t\t\t\t\tvertical: \"top\",\n\t\t\t\t\t\t\thorizontal: finalDirection === \"left\" ? \"right\" : \"left\"\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClose={handleMenuClose}\n\t\t\t\t\t\tPaperProps={{\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tmaxHeight: itemHeight ? `${itemHeight * 9.5}px` : `${38 * 9.5}px`, // default height is 38\n\t\t\t\t\t\t\t\tmaxWidth: `${subMenuMaxWidth}px`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tref: (ref: HTMLElement | null) => {\n\t\t\t\t\t\t\t\tsetSubMenuRef(ref);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName=\"SolaceMenu\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tpointerEvents: \"none\", // \"pointerEvents: none\" to prevent invisible Popover wrapper div to capture mouse events\n\t\t\t\t\t\t\topacity: subMenuVisible ? 1 : 0,\n\t\t\t\t\t\t\ttransition: \"opacity 0.1s ease-in-out\"\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* reset pointer event here so that the menu items could receive mouse events, but only when visible */}\n\t\t\t\t\t\t<div style={{ pointerEvents: subMenuVisible ? \"auto\" : \"none\" }}>{renderGroupedSubMenuItems()}</div>\n\t\t\t\t\t</Menu>\n\t\t\t\t)}\n\t\t\t</MenuItem>\n\t\t\t{!!divider && <Divider />}\n\t\t</>\n\t);\n};\n\nexport default SolaceMenuItem;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useState, useEffect, useCallback } from \"react\";\n\n// after attach the hook's onScrollHandler to onScroll event handler of any html element,\n// this custom hook returns mask-image styles and scroll positions in one of following scroll position values: isTop, isBottom or isBetween\nexport function useScrollIndicator() {\n\tconst [scrollTop, setScrollTop] = useState(0);\n\tconst [scrollHeight, setScrollHeight] = useState(0);\n\tconst [offsetHeight, setOffsetHeight] = useState(0);\n\tconst [scrollReset, setScrollReset] = useState(false);\n\n\t// scroll event handler\n\tconst onScrollHandler = useCallback((event: Event) => {\n\t\tsetScrollTop(Math.round((event.target as HTMLElement).scrollTop));\n\t\tsetScrollHeight((event.target as HTMLElement).scrollHeight);\n\t\tsetOffsetHeight((event.target as HTMLElement).offsetHeight);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (scrollReset && scrollTop > 0) {\n\t\t\tsetScrollTop(0);\n\t\t\tsetScrollReset(false);\n\t\t}\n\t}, [scrollReset, scrollTop]);\n\n\t// reset scrollTop, scrollHeight, and clientHeight to 0\n\tconst resetScrollPosition = useCallback(() => {\n\t\tsetScrollReset(true);\n\t\tsetScrollTop(0);\n\t\tsetScrollHeight(0);\n\t\tsetOffsetHeight(0);\n\t}, []);\n\n\t// returns the scroll position in one of following string values: isTop, isBottom or isBetween\n\tconst getScrollPosition = useCallback(() => {\n\t\tconst isBottom = offsetHeight === scrollHeight - scrollTop;\n\t\tconst isTop = scrollTop === 0;\n\t\tconst isBetween = scrollTop > 0 && offsetHeight < scrollHeight - scrollTop;\n\n\t\tlet scrollPosition = \"\";\n\t\tif (isTop) {\n\t\t\tscrollPosition = \"isTop\";\n\t\t} else if (isBetween) {\n\t\t\tscrollPosition = \"isBetween\";\n\t\t} else if (isBottom) {\n\t\t\tscrollPosition = \"isBottom\";\n\t\t}\n\t\treturn scrollPosition;\n\t}, [offsetHeight, scrollHeight, scrollTop]);\n\n\t// returns the maskImage style based on one of following scroll positions: isTop, isBottom or isBetween\n\tconst getMaskImage = useCallback(() => {\n\t\tconst scrollPosition = getScrollPosition();\n\n\t\t// apply fade effect using mask-image\n\t\tconst topFade = \"linear-gradient(to top, black 85%, transparent 100%)\";\n\t\tconst bottomFade = \"linear-gradient(to bottom, black 85%, transparent 100%)\";\n\t\tconst betweenFade = \"linear-gradient(transparent 0%, black 15%, black 85%, transparent 100%)\";\n\n\t\tlet maskImage = \"none\";\n\t\tif (scrollPosition === \"isTop\") {\n\t\t\tmaskImage = bottomFade;\n\t\t} else if (scrollPosition === \"isBetween\") {\n\t\t\tmaskImage = betweenFade;\n\t\t} else if (scrollPosition === \"isBottom\") {\n\t\t\tmaskImage = topFade;\n\t\t}\n\n\t\treturn maskImage;\n\t}, [getScrollPosition]);\n\n\treturn {\n\t\tmaskImage: getMaskImage(),\n\t\tscrollPosition: getScrollPosition(),\n\t\tresetScrollPosition,\n\t\tonScrollHandler\n\t};\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Fragment, useEffect, useMemo, useState } from \"react\";\nimport { Menu, ListSubheader, Popover } from \"@mui/material\";\nimport { groupBy, flatten } from \"lodash\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport SolaceButton, { SolaceButtonProps } from \"./form/SolaceButton\";\nimport SolaceMenuItem, { SolaceMenuItemProps } from \"./SolaceMenuItem\";\nimport { useScrollIndicator } from \"../hooks/useScrollIndicator\";\nimport { getActionMenuAriaLabel } from \"../utils\";\nimport SolaceTooltip from \"./SolaceToolTip\";\n\ninterface SolaceMenuProps extends SolaceComponentProps {\n\tid?: string;\n\t/**\n\t * Attributes to customize menu button\n\t */\n\tbuttonProps: SolaceButtonProps;\n\t/**\n\t * An array of options when using default menu\n\t */\n\titems?: SolaceMenuItemProps[];\n\t/**\n\t * Header of menu when using default menu\n\t */\n\theader?: string;\n\t/**\n\t * optional attribute to change the position of menu popper only for default menu\n\t */\n\tanchorOrigin?: { vertical: \"top\" | \"center\" | \"bottom\"; horizontal: \"left\" | \"center\" | \"right\" };\n\t/**\n\t * optional attribute to change the position of menu popper only for default menu\n\t */\n\ttransformOrigin?: { vertical: \"top\" | \"center\" | \"bottom\"; horizontal: \"left\" | \"center\" | \"right\" };\n\t/**\n\t * optional boolean flag to adjust the maxHeight of menu default is set to false\n\t */\n\tmultiline?: boolean;\n\t/**\n\t * optional attribute to propagate menu button click event to parent\n\t */\n\tpropagateMenuClick?: boolean;\n\t/**\n\t * Optional flag to close the menu on menuItemClick, the default is set to true.\n\t */\n\tcloseOnSelect?: boolean;\n\t/**\n\t * The callback function runs when the user clicks on a menu item\n\t */\n\tonMenuItemClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n\t/**\n\t * optional flag to specify the number of menu items to be displayed, the number is currently default to 9.\n\t * Note: the total number of items exceeding this number will make the list scrollable with fade style applied based on the scroll positions.\n\t */\n\tnumOfMenuItemDisplayed?: number;\n\t/**\n\t * Optional attribute to define the maximum width of menu popper\n\t */\n\tmaxWidth?: number;\n}\n\nconst DEFAULT_NUM_OF_MENUITEM_DISPLAYED = 9;\nconst DEFAULT_MENU_POPOVER_MAX_WIDTH = 335;\n// defined in theme file under .MuiListSubheader-root\nconst HEADING_HEIGHT = 32;\n\nexport default function SolaceMenu(props: SolaceMenuProps): JSX.Element {\n\tconst {\n\t\tid = \"solace-menu\",\n\t\tbuttonProps,\n\t\titems,\n\t\theader,\n\t\tnumOfMenuItemDisplayed = DEFAULT_NUM_OF_MENUITEM_DISPLAYED,\n\t\tmaxWidth = DEFAULT_MENU_POPOVER_MAX_WIDTH,\n\t\tmultiline = false,\n\t\tpropagateMenuClick = false,\n\t\tcloseOnSelect = true,\n\t\tanchorOrigin = { vertical: \"bottom\", horizontal: \"left\" },\n\t\ttransformOrigin = { vertical: \"top\", horizontal: \"left\" },\n\t\tdataQa,\n\t\tdataTags\n\t} = props;\n\n\tconst { maskImage, onScrollHandler, resetScrollPosition } = useScrollIndicator();\n\tconst itemHeight = multiline ? 58 : 38;\n\n\t// states\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\tconst [menuPopoverRef, setMenuPopoverRef] = useState<null | HTMLElement>(null);\n\tconst [pressedButton, setPressedButton] = useState<DOMTokenList>();\n\n\t// handlers\n\tconst handleMenuClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n\t\tsetPressedButton(event.currentTarget.classList);\n\t\tif (!propagateMenuClick) {\n\t\t\t// stop click event on the menu item from being bubble up to parent\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\t// when items is passed down as empty [] this condition makes sure that menu doesn't open with empty paper.\n\t\tif (items?.length) {\n\t\t\tsetAnchorEl(event.currentTarget);\n\t\t}\n\t\t// maintain the pressed state when the menu is open\n\t\tevent.currentTarget.classList.toggle(\"pressed\");\n\t\t// when defined, execute the callback -- caller can check for \"pressed\"\n\t\tif (buttonProps.onClick) {\n\t\t\tbuttonProps.onClick(event);\n\t\t}\n\t};\n\n\tconst handleMenuClose = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n\t\t// remove the pressed state when menu is closed\n\t\tpressedButton?.remove(\"pressed\");\n\t\tsetPressedButton(pressedButton);\n\t\t// don't bubble click event on menu closed by user clicking on any area in the window\n\t\tevent.stopPropagation();\n\t\tsetAnchorEl(null);\n\t\t// reset scroll position onClose\n\t\tresetScrollPosition();\n\t};\n\n\t// group items based on categoryHeading if provided\n\tconst groupedItems = groupBy(items, (item: SolaceMenuItemProps) => item.categoryHeading);\n\n\tconst groupCount = useMemo(() => {\n\t\treturn Object.keys(groupedItems).filter((key) => key !== \"undefined\").length;\n\t}, [groupedItems]);\n\n\t/**\n\t * The maxHeight is calculated based on how many items to be displayed, how many group headings to be displayed, whether there is main header,\n\t * for example, 9 is the default value numOfMenuItemDisplayed, in this case\n\t * maxHeight = itemHeight * 9 + 4.5 (half itemHeight) + 8 (top/bottom padding) + groupHeadingCount * HEADING_HEIGHT + header * HEADING_HEIGHT\n\t * so the bottom stops at exactly 9.5 item position\n\t */\n\tconst maxHeight = useMemo(() => {\n\t\treturn (\n\t\t\titemHeight * numOfMenuItemDisplayed +\n\t\t\titemHeight / 2 +\n\t\t\tgroupCount * HEADING_HEIGHT +\n\t\t\t(header ? 1 : 0) * HEADING_HEIGHT +\n\t\t\t8\n\t\t);\n\t}, [groupCount, header, itemHeight, numOfMenuItemDisplayed]);\n\n\tconst hasMoreItems = useMemo(() => {\n\t\tif (items) {\n\t\t\treturn items.length > numOfMenuItemDisplayed;\n\t\t}\n\n\t\treturn false;\n\t}, [items, numOfMenuItemDisplayed]);\n\n\t// render Menu Items\n\t// creating itemsList under each categoryHeading, if no categoryheadig is provided it will be just list of menuItems\n\tconst menuItemsList = Object.keys(groupedItems).map((categoryHeading) => {\n\t\tconst list = [];\n\t\tconst categoryheader =\n\t\t\tcategoryHeading === \"undefined\" ? null : (\n\t\t\t\t<ListSubheader className=\"categoryHeader\" key={categoryHeading}>\n\t\t\t\t\t{categoryHeading}\n\t\t\t\t</ListSubheader>\n\t\t\t);\n\t\tlist.push(categoryheader);\n\n\t\tconst itemsList = groupedItems[categoryHeading].map((item, index) => {\n\t\t\tconst menuItemContent = (\n\t\t\t\t<SolaceMenuItem\n\t\t\t\t\tid={item.id}\n\t\t\t\t\tkey={index}\n\t\t\t\t\tname={item?.name}\n\t\t\t\t\tsubText={item?.subText}\n\t\t\t\t\tsupplementalText={item?.supplementalText}\n\t\t\t\t\tdataQa={item?.dataQa}\n\t\t\t\t\tdataTags={item?.dataTags}\n\t\t\t\t\tcloseOnSelect={closeOnSelect}\n\t\t\t\t\tdivider={!!item?.divider}\n\t\t\t\t\tdisabled={!!item?.disabled}\n\t\t\t\t\ticon={item?.icon}\n\t\t\t\t\tsecondaryAction={item?.secondaryAction}\n\t\t\t\t\tonMenuItemClick={item?.onMenuItemClick}\n\t\t\t\t\tonMenuClose={handleMenuClose}\n\t\t\t\t\tsubMenuItems={item?.subMenuItems}\n\t\t\t\t\tselected={item?.selected}\n\t\t\t\t\titemHeight={itemHeight}\n\t\t\t\t\tsubMenuMaxWidth={item.subMenuMaxWidth ?? maxWidth}\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tconst disabledMenuItemWithTooltip = (\n\t\t\t\t<SolaceTooltip title={item.disabledMenuItemTooltipContent || \"This menuItem is disabled.\"}>\n\t\t\t\t\t<span>{menuItemContent}</span>\n\t\t\t\t</SolaceTooltip>\n\t\t\t);\n\n\t\t\treturn item.disabled && item.disabledMenuItemTooltipContent ? disabledMenuItemWithTooltip : menuItemContent;\n\t\t});\n\t\tlist.push(itemsList);\n\t\treturn list;\n\t});\n\n\tuseEffect(() => {\n\t\tconst menuElement = menuPopoverRef;\n\t\tmenuElement?.addEventListener(\"scroll\", onScrollHandler);\n\t\treturn () => {\n\t\t\tmenuElement?.removeEventListener(\"scroll\", onScrollHandler);\n\t\t};\n\t}, [menuPopoverRef, onScrollHandler]);\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<SolaceButton aria-label={getActionMenuAriaLabel()} {...buttonProps} onClick={handleMenuClick} />\n\n\t\t\t{/* \n\t\t\t\tPopover is used to sit right underneath of <Menu /> to give the desired box-shadow style after maskImage effect is applied.\n\t\t\t\tThe component has the same width/height, anchor position, transformOrigin & onClose trigger as <Menu />, so to keep the two component synced in style and behaviour.\n\t\t\t*/}\n\t\t\t{hasMoreItems && (\n\t\t\t\t<Popover\n\t\t\t\t\tanchorEl={anchorEl}\n\t\t\t\t\topen={Boolean(anchorEl)}\n\t\t\t\t\tanchorOrigin={anchorOrigin}\n\t\t\t\t\ttransformOrigin={transformOrigin}\n\t\t\t\t\tonClose={handleMenuClose}\n\t\t\t\t\tclassName=\"SolaceMenuPopover\"\n\t\t\t\t\tPaperProps={{\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\twidth: menuPopoverRef?.offsetWidth,\n\t\t\t\t\t\t\theight: menuPopoverRef?.offsetHeight\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\ttransitionDuration={303} // to match the transitionDuration value of <Menu />\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Menu\n\t\t\t\tid={id}\n\t\t\t\tkey={`key-${id}`}\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tdata-tags={dataTags}\n\t\t\t\tanchorEl={anchorEl}\n\t\t\t\topen={Boolean(anchorEl)}\n\t\t\t\tanchorOrigin={anchorOrigin}\n\t\t\t\ttransformOrigin={transformOrigin}\n\t\t\t\tonClose={handleMenuClose}\n\t\t\t\tslotProps={{\n\t\t\t\t\tpaper: {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tmaxHeight: `${maxHeight}px`,\n\t\t\t\t\t\t\tmaskImage: hasMoreItems ? maskImage : \"none\",\n\t\t\t\t\t\t\tWebkitMaskImage: hasMoreItems ? maskImage : \"none\",\n\t\t\t\t\t\t\tmaxWidth: `${maxWidth}px`\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tref: (ref) => {\n\t\t\t\t\t\t\tsetMenuPopoverRef(ref); // ref setter on the Paper component\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonClick: (event) => {\n\t\t\t\t\t\t\t// stop click event on the paper from being bubble up to parent\n\t\t\t\t\t\t\t// clicking on menu item inside the paper should trigger the menu item click event,\n\t\t\t\t\t\t\t// and that onClick handler will also stop the event from being bubble up to parent\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tclassName=\"SolaceMenu\"\n\t\t\t>\n\t\t\t\t{header && <ListSubheader>{header}</ListSubheader>}\n\t\t\t\t{flatten(menuItemsList)}\n\t\t\t</Menu>\n\t\t</Fragment>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InputAdornment, IconButton, TextField, useTheme } from \"@mui/material\";\nimport React from \"react\";\nimport { constants } from \"../../constants\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport FormChildBase from \"./FormChildBase\";\nimport SolaceTooltip from \"../SolaceToolTip\";\nimport { styled } from \"@mui/material\";\nimport { CSSProperties } from \"@mui/styled-engine\";\n\nexport interface SolaceTextFieldChangeEvent {\n\tname: string;\n\tvalue: string;\n}\n\nexport interface SolaceTextFieldProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tvalue?: string | number;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * Short hint displayed in the `input` before user enters a value\n\t */\n\tplaceholder?: string;\n\t/**\n\t * The maximum number of characters which can be typed as the `input` value\n\t */\n\tmaxLength?: number;\n\t/**\n\t * The type of `input` element to render\n\t */\n\ttype?: \"text\" | \"number\" | \"password\" | \"email\" | \"url\";\n\t/**\n\t * The size/width of the `input` measured in characters\n\t */\n\tsize?: number;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * Boolean flag to control whether the `input` element is focused during first mount\n\t */\n\tautoFocus?: boolean;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag to mark the `input` in warn state\n\t */\n\thasWarnings?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to control whether to stack the label on top of the `input` element (false) or place them inline to one another (true)\n\t */\n\tinlineLabel?: boolean;\n\t/**\n\t * Allows custom icon to be set at the beginning/end of the field.\n\t */\n\tcustomIcon?: {\n\t\ticon: React.ReactNode;\n\t\tposition: \"end\" | \"start\";\n\t\thandleClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n\t};\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to set the `input` in a read-only state\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed\n\t */\n\tonChange?: (event: SolaceTextFieldChangeEvent) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` loses focus\n\t */\n\tonBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` receives key down event\n\t */\n\tonKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` receives key up event\n\t */\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` is focused\n\t */\n\tonFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Custom Width of the component.\n\t */\n\twidth?: string;\n\t/**\n\t * If true, the input will take up the full width of its container.\n\t */\n\tfullWidth?: boolean;\n\t/**\n\t * optional prop to pass an array of icon or button at the end of textfield\n\t */\n\tendAdornment?: (React.ReactNode | JSX.Element)[];\n\t/**\n\t * minimum width of the component\n\t */\n\tminWidth?: string;\n\t/**\n\t * pass a ref to the input element.\n\t */\n\tinputRef?: (input: HTMLInputElement) => void;\n}\n\nfunction SolaceTextField({\n\tid,\n\tname,\n\tlabel,\n\tvalue,\n\thelperText,\n\tplaceholder,\n\tmaxLength = constants.maxLength,\n\ttype = \"text\",\n\tsize = 50,\n\ttitle,\n\tautoFocus = false,\n\thasErrors = false,\n\thasWarnings = false,\n\trequired = false,\n\tinlineLabel = false,\n\tcustomIcon,\n\tdisabled = false,\n\treadOnly = false,\n\tonChange,\n\tonBlur,\n\tonKeyDown,\n\tonKeyUp,\n\tonFocus,\n\tdataQa,\n\tdataTags,\n\tfullWidth = false,\n\twidth,\n\tendAdornment,\n\tminWidth,\n\tinputRef\n}: SolaceTextFieldProps): JSX.Element {\n\tconst theme = useTheme();\n\n\tconst endIconProps =\n\t\tcustomIcon && customIcon.position === \"end\" ? (\n\t\t\t<IconButton onClick={customIcon.handleClick}>{customIcon.icon}</IconButton>\n\t\t) : null;\n\n\tconst inputEndAdornment =\n\t\tendIconProps || endAdornment\n\t\t\t? {\n\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t<InputAdornment position=\"end\">\n\t\t\t\t\t\t\t{endAdornment}\n\t\t\t\t\t\t\t{endIconProps}\n\t\t\t\t\t\t</InputAdornment>\n\t\t\t\t\t)\n\t\t\t }\n\t\t\t: {};\n\tconst inputStartAdornment =\n\t\tcustomIcon && customIcon.position === \"start\"\n\t\t\t? {\n\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t<InputAdornment position={customIcon.position}>\n\t\t\t\t\t\t\t<IconButton onClick={customIcon.handleClick}>{customIcon.icon}</IconButton>\n\t\t\t\t\t\t</InputAdornment>\n\t\t\t\t\t)\n\t\t\t }\n\t\t\t: {};\n\n\tconst defaultInputProps = {\n\t\tsx: { height: theme.spacing(4) },\n\t\tdisabled: disabled,\n\t\trequired: required\n\t};\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.value\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getId = () => {\n\t\treturn id ? id : name;\n\t};\n\n\tconst TooltipContainer = styled(\"div\")(({ theme }) => ({\n\t\t...(theme.mixins.formComponent_ReadOnlyToolTipContainer.container as CSSProperties)\n\t}));\n\n\tconst textField = () => {\n\t\t/* read-only behaviour */\n\t\tif (readOnly) {\n\t\t\treturn (\n\t\t\t\t<TooltipContainer>\n\t\t\t\t\t<SolaceTooltip\n\t\t\t\t\t\tvariant=\"overflow\"\n\t\t\t\t\t\ttitle={typeof value !== \"undefined\" && value !== null ? value + \"\" : \"\"}\n\t\t\t\t\t\tdataQa={dataQa}\n\t\t\t\t\t>\n\t\t\t\t\t\t{typeof value !== \"undefined\" && value !== null ? value + \"\" : \"\"}\n\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t</TooltipContainer>\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t<TextField\n\t\t\t\t\tid={`${getId()}`}\n\t\t\t\t\tname={name}\n\t\t\t\t\tinputProps={{\n\t\t\t\t\t\tmaxLength: maxLength,\n\t\t\t\t\t\tsize: size,\n\t\t\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\t\t\"data-tags\": dataTags,\n\t\t\t\t\t\t\"data-testid\": dataQa,\n\t\t\t\t\t\t\"data-lpignore\": true,\n\t\t\t\t\t\treadOnly: readOnly,\n\t\t\t\t\t\t\"aria-describedby\": helperText ? `${getId()}-textfield-helper-text` : \"\",\n\t\t\t\t\t\t\"aria-labelledby\": label ? `${getId()}-label` : \"\",\n\t\t\t\t\t\t\"aria-readonly\": readOnly,\n\t\t\t\t\t\trole: \"textbox\",\n\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\tmin: 0\n\t\t\t\t\t}}\n\t\t\t\t\tinputRef={inputRef}\n\t\t\t\t\ttype={type}\n\t\t\t\t\terror={hasErrors}\n\t\t\t\t\tautoComplete={`dummy-field-${name}`}\n\t\t\t\t\tautoFocus={autoFocus}\n\t\t\t\t\tInputProps={{ ...defaultInputProps, ...inputEndAdornment, ...inputStartAdornment }}\n\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\tonKeyDown={onKeyDown}\n\t\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\t\tonFocus={onFocus}\n\t\t\t\t\tfullWidth={fullWidth}\n\t\t\t\t\tsx={{ minWidth: minWidth }}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<FormChildBase\n\t\t\tid={getId()}\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terrorText={hasErrors ? helperText : undefined}\n\t\t\twarningText={hasWarnings ? helperText : undefined}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\trequired={required}\n\t\t\tinlineLabel={inlineLabel}\n\t\t\tcenterInlineLabel={inlineLabel}\n\t\t\tsx={{ width }}\n\t\t>\n\t\t\t{textField()}\n\t\t</FormChildBase>\n\t);\n}\n\nexport default SolaceTextField;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MenuProps, PopoverOrigin, TextField, useTheme, Collapse } from \"@mui/material\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { SelectDropdownIcon } from \"../../resources/icons/SelectIcons\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport FormChildBase from \"./FormChildBase\";\nimport clsx from \"clsx\";\nexport interface SolaceSelectChangeEvent {\n\tname: string;\n\tvalue: string;\n}\nexport interface SolaceSelectProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tvalue?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to control whether to stack the label on top of the `input` element (false) or place them inline to one another (true)\n\t */\n\tinlineLabel?: boolean;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to set the `input` in a read-only state\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed\n\t */\n\tonChange?: (event: SolaceSelectChangeEvent) => void;\n\t/**\n\t * Callback function to return option display value based on selected option value\n\t */\n\tgetOptionDisplayValue?: (value: unknown) => ReactNode;\n\t/**\n\t * An array of MenuItems to render as the select options\n\t */\n\tchildren: Array<JSX.Element>;\n\t/**\n\t * Custom Width of the component.\n\t */\n\twidth?: string;\n\t/**\n\t * Custom maxHeight of the component.\n\t */\n\tmaxHeight?: string;\n\t/**\n\t * Boolean flag to show the select option that has empty value\n\t */\n\n\tdisplayEmpty?: boolean;\n\t/**\n\t * Boolean flag to show the select options\n\t */\n\topen?: boolean;\n\t/**\n\t * Callback function to trigger whenever the dropdown opens\n\t */\n\tonOpen?: () => void;\n\t/**\n\t * Callback function to trigger whenever the dropdown closes\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Custom anchorOrigin of the menu\n\t */\n\tmenuAnchorOrigin?: PopoverOrigin;\n\t/**\n\t * Custom transformOrigin of the menu\n\t */\n\tmenuTransformOrigin?: PopoverOrigin;\n}\n\nfunction SolaceSelect({\n\tid,\n\tname,\n\tlabel,\n\tvalue = \"\",\n\thelperText,\n\ttitle,\n\thasErrors = false,\n\trequired = false,\n\tdisabled = false,\n\treadOnly = false,\n\tinlineLabel = false,\n\tdisplayEmpty = false,\n\tonChange,\n\tgetOptionDisplayValue,\n\tdataQa,\n\tdataTags,\n\tchildren,\n\twidth,\n\tmaxHeight,\n\topen,\n\tonOpen,\n\tonClose,\n\tmenuAnchorOrigin,\n\tmenuTransformOrigin\n}: SolaceSelectProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetSelectedValue(event.target.value);\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.value\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getId = () => {\n\t\treturn id ? id : name;\n\t};\n\n\tconst getMenuProps = () => {\n\t\tconst menuProps: Partial<MenuProps> = {\n\t\t\tsx: { maxHeight: maxHeight, width: width }\n\t\t};\n\t\tif (menuAnchorOrigin) {\n\t\t\tmenuProps.anchorOrigin = menuAnchorOrigin;\n\t\t}\n\t\tif (menuTransformOrigin) {\n\t\t\tmenuProps.transformOrigin = menuTransformOrigin;\n\t\t}\n\t\treturn menuProps;\n\t};\n\n\tconst select = () => (\n\t\t<TextField\n\t\t\tid={getId()}\n\t\t\tname={name}\n\t\t\tinputProps={{\n\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\"data-tags\": dataTags,\n\t\t\t\t\"aria-describedby\": helperText ? `${getId()}-select-helper-text` : \"\",\n\t\t\t\t\"aria-labelledby\": label ? `${getId()}-label` : \"\",\n\t\t\t\t\"aria-readonly\": readOnly,\n\t\t\t\trole: \"select\",\n\t\t\t\ttitle: title\n\t\t\t}}\n\t\t\tselect\n\t\t\tInputProps={{\n\t\t\t\tsx: { height: theme.spacing(4) },\n\t\t\t\tclassName: clsx({ readOnlySelect: readOnly, emptySelect: !selectedValue }),\n\t\t\t\tdisabled: disabled && !readOnly,\n\t\t\t\treadOnly: readOnly,\n\t\t\t\trequired: required\n\t\t\t}}\n\t\t\ttitle={title}\n\t\t\tautoComplete=\"off\"\n\t\t\trequired={required}\n\t\t\tdisabled={disabled || readOnly}\n\t\t\terror={hasErrors}\n\t\t\tmargin=\"dense\"\n\t\t\tvalue={selectedValue}\n\t\t\tonChange={handleChange}\n\t\t\tSelectProps={{\n\t\t\t\tIconComponent: SelectDropdownIcon,\n\t\t\t\tMenuProps: {\n\t\t\t\t\tTransitionComponent: Collapse,\n\t\t\t\t\t...getMenuProps()\n\t\t\t\t},\n\n\t\t\t\trenderValue: getOptionDisplayValue\n\t\t\t\t\t? (value: unknown) => {\n\t\t\t\t\t\t\treturn getOptionDisplayValue(value);\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t\tdisplayEmpty: displayEmpty,\n\t\t\t\tonOpen: onOpen,\n\t\t\t\tonClose: onClose,\n\t\t\t\topen: open\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TextField>\n\t);\n\n\treturn (\n\t\t<FormChildBase\n\t\t\tid={getId()}\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terrorText={hasErrors ? helperText : undefined}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\trequired={required}\n\t\t\tinlineLabel={inlineLabel}\n\t\t\tcenterInlineLabel={inlineLabel}\n\t\t\tsx={{ width }}\n\t\t>\n\t\t\t{select()}\n\t\t</FormChildBase>\n\t);\n}\n\nexport default SolaceSelect;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { SyntheticEvent, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Box, Autocomplete, TextField, useTheme, styled, Divider, AutocompleteChangeReason } from \"@mui/material\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport FormChildBase from \"./FormChildBase\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { SelectDropdownIcon } from \"../../resources/icons/SelectIcons\";\nimport SolaceTooltip from \"../SolaceToolTip\";\nimport { ErrorIcon } from \"../../resources/icons/ErrorIcon\";\nimport SolaceChip from \"../SolaceChip\";\nimport { STATUSES } from \"../../types/statuses\";\nimport { TooltipVariant } from \"../../types/solaceTooltip\";\n\nexport interface SolaceSelectAutoCompleteProps<T, V> extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Controls the position of the ellipsis when text overflows\n\t * @default 'end'\n\t */\n\ttextEllipsisPosition?: \"start\" | \"middle\" | \"end\";\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The value of the autocomplete\n\t */\n\tvalue?: V | V[];\n\t/**\n\t * Content to display as supportive/explanatory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * The text to display as the input placeholder\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to control whether to stack the label on top of the `input` element (false) or place them inline to one another (true)\n\t */\n\tinlineLabel?: boolean;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to set the `input` in a read-only state\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * allow multiple selection\n\t */\n\tmultiple?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed\n\t */\n\tonChange?: (event: { name: string; value: V | V[] | null }) => void;\n\t/**\n\t * The component type to use for rendering all option instances\n\t */\n\titemComponent: (item: T) => React.ReactNode;\n\t/**\n\t * The mapping callback which will map/translate the original option object to the formatted type required by the itemComponent\n\t */\n\titemMappingCallback: (item: V) => T;\n\t/**\n\t * The callback function which generates the display label for the selected option\n\t */\n\toptionsLabelCallback: (item: T) => string;\n\t/**\n\t * An array of SolaceSelectAutocompleteItems to render as the select options\n\t */\n\toptions: Array<V>;\n\t/**\n\t * Custom renderer for selected values when we have multi-selection\n\t */\n\trenderTags?: (value: V[]) => React.ReactNode;\n\t/**\n\t * The maximum number of tags that will be visible when not focused. Set -1 to disable the limit.\n\t */\n\tlimitTags?: number;\n\t/**\n\t * The label to display when the tags are truncated by limitTags.\n\t */\n\tgetLimitTagsText?: (more: number) => string;\n\t/**\n\t * Fetch updated list of options\n\t */\n\tfetchOptionsCallback: (searchTerm: string) => void;\n\t/**\n\t * The callback to notify container that the select closed (can use this to clear fetched options)\n\t */\n\tonCloseCallback?: () => void;\n\t/**\n\t * Used to determine if the option represents the given value.\n\t */\n\tisOptionEqualToValueCallback?: (option: V, value: V) => boolean;\n\t/**\n\t * Used to determine the disabled state for a given option.\n\t */\n\tgetOptionDisabledCallback?: (option: V) => boolean;\n\t/**\n\t * Whether there should be a divider after the option\n\t */\n\tgetShowOptionDividerCallback?: (option: V) => boolean;\n\t/**\n\t * Used to determin the key for a given option\n\t */\n\tgetOptionKeyCallback?: (option: V) => string;\n\t/**\n\t * The callback function which generates group heading\n\t */\n\tgroupByCallback?: (option: V) => string;\n\t/**\n\t * Whether to clear search input when the option is selected\n\t */\n\tshouldClearSearchOnSelectCallback?: (option: V) => boolean;\n\t/**\n\t * Used to determine if an option has validation error, applicable to multiple select\n\t */\n\tgetOptionValidationErrorCallback?: (option: V) => string | JSX.Element;\n\t/**\n\t * Used to validate search input, applicable to multiple select\n\t */\n\tvalidateInputCallback?: (searchTerm: string) => string | JSX.Element;\n\t/**\n\t * Whether to show divider between group headings\n\t */\n\tshowGroupDivider?: boolean;\n\t/**\n\t * Custom Width of the component.\n\t */\n\twidth?: string;\n\t/**\n\t * for adding a reference to the TextField component\n\t */\n\tinputRef?: (input: HTMLInputElement) => void;\n\t/**\n\t * Boolean flag to open the dropdown on focus\n\t */\n\topenOnFocus?: boolean;\n\t/**\n\t * Boolean flag to disable close on select. It is enabled by default for multiple select\n\t */\n\tdisableCloseOnSelect?: boolean;\n\t/**\n\t * Boolean flag to clear search input on select. It is only applicable to multiple select and is false by default\n\t */\n\tclearSearchOnSelect?: boolean;\n\t/**\n\t * Custom max-height of the expanded dropdown,\n\t * MaxHeight supports standard css units (px,rems, etc.)\n\t */\n\tmaxHeight?: string;\n\t/**\n\t * Boolean flag to make the component full width\n\t */\n\tfullWidth?: boolean;\n\t/**\n\t * Custom min-width of the component\n\t */\n\tminWidth?: string;\n\t/**\n\t * Maximum width of selected value tag rendered by default renderer, applicable to multiple select\n\t */\n\ttagMaxWidth?: string;\n\t/**\n\t * Will display supplementalText or secondaryAction icon (used with SolaceSelectAutocompleteItem) inside input box if present in the selected option, not applicable to multiple select.\n\t */\n\tshowSupplementalTextOrSecondaryAction?: boolean;\n\t/**\n\t * Will display left icon (used with SolaceSelectAutocompleteItem) inside input box if present in the selected option, not applicable to multiple select.\n\t */\n\tshowLeftIcon?: boolean;\n}\n\nconst CustomHeightTextField = styled(TextField)<{\n\ttextEllipsisPosition?: \"start\" | \"middle\" | \"end\";\n\thideInputText?: boolean;\n}>(({ textEllipsisPosition, theme, hideInputText }) => ({\n\t\"& .MuiOutlinedInput-input\": {\n\t\theight: \"32px\",\n\t\t...(textEllipsisPosition === \"start\" && {\n\t\t\tdirection: \"rtl\",\n\t\t\ttextAlign: \"left\"\n\t\t}),\n\t\t...(textEllipsisPosition === \"middle\" && {\n\t\t\t// For middle, we render a custom overlay string. Hide input text when overlay is visible.\n\t\t\tcolor: hideInputText ? \"transparent\" : theme.palette.ux.primary.text.wMain\n\t\t})\n\t},\n\t\"& .MuiOutlinedInput-root.MuiInputBase-adornedEnd\": {\n\t\tpaddingRight: theme.spacing(4)\n\t}\n}));\n\nconst GroupItems = styled(\"ul\")(() => ({\n\tpadding: 0\n}));\n\nconst MenuItemIcon = styled(\"span\")(({ theme }) => ({\n\tcolor: theme.palette.ux.secondary.text.wMain,\n\t// padding: `0 ${theme.spacing(1)}`,\n\twhiteSpace: \"nowrap\",\n\tdisplay: \"flex\",\n\tjustifyContent: \"flex-end\",\n\tclassName: \"menuItemIcon\",\n\t\".MuiSvgIcon-root\": {\n\t\tfill: theme.palette.ux.secondary.wMain\n\t}\n}));\n\nconst DEFAULT_DATA_QA = \"SolaceSelectAutocomplete\";\n\nfunction ErrorChipToolTipContent({ label, error }: { label: string | JSX.Element; error: string | JSX.Element }) {\n\tconst theme = useTheme();\n\treturn (\n\t\t<Box display={\"flex\"} flexDirection={\"column\"} rowGap={theme.spacing(1.5)}>\n\t\t\t<Box style={{ wordBreak: \"break-word\" }}>{label}</Box>\n\t\t\t<Divider />\n\t\t\t<Box display={\"flex\"} alignItems={\"flex-start\"} columnGap={theme.spacing(0.5)}>\n\t\t\t\t<ErrorIcon size={18} fill={theme.palette.ux.error.w100} />\n\t\t\t\t{error}\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n\nfunction SolaceSelectAutocomplete<T, V>({\n\tid,\n\tname,\n\tlabel,\n\tvalue,\n\thelperText,\n\ttitle,\n\tplaceholder,\n\thasErrors = false,\n\trequired = false,\n\tinlineLabel = false,\n\tdisabled = false,\n\treadOnly = false,\n\tmultiple = false,\n\tonChange,\n\titemComponent,\n\titemMappingCallback,\n\toptionsLabelCallback,\n\tgetShowOptionDividerCallback,\n\tshouldClearSearchOnSelectCallback,\n\tgroupByCallback,\n\tshowGroupDivider = false,\n\tdataQa,\n\tdataTags,\n\toptions,\n\trenderTags,\n\tlimitTags,\n\tgetLimitTagsText,\n\tfetchOptionsCallback,\n\tonCloseCallback,\n\tisOptionEqualToValueCallback,\n\tgetOptionDisabledCallback,\n\tgetOptionKeyCallback,\n\tgetOptionValidationErrorCallback,\n\tvalidateInputCallback,\n\twidth,\n\tinputRef,\n\topenOnFocus = false,\n\tdisableCloseOnSelect,\n\tclearSearchOnSelect = false,\n\tmaxHeight = \"40vh\", // default value set by MUI so that dropdown calculation can work if value is omited\n\tfullWidth = false,\n\tminWidth,\n\ttagMaxWidth = \"200px\",\n\tshowSupplementalTextOrSecondaryAction = false,\n\tshowLeftIcon = false,\n\ttextEllipsisPosition = \"end\"\n}: SolaceSelectAutoCompleteProps<T, V>): JSX.Element {\n\tconst theme = useTheme();\n\tconst [selectedValue, setSelectedValue] = useState(value || null);\n\tconst [inputValue, setInputValue] = useState(\"\");\n\tconst [inputValidationError, setInputValidationError] = useState<string | JSX.Element | null>(null);\n\tconst [filteredOptions, setFilteredOptions] = useState(options || []);\n\tconst [loading, setLoading] = useState(false);\n\tconst [isFetching, setIsFetching] = useState(false);\n\tconst [open, setOpen] = useState(false);\n\tconst [hasFocus, setHasFocus] = useState(false);\n\tconst [resetOptions, setResetOptions] = useState(false);\n\tconst currentInputValue = useRef<string>(\"\");\n\tconst dropdownRef = useRef<HTMLUListElement | null>(null);\n\tconst [dropdownRefState, setDropdownRefState] = useState<HTMLUListElement | null>(null);\n\tconst textFieldRootRef = useRef<HTMLDivElement | null>(null);\n\tconst inputElementRef = useRef<HTMLInputElement | null>(null);\n\tconst canvasRef = useRef<HTMLCanvasElement | null>(null);\n\tconst [overlayLeft, setOverlayLeft] = useState<number>(0);\n\tconst [overlayRight, setOverlayRight] = useState<number>(0);\n\tconst [middleEllipsisText, setMiddleEllipsisText] = useState<string>(\"\");\n\n\tconst persistInputValueOnSelect = useMemo(() => {\n\t\treturn multiple && !clearSearchOnSelect;\n\t}, [clearSearchOnSelect, multiple]);\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value || null);\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetLoading(open && isFetching);\n\t}, [open, isFetching]);\n\n\tuseEffect(() => {\n\t\tif (inputValue.length > 0) {\n\t\t\tsetFilteredOptions([]);\n\t\t\tif (multiple) {\n\t\t\t\tif (!validateInputCallback?.(inputValue)) {\n\t\t\t\t\tsetIsFetching(true);\n\t\t\t\t\tfetchOptionsCallback(inputValue);\n\t\t\t\t} else {\n\t\t\t\t\tsetIsFetching(false);\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetIsFetching(true);\n\t\t\t\tfetchOptionsCallback(inputValue);\n\t\t\t}\n\t\t}\n\t}, [inputValue, fetchOptionsCallback, validateInputCallback, multiple]);\n\n\tuseEffect(() => {\n\t\tsetFilteredOptions(options);\n\t\tsetIsFetching(false);\n\t}, [options]);\n\n\tuseEffect(() => {\n\t\tif (resetOptions) {\n\t\t\tsetIsFetching(true);\n\t\t\tfetchOptionsCallback(\"\");\n\t\t\tsetResetOptions(false);\n\t\t}\n\t}, [fetchOptionsCallback, resetOptions]);\n\n\tconst HEADING_HEIGHT = 32;\n\n\tconst setDropdownRef = useCallback((node: HTMLUListElement | null) => {\n\t\tif (!node) return;\n\n\t\t// Set the dropdown reference to get the height properties of the dropdown\n\t\tdropdownRef.current = node;\n\t\tsetDropdownRefState(node);\n\t}, []);\n\n\tconst calculateItemHeight = useCallback((option: V) => {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\treturn (option as any).subText ? 58 : 38;\n\t}, []);\n\n\tconst shouldBreakLoop = useCallback(\n\t\t(dropdownHeight: number, itemHeight: number, groupCount: number, maxHeight: number) => {\n\t\t\treturn dropdownHeight + itemHeight + groupCount * HEADING_HEIGHT + 16 >= maxHeight; // 16 is total padding of the dropdown\n\t\t},\n\t\t[]\n\t);\n\n\tconst updateGroupCount = useCallback(\n\t\t(option: V, prevCategoryGroup: string) => {\n\t\t\treturn !!(groupByCallback && groupByCallback(option) !== prevCategoryGroup);\n\t\t},\n\t\t[groupByCallback]\n\t);\n\n\tconst updatePrevCategoryGroup = useCallback(\n\t\t(option: V) => {\n\t\t\tif (option && groupByCallback) {\n\t\t\t\treturn groupByCallback(option);\n\t\t\t}\n\t\t\treturn \"\";\n\t\t},\n\t\t[groupByCallback]\n\t);\n\n\tconst convertToPixels = (value: string): number | string | null => {\n\t\tconst units = value.match(/[\\d.]+|\\D+/g);\n\t\tif (dropdownRef.current) {\n\t\t\tconst currentDropdownRef = dropdownRef.current;\n\n\t\t\tif (!units || units.length < 2) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tconst [number, unit] = units;\n\t\t\tconst num = parseFloat(number);\n\n\t\t\tif (isNaN(num)) return null;\n\n\t\t\tswitch (unit) {\n\t\t\t\tcase \"px\":\n\t\t\t\t\treturn num;\n\t\t\t\tcase \"em\":\n\t\t\t\t\treturn currentDropdownRef ? num * parseFloat(getComputedStyle(currentDropdownRef).fontSize) : null;\n\t\t\t\tcase \"rem\":\n\t\t\t\t\treturn num * parseFloat(getComputedStyle(document.documentElement).fontSize);\n\t\t\t\tcase \"%\":\n\t\t\t\t\treturn currentDropdownRef ? (num * currentDropdownRef.clientHeight) / 100 : null;\n\t\t\t\tcase \"vh\":\n\t\t\t\t\treturn (num * window.innerHeight) / 100;\n\t\t\t\tcase \"vw\":\n\t\t\t\t\treturn (num * window.innerWidth) / 100;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t};\n\n\t/**\n\t * The `maxDropdownHeight` is calculated by iterating through the options and summing their heights\n\t * until the total height exceeds the specified `maxHeight`. It then takes the last element's difference\n\t * from the `maxHeight` and divides it by 2 to cut the last visible element. If the initial `maxHeight` is\n\t * larger than the scroll height of the dropdown, it will exit the function as the last element does not\n\t * need to be trimmed.\n\t *\n\t * Function will account for keyword values passed into `maxHeight` ex: fit-content, none, etc. and will return\n\t * the value as is\n\t */\n\n\t// eslint-disable-next-line sonarjs/cognitive-complexity\n\tconst maxDropdownHeight = useMemo(() => {\n\t\tlet dropdownHeight = 0;\n\t\tlet itemHeight = 0;\n\t\tlet prevItemHeight = 0;\n\t\tlet groupCount = 0;\n\t\tlet prevCategoryGroup = \"\";\n\t\tlet lastElementDifference = 0;\n\n\t\tif (!dropdownRefState) return;\n\n\t\tconst maxHeightInPixels = convertToPixels(maxHeight);\n\n\t\tif (typeof maxHeightInPixels === \"string\") return maxHeightInPixels;\n\t\tif (!maxHeightInPixels || maxHeightInPixels <= 58 || maxHeightInPixels >= dropdownRefState.scrollHeight) return;\n\n\t\tfor (let i = 0; i < filteredOptions.length; i++) {\n\t\t\tconst option = filteredOptions[i];\n\t\t\titemHeight = calculateItemHeight(option);\n\n\t\t\t// Check if adding the next item would exceed the max height and calculate the last element difference\n\t\t\tif (shouldBreakLoop(dropdownHeight, itemHeight, groupCount, maxHeightInPixels)) {\n\t\t\t\tlastElementDifference = maxHeightInPixels - dropdownHeight;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (typeof option === \"object\") {\n\t\t\t\t// Check if the current option belongs to a new category group and update the group count\n\t\t\t\tif (updateGroupCount(option, prevCategoryGroup)) {\n\t\t\t\t\tgroupCount++;\n\t\t\t\t\t// Check if adding a new group would exceed the max height and calculate the last element difference\n\t\t\t\t\tif (prevItemHeight && shouldBreakLoop(dropdownHeight, itemHeight, groupCount, maxHeightInPixels)) {\n\t\t\t\t\t\tlastElementDifference = maxHeightInPixels - dropdownHeight;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprevCategoryGroup = updatePrevCategoryGroup(option);\n\t\t\t}\n\n\t\t\tdropdownHeight += itemHeight;\n\t\t\tprevItemHeight = itemHeight;\n\t\t}\n\n\t\treturn prevItemHeight / 2 + lastElementDifference - 8 - (groupCount === 0 ? 0 : groupCount * 32); // 8 is the padding of the dropdown, groupcount calcuations is added since the group headings have a diffenet height than the normal items\n\t}, [\n\t\tcalculateItemHeight,\n\t\tdropdownRefState,\n\t\tfilteredOptions,\n\t\tmaxHeight,\n\t\tshouldBreakLoop,\n\t\tupdateGroupCount,\n\t\tupdatePrevCategoryGroup\n\t]);\n\n\tconst handleChange = (\n\t\t_event: SyntheticEvent<Element, Event>,\n\t\t_value: V | V[] | null,\n\t\treason: AutocompleteChangeReason\n\t) => {\n\t\tif (reason === \"clear\" && persistInputValueOnSelect && inputValue) {\n\t\t\t// If search input needs to be peristed after user select/deselect an option, then clicking on \"X\" button should clear search input first and then clear selected values\n\t\t\treturn;\n\t\t}\n\n\t\t// Set internal state for selected value\n\t\tsetSelectedValue(_value || null);\n\n\t\t// Notify externally\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: _value\n\t\t\t});\n\t\t}\n\n\t\t// Clear search input if needed. Since onChange is called before this, we can assume parent of this component has updated data used to populate the options\n\t\tif (reason === \"selectOption\" && persistInputValueOnSelect && _value && shouldClearSearchOnSelectCallback) {\n\t\t\tconst shouldClear =\n\t\t\t\t(Array.isArray(_value) && _value.some((option) => shouldClearSearchOnSelectCallback(option))) ||\n\t\t\t\tshouldClearSearchOnSelectCallback(_value as V);\n\t\t\tif (shouldClear) {\n\t\t\t\tsetInputValue(\"\");\n\t\t\t\tsetResetOptions(true);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleInputChange = (_event: SyntheticEvent<Element, Event>, newInputValue: string, reason: string) => {\n\t\t// Clear search input when user selects an option is built-in behavior from MUI's Autocomplete. This logic is to prevent that behavior.\n\t\t// - NOTE: selectOption, removeOption are only supported in MUI 6.x, they are included here so that the logic is future-proof.\n\t\tif (\n\t\t\tpersistInputValueOnSelect &&\n\t\t\t(reason === \"reset\" || reason === \"selectOption\" || reason === \"removeOption\") &&\n\t\t\tcurrentInputValue.current\n\t\t) {\n\t\t\t// Manually set inputValue to currentInputValue to keep inputValue state in this component in sync with with underlying Autocomplete component\n\t\t\tsetInputValue(currentInputValue.current);\n\t\t} else {\n\t\t\tcurrentInputValue.current = newInputValue;\n\t\t\tsetInputValue(newInputValue);\n\t\t\tif (newInputValue === \"\") {\n\t\t\t\tsetInputValidationError(null);\n\t\t\t\t// Reset options when inputValue is empty\n\t\t\t\tsetResetOptions(true);\n\t\t\t} else if (!disabled && !readOnly && multiple) {\n\t\t\t\tconst validationError = validateInputCallback?.(newInputValue);\n\n\t\t\t\tsetInputValidationError(validationError ?? null);\n\t\t\t\tif (validationError) {\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t} else {\n\t\t\t\t\tsetOpen(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleOpen = () => {\n\t\tsetOpen(true);\n\t\tif (!multiple || !inputValue) {\n\t\t\tsetResetOptions(true);\n\t\t}\n\t};\n\n\tconst handleClose = () => {\n\t\tonCloseCallback && onCloseCallback(); // notify parent select closed\n\t\tif (persistInputValueOnSelect) {\n\t\t\tsetInputValue(\"\");\n\t\t\tsetInputValidationError(null);\n\t\t}\n\t\tsetOpen(false);\n\t\tsetHasFocus(false);\n\t};\n\n\tconst handleBlur = () => {\n\t\tsetInputValue(\"\");\n\t\tsetInputValidationError(null);\n\t\tsetHasFocus(false);\n\t};\n\n\tconst handleDeleteChip = (index: number) => {\n\t\tconst newValue = (selectedValue as V[]).slice();\n\t\tnewValue.splice(index, 1);\n\n\t\tsetSelectedValue(newValue);\n\n\t\t// Notify externally\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: newValue\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getId = () => {\n\t\treturn id ? id : name;\n\t};\n\n\tconst setCombinedInputRef = (el: HTMLInputElement) => {\n\t\tinputElementRef.current = el;\n\t\tif (inputRef) {\n\t\t\tinputRef(el);\n\t\t}\n\t};\n\n\t// Compute overlay bounds matching the input element inside TextField\n\tconst recomputeOverlayBounds = useCallback(() => {\n\t\tconst root = textFieldRootRef.current;\n\t\tconst input = inputElementRef.current;\n\t\tif (!root || !input) return;\n\t\tconst rootRect = root.getBoundingClientRect();\n\t\tconst inputRect = input.getBoundingClientRect();\n\t\tconst left = Math.max(0, inputRect.left - rootRect.left);\n\t\tconst right = Math.max(0, rootRect.right - inputRect.right);\n\t\tsetOverlayLeft(left);\n\t\tsetOverlayRight(right);\n\t}, []);\n\n\t// Middle ellipsis measurement using canvas\n\tconst computeMiddleEllipsis = useCallback((text: string) => {\n\t\tconst input = inputElementRef.current;\n\t\tif (!input) return text;\n\t\tconst style = getComputedStyle(input);\n\t\tconst font = `${style.fontStyle} ${style.fontVariant} ${style.fontWeight} ${style.fontSize}/${style.lineHeight} ${style.fontFamily}`;\n\n\t\tif (!canvasRef.current) {\n\t\t\tcanvasRef.current = document.createElement(\"canvas\");\n\t\t}\n\t\tconst canvas = canvasRef.current;\n\t\tconst ctx = canvas.getContext(\"2d\");\n\n\t\tif (!ctx) return text;\n\t\tctx.font = font;\n\t\tconst available = input.clientWidth; // width inside paddings\n\t\tconst ellipsis = \"...\";\n\t\tconst fullWidth = ctx.measureText(text).width;\n\t\tif (fullWidth <= available) return text;\n\t\tlet start = 0;\n\t\tlet end = text.length - 1;\n\t\t// Binary reduction: keep adding chars to both sides until exceeds available\n\t\tlet left = \"\";\n\t\tlet right = \"\";\n\t\t// Heuristic: aim to keep roughly half/half around ellipsis\n\t\twhile (start <= end) {\n\t\t\tconst nextLeft = left + text[start];\n\t\t\tconst nextRight = text[end] + right;\n\t\t\t// try add both if possible\n\t\t\tconst wBoth = ctx.measureText(nextLeft + ellipsis + nextRight).width;\n\t\t\tif (wBoth + 1 <= available) {\n\t\t\t\tleft = nextLeft;\n\t\t\t\tright = nextRight;\n\t\t\t\tstart++;\n\t\t\t\tend--;\n\t\t\t} else {\n\t\t\t\t// try adding only one side (prefer balancing)\n\t\t\t\tconst wLeftOnly = ctx.measureText(nextLeft + ellipsis + right).width;\n\t\t\t\tconst wRightOnly = ctx.measureText(left + ellipsis + nextRight).width;\n\t\t\t\tif (wLeftOnly <= available && wLeftOnly >= wRightOnly) {\n\t\t\t\t\tleft = nextLeft;\n\t\t\t\t\tstart++;\n\t\t\t\t} else if (wRightOnly <= available) {\n\t\t\t\t\tright = nextRight;\n\t\t\t\t\tend--;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn left + ellipsis + right;\n\t}, []);\n\n\tconst refreshMiddleEllipsis = useCallback(() => {\n\t\tif (multiple || textEllipsisPosition !== \"middle\") return;\n\t\tconst selectedOption = selectedValue && !Array.isArray(selectedValue) ? selectedValue : null;\n\t\tconst label = selectedOption ? optionsLabelCallback(itemMappingCallback(selectedOption)) : \"\";\n\t\tif (!label) {\n\t\t\tsetMiddleEllipsisText(\"\");\n\t\t\treturn;\n\t\t}\n\t\t// Only show middle ellipsis when not active (not focused and dropdown closed)\n\t\tconst isActive = open || hasFocus;\n\t\tif (isActive) {\n\t\t\tsetMiddleEllipsisText(\"\");\n\t\t} else {\n\t\t\tsetMiddleEllipsisText(computeMiddleEllipsis(label));\n\t\t}\n\t}, [\n\t\tcomputeMiddleEllipsis,\n\t\thasFocus,\n\t\titemMappingCallback,\n\t\tmultiple,\n\t\topen,\n\t\toptionsLabelCallback,\n\t\tselectedValue,\n\t\ttextEllipsisPosition\n\t]);\n\n\tuseEffect(() => {\n\t\trecomputeOverlayBounds();\n\t\trefreshMiddleEllipsis();\n\t\tconst RO = (window as unknown as { ResizeObserver?: typeof ResizeObserver }).ResizeObserver;\n\t\tconst ro = RO\n\t\t\t? new RO(() => {\n\t\t\t\t\trecomputeOverlayBounds();\n\t\t\t\t\trefreshMiddleEllipsis();\n\t\t\t })\n\t\t\t: undefined;\n\t\tif (textFieldRootRef.current && ro) ro.observe(textFieldRootRef.current);\n\t\treturn () => {\n\t\t\tro?.disconnect();\n\t\t\tcanvasRef.current = null;\n\t\t};\n\t}, [recomputeOverlayBounds, refreshMiddleEllipsis]);\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst renderGroup = (params: any) => {\n\t\tif (groupByCallback && showGroupDivider) {\n\t\t\treturn (\n\t\t\t\t<li key={params.key}>\n\t\t\t\t\t{(params.key !== 0 || params.group) && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{params.key !== 0 && <Divider />}\n\t\t\t\t\t\t\t{params.group && <div className=\"MuiAutocomplete-groupLabel\">{params.group}</div>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{params.children && <GroupItems>{params.children}</GroupItems>}\n\t\t\t\t</li>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst getErrorMessage = (label: string | JSX.Element, error: string | JSX.Element) => {\n\t\treturn (\n\t\t\t<SolaceTooltip\n\t\t\t\tvariant={TooltipVariant.rich}\n\t\t\t\ttitle={<ErrorChipToolTipContent label={label} error={error} />}\n\t\t\t\tplacement={\"bottom-start\"}\n\t\t\t>\n\t\t\t\t<span>{label}</span>\n\t\t\t</SolaceTooltip>\n\t\t);\n\t};\n\n\tconst getMessage = (label: string | JSX.Element) => {\n\t\treturn (\n\t\t\t<SolaceTooltip variant={TooltipVariant.overflow} title={label} placement={\"bottom-start\"}>\n\t\t\t\t{label}\n\t\t\t</SolaceTooltip>\n\t\t);\n\t};\n\n\tconst renderMultiSelectedTags = (tagValue: V[]) => {\n\t\treturn tagValue.map((option, index) => {\n\t\t\tconst label = optionsLabelCallback(itemMappingCallback(option));\n\t\t\tconst error = getOptionValidationErrorCallback?.(option) ?? null;\n\n\t\t\treturn (\n\t\t\t\t<SolaceChip\n\t\t\t\t\tkey={`${dataQa ?? DEFAULT_DATA_QA}-${index}`}\n\t\t\t\t\tlabel={\n\t\t\t\t\t\t<div style={{ overflow: \"hidden\", whiteSpace: \"nowrap\", textOverflow: \"ellipsis\" }}>\n\t\t\t\t\t\t\t{error ? getErrorMessage(label, error) : getMessage(label)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\tclickable={!readOnly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonDelete={() => handleDeleteChip(index)}\n\t\t\t\t\tdataQa={`${dataQa ?? DEFAULT_DATA_QA}-${index}`}\n\t\t\t\t\tstatus={error ? STATUSES.ERROR_STATUS : STATUSES.NO_STATUS}\n\t\t\t\t\tmaxWidth={tagMaxWidth === null ? undefined : tagMaxWidth}\n\t\t\t\t></SolaceChip>\n\t\t\t);\n\t\t});\n\t};\n\n\t// eslint-disable-next-line sonarjs/cognitive-complexity\n\tconst select = () => (\n\t\t<Autocomplete\n\t\t\tListboxProps={{\n\t\t\t\tstyle: {\n\t\t\t\t\tmaxHeight:\n\t\t\t\t\t\ttypeof maxDropdownHeight === \"string\"\n\t\t\t\t\t\t\t? maxDropdownHeight\n\t\t\t\t\t\t\t: `calc(${maxHeight} - ${maxDropdownHeight ? maxDropdownHeight + \"px\" : \"0px\"})` // if maxDropdownHeight a string type then a keyword value was passed into maxHeight ex: fit-content, none, etc.\n\t\t\t\t},\n\t\t\t\tref: setDropdownRef\n\t\t\t}}\n\t\t\tid={getId()}\n\t\t\tdata-qa={dataQa ?? DEFAULT_DATA_QA}\n\t\t\tfilterOptions={(x) => x}\n\t\t\tonInputChange={handleInputChange}\n\t\t\toptions={filteredOptions}\n\t\t\tautoHighlight={true} // auto highlight first option\n\t\t\tvalue={selectedValue}\n\t\t\tinputValue={inputValue} // Use controlled input value\n\t\t\tgetOptionLabel={(option) => {\n\t\t\t\tconst mappedOption = itemMappingCallback(option);\n\t\t\t\treturn optionsLabelCallback(mappedOption);\n\t\t\t}}\n\t\t\trenderOption={(props, option) => {\n\t\t\t\tif (option) {\n\t\t\t\t\tconst mappedOption = itemMappingCallback(option);\n\t\t\t\t\tconst showDivider = getShowOptionDividerCallback?.(option) ?? false;\n\t\t\t\t\tconst defaultKey = optionsLabelCallback(itemMappingCallback(option));\n\t\t\t\t\tconst optionKey = getOptionKeyCallback?.(option) ?? defaultKey;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tcomponent=\"li\"\n\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\tkey={optionKey}\n\t\t\t\t\t\t\tstyle={{ borderBottom: showDivider ? `1px solid ${theme.palette.ux.secondary.w20}` : \"none\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{itemComponent(mappedOption)}\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}}\n\t\t\tdisabled={disabled || readOnly}\n\t\t\tloading={loading}\n\t\t\topen={open}\n\t\t\tmultiple={multiple}\n\t\t\tdisableCloseOnSelect={disableCloseOnSelect ?? multiple}\n\t\t\tonClose={handleClose}\n\t\t\topenOnFocus={openOnFocus}\n\t\t\tonOpen={handleOpen}\n\t\t\tonChange={handleChange}\n\t\t\tonBlur={handleBlur}\n\t\t\tpopupIcon={<SelectDropdownIcon />}\n\t\t\trenderInput={(params) => {\n\t\t\t\tconst { InputProps, inputProps, ...rest } = params;\n\t\t\t\tconst selectedOption = selectedValue && !Array.isArray(selectedValue) ? selectedValue : null;\n\t\t\t\tconst supplementalText = selectedOption\n\t\t\t\t\t? (selectedOption as V & { supplementalText?: string }).supplementalText\n\t\t\t\t\t: null;\n\t\t\t\tconst secondaryAction = selectedOption\n\t\t\t\t\t? (selectedOption as V & { secondaryAction?: JSX.Element | HTMLElement }).secondaryAction\n\t\t\t\t\t: null;\n\t\t\t\tconst leftIcon = selectedOption ? (selectedOption as V & { icon?: JSX.Element | HTMLElement }).icon : null;\n\t\t\t\tconst isActive = open || hasFocus;\n\n\t\t\t\treturn (\n\t\t\t\t\t<Box sx={{ position: \"relative\" }} ref={textFieldRootRef}>\n\t\t\t\t\t\t<CustomHeightTextField\n\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\ttextEllipsisPosition={textEllipsisPosition}\n\t\t\t\t\t\t\thideInputText={!isActive && textEllipsisPosition === \"middle\"}\n\t\t\t\t\t\t\ttitle={title}\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\terror={!!inputValidationError || hasErrors}\n\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t...inputProps,\n\t\t\t\t\t\t\t\t\"data-qa\": `${dataQa ?? DEFAULT_DATA_QA}-input`,\n\t\t\t\t\t\t\t\t\"data-tags\": dataTags,\n\t\t\t\t\t\t\t\t\"aria-describedby\": helperText ? `${getId()}-select-helper-text` : \"\",\n\t\t\t\t\t\t\t\t\"aria-labelledby\": label ? `${getId()}-label` : \"\",\n\t\t\t\t\t\t\t\t\"aria-readonly\": readOnly,\n\t\t\t\t\t\t\t\ttitle: title\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t...InputProps,\n\t\t\t\t\t\t\t\tsx: { height: theme.spacing(4) },\n\t\t\t\t\t\t\t\tclassName: readOnly ? \"readOnlySelect\" : \"\",\n\t\t\t\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\t\t\t\treadOnly: readOnly,\n\t\t\t\t\t\t\t\trequired: required,\n\t\t\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{InputProps.startAdornment}\n\t\t\t\t\t\t\t\t\t\t{showLeftIcon && leftIcon && (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItemIcon sx={{ padding: theme.spacing(0, 1, 0, 0) }}>{leftIcon}</MenuItemIcon>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{InputProps.endAdornment}\n\t\t\t\t\t\t\t\t\t\t{showSupplementalTextOrSecondaryAction && supplementalText && (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItemIcon sx={{ padding: theme.spacing(0, 1) }}>{supplementalText}</MenuItemIcon>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{showSupplementalTextOrSecondaryAction && secondaryAction && (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItemIcon sx={{ padding: theme.spacing(0, 1) }}>{secondaryAction}</MenuItemIcon>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tinputRef={setCombinedInputRef}\n\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\t// prevent multi-selected values from being deleted when user presses backspace or delete key\n\t\t\t\t\t\t\t\tif (event.key === \"Backspace\" || event.key === \"Delete\") {\n\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{!multiple && textEllipsisPosition === \"middle\" && middleEllipsisText && !isActive && (\n\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\tpointerEvents: \"none\",\n\t\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\t\tleft: `${overlayLeft}px`,\n\t\t\t\t\t\t\t\t\tright: `${overlayRight}px`,\n\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t\t\t\t\t\tcolor: theme.palette.ux.primary.text.wMain,\n\t\t\t\t\t\t\t\t\tpadding: 0\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{middleEllipsisText}\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t);\n\t\t\t}}\n\t\t\tisOptionEqualToValue={isOptionEqualToValueCallback}\n\t\t\tgetOptionDisabled={getOptionDisabledCallback}\n\t\t\trenderTags={renderTags ? renderTags : renderMultiSelectedTags}\n\t\t\tlimitTags={limitTags}\n\t\t\tgetLimitTagsText={getLimitTagsText}\n\t\t\tChipProps={{\n\t\t\t\tdeleteIcon: <CloseIcon />\n\t\t\t}}\n\t\t\tgroupBy={groupByCallback}\n\t\t\trenderGroup={groupByCallback && showGroupDivider ? renderGroup : undefined}\n\t\t\tfullWidth={fullWidth}\n\t\t\tsx={{ minWidth: minWidth }}\n\t\t\tclearText={persistInputValueOnSelect && inputValue ? \"Clear Search\" : \"Clear\"}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<FormChildBase\n\t\t\tid={getId()}\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terrorText={inputValidationError ? inputValidationError : hasErrors ? helperText : undefined}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\trequired={required}\n\t\t\tinlineLabel={inlineLabel}\n\t\t\tcenterInlineLabel={inlineLabel}\n\t\t\tsx={{ width }}\n\t\t>\n\t\t\t{select()}\n\t\t</FormChildBase>\n\t);\n}\n\nexport default SolaceSelectAutocomplete;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Grid, ListItemIcon } from \"@mui/material\";\nimport clsx from \"clsx\";\nexport interface SolaceSelectAutocompleteItemProps {\n\t/**\n\t * Name attribute to show as menu item label.\n\t */\n\tname: string;\n\t/**\n\t * The value of the current autocomplete item, must have reference equality with the option value in order to be selected.\n\t */\n\tvalue: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\tsubText?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\tsupplementalText?: string;\n\t/**\n\t * Adds a divider to the bottom of menuItem\n\t */\n\tdivider?: boolean;\n\t/**\n\t * Optional attribute to group Menu items and show categoryHeading\n\t */\n\tcategoryHeading?: string;\n\t/**\n\t * Optional attribute allowing the multiline className to be added to the menu item\n\t */\n\tisNew?: boolean;\n\t/**\n\t * Adds an Icon to left handside of the menu item name for Supporting visuals and helping differentiate between menu options\n\t */\n\ticon?: JSX.Element | HTMLElement;\n\t/**\n\t * Adds a secondary action (ex. more info icon button) to the right end of menu item\n\t */\n\tsecondaryAction?: JSX.Element | HTMLElement;\n}\n\nexport const getOptionLabel = (option: SolaceSelectAutocompleteItemProps): string => option?.name ?? \"\";\n\nexport const getShowOptionDivider = (option: SolaceSelectAutocompleteItemProps): boolean => option?.divider ?? false;\n\nexport const isOptionEqual = (\n\toption: SolaceSelectAutocompleteItemProps,\n\tvalue: SolaceSelectAutocompleteItemProps\n): boolean => {\n\treturn option?.value === value?.value;\n};\n\nexport const getGroupBy = (option: SolaceSelectAutocompleteItemProps): string => option?.categoryHeading ?? \"\";\n\nfunction SolaceSelectAutocompleteItem({\n\tname,\n\tsubText,\n\tsupplementalText,\n\tisNew,\n\ticon,\n\tsecondaryAction\n}: SolaceSelectAutocompleteItemProps): JSX.Element {\n\tconst sizeOfColumn = supplementalText ? 8 : 12;\n\tconst middlePadding = supplementalText ? \"16px\" : \"0px\";\n\treturn (\n\t\t<div style={{ display: \"flex\", width: \"100%\", alignItems: \"center\" }}>\n\t\t\t{icon && (\n\t\t\t\t<ListItemIcon className=\"menuItemIcon\" style={{ paddingRight: \"8px\" }}>\n\t\t\t\t\t{icon}\n\t\t\t\t</ListItemIcon>\n\t\t\t)}\n\t\t\t<Grid container direction={\"column\"} className={clsx({ multiline: !!subText || isNew })} py={0.5}>\n\t\t\t\t<Grid container justifyContent={\"space-between\"} direction={\"row\"} alignItems={\"flex-start\"}>\n\t\t\t\t\t<Grid item xs={sizeOfColumn} zeroMinWidth style={{ wordBreak: \"break-word\", paddingRight: middlePadding }}>\n\t\t\t\t\t\t{name}\n\t\t\t\t\t</Grid>\n\t\t\t\t\t{supplementalText && (\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\tclassName=\"supplementalText\"\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\txs={4}\n\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\talignItems=\"flex-end\"\n\t\t\t\t\t\t\tjustifyContent=\"flex-start\"\n\t\t\t\t\t\t\tstyle={{ marginLeft: \"0px\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{supplementalText}\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t)}\n\t\t\t\t</Grid>\n\t\t\t\t{subText && (\n\t\t\t\t\t<Grid className=\"subtext\" item>\n\t\t\t\t\t\t<span className=\"subtext\">{subText}</span>\n\t\t\t\t\t</Grid>\n\t\t\t\t)}\n\t\t\t</Grid>\n\n\t\t\t{secondaryAction && (\n\t\t\t\t<Grid\n\t\t\t\t\tcontainer\n\t\t\t\t\tsx={{ marginLeft: `${subText ? 0 : \"24px\"}`, width: \"auto\" }}\n\t\t\t\t\tjustifyContent={\"end\"}\n\t\t\t\t\talignItems={\"center\"}\n\t\t\t\t\tclassName=\"menuItemIcon\"\n\t\t\t\t>\n\t\t\t\t\t{secondaryAction}\n\t\t\t\t</Grid>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default SolaceSelectAutocompleteItem;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\n\nimport SolaceButton, { SolaceButtonProps } from \"./form/SolaceButton\";\nimport { BASE_FONT_PX_SIZES } from \"../resources/typography\";\nimport { isEmpty } from \"lodash\";\n\nexport interface SolaceDetailMessageProps {\n\t/**\n\t * An image to display above the message title\n\t */\n\tmsgImg?: JSX.Element;\n\t/**\n\t * Title associated with the message\n\t */\n\ttitle?: string;\n\t/**\n\t * Detailed message to display\n\t */\n\tdetails?: string | JSX.Element;\n\t/**\n\t * An array of actions to display as SolaceButtons\n\t */\n\tactions?: SolaceButtonProps[] | JSX.Element;\n}\n\nconst Container = styled(\"div\")(({ theme }) => ({\n\t// need to move this styled componet definition into the theme file once we figure out how\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\talignItems: \"center\",\n\tfontFamily: theme.typography.fontFamily\n}));\n\nconst ImgContainer = styled(\"div\")(() => ({\n\t// need to move this styled componet definition into the theme file once we figure out how\n\tmargin: \"0px 0px 40px 0px\"\n}));\n\nconst TitleText = styled(\"p\")(({ theme }) => ({\n\t// need to move this styled componet definition into the theme file once we figure out how\n\tmargin: \"0px 0px 14px 0px\",\n\tfontSize: BASE_FONT_PX_SIZES.xl,\n\tcolor: theme.palette.ux.primary.text.wMain,\n\ttextAlign: \"center\"\n}));\n\nconst DetailsContainer = styled(\"div\")(({ theme }) => ({\n\t// need to move this styled componet definition into the theme file once we figure out how\n\tmargin: \"0px 0px 14px 0px\",\n\tfontSize: BASE_FONT_PX_SIZES.sm,\n\tcolor: theme.palette.ux.primary.text.wMain\n}));\n\nconst ButtonGroup = styled(\"div\")(() => ({\n\t// need to move this styled componet definition into the theme file once we figure out how\n\tdisplay: \"flex\",\n\tflexDirection: \"row\",\n\talignItems: \"center\"\n}));\n\nfunction SolaceDetailMessage({ msgImg, title, details, actions }: SolaceDetailMessageProps): JSX.Element {\n\tconst buildActionButtons = () => {\n\t\tconst buttons: JSX.Element[] = [];\n\t\tif (Array.isArray(actions) && !isEmpty(actions)) {\n\t\t\tactions.forEach((action: SolaceButtonProps) =>\n\t\t\t\tbuttons.push(<SolaceButton dataQa={action.dataQa} key={action.id} {...action} />)\n\t\t\t);\n\t\t\treturn buttons;\n\t\t} else {\n\t\t\treturn actions;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Container>\n\t\t\t{msgImg && <ImgContainer>{msgImg}</ImgContainer>}\n\t\t\t{title && <TitleText>{title}</TitleText>}\n\t\t\t{details && <DetailsContainer>{details}</DetailsContainer>}\n\t\t\t{actions && <ButtonGroup>{buildActionButtons()}</ButtonGroup>}\n\t\t</Container>\n\t);\n}\n\nexport default SolaceDetailMessage;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\nimport SolaceButton from \"./form/SolaceButton\";\nimport SolaceTooltip from \"./SolaceToolTip\";\nimport { difference } from \"lodash\";\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { TooltipVariant } from \"../types/solaceTooltip\";\n\nconst ItemsContainer = styled(\"div\", {\n\tshouldForwardProp: (prop) =>\n\t\tprop !== \"multiline\" && prop !== \"maxHeight\" && prop !== \"columnGap\" && prop !== \"rowGap\" && prop !== \"show\"\n})<{ multiline: boolean; maxHeight?: string; columnGap: string; rowGap: string; show: boolean }>(\n\t({ multiline, maxHeight, columnGap, rowGap, show }) => ({\n\t\tdisplay: \"flex\",\n\t\tflexWrap: multiline ? \"wrap\" : \"nowrap\",\n\t\tcolumnGap: columnGap,\n\t\trowGap: rowGap,\n\t\talignItems: multiline ? \"flex-start\" : \"center\",\n\t\tvisibility: show ? \"visible\" : \"hidden\",\n\t\tmaxHeight: maxHeight ? maxHeight : \"unset\",\n\t\toverflow: \"hidden\"\n\t})\n);\n\nconst PopoverContainer = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"maxHeight\"\n})<{\n\tmaxHeight?: string;\n}>(({ theme, maxHeight }) => ({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\trowGap: theme.spacing(1.5),\n\tmaxHeight: maxHeight,\n\toverflowY: \"auto\"\n}));\n\nexport interface SolaceResponsiveItem {\n\t/**\n\t * Uniquely identify the itme in the list\n\t */\n\tid: string;\n\tcontent: JSX.Element;\n}\n\nfunction getOverflowIndicatorLabel(itemCount: number, label: string, labelSingular?: string) {\n\tif (itemCount === 1 && labelSingular) {\n\t\treturn labelSingular;\n\t}\n\n\treturn label;\n}\n\nexport interface SolaceResponsiveItemListProps extends SolaceComponentProps {\n\t/**\n\t * A list of items to display in a row\n\t */\n\titems: SolaceResponsiveItem[];\n\t/**\n\t * When showAll is true, all the items will be displayed inside the container wrapped around; when it is false,\n\t * show items whose total width <= container's width, display \"+ N more\" and show remaining items in a popover when \"+ N more\" is hovered.\n\t * Default is true.\n\t */\n\tshowAll?: boolean;\n\t/**\n\t * Spacing between items, default is 12px\n\t */\n\tcolumnGap?: number;\n\t/**\n\t * Space between rows, default is 8px\n\t * */\n\trowGap?: number;\n\t/**\n\t * Width of the container of the component.\n\t *\n\t * If containerWidth is undefined and showAll is false, then all items will be rendered in one row which can overflow the container.\n\t * The container should have resize listener configured to properly update the value if its width is changing dynamically.\n\t */\n\tcontainerWidth: number | undefined;\n\t/**\n\t * Which component to use to display hidden items. Default is popover.\n\t */\n\tcomponentToShowOverflowItems?: \"popover\" | null;\n\t/**\n\t * Overflow component's placement\n\t */\n\toverflowItemsPlacement?:\n\t\t| \"bottom-end\"\n\t\t| \"bottom-start\"\n\t\t| \"bottom\"\n\t\t| \"left-end\"\n\t\t| \"left-start\"\n\t\t| \"left\"\n\t\t| \"right-end\"\n\t\t| \"right-start\"\n\t\t| \"right\"\n\t\t| \"top-end\"\n\t\t| \"top-start\"\n\t\t| \"top\";\n\t/**\n\t * Overflow indicator label. Default value is \"more\".\n\t */\n\toverflowIndicatorLabel?: string;\n\t/**\n\t * Overflow indicator label when number of filters is 1.\n\t */\n\toverflowIndicatorLabelSingular?: string;\n\t/**\n\t * Overflow indicator label width.\n\t */\n\toverflowIndicatorLabelWidth?: number;\n\t/**\n\t * Number of rows to show before hiding items. Default is 1.\n\t * */\n\tnumOfRowsToShow?: number;\n\t/**\n\t * Number of menu items to be displayed (defaulting to 9) before scrolling is applied.\n\t */\n\tnumOfMenuItemsToDisplay?: number;\n\t/**\n\t * Callback to notify items rendered\n\t */\n\tonItemsRendered?: () => void;\n\t/**\n\t * Callback to notify items that are hidden\n\t */\n\tonItemsOverflow?: (overflowedItems: SolaceResponsiveItem[]) => void;\n\t/**\n\t * Callback when \"+ N more\" indicator is clicked. If the callback is defined and componentToShowOverflowItems is not null, then \"+ N more\" is a hyperlink.\n\t */\n\tonItemsOverflowIndicatorClick?: () => void;\n}\n\nconst defaultItemsHiddenIndicatorWidth = 58; // Width for \"+ x more\"\nconst defaultItemsHiddenIndicatorWidth1 = 66; // Width for \"+ xx more\"\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nfunction SolaceResponsiveItemList({\n\titems,\n\tshowAll = true,\n\tcolumnGap = 12,\n\trowGap = 8,\n\tcontainerWidth,\n\tcomponentToShowOverflowItems = \"popover\",\n\toverflowItemsPlacement = \"bottom-start\",\n\toverflowIndicatorLabel = \"more\",\n\toverflowIndicatorLabelSingular,\n\toverflowIndicatorLabelWidth,\n\tnumOfRowsToShow = 1,\n\tnumOfMenuItemsToDisplay = 9, // matches menu overflow default\n\tonItemsRendered,\n\tonItemsOverflow,\n\tonItemsOverflowIndicatorClick,\n\tdataQa = \"responsiveItemList\"\n}: SolaceResponsiveItemListProps) {\n\tconst [visibleItemIds, setVisibleItemIds] = useState<string[] | null>(null);\n\tconst [show, setShow] = useState(false);\n\tconst [readyForCalculation, setReadyForCalculation] = useState(false);\n\tconst itemsWidthRef = useRef<{ [key: string]: number }>({});\n\tconst itemHeightRef = useRef<number>(24);\n\n\tconst hiddenItemsCount = useMemo(() => {\n\t\tconst totalCount = items?.length ?? 0;\n\t\tconst visibleCount = visibleItemIds?.length ?? 0;\n\n\t\treturn totalCount - visibleCount;\n\t}, [items?.length, visibleItemIds?.length]);\n\n\tconst popoverContents = useMemo(() => {\n\t\tif (items && visibleItemIds) {\n\t\t\tconst popoverMaxHeight =\n\t\t\t\thiddenItemsCount > numOfMenuItemsToDisplay\n\t\t\t\t\t? // gap between menu items is 12px - removing 1/2 the last gap to help indicate the continuation\n\t\t\t\t\t `${(itemHeightRef.current + 12) * numOfMenuItemsToDisplay - 6}px`\n\t\t\t\t\t: \"unset\";\n\n\t\t\treturn (\n\t\t\t\t<PopoverContainer maxHeight={popoverMaxHeight}>\n\t\t\t\t\t{items\n\t\t\t\t\t\t.filter((item) => !visibleItemIds.includes(item.id))\n\t\t\t\t\t\t.map((item) => (\n\t\t\t\t\t\t\t<div key={`popoverItem-${item.id}`}>{item.content}</div>\n\t\t\t\t\t\t))}\n\t\t\t\t</PopoverContainer>\n\t\t\t);\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}, [items, hiddenItemsCount, visibleItemIds]);\n\n\tconst itemIds = useMemo(() => {\n\t\treturn items ? items.map((item) => item.id) : null;\n\t}, [items]);\n\n\tconst calculateItemsToShow = useCallback(() => {\n\t\tif (containerWidth === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst availableWidth = containerWidth;\n\t\tconst newVisibleIds: string[] = [];\n\t\tlet totalWidth = 0;\n\t\tlet lastWidth = 0;\n\t\tlet lastNumOfRows = 1;\n\t\tlet hasHidden = false;\n\n\t\tif (items) {\n\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\tlastWidth = totalWidth;\n\n\t\t\t\tconst itemWidth = (itemsWidthRef.current[items[i].id] ?? 0) + (i < items.length - 1 ? columnGap : 0);\n\n\t\t\t\ttotalWidth += itemWidth;\n\n\t\t\t\tif (totalWidth > availableWidth) {\n\t\t\t\t\tif (lastNumOfRows === numOfRowsToShow) {\n\t\t\t\t\t\thasHidden = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewVisibleIds.push(items[i].id);\n\t\t\t\t\t\tlastWidth = itemWidth;\n\t\t\t\t\t\ttotalWidth = itemWidth;\n\t\t\t\t\t\tlastNumOfRows++;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnewVisibleIds.push(items[i].id);\n\t\t\t\t\tlastWidth = totalWidth;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet indicatorWidth =\n\t\t\t\titems.length - newVisibleIds.length < 10 ? defaultItemsHiddenIndicatorWidth : defaultItemsHiddenIndicatorWidth1;\n\t\t\tif (overflowIndicatorLabelWidth) {\n\t\t\t\tindicatorWidth = overflowIndicatorLabelWidth;\n\t\t\t}\n\n\t\t\tif (hasHidden && lastWidth + indicatorWidth > availableWidth) {\n\t\t\t\tfor (let i = newVisibleIds.length - 1; i >= 0; i--) {\n\t\t\t\t\tlastWidth -= (itemsWidthRef.current[newVisibleIds[i]] ?? 0) + (i < items.length - 1 ? columnGap : 0);\n\t\t\t\t\tnewVisibleIds.splice(i, 1);\n\n\t\t\t\t\tif (lastWidth + indicatorWidth <= availableWidth) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetShow(true);\n\t\t\tsetVisibleItemIds(newVisibleIds);\n\n\t\t\tif (onItemsOverflow) {\n\t\t\t\tonItemsOverflow(items.filter((item) => !newVisibleIds.includes(item.id)));\n\t\t\t}\n\n\t\t\tonItemsRendered?.();\n\t\t}\n\t}, [\n\t\tcontainerWidth,\n\t\titems,\n\t\toverflowIndicatorLabelWidth,\n\t\tonItemsOverflow,\n\t\tonItemsRendered,\n\t\tcolumnGap,\n\t\tnumOfRowsToShow\n\t]);\n\n\tuseEffect(() => {\n\t\tif (items) {\n\t\t\tconst itemIds = items.map((item) => item.id);\n\n\t\t\tsetVisibleItemIds(itemIds);\n\t\t\tsetReadyForCalculation(false);\n\n\t\t\tif (showAll) {\n\t\t\t\tsetShow(true);\n\t\t\t\tonItemsRendered?.();\n\t\t\t}\n\t\t}\n\t}, [items, showAll, onItemsRendered]);\n\n\tuseEffect(() => {\n\t\tif (readyForCalculation && !showAll) {\n\t\t\tcalculateItemsToShow();\n\t\t}\n\t}, [readyForCalculation, calculateItemsToShow, showAll]);\n\n\treturn itemIds ? (\n\t\t<ItemsContainer\n\t\t\tmultiline={showAll || numOfRowsToShow > 1}\n\t\t\tmaxHeight={!showAll ? `${numOfRowsToShow * itemHeightRef.current + (numOfRowsToShow - 1) * rowGap}px` : undefined}\n\t\t\tcolumnGap={columnGap + \"px\"}\n\t\t\trowGap={rowGap + \"px\"}\n\t\t\tshow={show}\n\t\t\tdata-qa={dataQa}\n\t\t>\n\t\t\t{items.map((item) => {\n\t\t\t\treturn (\n\t\t\t\t\tvisibleItemIds?.includes(item.id) && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tkey={`listItem-${item.id}`}\n\t\t\t\t\t\t\tdata-qa={`${dataQa}-listItem`}\n\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\tif (el) {\n\t\t\t\t\t\t\t\t\titemsWidthRef.current[item.id] = el.offsetWidth;\n\t\t\t\t\t\t\t\t\titemHeightRef.current = el.offsetHeight;\n\n\t\t\t\t\t\t\t\t\tconst diffs = difference(itemIds, Object.keys(itemsWidthRef.current));\n\n\t\t\t\t\t\t\t\t\tif (diffs.length === 0 && !showAll) {\n\t\t\t\t\t\t\t\t\t\tsetReadyForCalculation(true);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.content}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})}\n\t\t\t{!showAll && hiddenItemsCount > 0 && (\n\t\t\t\t<>\n\t\t\t\t\t{componentToShowOverflowItems === \"popover\" && (\n\t\t\t\t\t\t<SolaceTooltip\n\t\t\t\t\t\t\ttitle={popoverContents}\n\t\t\t\t\t\t\tplacement={overflowItemsPlacement}\n\t\t\t\t\t\t\tdataQa={`${dataQa}-overflowPopover`}\n\t\t\t\t\t\t\tvariant={TooltipVariant.rich}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={onItemsOverflowIndicatorClick ? onItemsOverflowIndicatorClick : undefined}\n\t\t\t\t\t\t\t\t\tdense={true}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span style={{ whiteSpace: \"nowrap\" }}>{`+ ${hiddenItemsCount} ${getOverflowIndicatorLabel(\n\t\t\t\t\t\t\t\t\t\thiddenItemsCount,\n\t\t\t\t\t\t\t\t\t\toverflowIndicatorLabel,\n\t\t\t\t\t\t\t\t\t\toverflowIndicatorLabelSingular\n\t\t\t\t\t\t\t\t\t)}`}</span>\n\t\t\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t)}\n\t\t\t\t\t{componentToShowOverflowItems !== \"popover\" && (\n\t\t\t\t\t\t<span style={{ whiteSpace: \"nowrap\" }}>{`+ ${hiddenItemsCount} ${getOverflowIndicatorLabel(\n\t\t\t\t\t\t\thiddenItemsCount,\n\t\t\t\t\t\t\toverflowIndicatorLabel,\n\t\t\t\t\t\t\toverflowIndicatorLabelSingular\n\t\t\t\t\t\t)}`}</span>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</ItemsContainer>\n\t) : null;\n}\n\nexport default React.memo(SolaceResponsiveItemList);\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { CHIP_VARIANT } from \"../../types/solaceChip\";\nimport SolaceChip from \"../SolaceChip\";\nimport SolaceResponsiveItemList from \"../SolaceResponsiveItemList\";\n\nconst Container = styled(\"div\")(() => ({\n\tpaddingRight: \"6px\"\n}));\n\nexport interface SolaceSelectAutocompleteResponsiveTagsProps {\n\tcontainerWidth: number | undefined;\n\ttags: { id: string; label: string }[];\n\ttagMaxWidth?: string;\n\tnumOfRowsToShow?: number;\n\toverflowIndicatorLabel?: string;\n\toverflowIndicatorLabelSingular?: string;\n\toverflowIndicatorLabelWidth?: number;\n\tonDelete?: (id: string) => void;\n\tdataQa?: string;\n\tdisabled?: boolean;\n\treadOnly?: boolean;\n}\n\nfunction SolaceSelectAutocompleteResponsiveTags({\n\tcontainerWidth,\n\ttags,\n\ttagMaxWidth = \"160px\",\n\tnumOfRowsToShow = 1,\n\toverflowIndicatorLabel,\n\toverflowIndicatorLabelSingular,\n\toverflowIndicatorLabelWidth,\n\tonDelete,\n\tdataQa = \"autocompleteTags\",\n\tdisabled = false,\n\treadOnly = false\n}: SolaceSelectAutocompleteResponsiveTagsProps) {\n\tconst handleDelete = useCallback(\n\t\t(id: string) => {\n\t\t\tonDelete?.(id);\n\t\t},\n\t\t[onDelete]\n\t);\n\n\tconst tagChips = useMemo(() => {\n\t\treturn tags?.map((tag) => {\n\t\t\treturn {\n\t\t\t\tid: tag.id,\n\t\t\t\tcontent: (\n\t\t\t\t\t<SolaceChip\n\t\t\t\t\t\tclickable={!readOnly}\n\t\t\t\t\t\tkey={`${dataQa}-${tag.id}`}\n\t\t\t\t\t\tvariant={CHIP_VARIANT.FILLED}\n\t\t\t\t\t\tmaxWidth={tagMaxWidth}\n\t\t\t\t\t\tlabel={tag.label}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonDelete={readOnly ? undefined : () => handleDelete(tag.id)}\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t};\n\t\t});\n\t}, [dataQa, handleDelete, tagMaxWidth, tags, disabled, readOnly]);\n\n\treturn tagChips?.length > 0 ? (\n\t\t<Container>\n\t\t\t<SolaceResponsiveItemList\n\t\t\t\tcontainerWidth={containerWidth !== undefined ? containerWidth - 120 : containerWidth} // 120px is dropdown arrow + delete icon + input text area for search string\n\t\t\t\titems={tagChips}\n\t\t\t\tshowAll={false}\n\t\t\t\tnumOfRowsToShow={numOfRowsToShow}\n\t\t\t\tcolumnGap={0}\n\t\t\t\tcomponentToShowOverflowItems={null}\n\t\t\t\toverflowIndicatorLabel={overflowIndicatorLabel}\n\t\t\t\toverflowIndicatorLabelSingular={overflowIndicatorLabelSingular}\n\t\t\t\toverflowIndicatorLabelWidth={overflowIndicatorLabelWidth}\n\t\t\t\tdataQa={dataQa}\n\t\t\t/>\n\t\t</Container>\n\t) : null;\n}\n\nexport default React.memo(SolaceSelectAutocompleteResponsiveTags);\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TextField, useTheme } from \"@mui/material\";\nimport React from \"react\";\nimport { constants } from \"../../constants\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport FormChildBase from \"./FormChildBase\";\n\nexport interface SolaceTextAreaChangeEvent {\n\tname: string;\n\tvalue: string;\n}\n\nexport interface SolaceTextAreaProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tvalue?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * Short hint displayed in the `input` before user enters a value\n\t */\n\tplaceholder?: string;\n\t/**\n\t * The maximum number of characters which can be typed as the `input` value\n\t */\n\tmaxLength?: number;\n\t/**\n\t * The minimum numbers of rows the text area can shrink to\n\t */\n\tminRows?: number;\n\t/**\n\t * The maximum number of rows the text area can expand to (overflow scrollbar will render if necessary)\n\t */\n\tmaxRows?: number;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * Boolean flag to control whether the `input` element is focused during first mount\n\t */\n\tautoFocus?: boolean;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to control whether to stack the label on top of the `input` element (false) or place them inline to one another (true)\n\t */\n\tinlineLabel?: boolean;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to set the `input` in a read-only state\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed\n\t */\n\tonChange?: (event: SolaceTextAreaChangeEvent) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` loses focus\n\t */\n\tonBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` receives key down event\n\t */\n\tonKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` receives key up event\n\t */\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to trigger whenever the element of the `input` is focused\n\t */\n\tonFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Custom Width of the component.\n\t */\n\twidth?: string;\n\t/**\n\t * If true, the input will take up the full width of its container.\n\t */\n\tfullWidth?: boolean;\n\t/**\n\t * both: The element displays a mechanism for allowing the user to resize it, which may be resized both horizontally and vertically.\n\t * horizontal: The element displays a mechanism for allowing the user to resize it in the horizontal direction.\n\t * vertical: The element displays a mechanism for allowing the user to resize it in the vertical direction.\n\t */\n\tresizable?: \"both\" | \"horizontal\" | \"vertical\";\n}\n\nconst SolaceTextArea: React.FC<SolaceTextAreaProps> = ({\n\tid,\n\tname,\n\tlabel,\n\tvalue,\n\thelperText,\n\tplaceholder,\n\tmaxLength = constants.maxLength,\n\tminRows = 4,\n\tmaxRows = 4,\n\ttitle,\n\tautoFocus = false,\n\thasErrors = false,\n\trequired = false,\n\tinlineLabel = false,\n\tdisabled = false,\n\treadOnly = false,\n\tonChange,\n\tonBlur,\n\tonKeyDown,\n\tonKeyUp,\n\tonFocus,\n\tdataQa,\n\tdataTags,\n\tfullWidth = false,\n\tresizable,\n\twidth\n}) => {\n\tconst theme = useTheme();\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.value\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getId = () => {\n\t\tlet generatedId = id ? id : name;\n\t\tif (resizable) {\n\t\t\tgeneratedId = `${generatedId}-resizable-${resizable}`;\n\t\t}\n\t\treturn generatedId;\n\t};\n\n\tconst textField = () => (\n\t\t<TextField\n\t\t\tid={`${getId()}`}\n\t\t\tname={name}\n\t\t\tinputProps={{\n\t\t\t\tmaxLength: maxLength,\n\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\"data-tags\": dataTags,\n\t\t\t\treadOnly: readOnly,\n\t\t\t\t\"aria-describedby\": helperText ? `${getId()}-textfield-helper-text` : \"\",\n\t\t\t\t\"aria-labelledby\": label ? `${getId()}-label` : \"\",\n\t\t\t\t\"aria-readonly\": readOnly,\n\t\t\t\trole: \"textbox\",\n\t\t\t\ttitle: title\n\t\t\t}}\n\t\t\ttype=\"text\"\n\t\t\tautoComplete=\"off\"\n\t\t\tautoFocus={autoFocus}\n\t\t\terror={hasErrors}\n\t\t\tminRows={minRows}\n\t\t\tmaxRows={maxRows}\n\t\t\tmultiline={true}\n\t\t\tInputProps={{\n\t\t\t\tsx: { height: theme.spacing(4) },\n\t\t\t\tdisabled: disabled,\n\t\t\t\trequired: required,\n\t\t\t\tclassName: inlineLabel ? \"inline-label\" : \"\"\n\t\t\t}}\n\t\t\tmargin=\"dense\"\n\t\t\tplaceholder={placeholder}\n\t\t\tvalue={value}\n\t\t\tonChange={handleChange}\n\t\t\tonBlur={onBlur}\n\t\t\tonKeyDown={onKeyDown}\n\t\t\tonKeyUp={onKeyUp}\n\t\t\tonFocus={onFocus}\n\t\t\tfullWidth={fullWidth}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<FormChildBase\n\t\t\tid={getId()}\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terrorText={hasErrors ? helperText : undefined}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\trequired={required}\n\t\t\tinlineLabel={inlineLabel}\n\t\t\tsx={{ width }}\n\t\t>\n\t\t\t{textField()}\n\t\t</FormChildBase>\n\t);\n};\n\nexport default SolaceTextArea;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, InputBase, styled } from \"@mui/material\";\nexport const ChipInputContainer = styled(Box)(({ theme }) => ({\n\tdisplay: \"flex\",\n\tflexWrap: \"wrap\",\n\talignItems: \"flex-start\",\n\twidth: \"100%\",\n\tminHeight: theme.spacing(4),\n\tpadding: \"2px 4px\",\n\tborder: `1px solid ${theme.palette.ux.secondary.w40}`,\n\tborderRadius: \"4px\",\n\t\"&.error\": {\n\t\tborderColor: theme.palette.ux.error.wMain,\n\t\tborderWidth: \"1px\"\n\t},\n\t\"&:focus-within\": {\n\t\tborderColor: theme.palette.ux.primary.wMain,\n\t\tborderWidth: \"1px\"\n\t}\n}));\n\nexport const ChipItem = styled(Box)(({ theme }) => ({\n\tmargin: theme.spacing(0.5),\n\tdisplay: \"inline-flex\",\n\talignItems: \"flex-start\"\n}));\n\nexport const InputWrapper = styled(\"div\")({\n\tdisplay: \"inline-flex\",\n\tflexGrow: 1,\n\tminWidth: \"50px\"\n});\n\nexport const StyledInputBase = styled(InputBase)(({ theme }) => ({\n\tflex: 1,\n\tpadding: theme.spacing(0.5, 0),\n\t\"& .MuiInputBase-input\": {\n\t\tpadding: 0,\n\t\theight: \"120px\"\n\t}\n}));\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback, useEffect, useRef, useState, MouseEvent } from \"react\";\nimport { constants } from \"@src/constants\";\nimport { CHIP_VARIANT } from \"@src/types/solaceChip\";\nimport { STATUSES } from \"@src/types/statuses\";\nimport { ChipData, SolaceChipTextAreaProps } from \"@src/types/solaceChipTextArea\";\nimport SolaceChip from \"@src/components/SolaceChip\";\nimport FormChildBase from \"@src/components/form/FormChildBase\";\nimport { ChipInputContainer, ChipItem, InputWrapper, StyledInputBase } from \"./SolaceChipTextArea.styles\";\n\nconst SolaceChipTextArea: React.FC<SolaceChipTextAreaProps> = ({\n\tid,\n\tname,\n\tlabel,\n\tvalue,\n\thelperText,\n\tmaxLength = constants.maxLength,\n\ttitle,\n\tautoFocus = false,\n\thasErrors = false,\n\trequired = false,\n\tinlineLabel = false,\n\tonChange,\n\tonBlur,\n\tonKeyDown,\n\tonKeyUp,\n\tonFocus,\n\tdataQa,\n\tdataTags,\n\twidth,\n\tvalidateChip\n}) => {\n\tconst [chips, setChips] = useState<ChipData[]>([]);\n\tconst [inputValue, setInputValue] = useState<string>(\"\");\n\tconst [errorMessage, setErrorMessage] = useState<string | undefined>(undefined);\n\tconst [showCursor, setShowCursor] = useState<boolean>(true);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\n\t// Initialize chips from value prop and update when value changes\n\tuseEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tconst tokens = tokenizeInput(value);\n\t\t\tconst newChips = tokens.map((token) => {\n\t\t\t\tconst errorMsg = validateChip ? validateChip(token) : undefined;\n\t\t\t\treturn {\n\t\t\t\t\tid: generateUniqueId(),\n\t\t\t\t\tlabel: token,\n\t\t\t\t\tisValid: !errorMsg,\n\t\t\t\t\terrorMessage: errorMsg\n\t\t\t\t};\n\t\t\t});\n\t\t\tsetChips(newChips);\n\t\t}\n\t}, [value, validateChip]);\n\n\tconst generateUniqueId = (): string => {\n\t\treturn `chip-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;\n\t};\n\n\tconst tokenizeInput = (input: string): string[] => {\n\t\t// Split by common delimiters: space, comma, semicolon\n\t\treturn input\n\t\t\t.split(/[\\s,;]+/)\n\t\t\t.map((token) => token.trim())\n\t\t\t.filter((token) => token.length > 0);\n\t};\n\n\tconst getChipValuesString = (chipsList: ChipData[]): string => {\n\t\treturn chipsList.map((chip) => chip.label).join(\",\");\n\t};\n\n\tconst addChip = useCallback(\n\t\t(text: string) => {\n\t\t\tconst validateInput = (inputString: string): string | undefined => {\n\t\t\t\tif (!inputString) return undefined;\n\n\t\t\t\t// Use props.validateChip if provided\n\t\t\t\tif (validateChip) {\n\t\t\t\t\treturn validateChip(inputString);\n\t\t\t\t}\n\n\t\t\t\treturn undefined;\n\t\t\t};\n\n\t\t\tconst trimmedText = text.trim();\n\t\t\tif (!trimmedText) return;\n\n\t\t\tconst errorMsg = validateInput(trimmedText);\n\n\t\t\tconst newChip: ChipData = {\n\t\t\t\tid: generateUniqueId(),\n\t\t\t\tlabel: trimmedText,\n\t\t\t\tisValid: !errorMsg,\n\t\t\t\terrorMessage: errorMsg\n\t\t\t};\n\n\t\t\tsetChips((prevChips) => {\n\t\t\t\tconst updatedChips = [...prevChips, newChip];\n\n\t\t\t\tif (onChange) {\n\t\t\t\t\tonChange({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tvalue: inputValue,\n\t\t\t\t\t\tchips: updatedChips,\n\t\t\t\t\t\tallValues: getChipValuesString(updatedChips)\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn updatedChips;\n\t\t\t});\n\n\t\t\tsetInputValue(\"\");\n\n\t\t\tif (errorMsg) {\n\t\t\t\tsetErrorMessage(errorMsg);\n\t\t\t}\n\t\t},\n\t\t[inputValue, name, onChange, validateChip]\n\t);\n\n\tconst removeChip = useCallback(\n\t\t(chipId: string) => {\n\t\t\tsetChips((prevChips) => {\n\t\t\t\tconst updatedChips = prevChips.filter((chip) => chip.id !== chipId);\n\n\t\t\t\tif (onChange) {\n\t\t\t\t\tonChange({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tvalue: inputValue,\n\t\t\t\t\t\tchips: updatedChips,\n\t\t\t\t\t\tallValues: getChipValuesString(updatedChips)\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Check if all chips are valid\n\t\t\t\tconst checkIfNoError = updatedChips.every((chip) => chip.isValid);\n\t\t\t\tif (checkIfNoError) {\n\t\t\t\t\tsetErrorMessage(undefined);\n\t\t\t\t}\n\n\t\t\t\treturn updatedChips;\n\t\t\t});\n\t\t},\n\t\t[inputValue, name, onChange]\n\t);\n\n\tconst handleInputChange = useCallback(\n\t\t(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst newValue = e.target.value;\n\t\t\tlet finalValue = newValue;\n\t\t\tsetErrorMessage(undefined);\n\n\t\t\t// Check if the input contains delimiters\n\t\t\tif (/[\\s,;]/.test(newValue)) {\n\t\t\t\tconst tokens = tokenizeInput(newValue);\n\t\t\t\tif (tokens.length > 1) {\n\t\t\t\t\t// Process all tokens except the last one\n\t\t\t\t\ttokens.slice(0, -1).forEach((token) => addChip(token));\n\t\t\t\t\t// Keep the last token in the input field\n\t\t\t\t\tfinalValue = tokens[tokens.length - 1];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set the input value once\n\t\t\tsetInputValue(finalValue);\n\n\t\t\tif (onChange) {\n\t\t\t\tonChange({\n\t\t\t\t\tname,\n\t\t\t\t\tvalue: newValue, // Use original value for onChange to maintain expected behavior\n\t\t\t\t\tchips,\n\t\t\t\t\tallValues: getChipValuesString(chips)\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[addChip, chips, name, onChange]\n\t);\n\n\tconst handleKeyDown = useCallback(\n\t\t(event: React.KeyboardEvent<HTMLInputElement>) => {\n\t\t\tif ((event.key === \"Enter\" || event.key === \" \" || event.key === \",\" || event.key === \";\") && inputValue.trim()) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\taddChip(inputValue);\n\t\t\t}\n\n\t\t\t// Only remove the last chip if there are no characters in the input field and backspace/delete is pressed\n\t\t\t// This ensures spaces are deleted before removing chips\n\t\t\tif ((event.key === \"Backspace\" || event.key === \"Delete\") && inputValue.length === 0) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst lastChip = chips[chips.length - 1];\n\t\t\t\tif (lastChip) {\n\t\t\t\t\tremoveChip(lastChip.id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event.key === \"Space\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tif (onKeyDown) {\n\t\t\t\tonKeyDown(event);\n\t\t\t}\n\t\t},\n\t\t[addChip, chips, removeChip, inputValue, onKeyDown]\n\t);\n\n\tconst handlePaste = useCallback(\n\t\t(event: React.ClipboardEvent<HTMLInputElement>) => {\n\t\t\tevent.preventDefault();\n\t\t\tconst pastedText = event.clipboardData.getData(\"text\");\n\t\t\tconst tokens = tokenizeInput(pastedText);\n\n\t\t\tif (tokens.length > 0) {\n\t\t\t\t// Add all tokens as chips\n\t\t\t\ttokens.forEach((token) => addChip(token));\n\t\t\t}\n\t\t},\n\t\t[addChip]\n\t);\n\n\tconst handleChipClick = useCallback((event: MouseEvent) => {\n\t\tevent.stopPropagation();\n\t\tsetShowCursor(false);\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.blur();\n\t\t}\n\t}, []);\n\n\tconst handleContainerClick = useCallback((event: React.MouseEvent) => {\n\t\tif (inputRef.current) {\n\t\t\t// Only focus if the click was directly on the container or input area\n\t\t\t// and not propagated from a chip\n\t\t\tconst target = event.target as HTMLElement;\n\t\t\tconst isChipClick = target.closest('[data-chip=\"true\"]');\n\n\t\t\tif (!isChipClick) {\n\t\t\t\tsetShowCursor(true);\n\t\t\t\tinputRef.current.focus();\n\t\t\t}\n\t\t}\n\t}, []);\n\n\t// Calculate helper text based on validation errors\n\tconst displayHelperText = errorMessage ?? helperText;\n\n\t// Check if any chip has an error\n\tconst hasChipErrors = chips.some((chip) => !chip.isValid);\n\n\t// Display error state if there's an error message, hasErrors prop is true, or any chip has errors\n\tconst displayHasErrors = !!errorMessage || hasErrors || hasChipErrors;\n\n\tconst getId = () => {\n\t\treturn id ?? name;\n\t};\n\n\treturn (\n\t\t<FormChildBase\n\t\t\tid={getId()}\n\t\t\tlabel={label}\n\t\t\thelperText={displayHelperText}\n\t\t\terrorText={displayHasErrors ? displayHelperText : undefined}\n\t\t\tdisabled={false}\n\t\t\treadOnly={false}\n\t\t\trequired={required}\n\t\t\tinlineLabel={inlineLabel}\n\t\t\tsx={{ width: width }}\n\t\t>\n\t\t\t<ChipInputContainer\n\t\t\t\tref={containerRef}\n\t\t\t\tonClick={handleContainerClick}\n\t\t\t\tclassName={displayHasErrors ? \"error\" : \"\"}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: width\n\t\t\t\t}}\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tdata-tags={dataTags}\n\t\t\t>\n\t\t\t\t{chips.map((chip) => (\n\t\t\t\t\t<ChipItem key={chip.id} data-chip=\"true\" onClick={handleChipClick}>\n\t\t\t\t\t\t<SolaceChip\n\t\t\t\t\t\t\tlabel={chip.label}\n\t\t\t\t\t\t\tstatus={chip.isValid ? STATUSES.NO_STATUS : STATUSES.ERROR_STATUS}\n\t\t\t\t\t\t\tonDelete={() => removeChip(chip.id)}\n\t\t\t\t\t\t\tclickable={true}\n\t\t\t\t\t\t\tvariant={CHIP_VARIANT.FILLED}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ChipItem>\n\t\t\t\t))}\n\t\t\t\t<InputWrapper>\n\t\t\t\t\t<StyledInputBase\n\t\t\t\t\t\tinputRef={inputRef}\n\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t\tonPaste={handlePaste}\n\t\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\tif (!showCursor) {\n\t\t\t\t\t\t\t\t// Use currentTarget which is the element the event listener was attached to\n\t\t\t\t\t\t\t\te.currentTarget.blur();\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Cast the event to the expected type for the onFocus prop\n\t\t\t\t\t\t\tif (onFocus) onFocus(e as React.FocusEvent<HTMLInputElement>);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\tvisibility: showCursor ? \"visible\" : \"hidden\",\n\t\t\t\t\t\t\t\"& .MuiInputBase-input\": {\n\t\t\t\t\t\t\t\tcaretColor: showCursor ? \"auto\" : \"transparent\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\tmaxLength: maxLength,\n\t\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\t\t\"aria-describedby\": displayHelperText ? `${getId()}-helper-text` : \"\",\n\t\t\t\t\t\t\t\"aria-labelledby\": label ? `${getId()}-label` : \"\",\n\t\t\t\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\t\t\t\"data-tags\": dataTags\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tautoFocus={autoFocus}\n\t\t\t\t\t\tmultiline\n\t\t\t\t\t\trows={4}\n\t\t\t\t\t\tmaxRows={4}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t/>\n\t\t\t\t</InputWrapper>\n\t\t\t</ChipInputContainer>\n\t\t</FormChildBase>\n\t);\n};\n\nexport default SolaceChipTextArea;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, FormHelperText, Switch, InputLabel, Typography, useTheme } from \"@mui/material\";\nimport ErrorOutlineOutlinedIcon from \"@mui/icons-material/ErrorOutlineOutlined\";\nimport React, { useEffect, useState } from \"react\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport SolaceHTMLAttributeProps from \"../SolaceHTMLAttributesProps\";\n\nexport interface SolaceToggleChangeEvent {\n\tname: string;\n\tvalue: boolean;\n}\n\ninterface SolaceToggleLabelProps {\n\tbold: boolean;\n\tdisabled: boolean;\n\tlarge: boolean;\n\tchildren: string | JSX.Element;\n}\n\nfunction SolaceToggleLabel({ children, bold, large, disabled }: SolaceToggleLabelProps): JSX.Element {\n\tconst theme = useTheme();\n\n\treturn (\n\t\t<Typography\n\t\t\tvariant={large ? \"subtitle1\" : \"body1\"}\n\t\t\tsx={{\n\t\t\t\tcolor: disabled ? theme.palette.ux.secondary.text.w50 : theme.palette.ux.primary.text.wMain,\n\t\t\t\tfontWeight: bold ? \"medium\" : \"regular\",\n\t\t\t\talignSelf: \"center\"\n\t\t\t}}\n\t\t\tcomponent=\"span\"\n\t\t>\n\t\t\t{children}\n\t\t</Typography>\n\t);\n}\n\nexport interface SolaceToggleProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `toggle` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * Boolean flag to show the state of toggle element\n\t */\n\tstateText?: boolean;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag to check or uncheck the `toggle`\n\t */\n\tisOn?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `toggle` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to disable the `toggle`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Display the label with a larger font\n\t */\n\tlargeLabel?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `toggle` is changed\n\t */\n\tonChange?: (event: SolaceToggleChangeEvent) => void;\n}\n\nfunction SolaceToggle({\n\tid,\n\tname,\n\tlabel,\n\ttitle,\n\thelperText,\n\thasErrors = false,\n\tisOn = false,\n\trequired = false,\n\tdisabled = false,\n\tlargeLabel = false,\n\tstateText = false,\n\tonChange,\n\tdataQa,\n\tdataTags\n}: SolaceToggleProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst [selected, setSelected] = useState(isOn);\n\n\tuseEffect(() => {\n\t\tsetSelected(isOn);\n\t}, [isOn]);\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetSelected(event.target.checked);\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.checked\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getHelperText = () => (\n\t\t<Box display=\"flex\">\n\t\t\t{hasErrors && <ErrorOutlineOutlinedIcon sx={{ marginRight: theme.spacing() }} />}\n\t\t\t{helperText}\n\t\t</Box>\n\t);\n\n\tconst getStateText = (selected: boolean) => (selected ? \"On\" : \"Off\");\n\n\tconst getId = () => {\n\t\treturn id ? id : name;\n\t};\n\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<Box display=\"flex\" flexDirection=\"row\" justifyContent=\"flex-start\" alignItems=\"center\">\n\t\t\t\t<Switch\n\t\t\t\t\tid={`${getId()}-toggle`}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tinputProps={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"aria-labelledby\": label ? `${getId()}-label` : \"\",\n\t\t\t\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\t\t\t\"data-tags\": dataTags\n\t\t\t\t\t\t} as SolaceHTMLAttributeProps\n\t\t\t\t\t}\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tdisableRipple\n\t\t\t\t\tchecked={selected}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t/>\n\t\t\t\t{label && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InputLabel\n\t\t\t\t\t\t\tid={`${id}-label`}\n\t\t\t\t\t\t\thtmlFor={`${id}-toggle`}\n\t\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tsx={{ color: theme.palette.ux.primary.text.wMain, cursor: disabled ? \"auto\" : \"pointer\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SolaceToggleLabel bold={false} large={largeLabel} disabled={disabled}>\n\t\t\t\t\t\t\t\t{`${label}${stateText ? \": \" : \"\"}`}\n\t\t\t\t\t\t\t</SolaceToggleLabel>\n\t\t\t\t\t\t\t{stateText && (\n\t\t\t\t\t\t\t\t<SolaceToggleLabel bold={true} large={largeLabel} disabled={disabled}>\n\t\t\t\t\t\t\t\t\t{getStateText(selected)}\n\t\t\t\t\t\t\t\t</SolaceToggleLabel>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</InputLabel>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t\t{helperText && (\n\t\t\t\t<FormHelperText error={hasErrors} component=\"div\" sx={{ marginLeft: theme.spacing(0.4) }}>\n\t\t\t\t\t{getHelperText()}\n\t\t\t\t</FormHelperText>\n\t\t\t)}\n\t\t</React.Fragment>\n\t);\n}\n\nexport default SolaceToggle;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useState } from \"react\";\nimport { CustomContentDefinition, TableColumn } from \"../table-utils\";\nimport SolaceComponentProps from \"../../SolaceComponentProps\";\nimport SolaceCheckBox from \"../../form/SolaceCheckBox\";\nimport SolaceMenu from \"../../SolaceMenu\";\nimport TuneIcon from \"@mui/icons-material/Tune\";\nimport { SolaceMenuItemProps } from \"../../SolaceMenuItem\";\n\nexport interface ContentControlProps extends SolaceComponentProps {\n\tid?: string;\n\tcolumns: TableColumn[];\n\tdisplayedColumnsChangedCallback?: (displayedColumns: TableColumn[]) => void;\n\tcustomContentDefinitions?: CustomContentDefinition[];\n\tdisplayedCustomContent?: string[];\n\tcustomContentDisplayChangeCallback?: (customContentDefinitions: string, isHidden: boolean) => void;\n\tcustomMenuActions?: SolaceMenuItemProps[];\n}\n\nconst ContentControlMenu = ({\n\tid,\n\tcolumns,\n\tcustomContentDefinitions,\n\tdisplayedCustomContent,\n\tdisplayedColumnsChangedCallback,\n\tcustomContentDisplayChangeCallback,\n\tcustomMenuActions\n}: ContentControlProps): JSX.Element => {\n\tconst [oneColumnIsVisible, setOneColumnIsVisible] = useState<boolean>(\n\t\tcolumns.filter((col) => !col.isHidden && !col.hasNoCell).length === 1\n\t);\n\n\tconst handleColumnControlChange = (column: TableColumn) => {\n\t\tconst columnIndex = columns.findIndex((col) => col.field === column.field);\n\t\tif (columnIndex >= 0) {\n\t\t\tconst newColumns = columns.slice();\n\t\t\tnewColumns[columnIndex].isHidden = !newColumns[columnIndex].isHidden;\n\t\t\tif (displayedColumnsChangedCallback) {\n\t\t\t\tdisplayedColumnsChangedCallback(newColumns);\n\t\t\t}\n\t\t}\n\t\tif (columns.filter((col) => !col.isHidden).length === 1) {\n\t\t\tsetOneColumnIsVisible(true);\n\t\t} else {\n\t\t\tsetOneColumnIsVisible(false);\n\t\t}\n\t};\n\n\tconst customItems = columns\n\t\t.filter((column: TableColumn) => !column.disableHiding)\n\t\t.map((column: TableColumn) => ({\n\t\t\tname: (\n\t\t\t\t<SolaceCheckBox\n\t\t\t\t\tname={column.field}\n\t\t\t\t\tlabel={column.headerName}\n\t\t\t\t\tonChange={() => handleColumnControlChange(column)}\n\t\t\t\t\tchecked={!column.isHidden}\n\t\t\t\t\tdisabled={!column.isHidden && oneColumnIsVisible}\n\t\t\t\t></SolaceCheckBox>\n\t\t\t),\n\t\t\tcategoryHeading: \"Manage Content Shown\"\n\t\t}));\n\n\tconst customContentItems =\n\t\tcustomContentDefinitions?.map((customContent: CustomContentDefinition) => ({\n\t\t\tname: (\n\t\t\t\t<SolaceCheckBox\n\t\t\t\t\tname={customContent.type}\n\t\t\t\t\tlabel={customContent.label}\n\t\t\t\t\tonChange={\n\t\t\t\t\t\tcustomContentDisplayChangeCallback\n\t\t\t\t\t\t\t? (event) => customContentDisplayChangeCallback(customContent.type, !event.value)\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tchecked={displayedCustomContent?.includes(customContent.type) ? true : false}\n\t\t\t\t></SolaceCheckBox>\n\t\t\t),\n\t\t\tcategoryHeading: \"Manage Content Shown\"\n\t\t})) ?? [];\n\n\tconst customMenuActionsItems = customMenuActions ? customMenuActions : [];\n\n\treturn (\n\t\t<SolaceMenu\n\t\t\tid={id}\n\t\t\tbuttonProps={{\n\t\t\t\tvariant: \"icon\",\n\t\t\t\tchildren: <TuneIcon />,\n\t\t\t\ttitle: \"Settings\"\n\t\t\t}}\n\t\t\titems={[...customItems, ...customContentItems, ...customMenuActionsItems]}\n\t\t\tcloseOnSelect={false}\n\t\t\tanchorOrigin={{\n\t\t\t\tvertical: \"center\",\n\t\t\t\thorizontal: \"left\"\n\t\t\t}}\n\t\t\ttransformOrigin={{\n\t\t\t\tvertical: \"top\",\n\t\t\t\thorizontal: \"right\"\n\t\t\t}}\n\t\t></SolaceMenu>\n\t);\n};\n\nexport default ContentControlMenu;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { alpha, lighten } from \"@mui/material\";\n\nimport { ThemeMapping, ThemeMappingPalette } from \"../../types/ThemeMapping\";\n\nconst palette: ThemeMappingPalette = {\n\tbrand: {\n\t\twMain: \"#0A6ED1\",\n\t\twMain30: alpha(\"#0A6ED1\", 0.3),\n\t\tw30: \"#B6D4F1\",\n\t\tw10: \"#E7F1FA\",\n\t\tw60: \"#6CA8E3\",\n\t\tw100: \"#0961B9\"\n\t},\n\n\tprimary: {\n\t\tw100: \"#07529C\",\n\t\tw90: \"#0961B9\",\n\t\twMain: \"#0A6ED1\",\n\t\tw60: \"#6CA8E3\",\n\t\tw40: \"#9DC5ED\",\n\t\tw20: \"#CEE2F6\",\n\t\tw10: \"#E7F1FA\",\n\n\t\ttext: {\n\t\t\twMain: \"#32363A\",\n\t\t\tw100: \"#000000\",\n\t\t\tw10: \"#FFFFFF\"\n\t\t}\n\t},\n\n\tsecondary: {\n\t\tw80: \"#5D6E7F\",\n\t\tw70: \"#5D6E7F\",\n\t\tw8040: alpha(\"#5D6E7F\", 0.4),\n\t\tw100: \"#000000\",\n\t\twMain: \"#89919A\",\n\t\tw40: \"#D0D3D7\",\n\t\tw20: \"#E7E9EB\",\n\t\tw10: \"#F3F4F5\",\n\n\t\ttext: {\n\t\t\twMain: \"#6A6D70\",\n\t\t\tw50: \"#D2D3D4\"\n\t\t}\n\t},\n\n\tbackground: {\n\t\tw100: \"#021B2F\",\n\t\twMain: \"#354A5F\",\n\t\tw20: \"#EDEFF0\",\n\t\tw10: \"#FFFFFF\"\n\t},\n\n\tinfo: {\n\t\tw100: \"#0964BE\",\n\t\twMain: \"#0A6ED1\",\n\t\tw70: \"#91C8F6\",\n\t\tw30: \"#C6DEF6\",\n\t\tw20: \"#DDECFA\",\n\t\tw10: \"#F5FAFF\"\n\t},\n\n\terror: {\n\t\tw100: \"#9E0000\",\n\t\twMain: \"#BB0000\",\n\t\tw70: \"#FF8888\",\n\t\tw30: \"#F1BCBC\",\n\t\tw20: \"#F8D4D4\",\n\t\tw10: \"#FFEBEB\"\n\t},\n\n\twarning: {\n\t\tw100: \"#D16100\",\n\t\twMain: \"#E9730C\",\n\t\tw70: \"#FABD64\",\n\t\tw30: \"#FADDC3\",\n\t\tw20: \"#FCEADA\",\n\t\tw10: \"#FEF7F1\"\n\t},\n\n\tsuccess: {\n\t\tw100: \"#0D6431\",\n\t\twMain: \"#107E3E\",\n\t\tw70: \"#ABE2AB\",\n\t\tw30: \"#C4E4D1\",\n\t\tw20: \"#DAF0E4\",\n\t\tw10: \"#F1FDF6\"\n\t},\n\n\tstateLayer: {\n\t\tw10: alpha(\"#354A5F\", 0.1),\n\t\tw20: alpha(\"#354A5F\", 0.2)\n\t},\n\n\taccent: {\n\t\tn0: {\n\t\t\tw100: \"#0C656F\",\n\t\t\twMain: \"#0F828F\",\n\t\t\tw30: \"#B7DADD\",\n\t\t\tw10: \"#E7F3F4\"\n\t\t},\n\t\tn1: {\n\t\t\tw100: \"#3F44CF\",\n\t\t\twMain: \"#6367DE\",\n\t\t\tw60: \"#A1A4EB\",\n\t\t\tw30: \"#D0D2F5\",\n\t\t\tw20: \"#E0E1F8\",\n\t\t\tw10: \"#EFF0FC\"\n\t\t},\n\t\tn2: {\n\t\t\tw100: \"#205992\",\n\t\t\twMain: \"#286EB4\",\n\t\t\tw30: \"#BFD4E8\",\n\t\t\tw20: \"#D4E2F0\",\n\t\t\tw10: \"#EAF1F7\"\n\t\t},\n\t\tn3: {\n\t\t\tw100: \"#6E33AD\",\n\t\t\twMain: \"#925ACE\",\n\t\t\tw30: \"#DECEF0\",\n\t\t\tw10: \"#F4EFFA\"\n\t\t},\n\t\tn4: {\n\t\t\tw100: \"#A3055F\",\n\t\t\twMain: \"#BA066C\",\n\t\t\tw30: \"#F4BDDC\"\n\t\t},\n\t\tn5: {\n\t\t\tw100: \"#B12525\",\n\t\t\twMain: \"#D04343\",\n\t\t\tw30: \"#F1C0C0\",\n\t\t\tw60: \"#E38E8E\"\n\t\t},\n\t\tn6: {\n\t\t\tw100: \"#C26B00\",\n\t\t\twMain: \"#D08014\",\n\t\t\tw30: \"#F1D9B9\"\n\t\t},\n\t\tn7: {\n\t\t\tw100: \"#6A8A0A\",\n\t\t\twMain: \"#7CA10C\",\n\t\t\tw30: \"#D4E996\"\n\t\t},\n\t\tn8: {\n\t\t\tw100: \"#4E5F69\",\n\t\t\twMain: \"#647987\",\n\t\t\tw30: \"#D1D7DB\"\n\t\t},\n\t\tn9: {\n\t\t\twMain: \"#AA0808\"\n\t\t}\n\t},\n\n\tlearning: {\n\t\twMain: \"#033A6F\",\n\t\tw90: \"#022E59\",\n\t\tw100: \"#022343\",\n\t\tw20: \"#CDD8E2\",\n\t\tw10: \"#E6EBF1\"\n\t},\n\n\tdeprecated: {\n\t\tprimary: {\n\t\t\twMain: \"#0A6ED1\",\n\t\t\tw20: \"#CEE2F6\",\n\t\t\ttext: {\n\t\t\t\twMain: \"#32363A\",\n\t\t\t\tw10: \"#FFFFFF\"\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tw80: \"#5D6E7F\",\n\t\t\tw8040: alpha(\"#5D6E7F\", 0.4),\n\t\t\twMain: \"#89919A\",\n\t\t\tw20: \"#E7E9EB\",\n\t\t\tw10: \"#F3F4F5\",\n\t\t\tw30: alpha(\"#FFFFFF\", 0.7),\n\t\t\ttext: {\n\t\t\t\twMain: \"#6A6D70\",\n\t\t\t\tw50: \"#D2D3D4\"\n\t\t\t}\n\t\t},\n\t\taccent: {\n\t\t\tn2: {\n\t\t\t\twMain: \"#286EB4\"\n\t\t\t}\n\t\t},\n\t\t// new chip colours are TBD in UX\n\t\tchip: {\n\t\t\troyalBlue: \"#3A4880\",\n\t\t\tdarkBlue: \"#273749\",\n\t\t\topaqueBlue: \"rgba(58, 72, 128, 0.5)\",\n\t\t\tinfoBlue: \"#0964BE\",\n\t\t\tinfoBgBlue: \"#F5FAFF\",\n\t\t\twarnYellow: \"#D16100\",\n\t\t\twarnBgYellow: \"#FEF7F1\",\n\t\t\tlightGrey: \"#EBEDF2\",\n\t\t\tsmokeGrey: \"#DBDFE2\",\n\t\t\tdarkGrey: alpha(\"#000\", 0.8),\n\t\t\twhite: \"#FFF\",\n\t\t\tfill: \"rgba(0, 0, 0, 0.1)\",\n\t\t\thover: \"rgba(0, 0, 0, 0.2)\",\n\t\t\tinfoLightBgBlue: \"#E0F5FD\",\n\t\t\terrorBgRed: \"#FDEDED\",\n\t\t\tsuccessBgGreen: \"#DDF2EF\",\n\t\t\tinfoLightLabelBlue: \"#2C75B7\",\n\t\t\terrorLabel: \"#C33135\",\n\t\t\tsuccessLabel: \"#006B53\"\n\t\t}\n\t}\n};\n\n/**\n * ThemeMapping for the SAP palette\n */\nexport const sapThemeMapping: ThemeMapping = {\n\tpalette: palette,\n\n\t/**\n\t * @deprecated This scheme is deprecated and will be removed when no longer used.\n\t */\n\tpallete: {\n\t\terror: palette.error.wMain,\n\t\tgreyBackgroundLight: palette.background.w10,\n\t\tinfo: palette.brand.wMain,\n\t\tprimary: palette.brand.wMain,\n\t\tsecondary: palette.brand.wMain,\n\t\tsuccess: palette.success.wMain,\n\t\ttext: palette.primary.text.wMain,\n\t\tlabelText: palette.secondary.text.wMain,\n\t\ttextSecondary: palette.secondary.text.wMain,\n\t\twarning: palette.warning.wMain,\n\t\twhite: palette.background.w10,\n\n\t\t//toasts\n\t\ttoastText: palette.primary.text.wMain,\n\t\ttoastBackground: lighten(palette.brand.wMain, 0.9),\n\t\ttoastSuccessIcon: palette.success.wMain,\n\n\t\t//chips\n\t\tnonadminPill: alpha(palette.secondary.text.wMain, 0.1),\n\t\tadminPill: palette.secondary.text.wMain,\n\n\t\t//Button\n\t\tbuttonTextHoverBG: alpha(palette.brand.wMain, 0.1),\n\t\tbuttonOutlinedHoverBG: alpha(palette.brand.wMain, 0.1),\n\t\tbuttonLinkDisabled: alpha(palette.brand.wMain, 0.2),\n\t\tbuttonIconBG: alpha(palette.brand.wMain, 0.1)\n\t}\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { alpha } from \"@mui/system\";\nimport { ThemeMapping } from \"../../types/ThemeMapping\";\n\n/**\n * Base ThemeMapping for the Solace palette\n * TODO: replace with new palette at maas-react-components/src/theming/solace/themeMapping.ts\n */\nexport const baseThemeMapping: ThemeMapping = {\n\tpalette: {\n\t\tbrand: {\n\t\t\twMain: \"#00AD93\",\n\t\t\twMain30: alpha(\"#00AD93\", 0.35),\n\t\t\tw30: \"#00C895\",\n\t\t\tw10: \"#e8f9f4\",\n\t\t\tw60: \"#66DEBF\",\n\t\t\tw100: \"#009193\"\n\t\t},\n\n\t\tprimary: {\n\t\t\tw100: \"#05BDA1\",\n\t\t\tw90: \"#00CCAD\",\n\t\t\twMain: \"#00AD93\",\n\t\t\tw60: alpha(\"#00AD93\", 0.35),\n\t\t\tw40: alpha(\"#00AD93\", 0.35),\n\t\t\tw20: \"#F9F9F9\",\n\t\t\tw10: alpha(\"#000000\", 0.05),\n\n\t\t\ttext: {\n\t\t\t\tw100: \"#000000\",\n\t\t\t\twMain: alpha(\"#000000\", 0.8),\n\t\t\t\tw10: \"#FFFFFF\"\n\t\t\t}\n\t\t},\n\n\t\tsecondary: {\n\t\t\tw80: alpha(\"#000000\", 0.5),\n\t\t\tw70: alpha(\"#000000\", 0.35),\n\t\t\tw8040: alpha(\"#000000\", 0.35),\n\t\t\tw100: \"#000000\",\n\t\t\twMain: alpha(\"#000000\", 0.5),\n\t\t\tw40: alpha(\"#000000\", 0.2),\n\t\t\tw20: alpha(\"#000000\", 0.1),\n\t\t\tw10: alpha(\"#000000\", 0.05),\n\n\t\t\ttext: {\n\t\t\t\twMain: alpha(\"#000000\", 0.65),\n\t\t\t\tw50: alpha(\"#000000\", 0.35)\n\t\t\t}\n\t\t},\n\n\t\tbackground: {\n\t\t\tw100: \"\",\n\t\t\twMain: \"#3f3f3f\",\n\t\t\tw20: \"#F9F9F9\",\n\t\t\tw10: \"#FFFFFF\"\n\t\t},\n\n\t\tinfo: {\n\t\t\tw100: \"#0079FF\",\n\t\t\twMain: \"#0079FF\",\n\t\t\tw70: \"\",\n\t\t\tw30: \"\",\n\t\t\tw20: \"\",\n\t\t\tw10: \"#E6F2FF\"\n\t\t},\n\n\t\terror: {\n\t\t\tw100: \"#C33135\",\n\t\t\twMain: \"#D0021B\",\n\t\t\tw70: \"\",\n\t\t\tw30: alpha(\"#C33135\", 0.15),\n\t\t\tw20: alpha(\"#C33135\", 0.2),\n\t\t\tw10: \"#FAE6E8\"\n\t\t},\n\n\t\twarning: {\n\t\t\tw100: \"#F3AA24\",\n\t\t\twMain: \"#F3AA24\",\n\t\t\tw70: \"\",\n\t\t\tw30: \"\",\n\t\t\tw20: \"\",\n\t\t\tw10: \"#FEF7E9\"\n\t\t},\n\n\t\tsuccess: {\n\t\t\tw100: \"#00AD93\",\n\t\t\twMain: \"#7ED321\",\n\t\t\tw70: \"\",\n\t\t\tw30: \"\",\n\t\t\tw20: \"\",\n\t\t\tw10: alpha(\"#53AE0F\", 0.1)\n\t\t},\n\n\t\tstateLayer: {\n\t\t\tw10: alpha(\"#03223B\", 0.1),\n\t\t\tw20: alpha(\"#03223B\", 0.2)\n\t\t},\n\n\t\taccent: {\n\t\t\tn0: {\n\t\t\t\tw100: \"#2F51AD\",\n\t\t\t\twMain: \"#3C69E1\",\n\t\t\t\tw30: \"#C5D2F6\",\n\t\t\t\tw10: \"#ECF0FC\"\n\t\t\t},\n\t\t\tn1: {\n\t\t\t\tw100: \"#1F284C\",\n\t\t\t\twMain: \"#3A4880\",\n\t\t\t\tw30: \"#C4C8D9\",\n\t\t\t\tw60: \"#8991B3\",\n\t\t\t\tw20: \"#D8DAE6\",\n\t\t\t\tw10: \"#EBEDF2\"\n\t\t\t},\n\t\t\tn2: {\n\t\t\t\tw100: \"#165E64\",\n\t\t\t\twMain: \"#00AD93\",\n\t\t\t\tw30: \"#B3DEDF\",\n\t\t\t\tw20: \"#CCE9E9\",\n\t\t\t\tw10: alpha(\"#009193\", 0.1)\n\t\t\t},\n\t\t\tn3: {\n\t\t\t\tw100: \"#542D75\",\n\t\t\t\twMain: \"#7841A8\",\n\t\t\t\tw30: \"#D7C6E5\",\n\t\t\t\tw10: \"#F2ECF6\"\n\t\t\t},\n\t\t\tn4: {\n\t\t\t\tw100: \"#951379\",\n\t\t\t\twMain: \"#CB1AA5\",\n\t\t\t\tw30: \"#F2C4E8\"\n\t\t\t},\n\t\t\tn5: {\n\t\t\t\tw100: \"#D03C1B\",\n\t\t\t\twMain: \"#E67E22\",\n\t\t\t\tw30: \"#FCCEC7\",\n\t\t\t\tw60: \"#FAA397\"\n\t\t\t},\n\t\t\tn6: {\n\t\t\t\tw100: \"#DE7E00\",\n\t\t\t\twMain: \"#FCA829\",\n\t\t\t\tw30: \"#FEE5BF\"\n\t\t\t},\n\t\t\tn7: {\n\t\t\t\tw100: \"#2DADE1\",\n\t\t\t\twMain: \"#7CD3F6\",\n\t\t\t\tw30: \"#CBEDFB\"\n\t\t\t},\n\t\t\tn8: {\n\t\t\t\tw100: \"#4F5A63\",\n\t\t\t\twMain: \"#6A6A6A\",\n\t\t\t\tw30: \"#DBDFE2\"\n\t\t\t},\n\t\t\tn9: {\n\t\t\t\twMain: \"#DA162D\"\n\t\t\t}\n\t\t},\n\n\t\tlearning: {\n\t\t\twMain: \"#033A6F\",\n\t\t\tw90: \"#022E59\",\n\t\t\tw100: \"#022343\",\n\t\t\tw20: \"#CDD8E2\",\n\t\t\tw10: \"#E6EBF1\"\n\t\t},\n\n\t\tdeprecated: {\n\t\t\tprimary: {\n\t\t\t\twMain: alpha(\"#000000\", 0.8),\n\t\t\t\tw20: alpha(\"#000000\", 0.1),\n\t\t\t\ttext: {\n\t\t\t\t\twMain: \"#00AD93\",\n\t\t\t\t\tw10: alpha(\"#FFFFFF\", 0.9)\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecondary: {\n\t\t\t\tw80: alpha(\"#000000\", 0.8),\n\t\t\t\tw8040: alpha(\"#000000\", 0.2),\n\t\t\t\twMain: alpha(\"#000000\", 0.35),\n\t\t\t\tw20: alpha(\"#000000\", 0.05),\n\t\t\t\tw10: alpha(\"#000000\", 0.05),\n\t\t\t\tw30: alpha(\"#FFFFFF\", 0.7),\n\t\t\t\ttext: {\n\t\t\t\t\twMain: alpha(\"#000000\", 0.55),\n\t\t\t\t\tw50: alpha(\"#000000\", 0.55)\n\t\t\t\t}\n\t\t\t},\n\t\t\taccent: {\n\t\t\t\tn2: {\n\t\t\t\t\twMain: \"#00C895\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t// new chip colours are TBD in UX\n\t\t\tchip: {\n\t\t\t\troyalBlue: \"#3A4880\",\n\t\t\t\tdarkBlue: \"#273749\",\n\t\t\t\topaqueBlue: \"rgba(58, 72, 128, 0.5)\",\n\t\t\t\tinfoBlue: \"#0079FF\",\n\t\t\t\tinfoBgBlue: alpha(\"#0079FF\", 0.1),\n\t\t\t\twarnYellow: \"#F3AA24\",\n\t\t\t\twarnBgYellow: alpha(\"#F3AA24\", 0.1),\n\t\t\t\tlightGrey: \"#EBEDF2\",\n\t\t\t\tsmokeGrey: \"#DBDFE2\",\n\t\t\t\tdarkGrey: alpha(\"#000\", 0.8),\n\t\t\t\twhite: \"#FFF\",\n\t\t\t\tfill: \"rgba(0, 0, 0, 0.1)\",\n\t\t\t\thover: \"rgba(0, 0, 0, 0.2)\",\n\t\t\t\tinfoLightBgBlue: \"#E0F5FD\",\n\t\t\t\terrorBgRed: \"#FDEDED\",\n\t\t\t\tsuccessBgGreen: \"#DDF2EF\",\n\t\t\t\tinfoLightLabelBlue: \"#2C75B7\",\n\t\t\t\terrorLabel: \"#C33135\",\n\t\t\t\tsuccessLabel: \"#006B53\"\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * @deprecated This scheme is deprecated and will be removed when no longer used.\n\t */\n\tpallete: {\n\t\terror: \"#C33135\",\n\t\tgreyBackgroundLight: \"#f9f9f9\",\n\t\tinfo: \"#0079ff\",\n\t\tprimary: \"#00ad93\",\n\t\tsecondary: \"#00ccad\",\n\t\tsuccess: \"#7ed321\",\n\t\ttext: alpha(\"#000000\", 0.8),\n\t\tlabelText: alpha(\"#000000\", 0.65),\n\t\ttextSecondary: alpha(\"#000000\", 0.55),\n\t\twarning: \"#f3aa24\",\n\t\twhite: \"#FFFFFF\",\n\n\t\t//toasts\n\t\ttoastText: \"#FFFFFF\",\n\t\ttoastBackground: \"#474747\",\n\t\ttoastSuccessIcon: \"#94EAD4\",\n\n\t\t//chips\n\t\tnonadminPill: alpha(\"#000000\", 0.1),\n\t\tadminPill: alpha(\"#000000\", 0.35),\n\n\t\t//Button - these seem more inconsistent with others, can other variations be used?\n\t\tbuttonTextHoverBG: alpha(\"#000000\", 0.05),\n\t\tbuttonOutlinedHoverBG: \"#f4f5f5\",\n\t\tbuttonLinkDisabled: alpha(\"#000000\", 0.2),\n\t\tbuttonIconBG: \"EEEEEE\"\n\t}\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { alpha } from \"@mui/material\";\nimport { ThemeMapping, ThemeMappingPalette } from \"../../types/ThemeMapping\";\nimport { baseThemeMapping } from \"../base/themeMapping\";\n\nconst palette: ThemeMappingPalette = {\n\tbrand: {\n\t\twMain: \"#00C895\",\n\t\twMain30: alpha(\"#00C895\", 0.3),\n\t\tw30: \"#B3EFDF\",\n\t\tw10: \"#E6FAF4\",\n\t\tw60: \"#66DEBF\",\n\t\tw100: \"#00AD93\"\n\t},\n\n\tprimary: {\n\t\tw100: \"#01374E\",\n\t\tw90: \"#014968\",\n\t\twMain: \"#015B82\",\n\t\tw60: \"#679DB4\",\n\t\tw40: \"#99BDCD\",\n\t\tw20: \"#CCDEE6\",\n\t\tw10: \"#E6EFF2\",\n\n\t\ttext: {\n\t\t\twMain: \"#273749\",\n\t\t\tw100: \"#000000\",\n\t\t\tw10: \"#FFFFFF\"\n\t\t}\n\t},\n\n\tsecondary: {\n\t\tw70: \"#536574\",\n\t\tw80: \"#354E62\",\n\t\tw8040: alpha(\"#354E62\", 0.4),\n\t\tw100: \"#000000\",\n\t\twMain: \"#8790A0\",\n\t\tw40: \"#CFD3D9\",\n\t\tw20: \"#E7E9EC\",\n\t\tw10: \"#F3F4F6\",\n\n\t\ttext: {\n\t\t\twMain: \"#647481\",\n\t\t\tw50: \"#B1B9C0\"\n\t\t}\n\t},\n\n\tbackground: {\n\t\tw100: \"#021B2F\",\n\t\twMain: \"#03223B\",\n\t\tw20: \"#F7F8F9\",\n\t\tw10: \"#FFFFFF\"\n\t},\n\n\tinfo: {\n\t\tw100: \"#2B71B1\",\n\t\twMain: \"#0591D3\",\n\t\tw70: \"#7CD3F6\",\n\t\tw30: \"#B4DEF2\",\n\t\tw20: \"#CDE9F6\",\n\t\tw10: \"#E6F4FB\"\n\t},\n\n\terror: {\n\t\tw100: \"#C33135\",\n\t\twMain: \"#E94C4E\",\n\t\tw70: \"#ED9B9D\",\n\t\tw30: \"#F8C9CA\",\n\t\tw20: \"#FBDBDC\",\n\t\tw10: \"#FDEDED\"\n\t},\n\n\twarning: {\n\t\tw100: \"#E1681F\",\n\t\twMain: \"#FF8E2B\",\n\t\tw70: \"#F8C785\",\n\t\tw30: \"#FFDDBF\",\n\t\tw20: \"#FFE8D5\",\n\t\tw10: \"#FFF4EA\"\n\t},\n\n\tsuccess: {\n\t\tw100: \"#006B53\",\n\t\twMain: \"#009A80\",\n\t\tw70: \"#6FCCBC\",\n\t\tw30: \"#B3E1D9\",\n\t\tw20: \"#CCEBE6\",\n\t\tw10: \"#E6F5F2\"\n\t},\n\n\tstateLayer: {\n\t\tw10: alpha(\"#03223B\", 0.1),\n\t\tw20: alpha(\"#03223B\", 0.2)\n\t},\n\n\taccent: {\n\t\tn0: {\n\t\t\tw100: \"#2F51AD\",\n\t\t\twMain: \"#3C69E1\",\n\t\t\tw30: \"#C5D2F6\",\n\t\t\tw10: \"#ECF0FC\"\n\t\t},\n\t\tn1: {\n\t\t\tw100: \"#1F284C\",\n\t\t\twMain: \"#3A4880\",\n\t\t\tw30: \"#C4C8D9\",\n\t\t\tw60: \"#8991B3\",\n\t\t\tw20: \"#D8DAE6\",\n\t\t\tw10: \"#EBEDF2\"\n\t\t},\n\t\tn2: {\n\t\t\tw100: \"#165E64\",\n\t\t\twMain: \"#009193\",\n\t\t\tw30: \"#B3DEDF\",\n\t\t\tw20: \"#CCE9E9\",\n\t\t\tw10: \"#E6F4F4\"\n\t\t},\n\t\tn3: {\n\t\t\tw100: \"#542D75\",\n\t\t\twMain: \"#7841A8\",\n\t\t\tw30: \"#D7C6E5\",\n\t\t\tw10: \"#F2ECF6\"\n\t\t},\n\t\tn4: {\n\t\t\tw100: \"#951379\",\n\t\t\twMain: \"#CB1AA5\",\n\t\t\tw30: \"#F2C4E8\"\n\t\t},\n\t\tn5: {\n\t\t\tw100: \"#D03C1B\",\n\t\t\twMain: \"#F66651\",\n\t\t\tw30: \"#FCCEC7\",\n\t\t\tw60: \"#FAA397\"\n\t\t},\n\t\tn6: {\n\t\t\tw100: \"#DE7E00\",\n\t\t\twMain: \"#FCA829\",\n\t\t\tw30: \"#FEE5BF\"\n\t\t},\n\t\tn7: {\n\t\t\tw100: \"#2DADE1\",\n\t\t\twMain: \"#7CD3F6\",\n\t\t\tw30: \"#CBEDFB\"\n\t\t},\n\t\tn8: {\n\t\t\tw100: \"#4F5A63\",\n\t\t\twMain: \"#86939E\",\n\t\t\tw30: \"#DBDFE2\"\n\t\t},\n\t\tn9: {\n\t\t\twMain: \"#DA162D\"\n\t\t}\n\t},\n\tlearning: {\n\t\twMain: \"#033A6F\",\n\t\tw90: \"#022E59\",\n\t\tw100: \"#022343\",\n\t\tw20: \"#CDD8E2\",\n\t\tw10: \"#E6EBF1\"\n\t},\n\n\tdeprecated: {\n\t\tprimary: {\n\t\t\twMain: \"#015B82\",\n\t\t\tw20: \"#CCDEE6\",\n\t\t\ttext: {\n\t\t\t\twMain: \"#273749\",\n\t\t\t\tw10: \"#FFFFFF\"\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tw80: \"#354E62\",\n\t\t\tw8040: alpha(\"#354E62\", 0.4),\n\t\t\twMain: \"#8790A0\",\n\t\t\tw20: \"#E7E9EC\",\n\t\t\tw10: \"#F3F4F6\",\n\t\t\tw30: \"#8790A0\",\n\t\t\ttext: {\n\t\t\t\twMain: \"#647481\",\n\t\t\t\tw50: \"#B1B9C0\"\n\t\t\t}\n\t\t},\n\t\taccent: {\n\t\t\tn2: {\n\t\t\t\twMain: \"#009193\"\n\t\t\t}\n\t\t},\n\t\t// new chip colours are TBD in UX\n\t\tchip: {\n\t\t\troyalBlue: \"#3A4880\",\n\t\t\tdarkBlue: \"#273749\",\n\t\t\topaqueBlue: \"rgba(58, 72, 128, 0.5)\",\n\t\t\tinfoBlue: \"#2B71B1\",\n\t\t\tinfoBgBlue: \"#E6F4FB\",\n\t\t\twarnYellow: \"#E1681F\",\n\t\t\twarnBgYellow: \"#FFF4EA\",\n\t\t\tlightGrey: \"#EBEDF2\",\n\t\t\tsmokeGrey: \"#DBDFE2\",\n\t\t\tdarkGrey: alpha(\"#000\", 0.8),\n\t\t\twhite: \"#FFF\",\n\t\t\tfill: \"rgba(0, 0, 0, 0.1)\",\n\t\t\thover: \"rgba(0, 0, 0, 0.2)\",\n\t\t\tinfoLightLabelBlue: \"#E0F5FD\",\n\t\t\terrorBgRed: \"#FDEDED\",\n\t\t\tsuccessBgGreen: \"#DDF2EF\",\n\t\t\tinfoLightBgBlue: \"#2C75B7\",\n\t\t\terrorLabel: \"#C33135\",\n\t\t\tsuccessLabel: \"#006B53\"\n\t\t}\n\t}\n};\n\n/**\n * ThemeMapping for a new Solace palette\n */\nexport const solaceNewThemeMapping: ThemeMapping = {\n\t...baseThemeMapping, // for deprecated key support\n\tpalette: palette\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum SupportedThemes {\n\tsap = \"sap\",\n\tsolace = \"solace\",\n\tboomi = \"boomi\",\n\tnewSolace = \"new-solace\"\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { alpha } from \"@mui/material\";\nimport { ThemeMapping, ThemeMappingPalette } from \"../../types/ThemeMapping\";\nimport { baseThemeMapping } from \"../base/themeMapping\";\n\nconst palette: ThemeMappingPalette = {\n\tbrand: {\n\t\twMain: \"#033D58\",\n\t\twMain30: alpha(\"#033D58\", 0.3),\n\t\tw30: \"#BDCBD1\",\n\t\tw10: \"#E6ECEE\",\n\t\tw60: \"#A9DFDA\",\n\t\tw100: \"#02293B\"\n\t},\n\n\tprimary: {\n\t\tw100: \"#011B27\",\n\t\tw90: \"#02293B\",\n\t\twMain: \"#033D58\",\n\t\tw60: \"#4D7689\",\n\t\tw40: \"#7091A0\",\n\t\tw20: \"#BDCBD1\",\n\t\tw10: \"#E6ECEE\",\n\n\t\ttext: {\n\t\t\twMain: \"#262626\",\n\t\t\tw100: \"#000000\",\n\t\t\tw10: \"#FFFFFF\"\n\t\t}\n\t},\n\n\tsecondary: {\n\t\tw70: \"#404040\",\n\t\tw80: \"#404040\",\n\t\tw8040: alpha(\"#404040\", 0.4),\n\t\tw100: \"#000\",\n\t\twMain: \"#033D58\",\n\t\tw40: \"#CCC\",\n\t\tw20: \"#E5E5E5\",\n\t\tw10: \"#EDEDED\",\n\n\t\ttext: {\n\t\t\twMain: \"#707070\",\n\t\t\tw50: \"#cccccc\"\n\t\t}\n\t},\n\n\tbackground: {\n\t\tw100: \"#1A1A1A\",\n\t\twMain: \"#262626\",\n\t\tw20: \"#F5F5F5\",\n\t\tw10: \"#ffffff\"\n\t},\n\n\tinfo: {\n\t\tw100: \"#1C4070\",\n\t\twMain: \"#0357AC\",\n\t\tw70: \"#1B72C3\",\n\t\tw30: \"#3894DC\",\n\t\tw20: \"#67ABE1\",\n\t\tw10: \"#E6EEF7\"\n\t},\n\n\terror: {\n\t\tw100: \"#913345\",\n\t\twMain: \"#C73D58\",\n\t\tw70: \"#FA4A6C\",\n\t\tw30: \"#FA8A98\",\n\t\tw20: \"#F8BEC3\",\n\t\tw10: \"#F8DFE1\"\n\t},\n\n\twarning: {\n\t\tw100: \"#7B4E23\",\n\t\twMain: \"#A16123\",\n\t\tw70: \"#CF761B\",\n\t\tw30: \"#EC9932\",\n\t\tw20: \"#F4C57F\",\n\t\tw10: \"#F6EFE9\"\n\t},\n\n\tsuccess: {\n\t\tw100: \"#226347\",\n\t\twMain: \"#157F57\",\n\t\tw70: \"#0EA076\",\n\t\tw30: \"#71BF9D\",\n\t\tw20: \"#A3D8BE\",\n\t\tw10: \"#D5EADF\"\n\t},\n\n\tstateLayer: {\n\t\tw10: alpha(\"#354A5F\", 0.1),\n\t\tw20: alpha(\"#354A5F\", 0.2)\n\t},\n\n\taccent: {\n\t\tn0: {\n\t\t\tw100: \"#E5634D\",\n\t\t\twMain: \"#FF7C66\",\n\t\t\tw30: \"#FFD8D1\",\n\t\t\tw10: \"#FFF2F0\"\n\t\t},\n\t\tn1: {\n\t\t\tw100: \"#8F4D8D\",\n\t\t\twMain: \"#9E559C\",\n\t\t\tw30: \"#E9C4E3\",\n\t\t\tw60: \"#C76CB8\",\n\t\t\tw20: \"#F4E2F1\",\n\t\t\tw10: \"#F9F0F8\"\n\t\t},\n\t\tn2: {\n\t\t\tw100: \"#22626F\",\n\t\t\twMain: \"#127B87\",\n\t\t\tw30: \"#A9DFDA\",\n\t\t\tw20: \"#CCEBE8\",\n\t\t\tw10: \"#EFF7F6\"\n\t\t},\n\t\tn3: {\n\t\t\tw100: \"#664E7C\",\n\t\t\twMain: \"#8462A5\",\n\t\t\tw30: \"#CFC0DD\",\n\t\t\tw10: \"#F3EFF6\"\n\t\t},\n\t\tn4: {\n\t\t\tw100: \"#3E40B5\",\n\t\t\twMain: \"#4B4FE2\",\n\t\t\tw30: \"#C7C8F5\"\n\t\t},\n\t\tn5: {\n\t\t\tw100: \"#B2301A\",\n\t\t\twMain: \"#D94A3A\",\n\t\t\tw30: \"#FDD3D3\",\n\t\t\tw60: \"#F47874\"\n\t\t},\n\t\tn6: {\n\t\t\tw100: \"#EBA400\",\n\t\t\twMain: \"#FCB900\",\n\t\t\tw30: \"#FEEAB3\"\n\t\t},\n\t\tn7: {\n\t\t\tw100: \"#F57594\",\n\t\t\twMain: \"#F78DA7\",\n\t\t\tw30: \"#FABCCB\"\n\t\t},\n\t\tn8: {\n\t\t\tw100: \"#808080\",\n\t\t\twMain: \"#969696\",\n\t\t\tw30: \"#E0E0E0\"\n\t\t},\n\t\tn9: {\n\t\t\twMain: \"#C71739\"\n\t\t}\n\t},\n\n\tlearning: {\n\t\twMain: \"#033A6F\",\n\t\tw90: \"#022E59\",\n\t\tw100: \"#022343\",\n\t\tw20: \"#C5D8EA\",\n\t\tw10: \"#E9EFF6\"\n\t},\n\n\tdeprecated: {\n\t\tprimary: {\n\t\t\twMain: \"#033D58\",\n\t\t\tw20: \"#BDCBD1\",\n\t\t\ttext: {\n\t\t\t\twMain: \"#262626\",\n\t\t\t\tw10: \"#FFFFFF\"\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tw80: \"#404040\",\n\t\t\tw8040: alpha(\"#404040\", 0.4),\n\t\t\twMain: \"#033D58\",\n\t\t\tw20: \"#E5E5E5\",\n\t\t\tw10: \"#EDEDED\",\n\t\t\tw30: \"#033D58\",\n\t\t\ttext: {\n\t\t\t\twMain: \"#707070\",\n\t\t\t\tw50: \"#cccccc\"\n\t\t\t}\n\t\t},\n\t\taccent: {\n\t\t\tn2: {\n\t\t\t\twMain: \"#127B87\"\n\t\t\t}\n\t\t},\n\t\t// new chip colours are TBD in UX\n\t\tchip: {\n\t\t\troyalBlue: \"#3A4880\",\n\t\t\tdarkBlue: \"#273749\",\n\t\t\topaqueBlue: \"rgba(58, 72, 128, 0.5)\",\n\t\t\tinfoBlue: \"#0079FF\",\n\t\t\tinfoBgBlue: alpha(\"#0079FF\", 0.1),\n\t\t\twarnYellow: \"#F3AA24\",\n\t\t\twarnBgYellow: alpha(\"#F3AA24\", 0.1),\n\t\t\tlightGrey: \"#EBEDF2\",\n\t\t\tsmokeGrey: \"#DBDFE2\",\n\t\t\tdarkGrey: alpha(\"#000\", 0.8),\n\t\t\twhite: \"#FFF\",\n\t\t\tfill: \"rgba(0, 0, 0, 0.1)\",\n\t\t\thover: \"rgba(0, 0, 0, 0.2)\",\n\t\t\tinfoLightBgBlue: \"#E0F5FD\",\n\t\t\terrorBgRed: \"#FDEDED\",\n\t\t\tsuccessBgGreen: \"#DDF2EF\",\n\t\t\tinfoLightLabelBlue: \"#2C75B7\",\n\t\t\terrorLabel: \"#C33135\",\n\t\t\tsuccessLabel: \"#006B53\"\n\t\t}\n\t}\n};\n\n/**\n * ThemeMapping for a new Solace palette\n */\nexport const boomiThemeMapping: ThemeMapping = {\n\t...baseThemeMapping, // for deprecated key support\n\tpalette: palette\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { sapThemeMapping } from \"./sap/themeMapping\";\nimport { baseThemeMapping } from \"./base/themeMapping\";\nimport { solaceNewThemeMapping } from \"./solace/themeMapping\";\nimport { ThemeMapping } from \"../types/ThemeMapping\";\nimport { SupportedThemes } from \"../types/supportedThemes\";\nimport { boomiThemeMapping } from \"./boomi/themeMapping\";\n\nexport let appTheme: SupportedThemes | undefined;\n\n/**\n * To retrieve theme mappings in components simply call getThemeMappings().\n * appTheme would be initialized in the first theme retrieval step, so don't need to pass it down everytime.\n * Also exposing this method, so mfe can also access these themeMappings directly in the code.\n */\nconst getThemeMappings = (theme?: SupportedThemes): ThemeMapping => {\n\tif (theme) appTheme = theme;\n\tif (appTheme === SupportedThemes.sap) {\n\t\treturn sapThemeMapping;\n\t} else if (appTheme === SupportedThemes.newSolace) {\n\t\treturn solaceNewThemeMapping;\n\t} else if (appTheme === SupportedThemes.boomi) {\n\t\treturn boomiThemeMapping;\n\t} else {\n\t\treturn baseThemeMapping;\n\t}\n};\n\nexport default getThemeMappings;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport SolaceMenu from \"../SolaceMenu\";\nimport { SolaceMenuItemProps } from \"../SolaceMenuItem\";\nimport MoreHorizIcon from \"@mui/icons-material/MoreHoriz\";\nimport { styled } from \"@mui/material\";\nimport ContentControlMenu, { ContentControlProps } from \"./components/ContentControlMenu\";\nimport { appTheme } from \"../../theming/themeUtils\";\nimport { SupportedThemes } from \"../../types/supportedThemes\";\nexport interface TableColumn {\n\tfield: string;\n\theaderName: string;\n\tclass?: string;\n\twidth?: number | string;\n\tsortable: boolean;\n\tsortDirection?: SORT_DIRECTION;\n\tdisableHiding: boolean;\n\tresizable?: boolean;\n\thasNoCell?: boolean;\n\tisHidden?: boolean;\n\ttooltip?: boolean;\n\tisNumerical?: boolean;\n}\n\nexport interface TableRow {\n\tid: string;\n\t[key: string]: unknown;\n}\n\nexport interface TableActionMenuItem extends SolaceMenuItemProps {\n\tcallback: (row: TableRow) => void;\n}\n\nexport interface CustomContentDefinition {\n\ttype: string;\n\tlabel: string;\n}\n\nexport enum SELECTION_TYPE {\n\tSINGLE = \"single\",\n\tMULTI = \"multi\",\n\tNONE = \"none\"\n}\n\nexport enum SORT_DIRECTION {\n\tASC = \"asc\",\n\tDCS = \"desc\"\n}\n\nexport const StyledTableRow = styled(\"tr\")(({ theme }) => ({\n\tborderCollapse: \"collapse\",\n\tborderBottom: `1px solid ${theme.palette.ux.secondary.w20}`,\n\t\"&.expanded\": {\n\t\tborderBottom: \"none\",\n\t\t\"&:hover\": {\n\t\t\t\"+ tr.expanded\": {\n\t\t\t\t\":not(.selected)\": {\n\t\t\t\t\tbackgroundColor: theme.palette.ux.secondary.w10\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"+ tr.expanded.selected\": {\n\t\t\t\t\":not(.selected)\": {\n\t\t\t\t\tbackgroundColor: theme.palette.ux.secondary.w10\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\theight: \"40px\",\n\t\"&.header\": {\n\t\theight: \"56px\",\n\t\tborderBottom: \"none\"\n\t},\n\n\t\"&.clickable\": {\n\t\tcursor: \"pointer\"\n\t},\n\n\t\"&.selected\": {\n\t\t// remove \"solace\" option when new palette is adopted\n\t\tbackgroundColor: appTheme === SupportedThemes.solace ? theme.palette.ux.brand.w10 : theme.palette.ux.secondary.w20,\n\t\t// selected effect for expanded sibling row\n\t\t\"+ tr.expanded.selected\": {\n\t\t\tbackgroundColor:\n\t\t\t\t// remove \"solace\" option when new palette is adopted\n\t\t\t\tappTheme === SupportedThemes.solace ? theme.palette.ux.brand.w10 : theme.palette.ux.secondary.w20\n\t\t}\n\t},\n\n\t\"&:hover\": {\n\t\t\":not(.selected)\": {\n\t\t\tbackground: theme.palette.ux.secondary.w10\n\t\t},\n\n\t\t\"&.header\": {\n\t\t\tbackground: \"transparent\"\n\t\t}\n\t},\n\n\t\"td:first-of-type, th:first-of-type\": {\n\t\tpaddingLeft: `${theme.spacing(2)}`\n\t}\n}));\n\nexport const StyledTableData = styled(\"td\")(({ theme }) => ({\n\tborderCollapse: \"collapse\",\n\tpadding: `${theme.spacing()} ${theme.spacing(2)}`,\n\theight: \"24px\",\n\t\".cursor-pointer\": {\n\t\tcursor: \"pointer\"\n\t},\n\t\"&.checkbox, &.expand-icon\": {\n\t\tpaddingRight: 0\n\t},\n\t\"&.expand-icon .chevron\": {\n\t\tfill: theme.palette.ux.secondary.wMain,\n\t\t\"&.expanded\": {\n\t\t\ttransform: \"rotate(90deg)\"\n\t\t}\n\t},\n\t\"button:hover\": {\n\t\tbackgroundColor: theme.palette.ux.deprecated.primary.w20\n\t},\n\tmaxWidth: \"0\",\n\toverflow: \"hidden\",\n\ttextOverflow: \"ellipsis\",\n\twhiteSpace: \"nowrap\",\n\tborderRadius: 0\n}));\n\nexport const StyledTableNumberData = styled(StyledTableData)(() => ({\n\ttextAlign: \"right\"\n}));\n\nexport const StyledExpandedTableRow = styled(\"tr\")(({ theme }) => ({\n\tborderCollapse: \"collapse\",\n\tborderBottom: `1px solid ${theme.palette.ux.secondary.w20}`,\n\t\"&.clickable\": {\n\t\tcursor: \"pointer\"\n\t}\n}));\n\nexport const StyledExpandedTableData = styled(\"td\")({\n\tborderCollapse: \"collapse\",\n\tpadding: 0,\n\tmaxWidth: \"0\",\n\toverflow: \"hidden\",\n\ttextOverflow: \"ellipsis\",\n\twhiteSpace: \"nowrap\",\n\tborderRadius: 0\n});\n\nexport const StyledTableHeader = styled(\"th\", { shouldForwardProp: (prop) => prop !== \"width\" })<{ width?: string }>(\n\t({ theme, width }) => ({\n\t\tborderCollapse: \"collapse\",\n\t\tpadding: `0 ${theme.spacing(2)}`,\n\t\tfontSize: theme.typography.fontSize,\n\t\tfontWeight: 500,\n\t\tminWidth: \"30px\",\n\t\theight: \"48px\",\n\t\ttextAlign: \"left\",\n\t\twidth: width,\n\t\t// allow table header to be sticky\n\t\tposition: \"sticky\",\n\t\ttop: 0,\n\t\tzIndex: 20,\n\t\tbackgroundColor: theme.palette.ux.background.w10,\n\t\tboxShadow: `inset 0 -1px 0 ${theme.palette.ux.secondary.w20}`,\n\t\t\"& .header\": {\n\t\t\tminWidth: \"50px\",\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tcolor: theme.palette.ux.primary.text.wMain,\n\t\t\t\"&.sortable\": {\n\t\t\t\tposition: \"relative\",\n\t\t\t\tcursor: \"pointer\",\n\t\t\t\t// resting/active\n\t\t\t\t\"svg.asc, svg.desc\": {\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tfill: theme.palette.ux.secondary.wMain\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// resting/inactive\n\t\t\t\t\"svg.unsorted\": {\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tfill: theme.palette.ux.secondary.w40\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// hover\n\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\"svg.asc, svg.desc, svg.unsorted\": {\n\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\tfill: theme.palette.ux.primary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// pressed\n\t\t\t\t\"&:active\": {\n\t\t\t\t\t\"svg.asc, svg.desc, svg.unsorted\": {\n\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\tfill: theme.palette.ux.primary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"&.checkbox-column, &.expand-column\": {\n\t\t\tminWidth: 0, // For Firefox support, see: https://developer.mozilla.org/en-US/docs/Web/CSS/min-width\n\t\t\tpaddingRight: 0,\n\t\t\twidth: \"24px\"\n\t\t},\n\t\t\"&.icon-column\": {\n\t\t\twidth: \"50px\",\n\t\t\ttextAlign: \"center\"\n\t\t},\n\t\t\"&.number-column .header\": {\n\t\t\tjustifyContent: \"flex-end\"\n\t\t}\n\t})\n);\n\nexport const addEmptyHeaderCell = (): React.ReactNode => {\n\treturn <StyledTableHeader className=\"icon-column\" key={\"emptyHeaderCell\"}></StyledTableHeader>;\n};\n\nexport const addEmptyRowCell = (row: TableRow): React.ReactNode => {\n\treturn <StyledTableData key={row.id + \"_emptyRowCell\"}></StyledTableData>;\n};\n\nexport const addActionMenuIcon = (row: TableRow, actionMenuItems: TableActionMenuItem[]): React.ReactNode => {\n\tconst menuItems =\n\t\tactionMenuItems && actionMenuItems.length > 0\n\t\t\t? actionMenuItems.map((item) => ({\n\t\t\t\t\t...item,\n\t\t\t\t\tonMenuItemClick: () => {\n\t\t\t\t\t\titem.callback(row);\n\t\t\t\t\t}\n\t\t\t }))\n\t\t\t: null;\n\tconst isDisabled = row.disabledRowActionMenu as boolean;\n\treturn (\n\t\t<StyledTableData\n\t\t\tkey={row.id + \"_actionMenu\"}\n\t\t\tstyle={{ textAlign: \"center\", paddingTop: \"4px\", paddingBottom: \"4px\" }}\n\t\t>\n\t\t\t{menuItems && (\n\t\t\t\t<SolaceMenu\n\t\t\t\t\tbuttonProps={{\n\t\t\t\t\t\tisDisabled: isDisabled,\n\t\t\t\t\t\tvariant: \"icon\",\n\t\t\t\t\t\tchildren: <MoreHorizIcon />,\n\t\t\t\t\t\ttitle: \"More Actions\"\n\t\t\t\t\t}}\n\t\t\t\t\titems={menuItems}\n\t\t\t\t\tanchorOrigin={{\n\t\t\t\t\t\tvertical: \"center\",\n\t\t\t\t\t\thorizontal: \"left\"\n\t\t\t\t\t}}\n\t\t\t\t\ttransformOrigin={{\n\t\t\t\t\t\tvertical: \"top\",\n\t\t\t\t\t\thorizontal: \"right\"\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</StyledTableData>\n\t);\n};\n\nexport const addColumnHidingControl = ({\n\tcolumns,\n\tdisplayedColumnsChangedCallback,\n\tcustomContentDefinitions,\n\tdisplayedCustomContent,\n\tcustomContentDisplayChangeCallback,\n\tcustomMenuActions\n}: ContentControlProps): React.ReactNode => {\n\treturn (\n\t\t<StyledTableHeader key={\"column-hiding-control\"} className=\"icon-column\">\n\t\t\t<ContentControlMenu\n\t\t\t\tid={\"column-hiding-control\"}\n\t\t\t\tcolumns={columns}\n\t\t\t\tdisplayedColumnsChangedCallback={displayedColumnsChangedCallback}\n\t\t\t\tcustomContentDefinitions={customContentDefinitions}\n\t\t\t\tdisplayedCustomContent={displayedCustomContent}\n\t\t\t\tcustomContentDisplayChangeCallback={customContentDisplayChangeCallback}\n\t\t\t\tcustomMenuActions={customMenuActions}\n\t\t\t/>\n\t\t</StyledTableHeader>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable sonarjs/cognitive-complexity */\nimport React, { useCallback, useMemo } from \"react\";\nimport {\n\tSELECTION_TYPE,\n\tStyledTableData,\n\tStyledTableRow,\n\tTableActionMenuItem,\n\tTableColumn,\n\tTableRow,\n\taddActionMenuIcon,\n\taddEmptyRowCell\n} from \"../table-utils\";\nimport SolaceTooltip from \"../../SolaceToolTip\";\nimport SolaceCheckBox, { SolaceCheckboxChangeEvent } from \"../../form/SolaceCheckBox\";\n\nimport clsx from \"clsx\";\nimport { ExpandableRowOptions } from \"../SolaceTable\";\nimport { useExpandableRows } from \"./useExpandableRows\";\n\nconst DEFAULT_TOOLTIP_PLACEMENT = \"bottom-end\";\n\nconst useTableBodyRenderHelper = ({\n\t// pass down from SolaceTable props\n\trows,\n\tselectionType,\n\tselectedRowIds,\n\tdisabledRowIds,\n\tindependentRowHighlight,\n\thighlightedRowId,\n\trenderCustomRowCells,\n\trowActionMenuItems,\n\trenderCustomRowActionItem,\n\trowHoverCallback,\n\thasColumnHiding = false,\n\tdisplayedColumns,\n\texpandableRowOptions,\n\t// state and callbacks defined in useSolaceTable\n\tinternalDisplayedColumns,\n\thandleDisplayColumnsChanged,\n\thandleRowSelectionChange,\n\thandleRowClick\n}: {\n\t// pass down from SolaceTable props\n\trows: TableRow[];\n\tselectionType: SELECTION_TYPE;\n\tselectedRowIds: string[];\n\tdisabledRowIds?: string[];\n\tindependentRowHighlight: boolean;\n\thighlightedRowId?: string | null;\n\trenderCustomRowCells?: (row: TableRow) => JSX.Element[];\n\trowActionMenuItems?: TableActionMenuItem[];\n\trenderCustomRowActionItem?: (row: TableRow) => TableActionMenuItem[];\n\trowHoverCallback?: (row: TableRow) => void;\n\thasColumnHiding?: boolean;\n\tdisplayedColumns?: TableColumn[];\n\texpandableRowOptions?: ExpandableRowOptions;\n\t// state and callbacks defined in useSolaceTable\n\tinternalDisplayedColumns: TableColumn[] | undefined;\n\thandleDisplayColumnsChanged: (cols: TableColumn[]) => void;\n\thandleRowSelectionChange: (event: SolaceCheckboxChangeEvent) => void;\n\thandleRowClick: (clickedRow: TableRow) => void;\n}) => {\n\tconst addCheckBoxToRows = useCallback(\n\t\t(row: TableRow): React.ReactNode => {\n\t\t\treturn (\n\t\t\t\t<StyledTableData key={`${row.id}_rowCheckbox`} className=\"checkbox\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t\t<SolaceCheckBox\n\t\t\t\t\t\tname={`${row.id}`}\n\t\t\t\t\t\tonChange={handleRowSelectionChange}\n\t\t\t\t\t\tchecked={selectedRowIds.includes(row.id)}\n\t\t\t\t\t\tdisabled={disabledRowIds?.includes(row.id)}\n\t\t\t\t\t/>\n\t\t\t\t</StyledTableData>\n\t\t\t);\n\t\t},\n\t\t[selectedRowIds, disabledRowIds, handleRowSelectionChange]\n\t);\n\n\tconst renderRowActionItems = useCallback(\n\t\t(row: TableRow): React.ReactNode[] => {\n\t\t\tif (renderCustomRowActionItem) {\n\t\t\t\treturn [addActionMenuIcon(row, renderCustomRowActionItem(row))];\n\t\t\t} else if (rowActionMenuItems && rowActionMenuItems.length > 0) {\n\t\t\t\treturn [addActionMenuIcon(row, rowActionMenuItems)];\n\t\t\t} else if (!rowActionMenuItems && hasColumnHiding) {\n\t\t\t\treturn [addEmptyRowCell(row)];\n\t\t\t}\n\t\t\treturn [];\n\t\t},\n\t\t[hasColumnHiding, renderCustomRowActionItem, rowActionMenuItems]\n\t);\n\n\tconst hasRowActionItems = useMemo(() => {\n\t\treturn (\n\t\t\t!!renderCustomRowActionItem ||\n\t\t\t(rowActionMenuItems && rowActionMenuItems.length > 0) ||\n\t\t\t(!rowActionMenuItems && hasColumnHiding)\n\t\t);\n\t}, [hasColumnHiding, renderCustomRowActionItem, rowActionMenuItems]);\n\n\tconst renderConfiguredRowCells = useCallback(\n\t\t(\n\t\t\trow: TableRow,\n\t\t\tdisplayedColumnsParam: TableColumn[] | undefined,\n\t\t\tinternalDisplayedColumnsParam: TableColumn[] | undefined\n\t\t): React.ReactNode[] => {\n\t\t\tif (renderCustomRowCells) {\n\t\t\t\treturn renderCustomRowCells(row);\n\t\t\t} else {\n\t\t\t\tconst columnsToDisplay = (displayedColumnsParam ? displayedColumnsParam : internalDisplayedColumnsParam) ?? [];\n\t\t\t\treturn columnsToDisplay.map((col) => {\n\t\t\t\t\tif (!col.hasNoCell && !col.isHidden) {\n\t\t\t\t\t\tconst key = row.id + \"_\" + col.field;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<StyledTableData key={key}>\n\t\t\t\t\t\t\t\t{col.tooltip && (\n\t\t\t\t\t\t\t\t\t<SolaceTooltip\n\t\t\t\t\t\t\t\t\t\tvariant=\"overflow\"\n\t\t\t\t\t\t\t\t\t\ttitle={row[col.field] as string}\n\t\t\t\t\t\t\t\t\t\tplacement={DEFAULT_TOOLTIP_PLACEMENT}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{row[col.field] as string | JSX.Element}\n\t\t\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!col.tooltip && <span>{row[col.field] as React.ReactNode}</span>}\n\t\t\t\t\t\t\t</StyledTableData>\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[renderCustomRowCells]\n\t);\n\n\tconst createRowNodes = useCallback((): React.ReactNode[] => {\n\t\treturn rows.map((row: TableRow) => (\n\t\t\t<StyledTableRow\n\t\t\t\tkey={row.id}\n\t\t\t\tonMouseEnter={rowHoverCallback ? () => rowHoverCallback(row) : undefined}\n\t\t\t\tonClick={() => handleRowClick(row)}\n\t\t\t\tclassName={clsx({\n\t\t\t\t\tselected:\n\t\t\t\t\t\tselectionType === SELECTION_TYPE.MULTI && independentRowHighlight\n\t\t\t\t\t\t\t? highlightedRowId === row.id\n\t\t\t\t\t\t\t: selectedRowIds.includes(row.id),\n\t\t\t\t\tclickable:\n\t\t\t\t\t\t(selectionType === SELECTION_TYPE.MULTI || selectionType === SELECTION_TYPE.SINGLE) &&\n\t\t\t\t\t\t!disabledRowIds?.includes(row.id),\n\t\t\t\t\tdisabled: disabledRowIds?.includes(row.id)\n\t\t\t\t})}\n\t\t\t\tdata-qa={row.id}\n\t\t\t>\n\t\t\t\t{[\n\t\t\t\t\tselectionType === SELECTION_TYPE.MULTI && addCheckBoxToRows(row),\n\t\t\t\t\t...renderConfiguredRowCells(row, displayedColumns, internalDisplayedColumns),\n\t\t\t\t\t...renderRowActionItems(row)\n\t\t\t\t]}\n\t\t\t</StyledTableRow>\n\t\t));\n\t}, [\n\t\trows,\n\t\trowHoverCallback,\n\t\tselectionType,\n\t\tindependentRowHighlight,\n\t\thighlightedRowId,\n\t\tselectedRowIds,\n\t\tdisabledRowIds,\n\t\taddCheckBoxToRows,\n\t\trenderConfiguredRowCells,\n\t\tdisplayedColumns,\n\t\tinternalDisplayedColumns,\n\t\trenderRowActionItems,\n\t\thandleRowClick\n\t]);\n\n\tconst expandableRows = useExpandableRows({\n\t\tenabled: expandableRowOptions !== undefined && expandableRowOptions !== null,\n\t\trows,\n\t\tdisplayedColumns: displayedColumns,\n\t\tinternalDisplayedColumns: internalDisplayedColumns,\n\t\tselectionType,\n\t\thandleRowClick,\n\t\tselectedRowIds,\n\t\tindependentRowHighlight,\n\t\thighlightedRowId,\n\t\taddCheckBoxToRows,\n\t\trenderConfiguredRowCells,\n\t\thasRowActionItems,\n\t\trenderRowActionItems,\n\t\trowHoverCallback,\n\t\thasColumnHiding,\n\t\tdisplayedColumnsChangedCallback: handleDisplayColumnsChanged,\n\t\tallowToggle: expandableRowOptions?.allowToggle,\n\t\tselectRowWhenClickOnChildren: expandableRowOptions?.selectRowWhenClickOnChildren,\n\t\trenderChildren: expandableRowOptions?.renderChildren,\n\t\texpandedRowIds: expandableRowOptions?.expandedRowIds,\n\t\tsetExpandedRowIds: expandableRowOptions?.setExpandedRowIds\n\t});\n\n\t// if expandableRowOptions is set, then create expanded row nodes, otherwise createRowNodes\n\treturn expandableRowOptions ? expandableRows.createRowNodes() : createRowNodes();\n};\n\nexport default useTableBodyRenderHelper;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport {\n\tSELECTION_TYPE,\n\tTableRow,\n\tTableColumn,\n\tStyledTableData,\n\tStyledTableRow,\n\tStyledExpandedTableRow,\n\tStyledExpandedTableData\n} from \"../table-utils\";\nimport { ArrowRightIcon } from \"../../../resources/icons/ArrowRight\";\nimport clsx from \"clsx\";\n\nexport interface ExpandableTableRowProps {\n\tenabled: boolean;\n\trows: TableRow[];\n\tdisplayedColumns?: TableColumn[];\n\tinternalDisplayedColumns?: TableColumn[];\n\tselectionType: SELECTION_TYPE;\n\tselectedRowIds: string[];\n\thandleRowClick: (row: TableRow) => void;\n\tindependentRowHighlight: boolean;\n\thighlightedRowId?: string | null;\n\taddCheckBoxToRows: (row: TableRow) => React.ReactNode;\n\trenderConfiguredRowCells: (\n\t\trow: TableRow,\n\t\tdisplayedColumns: TableColumn[] | undefined,\n\t\tinternalDisplayedColumns: TableColumn[] | undefined\n\t) => React.ReactNode[];\n\thasRowActionItems: boolean;\n\trenderRowActionItems: (row: TableRow) => React.ReactNode[];\n\trowHoverCallback?: (row: TableRow) => void;\n\thasColumnHiding?: boolean;\n\tdisplayedColumnsChangedCallback?: (displayedColumns: TableColumn[]) => void;\n\tallowToggle?: boolean;\n\tselectRowWhenClickOnChildren?: boolean;\n\trenderChildren?: (row: TableRow) => React.ReactNode;\n\texpandedRowIds?: string[];\n\tsetExpandedRowIds?: (rowIds: string[]) => void;\n}\n\nexport const useExpandableRows = ({\n\tenabled,\n\trows,\n\tdisplayedColumns,\n\tinternalDisplayedColumns,\n\tselectionType,\n\tselectedRowIds,\n\thandleRowClick,\n\tindependentRowHighlight,\n\thighlightedRowId,\n\taddCheckBoxToRows,\n\trenderConfiguredRowCells,\n\thasRowActionItems,\n\trenderRowActionItems,\n\trowHoverCallback,\n\thasColumnHiding,\n\tdisplayedColumnsChangedCallback,\n\tallowToggle = true,\n\tselectRowWhenClickOnChildren = true,\n\trenderChildren,\n\texpandedRowIds,\n\tsetExpandedRowIds\n}: ExpandableTableRowProps) => {\n\tconst [displayedColumnsCount, setDisplayedColumnsCount] = useState<number>();\n\n\tuseEffect(() => {\n\t\tif (!enabled) {\n\t\t\treturn;\n\t\t}\n\t\tlet numberOfDisplayedDataCols = 0;\n\t\tconst columnsToDisplay = displayedColumns ? displayedColumns : internalDisplayedColumns;\n\t\tif (columnsToDisplay && columnsToDisplay.length > 0) {\n\t\t\tcolumnsToDisplay.forEach((col) => {\n\t\t\t\tif (!col.isHidden) {\n\t\t\t\t\tnumberOfDisplayedDataCols++;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet numberOfNonDataCols = 0;\n\n\t\t\tif (allowToggle) numberOfNonDataCols++;\n\t\t\tif (selectionType === SELECTION_TYPE.MULTI) numberOfNonDataCols++;\n\t\t\tif (hasRowActionItems) numberOfNonDataCols++;\n\t\t\tsetDisplayedColumnsCount(numberOfDisplayedDataCols + numberOfNonDataCols);\n\t\t}\n\t}, [\n\t\trows,\n\t\tenabled,\n\t\tdisplayedColumns,\n\t\tinternalDisplayedColumns,\n\t\tdisplayedColumnsChangedCallback,\n\t\thasColumnHiding,\n\t\tallowToggle,\n\t\tselectionType,\n\t\thasRowActionItems\n\t]);\n\n\tfunction addChevronToRows(row: TableRow): React.ReactNode | void {\n\t\tif (!allowToggle) {\n\t\t\treturn;\n\t\t}\n\t\tconst rowExpanded = expandedRowIds && expandedRowIds?.findIndex((id) => id === row.id) >= 0;\n\t\treturn (\n\t\t\t<StyledTableData\n\t\t\t\tkey={`${row.id}_chevron`}\n\t\t\t\tclassName={\"expand-icon\"}\n\t\t\t\tonClick={(e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tif (expandedRowIds) {\n\t\t\t\t\t\tconst foundIndex = expandedRowIds.findIndex((id) => id === row.id);\n\t\t\t\t\t\tif (foundIndex >= 0) {\n\t\t\t\t\t\t\tconst newState = expandedRowIds.slice(0);\n\t\t\t\t\t\t\tnewState.splice(foundIndex, 1);\n\t\t\t\t\t\t\tsetExpandedRowIds?.(newState);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetExpandedRowIds?.([...expandedRowIds, row.id]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<ArrowRightIcon className={`cursor-pointer chevron ${rowExpanded ? \"expanded\" : \"\"}`} />\n\t\t\t</StyledTableData>\n\t\t);\n\t}\n\n\tfunction renderChildrenSection(row: TableRow, expanded: boolean): React.ReactNode {\n\t\treturn (\n\t\t\texpanded &&\n\t\t\trenderChildren && (\n\t\t\t\t<StyledExpandedTableRow\n\t\t\t\t\tkey={`${row.id}_childrenTr`}\n\t\t\t\t\tclassName={clsx({\n\t\t\t\t\t\tselected:\n\t\t\t\t\t\t\tselectionType === SELECTION_TYPE.MULTI && independentRowHighlight\n\t\t\t\t\t\t\t\t? highlightedRowId === row.id\n\t\t\t\t\t\t\t\t: selectedRowIds?.includes(row.id),\n\t\t\t\t\t\tclickable: selectionType === SELECTION_TYPE.MULTI || selectionType === SELECTION_TYPE.SINGLE,\n\t\t\t\t\t\texpanded: expanded\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tif (selectRowWhenClickOnChildren) handleRowClick(row);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{/* Make displayedColumnsCount part of key to force expanded content to rerender when column show/hide changes. This solves issue where sometimes <td> with colspan not expanding to full table width */}\n\t\t\t\t\t<StyledExpandedTableData\n\t\t\t\t\t\tkey={`${row.id}_childrenTd_${displayedColumnsCount}`}\n\t\t\t\t\t\tcolSpan={displayedColumnsCount}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderChildren(row)}\n\t\t\t\t\t</StyledExpandedTableData>\n\t\t\t\t</StyledExpandedTableRow>\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction createExpandableRowNodes(): React.ReactNode[] {\n\t\treturn rows.map((row: TableRow) => {\n\t\t\tconst expanded = !allowToggle || !!expandedRowIds?.find((id) => id === row.id);\n\t\t\treturn (\n\t\t\t\t<React.Fragment key={`${row.id}_wrapper`}>\n\t\t\t\t\t<StyledTableRow\n\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\tonMouseEnter={rowHoverCallback ? () => rowHoverCallback(row) : undefined}\n\t\t\t\t\t\tonClick={() => handleRowClick(row)}\n\t\t\t\t\t\tclassName={clsx({\n\t\t\t\t\t\t\tselected:\n\t\t\t\t\t\t\t\tselectionType === SELECTION_TYPE.MULTI && independentRowHighlight\n\t\t\t\t\t\t\t\t\t? highlightedRowId === row.id\n\t\t\t\t\t\t\t\t\t: selectedRowIds?.includes(row.id),\n\t\t\t\t\t\t\tclickable: selectionType === SELECTION_TYPE.MULTI || selectionType === SELECTION_TYPE.SINGLE,\n\t\t\t\t\t\t\texpanded: expanded\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tdata-qa={row.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t{[\n\t\t\t\t\t\t\tselectionType === SELECTION_TYPE.MULTI && addCheckBoxToRows(row),\n\t\t\t\t\t\t\taddChevronToRows(row),\n\t\t\t\t\t\t\t...renderConfiguredRowCells(row, displayedColumns, internalDisplayedColumns),\n\t\t\t\t\t\t\t...renderRowActionItems(row)\n\t\t\t\t\t\t]}\n\t\t\t\t\t</StyledTableRow>\n\t\t\t\t\t{renderChildrenSection(row, expanded)}\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\t\t});\n\t}\n\n\treturn {\n\t\tcreateRowNodes: createExpandableRowNodes\n\t};\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon, useTheme } from \"@mui/material\";\n\nexport interface SortIconProps {\n\tfill?: string;\n}\n\nexport const AscendingSortIcon = ({ fill }: SortIconProps): JSX.Element => {\n\tconst defaultFill = useTheme().palette.ux.secondary.wMain;\n\treturn (\n\t\t<SvgIcon className=\"asc\" sx={{ width: \"16px\", height: \"10px\" }} viewBox=\"0 0 16 10\" fill=\"none\">\n\t\t\t<g transform=\"translate(9,0)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M3.91344 0.413412L6.15855 2.65852C6.46226 2.96224 6.23806 3.49063 5.80323 3.49595L1.25738 3.55158C0.822545 3.5569 0.611212 3.03383 0.922448 2.72259L3.22318 0.421858C3.41613 0.228918 3.72516 0.225137 3.91344 0.413412Z\"\n\t\t\t\t\tfill={fill ?? defaultFill}\n\t\t\t\t/>\n\t\t\t\t<g transform=\"translate(0,6)\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M3.88969 3.71893L6.21811 1.39051C6.5331 1.07552 6.31001 0.536952 5.86456 0.536952L1.20771 0.536952C0.762253 0.536952 0.539169 1.07552 0.854152 1.39051L3.18258 3.71893C3.37784 3.91419 3.69442 3.91419 3.88969 3.71893Z\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tfillOpacity=\"0\"\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n\nexport const DescendingSortIcon = ({ fill }: SortIconProps): JSX.Element => {\n\tconst defaultFill = useTheme().palette.ux.secondary.wMain;\n\treturn (\n\t\t<SvgIcon className=\"desc\" sx={{ width: \"16px\", height: \"10px\" }} viewBox=\"0 0 16 10\" fill=\"none\">\n\t\t\t<g transform=\"translate(9,0)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M3.91344 0.413412L6.15855 2.65852C6.46226 2.96224 6.23806 3.49063 5.80323 3.49595L1.25738 3.55158C0.822545 3.5569 0.611212 3.03383 0.922448 2.72259L3.22318 0.421858C3.41613 0.228918 3.72516 0.225137 3.91344 0.413412Z\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tfillOpacity=\"0\"\n\t\t\t\t/>\n\t\t\t\t<g transform=\"translate(0,6)\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M3.88969 3.71893L6.21811 1.39051C6.5331 1.07552 6.31001 0.536952 5.86456 0.536952L1.20771 0.536952C0.762253 0.536952 0.539169 1.07552 0.854152 1.39051L3.18258 3.71893C3.37784 3.91419 3.69442 3.91419 3.88969 3.71893Z\"\n\t\t\t\t\t\tfill={fill ?? defaultFill}\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n\nexport const UnsortedIcon = ({ fill }: SortIconProps): JSX.Element => {\n\tconst defaultFill = useTheme().palette.ux.secondary.w40;\n\treturn (\n\t\t<SvgIcon className=\"unsorted\" sx={{ width: \"16px\", height: \"10px\" }} viewBox=\"0 0 16 10\" fill=\"none\">\n\t\t\t<g transform=\"translate(9,0)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M3.91344 0.413412L6.15855 2.65852C6.46226 2.96224 6.23806 3.49063 5.80323 3.49595L1.25738 3.55158C0.822545 3.5569 0.611212 3.03383 0.922448 2.72259L3.22318 0.421858C3.41613 0.228918 3.72516 0.225137 3.91344 0.413412Z\"\n\t\t\t\t\tfill={fill ?? defaultFill}\n\t\t\t\t/>\n\t\t\t\t<g transform=\"translate(0,6)\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M3.88969 3.71893L6.21811 1.39051C6.5331 1.07552 6.31001 0.536952 5.86456 0.536952L1.20771 0.536952C0.762253 0.536952 0.539169 1.07552 0.854152 1.39051L3.18258 3.71893C3.37784 3.91419 3.69442 3.91419 3.88969 3.71893Z\"\n\t\t\t\t\t\tfill={fill ?? defaultFill}\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable sonarjs/cognitive-complexity */\nimport React, { useCallback } from \"react\";\nimport {\n\tCustomContentDefinition,\n\tSELECTION_TYPE,\n\tSORT_DIRECTION,\n\tStyledTableHeader,\n\tStyledTableRow,\n\tTableActionMenuItem,\n\tTableColumn,\n\tTableRow,\n\taddColumnHidingControl,\n\taddEmptyHeaderCell\n} from \"../table-utils\";\nimport SolaceTooltip from \"../../SolaceToolTip\";\nimport SolaceCheckBox, { SolaceCheckboxChangeEvent } from \"../../form/SolaceCheckBox\";\nimport { AscendingSortIcon, DescendingSortIcon, UnsortedIcon } from \"../../../resources/icons/SortIcons\";\n\nimport { ExpandableRowOptions } from \"../SolaceTable\";\nimport { SolaceMenuItemProps } from \"../../SolaceMenuItem\";\nimport { cloneDeep } from \"lodash\";\n\nconst DEFAULT_TOOLTIP_PLACEMENT = \"bottom-end\";\nconst SELECT_ALL_TOOLTIP = \"Select all on this page\";\nconst DESELECT_ALL_TOOLTIP = \"Deselect all on this page\";\nconst SELECT_ALL_PAGES_TOOLTIP = \"Select all pages\";\nconst DESELECT_ALL_PAGES_TOOLTIP = \"Deselect all pages\";\n\nfunction getTooltip(selectAll: boolean, crossPageSelectionEnabled: boolean) {\n\tif (selectAll) {\n\t\treturn crossPageSelectionEnabled ? SELECT_ALL_PAGES_TOOLTIP : SELECT_ALL_TOOLTIP;\n\t} else {\n\t\treturn crossPageSelectionEnabled ? DESELECT_ALL_PAGES_TOOLTIP : DESELECT_ALL_TOOLTIP;\n\t}\n}\n\nconst useTableHeaderRenderHelper = ({\n\t// pass down from SolaceTable props\n\tselectionType,\n\tsortedColumn,\n\trowActionMenuItems,\n\trenderCustomRowActionItem,\n\theaderHoverCallback,\n\thasColumnHiding,\n\tdisplayedColumns,\n\texpandableRowOptions,\n\tcustomContentDefinitions,\n\tdisplayedCustomContent,\n\tcustomContentDisplayChangeCallback,\n\tcustomMenuActions,\n\t// state and callbacks defined in useSolaceTable\n\tcrossPageSelectionEnabled,\n\tselectAll,\n\tindeterminate,\n\thandleSelectAllChange,\n\tinternalSortedColumn,\n\thandleSort,\n\tinternalDisplayedColumns,\n\thandleDisplayColumnsChanged\n}: {\n\t// pass down from SolaceTable props\n\tselectionType: SELECTION_TYPE;\n\tsortedColumn: TableColumn | undefined;\n\trowActionMenuItems?: TableActionMenuItem[];\n\trenderCustomRowActionItem?: (row: TableRow) => TableActionMenuItem[];\n\theaderHoverCallback?: () => void;\n\thasColumnHiding?: boolean;\n\tdisplayedColumns?: TableColumn[];\n\texpandableRowOptions?: ExpandableRowOptions;\n\tcustomContentDefinitions?: CustomContentDefinition[];\n\tdisplayedCustomContent?: string[];\n\tcustomContentDisplayChangeCallback?: (type: string, isHidden: boolean) => void;\n\tcustomMenuActions?: SolaceMenuItemProps[];\n\t// state and callbacks defined in useSolaceTable\n\tcrossPageSelectionEnabled: boolean;\n\tselectAll: boolean;\n\tindeterminate: boolean;\n\thandleSelectAllChange: (event: SolaceCheckboxChangeEvent) => void;\n\tinternalSortedColumn: TableColumn | undefined;\n\thandleSort: (\n\t\tnewColumn: TableColumn,\n\t\tsortedColumn: TableColumn | undefined,\n\t\tinternalSortedColumn: TableColumn | undefined\n\t) => void;\n\tinternalDisplayedColumns: TableColumn[] | undefined;\n\thandleDisplayColumnsChanged: (cols: TableColumn[]) => void;\n}) => {\n\tconst addCheckBoxToHeader = useCallback((): React.ReactNode | void => {\n\t\tif (selectionType === SELECTION_TYPE.MULTI) {\n\t\t\treturn (\n\t\t\t\t<StyledTableHeader key={\"selectAllCheckbox\"} className=\"checkbox-column\">\n\t\t\t\t\t<SolaceTooltip\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tselectAll || indeterminate\n\t\t\t\t\t\t\t\t? getTooltip(false, crossPageSelectionEnabled)\n\t\t\t\t\t\t\t\t: getTooltip(true, crossPageSelectionEnabled)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplacement={\"bottom-start\"}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<SolaceCheckBox\n\t\t\t\t\t\t\t\tname={\"selectAllCheckbox\"}\n\t\t\t\t\t\t\t\tonChange={handleSelectAllChange}\n\t\t\t\t\t\t\t\tchecked={selectAll || indeterminate}\n\t\t\t\t\t\t\t\tindeterminate={indeterminate}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t</StyledTableHeader>\n\t\t\t);\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t}, [selectionType, selectAll, indeterminate, handleSelectAllChange, crossPageSelectionEnabled]);\n\n\tconst addChevronToHeader = useCallback((): React.ReactNode | void => {\n\t\tif (expandableRowOptions?.allowToggle) {\n\t\t\treturn <StyledTableHeader key={\"expandHeader\"} className=\"expand-column\"></StyledTableHeader>;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t}, [expandableRowOptions?.allowToggle]);\n\n\tconst addConfigureColumnHeader = useCallback(\n\t\t(columnsToDisplay: TableColumn[], columnToSort: TableColumn | undefined): React.ReactNode | void => {\n\t\t\treturn columnsToDisplay.map(\n\t\t\t\t(col) =>\n\t\t\t\t\t!col.isHidden && (\n\t\t\t\t\t\t<StyledTableHeader\n\t\t\t\t\t\t\tkey={col.headerName}\n\t\t\t\t\t\t\tclassName={`${\n\t\t\t\t\t\t\t\t(col.hasNoCell && \"icon-column\") || (col.isNumerical && \"number-column\") || col.class || \"\"\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\twidth={col.width ? (typeof col.width === \"number\" ? col.width + \"px\" : col.width) : \"auto\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={`${col.sortable ? \"sortable header\" : \"header\"}`}\n\t\t\t\t\t\t\t\tonClick={() => (col.sortable ? handleSort(col, sortedColumn, internalSortedColumn) : undefined)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SolaceTooltip variant=\"overflow\" title={col.headerName} placement={DEFAULT_TOOLTIP_PLACEMENT}>\n\t\t\t\t\t\t\t\t\t{col.headerName}\n\t\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t\t\t{columnToSort?.field === col.field && col.sortable && (\n\t\t\t\t\t\t\t\t\t<SolaceTooltip title=\"Sort\" placement={DEFAULT_TOOLTIP_PLACEMENT}>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t{columnToSort.sortDirection === SORT_DIRECTION.ASC ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<AscendingSortIcon />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<DescendingSortIcon />\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{columnToSort?.field !== col.field && col.sortable && (\n\t\t\t\t\t\t\t\t\t<SolaceTooltip title=\"Sort\" placement={DEFAULT_TOOLTIP_PLACEMENT}>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t<UnsortedIcon />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</StyledTableHeader>\n\t\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[handleSort, internalSortedColumn, sortedColumn]\n\t);\n\n\tconst createHeaderNodes = useCallback(() => {\n\t\tconst columnToSort = sortedColumn ? sortedColumn : internalSortedColumn;\n\t\tconst columnsToDisplay = cloneDeep((displayedColumns ? displayedColumns : internalDisplayedColumns) ?? []);\n\n\t\treturn (\n\t\t\t<StyledTableRow\n\t\t\t\tkey=\"headerRow\"\n\t\t\t\tclassName=\"header\"\n\t\t\t\tonMouseEnter={headerHoverCallback ? () => headerHoverCallback() : undefined}\n\t\t\t>\n\t\t\t\t{[\n\t\t\t\t\taddCheckBoxToHeader(),\n\t\t\t\t\taddChevronToHeader(),\n\t\t\t\t\taddConfigureColumnHeader(columnsToDisplay, columnToSort),\n\t\t\t\t\t(!!rowActionMenuItems || renderCustomRowActionItem) && !hasColumnHiding && addEmptyHeaderCell(),\n\t\t\t\t\thasColumnHiding &&\n\t\t\t\t\t\taddColumnHidingControl({\n\t\t\t\t\t\t\tcolumns: columnsToDisplay,\n\t\t\t\t\t\t\tdisplayedColumnsChangedCallback: handleDisplayColumnsChanged,\n\t\t\t\t\t\t\tcustomContentDefinitions: customContentDefinitions,\n\t\t\t\t\t\t\tdisplayedCustomContent: displayedCustomContent,\n\t\t\t\t\t\t\tcustomContentDisplayChangeCallback: customContentDisplayChangeCallback,\n\t\t\t\t\t\t\tcustomMenuActions: customMenuActions\n\t\t\t\t\t\t})\n\t\t\t\t]}\n\t\t\t</StyledTableRow>\n\t\t);\n\t}, [\n\t\tsortedColumn,\n\t\tinternalSortedColumn,\n\t\tdisplayedColumns,\n\t\tinternalDisplayedColumns,\n\t\theaderHoverCallback,\n\t\taddCheckBoxToHeader,\n\t\taddChevronToHeader,\n\t\taddConfigureColumnHeader,\n\t\trowActionMenuItems,\n\t\trenderCustomRowActionItem,\n\t\thasColumnHiding,\n\t\thandleDisplayColumnsChanged,\n\t\tcustomContentDefinitions,\n\t\tdisplayedCustomContent,\n\t\tcustomContentDisplayChangeCallback,\n\t\tcustomMenuActions\n\t]);\n\n\treturn createHeaderNodes();\n};\n\nexport default useTableHeaderRenderHelper;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CircularProgress, styled, useTheme } from \"@mui/material\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { BASE_SIZE_TYPES } from \"../types/sizing\";\n\n/**\n * Helper component to show the circular spinner with capability to display the value in progress of something\n * Please see https://mui.com/material-ui/api/circular-progress/ to view all the props supported.\n * @param props SolaceCircularProgress\n * @returns JSX.Element\n */\n\nconst PROGRESS_SIZES: BASE_SIZE_TYPES = {\n\txs: 14,\n\tsm: 24,\n\tmd: 30,\n\tlg: 42\n};\n\nconst Container = styled(\"div\")<{ inline?: boolean }>(({ theme, inline }) => ({\n\twidth: \"fit-content\",\n\tdisplay: \"flex\",\n\tflexDirection: inline ? \"row\" : \"column\",\n\talignItems: \"center\",\n\tgap: theme.spacing(1.5)\n}));\n\nexport interface SolaceCircularProgressProps extends SolaceComponentProps {\n\t/**\n\t * \tText to display below the spinner\n\t */\n\tmessage?: string | JSX.Element;\n\n\t/**\n\t * \tUsed to locate this component for testing purpose\n\t */\n\tdataQa?: string;\n\t/**\n\t * \tThe variant to use.\n\t */\n\tvariant?: \"indeterminate\" | \"determinate\";\n\t/**\n\t * \tuseful only if the variant is \"determinate\". Represent the progress value\n\t */\n\tvalue?: number;\n\t/**\n\t * Size of the spinner\n\t */\n\tsize?: keyof BASE_SIZE_TYPES;\n\t/**\n\t * If `true`, the shrink animation is disabled.\n\t * This only works if variant is `indeterminate`.\n\t * @default false\n\t */\n\tdisableShrink?: boolean;\n\t/**\n\t * If `true`, the spinner and message are displayed side by side.\n\t * @default false\n\t */\n\tinline?: boolean;\n}\n\nexport default function SolaceCircularProgress(props: SolaceCircularProgressProps): JSX.Element {\n\tconst { variant, value, size, disableShrink, dataQa, message, inline } = props;\n\treturn (\n\t\t<Container data-qa={dataQa ?? \"loading-spinner\"} inline={inline}>\n\t\t\t<CircularProgress\n\t\t\t\tvariant={variant ?? \"indeterminate\"}\n\t\t\t\tvalue={variant === \"determinate\" ? value : undefined}\n\t\t\t\tsize={PROGRESS_SIZES[size ?? \"sm\"]}\n\t\t\t\tdisableShrink={disableShrink}\n\t\t\t\tsx={{ color: useTheme().palette.ux.accent.n2.wMain }}\n\t\t\t/>\n\t\t\t{message && <div>{message}</div>}\n\t\t</Container>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useSolaceTable } from \"./hooks/useSolaceTable\";\nimport { styled } from \"@mui/material\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { SELECTION_TYPE, TableColumn, TableRow, TableActionMenuItem, CustomContentDefinition } from \"./table-utils\";\nimport SolaceCircularProgress from \"../SolaceCircularProgress\";\nimport { SolaceMenuItemProps } from \"../SolaceMenuItem\";\nimport { uniq } from \"lodash\";\n\ninterface TablePropType extends SolaceComponentProps {\n\t/**\n\t * Unique identifier for the button\n\t */\n\tid?: string;\n\t/**\n\t * Array of items to be displayed\n\t */\n\trows: TableRow[];\n\t/**\n\t * Array of columns to be rendered\n\t */\n\tcolumns: TableColumn[];\n\t/**\n\t * Selection Type enum: NONE, SINGLE, MULTI\n\t */\n\tselectionType: SELECTION_TYPE;\n\t/**\n\t * Controlled state for rows to be selected\n\t */\n\tselectedRowIds?: string[] | null;\n\t/**\n\t * If selection type is MULTI and independentRowHighlight is true, table row highlight is handled via row click only,\n\t * not affected by checkbox selection, default is false\n\t */\n\tindependentRowHighlight?: boolean;\n\t/**\n\t * Controlled state for a row to be highlighted\n\t */\n\thighlightedRowId?: string | null;\n\t/**\n\t * Make rows disabled by passing in the row IDs of the disabled rows.\n\t * Does not affect expandedable rows. Select all feature does not select the row.\n\t * Selection related properties can programatically check the disabled row.\n\t */\n\tdisabledRowIds?: string[];\n\t/**\n\t * Enables columns hiding\n\t */\n\thasColumnHiding?: boolean;\n\t/**\n\t * Controlled state for columns show and hide information\n\t */\n\tdisplayedColumns?: TableColumn[];\n\t/**\n\t * Function that is called when displayed columns change is requested\n\t */\n\tdisplayedColumnsChangedCallback?: (displayedColumns: TableColumn[]) => void;\n\t/**\n\t * Custom content definition to identify the attributes\n\t */\n\tcustomContentDefinitions?: CustomContentDefinition[];\n\t/**\n\t * Function that is called when custom content disply change is requested\n\t */\n\tcustomContentDisplayChangeCallback?: (type: string, isHidden: boolean) => void;\n\t/**\n\t * Controlled state for custom content to be displayed\n\t */\n\tdisplayedCustomContent?: string[];\n\t/**\n\t * Action menu items that apply to all rows\n\t */\n\trowActionMenuItems?: TableActionMenuItem[];\n\t/**\n\t * Controlled state for sorted column.\n\t */\n\tsortedColumn?: TableColumn | undefined;\n\t/**\n\t * Sort callback when sorted column change is requested\n\t */\n\tsortCallback: (column: TableColumn | undefined) => void;\n\t/**\n\t * Empty state message\n\t */\n\temptyStateMessage?: string;\n\t/**\n\t * Renders a custom empty state message\n\t */\n\trenderCustomEmptyState?: () => React.ReactNode;\n\t/**\n\t * Show emptyStateMessage or cunstomEmptyState when set to true\n\t */\n\tshowEmptyState?: boolean;\n\t/**\n\t * Selection changed callback, applicable when selection type is SINGLE or select type is MULTI and\n\t * crossPageRowSelectionSupported is false.\n\t */\n\tselectionChangedCallback?: (rows: TableRow[]) => void;\n\t/**\n\t * Row highlight changed callback, applicable when selection type is MULTI and independentRowHighlight is true\n\t */\n\trowHighlightChangedCallback?: (row: TableRow | null) => void;\n\t/**\n\t * Renders a custom row without predefined columns, such as checkbox column, expand/collapse column\n\t */\n\trenderCustomRowCells?: (row: TableRow) => JSX.Element[];\n\t/**\n\t * Renders action items for a row. If set at the same time as rowActionMenuItems, this callback takes precedence.\n\t */\n\trenderCustomRowActionItem?: (row: TableRow) => TableActionMenuItem[];\n\t/**\n\t * Header hover callback\n\t */\n\theaderHoverCallback?: () => void;\n\t/**\n\t * Row hover callback\n\t */\n\trowHoverCallback?: (row: TableRow) => void;\n\t/**\n\t * If option is set, the table row is expandable.\n\t */\n\texpandableRowOptions?: ExpandableRowOptions;\n\t/**\n\t * loading state\n\t */\n\tloading?: boolean;\n\t/**\n\t * loading state messaging\n\t */\n\tloadingMessage?: string;\n\t/**\n\t * Max Height for Solace Table\n\t */\n\tmaxHeight?: string;\n\t/**\n\t * Min Height for Solace Table\n\t */\n\tminHeight?: string;\n\t/**\n\t * Custom menu actions for Solace Table\n\t */\n\tcustomMenuActions?: SolaceMenuItemProps[];\n\t/**\n\t * This option is only applicable when selection type is MULTI. If set to true, selections made across different pages are remembered,\n\t * used in conjunction with totalObjectCount, selectedRowIds, deselectedRowIds, allPagesSelectedByDefault, and\n\t * crossPageSelectionChangedCallback. Default value is false.\n\t */\n\tcrossPageRowSelectionSupported?: boolean;\n\t/**\n\t * Total number of objects across all pages, applicable when crossPageRowSelectionSupported is true.\n\t * Default value is 0.\n\t */\n\ttotalObjectCount?: number;\n\t/**\n\t * This state is set to true once user checks Select All checkbox and set to false if user unchecks Select All checkbox,\n\t * applicable when crossPageRowSelectionSupported is true. Default value is false.\n\t */\n\tallPagesSelectedByDefault?: boolean;\n\t/**\n\t * Controlled state for rows to be deselected in all the pages that has been visited, applicable when crossPageRowSelectionSupported is true.\n\t * If same ID also exists in selectedRowIds, deselectedRowIds take precedence.\n\t */\n\tdeselectedRowIds?: string[] | null;\n\t/**\n\t * Selection changed callback, applicable when crossPageRowSelectionSupported is true.\n\t */\n\tcrossPageSelectionChangedCallback?: (\n\t\t// To be consistent with existing selection changed callback, return a list of selected rows for the current page\n\t\tselectedRowsInCurrentPage: TableRow[],\n\t\tallPagesSelectedByDefault: boolean,\n\t\tselectedRowIdsInVisitedPages: string[],\n\t\t// If allPagesSelectedByDefault is false, then deselectedRowIdsInVisitedPages is irrelevant and its value is always an empty array\n\t\tdeselectedRowIdsInVisitedPages: string[]\n\t) => void;\n}\n\nexport interface ExpandableRowOptions {\n\t/**\n\t * Show expand/collapse icon\n\t */\n\tallowToggle: boolean;\n\t/**\n\t * Whether clicking on children will select the parent row, default is true\n\t */\n\tselectRowWhenClickOnChildren?: boolean;\n\t/**\n\t * Renders expanded content\n\t */\n\trenderChildren: (row: TableRow) => React.ReactNode;\n\t/**\n\t * Expanded row ids\n\t */\n\texpandedRowIds: string[];\n\t/**\n\t * Set expanded row ids\n\t */\n\tsetExpandedRowIds: (rowIds: string[]) => void;\n}\n\nconst TableWrapper = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"minHeight\" && prop !== \"maxHeight\"\n})<{ minHeight?: string; maxHeight?: string }>(({ theme, minHeight, maxHeight }) => ({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\tcolor: theme.palette.ux.primary.text.wMain,\n\tborder: `1px solid ${theme.palette.ux.secondary.w40}`,\n\tborderRadius: \"4px\",\n\twidth: \"100%\",\n\theight: \"100%\",\n\tminHeight: minHeight ?? \"200px\",\n\tmaxHeight: maxHeight ?? \"100%\",\n\toverflow: \"auto\",\n\tfontFamily: theme.typography.fontFamily,\n\tfontSize: theme.typography.body1.fontSize,\n\tbackground: theme.palette.ux.background.w10,\n\tposition: \"relative\" // to allow loading indicators to position relatively\n}));\n\nconst StyledTable = styled(\"table\")(() => ({\n\tborderCollapse: \"collapse\",\n\twidth: \"100%\",\n\ttableLayout: \"fixed\"\n}));\n\nconst EmptyState = styled(\"div\")(() => ({\n\tposition: \"relative\", // to allow loading overlay to position relatively\n\tdisplay: \"flex\",\n\tjustifyContent: \"center\",\n\talignItems: \"center\",\n\tflex: \"1\"\n}));\n\n/**\n * styled loading overlays & loading indicators\n */\nconst TableHeaderLoadingOverlay = styled(\"tr\")(() => ({\n\tposition: \"absolute\",\n\twidth: \"100%\",\n\theight: \"100%\",\n\ttop: 0,\n\tleft: 0,\n\tbackgroundColor: \"rgba(255, 255, 255, 0.45)\", // temp decision on the color by uiux, not available from theme, will update once finalized\n\tzIndex: 20\n}));\n\n// as HTML doesn't allow <div> or <span> to be directly wrapped inside <tbody>\n// <tr> is required to construct the overlay for tbody\nconst TableBodyLoadingOverlay = styled(\"tr\")(({ theme }) => ({\n\tposition: \"absolute\",\n\twidth: \"100%\",\n\theight: \"100%\",\n\ttop: 0,\n\tleft: 0,\n\tbackgroundColor: theme.palette.ux.deprecated.primary.text.w10,\n\tzIndex: 2\n}));\n\n// eslint-disable-next-line sonarjs/no-identical-functions\nconst EmptyStateLoadingOverlay = styled(\"div\")(({ theme }) => ({\n\tposition: \"absolute\",\n\twidth: \"100%\",\n\theight: \"100%\",\n\ttop: 0,\n\tleft: 0,\n\tbackgroundColor: theme.palette.ux.deprecated.primary.text.w10,\n\tzIndex: 2\n}));\n\nconst LoadingIndicatorWrapper = styled(\"div\")(({ theme }) => ({\n\tposition: \"absolute\",\n\twidth: \"100%\",\n\t// To allow vertically center the loading indicators inside the table body (e.g. table body + empty state)\n\theight: \"calc(100% - 56px)\", // table height (e.g. header + body + empty state) - header height\n\ttop: 56, // height of the header\n\tleft: 0,\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\tjustifyContent: \"center\",\n\talignItems: \"center\",\n\trowGap: theme.spacing(2),\n\tzIndex: 3\n}));\n\nconst LoadingMessage = styled(\"div\")(({ theme }) => ({\n\tfontSize: theme.typography.body1.fontSize,\n\tfontWeight: theme.typography.fontWeightRegular,\n\tcolor: theme.palette.text.primary\n}));\n\nconst DEFAULT_EMPTY_MESSAGE = \"No Items Found\";\n\nfunction sanitizeSelectedRowIds(selectedRowIds: string[], selectionType: string) {\n\tlet selectedIds = selectedRowIds;\n\tif (selectionType === SELECTION_TYPE.SINGLE && selectedIds.length > 1) {\n\t\tselectedIds = selectedIds.slice(0, 1);\n\t} else if (selectionType === SELECTION_TYPE.MULTI && selectedIds.length > 1) {\n\t\tselectedIds = uniq(selectedIds);\n\t}\n\n\treturn selectedIds;\n}\n\nfunction sanitizeDisabledRowIds(disabledRowIds: string[]) {\n\treturn uniq(disabledRowIds);\n}\n\nfunction sanitizeDeselectedRowIds(\n\tdeselectedRowIds: string[],\n\tselectionType: string,\n\tcrossPageRowSelectionSupported: boolean,\n\tallPagesSelectedByDefault: boolean\n) {\n\tlet deselectedIds = deselectedRowIds;\n\tif (!(selectionType === SELECTION_TYPE.MULTI && crossPageRowSelectionSupported) && deselectedIds.length > 1) {\n\t\tdeselectedIds = [];\n\t} else if (selectionType === SELECTION_TYPE.MULTI && crossPageRowSelectionSupported && deselectedIds.length > 1) {\n\t\tif (allPagesSelectedByDefault) {\n\t\t\tdeselectedIds = uniq(deselectedIds);\n\t\t} else {\n\t\t\tdeselectedIds = [];\n\t\t}\n\t}\n\n\treturn deselectedIds;\n}\n\nfunction SolaceTable({\n\tid,\n\trows,\n\tcolumns,\n\tselectionType,\n\tselectedRowIds,\n\tselectionChangedCallback,\n\tdisabledRowIds,\n\tindependentRowHighlight = false,\n\thighlightedRowId,\n\trowHighlightChangedCallback,\n\tsortedColumn,\n\tsortCallback,\n\trenderCustomRowCells,\n\temptyStateMessage,\n\trenderCustomEmptyState,\n\tshowEmptyState,\n\trowActionMenuItems,\n\trenderCustomRowActionItem,\n\theaderHoverCallback,\n\trowHoverCallback,\n\thasColumnHiding,\n\tdisplayedColumns,\n\tdisplayedColumnsChangedCallback,\n\texpandableRowOptions,\n\tloading,\n\tloadingMessage,\n\tcustomContentDefinitions,\n\tdisplayedCustomContent,\n\tcustomContentDisplayChangeCallback,\n\tmaxHeight,\n\tminHeight,\n\tcustomMenuActions,\n\tcrossPageRowSelectionSupported = false,\n\ttotalObjectCount = 0,\n\tallPagesSelectedByDefault = false,\n\tdeselectedRowIds,\n\tcrossPageSelectionChangedCallback\n}: TablePropType): JSX.Element {\n\t// sanitize selectedRowIds and deselectRowIds to ensure they have proper values\n\tconst selectedIds = sanitizeSelectedRowIds(selectedRowIds ?? [], selectionType);\n\tconst disabledIds = sanitizeDisabledRowIds(disabledRowIds ?? []);\n\tconst deselectedIds = sanitizeDeselectedRowIds(\n\t\tdeselectedRowIds ?? [],\n\t\tselectionType,\n\t\tcrossPageRowSelectionSupported,\n\t\tallPagesSelectedByDefault\n\t);\n\n\tconst [columnNodes, rowNodes] = useSolaceTable({\n\t\trows,\n\t\tcolumns,\n\t\tselectionType,\n\t\tselectedRowIds: selectedIds,\n\t\tselectionChangedCallback,\n\t\tdisabledRowIds: disabledIds,\n\t\tindependentRowHighlight,\n\t\thighlightedRowId,\n\t\trowHighlightChangedCallback,\n\t\tsortCallback,\n\t\tsortedColumn,\n\t\trenderCustomRowCells,\n\t\trowActionMenuItems,\n\t\trenderCustomRowActionItem,\n\t\theaderHoverCallback,\n\t\trowHoverCallback,\n\t\thasColumnHiding,\n\t\tdisplayedColumns,\n\t\tdisplayedColumnsChangedCallback,\n\t\texpandableRowOptions,\n\t\tcustomContentDefinitions,\n\t\tdisplayedCustomContent,\n\t\tcustomContentDisplayChangeCallback,\n\t\tcustomMenuActions,\n\t\tcrossPageRowSelectionSupported,\n\t\ttotalObjectCount,\n\t\tallPagesSelectedByDefault,\n\t\tdeselectedRowIds: deselectedIds,\n\t\tcrossPageSelectionChangedCallback\n\t});\n\n\tfunction renderEmptyStateMessage(): string {\n\t\treturn emptyStateMessage ? emptyStateMessage : DEFAULT_EMPTY_MESSAGE;\n\t}\n\n\tfunction showEmptyStateMessage(): React.ReactNode {\n\t\treturn <>{renderCustomEmptyState ? renderCustomEmptyState() : renderEmptyStateMessage()}</>;\n\t}\n\n\tfunction showLoadingIndicators(): React.ReactNode {\n\t\treturn (\n\t\t\t<LoadingIndicatorWrapper>\n\t\t\t\t<SolaceCircularProgress />\n\t\t\t\t{loadingMessage && <LoadingMessage>{loadingMessage}</LoadingMessage>}\n\t\t\t</LoadingIndicatorWrapper>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TableWrapper maxHeight={maxHeight} minHeight={minHeight} className=\"tableWrapper\">\n\t\t\t<StyledTable data-qa={id}>\n\t\t\t\t{/* The border style of thead is set in table-utils on th with boxShadow */}\n\t\t\t\t<thead style={{ borderBottom: 0, position: \"relative\" }}>\n\t\t\t\t\t{columnNodes}\n\t\t\t\t\t{loading && <TableHeaderLoadingOverlay />}\n\t\t\t\t</thead>\n\t\t\t\t<tbody style={{ position: \"relative\" }}>\n\t\t\t\t\t{!!rows.length && rowNodes}\n\t\t\t\t\t{loading && <TableBodyLoadingOverlay />}\n\t\t\t\t</tbody>\n\t\t\t</StyledTable>\n\t\t\t<EmptyState>\n\t\t\t\t{showEmptyState !== false && !rows.length && showEmptyStateMessage()}\n\t\t\t\t{loading && <EmptyStateLoadingOverlay />}\n\t\t\t</EmptyState>\n\t\t\t{loading && showLoadingIndicators()}\n\t\t</TableWrapper>\n\t);\n}\n\nexport default SolaceTable;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable sonarjs/cognitive-complexity */\nimport React, { useCallback, useEffect, useState, useRef, useMemo } from \"react\";\nimport {\n\tTableColumn,\n\tTableRow,\n\tTableActionMenuItem,\n\tSELECTION_TYPE,\n\tSORT_DIRECTION,\n\tCustomContentDefinition\n} from \"../table-utils\";\nimport { SolaceCheckboxChangeEvent } from \"../../form/SolaceCheckBox\";\n\nimport { cloneDeep, isEqual } from \"lodash\";\nimport { SolaceMenuItemProps } from \"../../SolaceMenuItem\";\nimport { ExpandableRowOptions } from \"../SolaceTable\";\nimport { SolaceTableRow } from \"../../..\";\nimport useTableBodyRenderHelper from \"./useTableBodyRenderHelper\";\nimport useTableHeaderRenderHelper from \"./useTableHeaderRenderHelper\";\n\nexport const useSolaceTable = ({\n\trows,\n\tcolumns,\n\tselectionType,\n\tselectedRowIds,\n\tselectionChangedCallback,\n\tdisabledRowIds,\n\tindependentRowHighlight,\n\thighlightedRowId,\n\trowHighlightChangedCallback,\n\tsortedColumn,\n\tsortCallback,\n\trenderCustomRowCells,\n\trowActionMenuItems,\n\trenderCustomRowActionItem,\n\theaderHoverCallback,\n\trowHoverCallback,\n\thasColumnHiding,\n\tdisplayedColumns,\n\tdisplayedColumnsChangedCallback,\n\texpandableRowOptions,\n\tcustomContentDefinitions,\n\tdisplayedCustomContent,\n\tcustomContentDisplayChangeCallback,\n\tcustomMenuActions,\n\tcrossPageRowSelectionSupported = false,\n\ttotalObjectCount = 0,\n\tallPagesSelectedByDefault = false,\n\tdeselectedRowIds,\n\tcrossPageSelectionChangedCallback\n}: {\n\trows: TableRow[];\n\tcolumns: TableColumn[];\n\tselectionType: SELECTION_TYPE;\n\tselectedRowIds: string[];\n\tselectionChangedCallback?: (rows: TableRow[]) => void;\n\tindependentRowHighlight: boolean;\n\thighlightedRowId?: string | null;\n\trowHighlightChangedCallback?: (row: TableRow | null) => void;\n\tsortedColumn: TableColumn | undefined;\n\tsortCallback: (column: TableColumn | undefined) => void;\n\trenderCustomRowCells?: (row: TableRow) => JSX.Element[];\n\trowActionMenuItems?: TableActionMenuItem[];\n\trenderCustomRowActionItem?: (row: TableRow) => TableActionMenuItem[];\n\theaderHoverCallback?: () => void;\n\trowHoverCallback?: (row: TableRow) => void;\n\thasColumnHiding?: boolean;\n\tdisplayedColumns?: TableColumn[];\n\tdisplayedColumnsChangedCallback?: (displayedColumns: TableColumn[]) => void;\n\tdisabledRowIds?: string[];\n\texpandableRowOptions?: ExpandableRowOptions;\n\tcustomContentDefinitions?: CustomContentDefinition[];\n\tdisplayedCustomContent?: string[];\n\tcustomContentDisplayChangeCallback?: (type: string, isHidden: boolean) => void;\n\tcustomMenuActions?: SolaceMenuItemProps[];\n\tcrossPageRowSelectionSupported?: boolean;\n\ttotalObjectCount?: number;\n\tallPagesSelectedByDefault?: boolean;\n\tdeselectedRowIds: string[];\n\tcrossPageSelectionChangedCallback?: (\n\t\t// To be consistent with existing selection changed callback, return a list of selected rows for the current page\n\t\tselectedRowsInCurrentPage: TableRow[],\n\t\tallPagesSelectedByDefault: boolean,\n\t\tselectedRowIdsInVisitedPages: string[],\n\t\tdeselectedRowIdsInVisitedPages: string[]\n\t) => void;\n}): React.ReactNode[] => {\n\tconst [selectAll, setSelectAll] = useState(false);\n\tconst [indeterminate, setIndeterminate] = useState(false);\n\n\t// Applicable if sortedColumn is not set\n\tconst [internalSortedColumn, setInternalSortedColumn] = useState<TableColumn>();\n\t// Applicable if displayedColumns is not set\n\tconst [internalDisplayedColumns, setInternalDisplayedColumns] = useState<TableColumn[]>();\n\n\tconst columnsRef = useRef<TableColumn[]>([]);\n\n\tconst crossPageSelectionEnabled = useMemo(() => {\n\t\treturn selectionType === SELECTION_TYPE.MULTI && crossPageRowSelectionSupported;\n\t}, [selectionType, crossPageRowSelectionSupported]);\n\n\tuseEffect(() => {\n\t\tif (columns) {\n\t\t\tconst internalColumns = cloneDeep(columns);\n\t\t\tcolumnsRef.current = internalColumns;\n\t\t\tsetInternalSortedColumn(internalColumns.find((col) => col.sortable));\n\t\t\tsetInternalDisplayedColumns(internalColumns);\n\t\t}\n\t}, [columns]);\n\n\tuseEffect(() => {\n\t\tif (!crossPageSelectionEnabled) {\n\t\t\tif (rows.length !== 0 && selectedRowIds.length === rows.length) {\n\t\t\t\tsetSelectAll(true);\n\t\t\t} else {\n\t\t\t\tsetSelectAll(false);\n\t\t\t}\n\t\t}\n\t}, [selectedRowIds.length, rows?.length, crossPageSelectionEnabled]);\n\n\tuseEffect(() => {\n\t\tif (!crossPageSelectionEnabled) {\n\t\t\tif (selectedRowIds.length > 0 && selectedRowIds.length < rows.length) {\n\t\t\t\tsetIndeterminate(true);\n\t\t\t} else {\n\t\t\t\tsetIndeterminate(false);\n\t\t\t}\n\t\t}\n\t}, [rows?.length, selectedRowIds?.length, crossPageSelectionEnabled]);\n\n\tuseEffect(() => {\n\t\tif (crossPageSelectionEnabled) {\n\t\t\tif (totalObjectCount > 0) {\n\t\t\t\tconst allSelected =\n\t\t\t\t\t(allPagesSelectedByDefault && deselectedRowIds.length === 0) ||\n\t\t\t\t\t(!allPagesSelectedByDefault && selectedRowIds.length === totalObjectCount);\n\t\t\t\tsetSelectAll(allSelected);\n\t\t\t} else {\n\t\t\t\tsetSelectAll(allPagesSelectedByDefault);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tallPagesSelectedByDefault,\n\t\tcrossPageSelectionEnabled,\n\t\tdeselectedRowIds.length,\n\t\tselectedRowIds.length,\n\t\ttotalObjectCount\n\t]);\n\n\tuseEffect(() => {\n\t\tif (crossPageSelectionEnabled) {\n\t\t\tif (totalObjectCount > 0) {\n\t\t\t\tsetIndeterminate(\n\t\t\t\t\t(allPagesSelectedByDefault && deselectedRowIds.length > 0 && deselectedRowIds.length < totalObjectCount) ||\n\t\t\t\t\t\t(!allPagesSelectedByDefault && selectedRowIds.length > 0 && selectedRowIds.length !== totalObjectCount)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsetIndeterminate(false);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tallPagesSelectedByDefault,\n\t\tcrossPageSelectionEnabled,\n\t\tdeselectedRowIds.length,\n\t\tselectedRowIds.length,\n\t\ttotalObjectCount\n\t]);\n\n\tuseEffect(\n\t\t() => {\n\t\t\t// if allPagesSelectedByDefault is true, when loading a page, initialize checkbox state baesd on deselectedRowIds\n\t\t\tif (crossPageSelectionEnabled && allPagesSelectedByDefault && crossPageSelectionChangedCallback) {\n\t\t\t\t// check checkbox in the page if it is not unchecked by user\n\t\t\t\tconst newSelectedRowIds = [...selectedRowIds];\n\t\t\t\tconst selectedRowsInCurrentPage: SolaceTableRow[] = [];\n\n\t\t\t\trows.forEach((row) => {\n\t\t\t\t\tif (!deselectedRowIds.includes(row.id)) {\n\t\t\t\t\t\tif (!newSelectedRowIds.includes(row.id)) {\n\t\t\t\t\t\t\tnewSelectedRowIds.push(row.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselectedRowsInCurrentPage.push(row);\n\t\t\t\t\t} else if (selectedRowIds.includes(row.id)) {\n\t\t\t\t\t\t// if both deselectedRowIds and selectedRowIds has this row, must be programming error, remove it from selectedRowIds\n\t\t\t\t\t\tconst index = newSelectedRowIds.indexOf(row.id);\n\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\tnewSelectedRowIds.splice(index, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (!isEqual(selectedRowIds, newSelectedRowIds)) {\n\t\t\t\t\tcrossPageSelectionChangedCallback(selectedRowsInCurrentPage, true, newSelectedRowIds, deselectedRowIds);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// only trigger this effect when table rows are changed\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[crossPageSelectionChangedCallback, crossPageSelectionEnabled, rows]\n\t);\n\n\tconst handleRowClick = useCallback(\n\t\t(clickedRow: TableRow) => {\n\t\t\tif (disabledRowIds?.includes(clickedRow.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (selectionType !== SELECTION_TYPE.NONE) {\n\t\t\t\tif (selectionType === SELECTION_TYPE.MULTI && independentRowHighlight) {\n\t\t\t\t\tif (highlightedRowId === clickedRow.id) {\n\t\t\t\t\t\trowHighlightChangedCallback?.(null);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trowHighlightChangedCallback?.(clickedRow);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (selectionType === SELECTION_TYPE.MULTI && crossPageRowSelectionSupported) {\n\t\t\t\t\t\tif (crossPageSelectionChangedCallback) {\n\t\t\t\t\t\t\tif (selectedRowIds.includes(clickedRow.id)) {\n\t\t\t\t\t\t\t\t// a row in current page has been unselected\n\t\t\t\t\t\t\t\tconst newSelectedRows = rows.filter(\n\t\t\t\t\t\t\t\t\t(row) => selectedRowIds.includes(row.id) && row.id !== clickedRow.id\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst newSelectedRowIds = selectedRowIds.filter((id) => id !== clickedRow.id);\n\t\t\t\t\t\t\t\tconst newDeselectedRowIds = allPagesSelectedByDefault\n\t\t\t\t\t\t\t\t\t? [...deselectedRowIds, clickedRow.id]\n\t\t\t\t\t\t\t\t\t: deselectedRowIds;\n\n\t\t\t\t\t\t\t\tcrossPageSelectionChangedCallback(\n\t\t\t\t\t\t\t\t\tnewSelectedRows,\n\t\t\t\t\t\t\t\t\tallPagesSelectedByDefault,\n\t\t\t\t\t\t\t\t\tnewSelectedRowIds,\n\t\t\t\t\t\t\t\t\tnewDeselectedRowIds\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// selecting a row deselect all other rows and also exit allPagesSelectedByDefault\n\t\t\t\t\t\t\t\tcrossPageSelectionChangedCallback([clickedRow], false, [clickedRow.id], []);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (selectionChangedCallback) {\n\t\t\t\t\t\t\tif (selectedRowIds.includes(clickedRow.id)) {\n\t\t\t\t\t\t\t\t// a row has been unselected\n\t\t\t\t\t\t\t\tconst selectedRows = rows.filter((row) => selectedRowIds.includes(row.id) && row.id !== clickedRow.id);\n\t\t\t\t\t\t\t\tselectionChangedCallback(selectedRows);\n\n\t\t\t\t\t\t\t\tif (selectedRows.length < rows.length && selectAll) {\n\t\t\t\t\t\t\t\t\t// not all items in the list have been selected, uncheck the \"Select All\" checkbox\n\t\t\t\t\t\t\t\t\tsetSelectAll(false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// selecting a row delect all other rows\n\t\t\t\t\t\t\t\tselectionChangedCallback([clickedRow]);\n\t\t\t\t\t\t\t\tsetSelectAll(rows.length === 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tallPagesSelectedByDefault,\n\t\t\tcrossPageRowSelectionSupported,\n\t\t\tcrossPageSelectionChangedCallback,\n\t\t\tdeselectedRowIds,\n\t\t\tdisabledRowIds,\n\t\t\thighlightedRowId,\n\t\t\tindependentRowHighlight,\n\t\t\trowHighlightChangedCallback,\n\t\t\trows,\n\t\t\tselectAll,\n\t\t\tselectedRowIds,\n\t\t\tselectionChangedCallback,\n\t\t\tselectionType\n\t\t]\n\t);\n\n\tconst handleSort = useCallback(\n\t\t(newColumn: TableColumn, sortedColumn: TableColumn | undefined, internalSortedColumn: TableColumn | undefined) => {\n\t\t\tconst columnInfo = columnsRef.current.find((column) => column.field === newColumn.field);\n\t\t\tif (columnInfo && columnInfo.sortable) {\n\t\t\t\tif (sortedColumn) {\n\t\t\t\t\tif (sortedColumn.field === columnInfo.field) {\n\t\t\t\t\t\tcolumnInfo.sortDirection =\n\t\t\t\t\t\t\tcolumnInfo.sortDirection === SORT_DIRECTION.DCS ? SORT_DIRECTION.ASC : SORT_DIRECTION.DCS;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcolumnInfo.sortDirection = SORT_DIRECTION.ASC;\n\t\t\t\t\t}\n\t\t\t\t\tsortCallback(columnInfo);\n\t\t\t\t} else {\n\t\t\t\t\tif (internalSortedColumn?.field === columnInfo.field) {\n\t\t\t\t\t\tcolumnInfo.sortDirection =\n\t\t\t\t\t\t\tcolumnInfo.sortDirection === SORT_DIRECTION.DCS ? SORT_DIRECTION.ASC : SORT_DIRECTION.DCS;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcolumnInfo.sortDirection = SORT_DIRECTION.ASC;\n\t\t\t\t\t}\n\t\t\t\t\tsetInternalSortedColumn(columnInfo);\n\t\t\t\t\tsortCallback(columnInfo);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[sortCallback]\n\t);\n\n\tconst handleDisplayColumnsChanged = useCallback(\n\t\t(cols: TableColumn[]) => {\n\t\t\tcolumnsRef.current?.forEach((column, index) => {\n\t\t\t\tif (cols && cols[index]) {\n\t\t\t\t\tcolumn.isHidden = cols[index].isHidden;\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetInternalDisplayedColumns(cols);\n\t\t\tdisplayedColumnsChangedCallback?.(cols);\n\t\t},\n\t\t[displayedColumnsChangedCallback]\n\t);\n\n\tconst handleSelectAllChange = useCallback(\n\t\t(event: SolaceCheckboxChangeEvent) => {\n\t\t\tlet selectedRows = rows;\n\t\t\tconst hasDisabledRowIds = !!disabledRowIds && disabledRowIds.length > 0;\n\t\t\tif (hasDisabledRowIds) {\n\t\t\t\tselectedRows = rows.filter((row) => !disabledRowIds.includes(row.id));\n\t\t\t}\n\t\t\tif (crossPageSelectionEnabled) {\n\t\t\t\tif (crossPageSelectionChangedCallback) {\n\t\t\t\t\tif (event.value) {\n\t\t\t\t\t\t// select all items\n\t\t\t\t\t\tsetSelectAll(selectedRows.length < rows.length ? false : true);\n\t\t\t\t\t\tcrossPageSelectionChangedCallback(\n\t\t\t\t\t\t\tselectedRows,\n\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\tselectedRows.map((row) => row.id),\n\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// clear all selections\n\t\t\t\t\t\tsetSelectAll(false);\n\t\t\t\t\t\tcrossPageSelectionChangedCallback([], false, [], []);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (selectionChangedCallback) {\n\t\t\t\t\tif (event.value) {\n\t\t\t\t\t\t// select all items\n\t\t\t\t\t\tsetSelectAll(true);\n\t\t\t\t\t\tselectionChangedCallback(selectedRows);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// clear all selections\n\t\t\t\t\t\tsetSelectAll(false);\n\t\t\t\t\t\tselectionChangedCallback([]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[crossPageSelectionChangedCallback, crossPageSelectionEnabled, rows, selectionChangedCallback, disabledRowIds]\n\t);\n\n\tconst handleRowSelectionChange = useCallback(\n\t\t(event: SolaceCheckboxChangeEvent) => {\n\t\t\tif (\n\t\t\t\t(crossPageSelectionEnabled && !crossPageSelectionChangedCallback) ||\n\t\t\t\t(!crossPageSelectionEnabled && !selectionChangedCallback)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedObj = rows.find((row) => row.id === event.name);\n\t\t\tif (selectedObj) {\n\t\t\t\t// found the selected row object\n\t\t\t\tif (event.value) {\n\t\t\t\t\tif (!selectedRowIds.includes(event.name)) {\n\t\t\t\t\t\t// a new checkbox is being selected\n\t\t\t\t\t\tconst newSelectedRows = [\n\t\t\t\t\t\t\t...rows.filter((row) => selectedRowIds.includes(row.id) && row.id !== event.name),\n\t\t\t\t\t\t\tselectedObj\n\t\t\t\t\t\t];\n\n\t\t\t\t\t\tif (!crossPageSelectionEnabled) {\n\t\t\t\t\t\t\tselectionChangedCallback?.(newSelectedRows);\n\n\t\t\t\t\t\t\tif (newSelectedRows.length === rows.length && !selectAll) {\n\t\t\t\t\t\t\t\t// all items in the list have been selected, check the \"Select All\" checkbox\n\t\t\t\t\t\t\t\tsetSelectAll(true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (crossPageSelectionEnabled && crossPageSelectionChangedCallback) {\n\t\t\t\t\t\t\tconst newSelectedRowIds = [...selectedRowIds, event.name];\n\n\t\t\t\t\t\t\tif (allPagesSelectedByDefault) {\n\t\t\t\t\t\t\t\tcrossPageSelectionChangedCallback(\n\t\t\t\t\t\t\t\t\tnewSelectedRows,\n\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\tnewSelectedRowIds,\n\t\t\t\t\t\t\t\t\tdeselectedRowIds.filter((id) => id !== event.name)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcrossPageSelectionChangedCallback(newSelectedRows, false, newSelectedRowIds, deselectedRowIds);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// a checkbox is being unselected\n\t\t\t\t\tconst newSelectedRows = rows.filter((row) => selectedRowIds.includes(row.id) && row.id !== event.name);\n\t\t\t\t\tif (!crossPageSelectionEnabled) {\n\t\t\t\t\t\tselectionChangedCallback?.(newSelectedRows);\n\t\t\t\t\t\tif (newSelectedRows.length < rows.length && selectAll) {\n\t\t\t\t\t\t\t// not all items in the list have been selected, uncheck the \"Select All\" checkbox\n\t\t\t\t\t\t\tsetSelectAll(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (crossPageSelectionEnabled && crossPageSelectionChangedCallback) {\n\t\t\t\t\t\tconst newSelectedRowIds = selectedRowIds.filter((id) => id !== event.name);\n\t\t\t\t\t\tif (allPagesSelectedByDefault) {\n\t\t\t\t\t\t\tconst newDeselectedRowIds = [...deselectedRowIds, event.name];\n\t\t\t\t\t\t\tif (newDeselectedRowIds.length === totalObjectCount) {\n\t\t\t\t\t\t\t\t// every item is deselected, exit allPageSelectedByDefault\n\t\t\t\t\t\t\t\tcrossPageSelectionChangedCallback([], false, [], []);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcrossPageSelectionChangedCallback(newSelectedRows, true, newSelectedRowIds, newDeselectedRowIds);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcrossPageSelectionChangedCallback(newSelectedRows, false, newSelectedRowIds, deselectedRowIds);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tcrossPageSelectionEnabled,\n\t\t\tcrossPageSelectionChangedCallback,\n\t\t\tselectionChangedCallback,\n\t\t\trows,\n\t\t\tselectedRowIds,\n\t\t\tselectAll,\n\t\t\tallPagesSelectedByDefault,\n\t\t\tdeselectedRowIds,\n\t\t\ttotalObjectCount\n\t\t]\n\t);\n\n\tconst columnNodes = useTableHeaderRenderHelper({\n\t\t// pass down from SolaceTable props\n\t\tselectionType,\n\t\tsortedColumn,\n\t\trowActionMenuItems,\n\t\trenderCustomRowActionItem,\n\t\theaderHoverCallback,\n\t\thasColumnHiding,\n\t\tdisplayedColumns,\n\t\texpandableRowOptions,\n\t\tcustomContentDefinitions,\n\t\tdisplayedCustomContent,\n\t\tcustomContentDisplayChangeCallback,\n\t\tcustomMenuActions,\n\t\t// state and callbacks defined in useSolaceTable\n\t\tcrossPageSelectionEnabled,\n\t\tselectAll,\n\t\tindeterminate,\n\t\thandleSelectAllChange,\n\t\tinternalSortedColumn,\n\t\thandleSort,\n\t\tinternalDisplayedColumns,\n\t\thandleDisplayColumnsChanged\n\t});\n\n\tconst rowNodes = useTableBodyRenderHelper({\n\t\t// pass down from SolaceTable props\n\t\trows,\n\t\tselectionType,\n\t\tselectedRowIds,\n\t\tdisabledRowIds,\n\t\tindependentRowHighlight,\n\t\thighlightedRowId,\n\t\trenderCustomRowCells,\n\t\trowActionMenuItems,\n\t\trenderCustomRowActionItem,\n\t\trowHoverCallback,\n\t\thasColumnHiding,\n\t\tdisplayedColumns,\n\t\texpandableRowOptions,\n\t\t// state and callbacks defined in useSolaceTable\n\t\tinternalDisplayedColumns,\n\t\thandleDisplayColumnsChanged,\n\t\thandleRowSelectionChange,\n\t\thandleRowClick\n\t});\n\n\treturn [columnNodes, rowNodes];\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\n\nexport const ArrowLeftIcon = ({ className = \"\" }): JSX.Element => {\n\treturn (\n\t\t<SvgIcon className={className} width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" data-testid=\"ArrowLeftIcon\">\n\t\t\t<path\n\t\t\t\td=\"M14.27,6.117l0.838,0.883c0.156,0.156,0.156,0.373,0,0.529l-4.443,4.46l4.443,4.481c0.156,0.156,0.169,0.373,0.013,0.529\n l-0.851,0.883c-0.156,0.156-0.414,0.156-0.57,0l-5.583-5.61c-0.156-0.156-0.156-0.41,0-0.567l5.583-5.61\n C13.857,5.961,14.114,5.961,14.27,6.117z\"\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Pagination, PaginationItem, styled } from \"@mui/material\";\nimport { BASE_FONT_PX_SIZES } from \"../resources/typography\";\nimport { ArrowRightIcon } from \"../resources/icons/ArrowRight\";\nimport { ArrowLeftIcon } from \"../resources/icons/ArrowLeft\";\nimport { useRef, useState, useEffect } from \"react\";\n\nexport interface SolacePaginationProps {\n\t/**\n\t * Flag signifying if the side panel is expanded or collapsed\n\t */\n\tactivePage?: number;\n\t/**\n\t * The desired width of the side panel\n\t */\n\tpageSize?: number;\n\t/**\n\t * property to control which side of the main content the side panel is rendered on\n\t */\n\ttotalResults: number;\n\t/**\n\t * The string template to use for communicating pagination details. Use the following placeholders\n\t * to substitute values if and where needed\n\t * - firstItemIndex: index of the first item being displayed\n\t * - lastItemIndex: index of the last item being displayed\n\t * - totalResults: total number of items that are paginated\n\t * - pageSize: the number of items currently rendered\n\t * - activePage: the currently selected page number\n\t *\n\t * Ex: \"Showing ${firstItemIndex}-${lastItemIndex} of ${totalResults} results\" would result in:\n\t * -> Showing 1-10 of 156 results\n\t */\n\tdisplayText?: string;\n\t/**\n\t * Callback function to notify which page was clicked/selected by the end user\n\t */\n\tonPageSelection?: (selectedPage: number) => void;\n\t/**\n\t * loading state (renders a half transparent overlay on top of the pagination component, currently is designed to use along with table component's loading state)\n\t */\n\tloading?: boolean;\n}\n\nconst PaginationContainer = styled(\"div\")<{ isSmall: boolean }>(({ theme, isSmall }) => ({\n\twidth: \"100%\",\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tjustifyContent: \"center\",\n\tmargin: \"0\",\n\tposition: \"relative\",\n\tpadding: theme.spacing(1, 0),\n\tflexDirection: isSmall ? \"column\" : \"row\"\n}));\n\nconst PageListContainer = styled(\"div\")(() => ({\n\tmargin: \"0\"\n}));\n\nconst MessageContainer = styled(\"p\")<{ isSmall: boolean }>(({ theme, isSmall }) => ({\n\tmargin: isSmall ? theme.spacing(0) : theme.spacing(0, 2, 0, 0),\n\tfontSize: BASE_FONT_PX_SIZES.xs,\n\tcolor: theme.palette.ux.deprecated.secondary.text.wMain,\n\tposition: isSmall ? \"relative\" : \"absolute\",\n\tright: isSmall ? 0 : \"0\",\n\tpaddingTop: isSmall ? theme.spacing(1) : \"0\"\n}));\n\nconst LoadingOverlay = styled(\"div\")(() => ({\n\tposition: \"absolute\",\n\twidth: \"100%\",\n\theight: \"100%\",\n\ttop: 0,\n\tleft: 0,\n\tbackgroundColor: \"rgba(255, 255, 255, 0.45)\", // temp decision on the color by uiux, not available from theme, will update once finalized\n\tzIndex: 2\n}));\n\nfunction SolacePagination({\n\tactivePage = 1,\n\tpageSize = 10,\n\tdisplayText = \"${firstItemIndex}-${lastItemIndex} of ${totalResults} results\",\n\ttotalResults,\n\tloading = false,\n\tonPageSelection\n}: SolacePaginationProps): JSX.Element {\n\tconst totalPages = Math.ceil(totalResults / pageSize);\n\tconst firstItemIndex = (activePage - 1) * pageSize + 1;\n\tconst lastItemIndex = Math.min(activePage * pageSize, totalResults);\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst [isSmall, setIsSmall] = useState<boolean>(false);\n\n\tuseEffect(() => {\n\t\tconst handleResize = () => {\n\t\t\tif (containerRef.current) {\n\t\t\t\tsetIsSmall(containerRef.current.offsetWidth <= 730);\n\t\t\t}\n\t\t};\n\n\t\thandleResize();\n\t\twindow.addEventListener(\"resize\", handleResize);\n\t\treturn () => window.removeEventListener(\"resize\", handleResize);\n\t}, [isSmall]);\n\n\tconst handlePageSelection = (event: React.ChangeEvent<unknown> | null, page: number) => {\n\t\tif (event && page > 0 && onPageSelection) {\n\t\t\tonPageSelection(page);\n\t\t}\n\t};\n\n\tconst substituteMessageValues = () => {\n\t\tconst firstItemString = displayText.replace(\"${firstItemIndex}\", `${firstItemIndex}`);\n\t\tconst lastItemString = firstItemString.replace(\"${lastItemIndex}\", `${lastItemIndex}`);\n\t\tconst pageSizeText = lastItemString.replace(\"${pageSize}\", `${pageSize}`);\n\t\tconst activePageText = pageSizeText.replace(\"${activePage}\", `${activePage}`);\n\t\treturn activePageText.replace(\"${totalResults}\", `${totalResults}`);\n\t};\n\n\treturn (\n\t\t<PaginationContainer ref={containerRef} isSmall={isSmall}>\n\t\t\t<PageListContainer>\n\t\t\t\t<Pagination\n\t\t\t\t\tcount={totalPages}\n\t\t\t\t\tshape=\"rounded\"\n\t\t\t\t\tpage={activePage}\n\t\t\t\t\tboundaryCount={2}\n\t\t\t\t\tonChange={handlePageSelection}\n\t\t\t\t\trenderItem={(item) => (\n\t\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\tprevious: ArrowLeftIcon,\n\t\t\t\t\t\t\t\tnext: ArrowRightIcon\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t{...item}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t</PageListContainer>\n\t\t\t<MessageContainer isSmall={isSmall}>{substituteMessageValues()}</MessageContainer>\n\t\t\t{loading && <LoadingOverlay />}\n\t\t</PaginationContainer>\n\t);\n}\n\nexport default SolacePagination;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconProps } from \"./IconProps\";\nimport { SvgIcon } from \"@mui/material\";\n\nconst ExpandIcon = ({ size, fill }: IconProps): JSX.Element => {\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px`, fill: \"none\" }} viewBox=\"0 0 24 24\">\n\t\t\t<path\n\t\t\t\td=\"M3.25 21C3.11193 21 3 20.8881 3 20.75V15.25C3 15.1119 3.11193 15 3.25 15H5V17.6L9.32322 13.2768C9.42085 13.1791 9.57915 13.1791 9.67678 13.2768L10.7232 14.3232C10.8209 14.4209 10.8209 14.5791 10.7232 14.6768L6.4 19H8.75C8.88807 19 9 19.1119 9 19.25V20.75C9 20.8881 8.88807 21 8.75 21H3.25ZM14.6768 10.7232C14.5791 10.8209 14.4209 10.8209 14.3232 10.7232L13.8 10.2L13.2768 9.67678C13.1791 9.57915 13.1791 9.42085 13.2768 9.32322L17.6 5H15.25C15.1119 5 15 4.88807 15 4.75V3.25C15 3.11193 15.1119 3 15.25 3H20.75C20.8881 3 21 3.11193 21 3.25V8.75C21 8.88807 20.8881 9 20.75 9H19.25C19.1119 9 19 8.88807 19 8.75V6.4L14.6768 10.7232Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n\nexport default ExpandIcon;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\nimport { IconProps } from \"./IconProps\";\n\nconst CollapseIcon = ({ size, fill }: IconProps): JSX.Element => {\n\treturn (\n\t\t<SvgIcon\n\t\t\tsx={{ width: `${size}px`, height: `${size}px`, fill: \"none\" }}\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M11.25 13C11.388 13 11.5 13.1119 11.5 13.25L11.5 18.75C11.5 18.8881 11.388 19 11.25 19H9.74996C9.61189 19 9.49996 18.8881 9.49996 18.75L9.49996 16.4L5.07674 20.8232C4.97911 20.9209 4.82082 20.9209 4.72319 20.8232L3.67674 19.7768C3.57911 19.6791 3.57911 19.5209 3.67674 19.4232L8.09996 15H5.74996C5.61189 15 5.49996 14.8881 5.49996 14.75L5.49996 13.25C5.49996 13.1119 5.61189 13 5.74996 13H11.25Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M19.8231 3.27678C19.9207 3.17914 20.079 3.17914 20.1766 3.27678L21.2231 4.32322C21.3207 4.42085 21.3207 4.57914 21.2231 4.67678L16.3999 9.5H18.7499C18.8879 9.5 18.9999 9.61193 18.9999 9.75V11.25C18.9999 11.3881 18.8879 11.5 18.7499 11.5H13.2499C13.1118 11.5 12.9999 11.3881 12.9999 11.25L12.9999 5.75C12.9999 5.61193 13.1118 5.5 13.2499 5.5L14.7499 5.5C14.8879 5.5 14.9999 5.61193 14.9999 5.75V8.1L19.8231 3.27678Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n\nexport default CollapseIcon;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useState, useEffect } from \"react\";\nimport { Controlled as CodeMirror } from \"react-codemirror2\";\nimport SolaceButton from \"./SolaceButton\";\nimport HelperText from \"./HelperText\";\nimport ErrorText from \"./ErrorText\";\nimport WarningText from \"./WarningText\";\nimport ExpandIcon from \"../../resources/icons/ExpandIcon\";\nimport CollapseIcon from \"../../resources/icons/CollapseIcon\";\nimport { styled, useTheme } from \"@mui/material\";\n\nimport SolaceComponentProps from \"../SolaceComponentProps\";\n\nimport \"codemirror/mode/xml/xml\";\nimport \"codemirror/mode/javascript/javascript\";\nimport \"codemirror/mode/protobuf/protobuf\";\nimport \"codemirror/theme/material.css\";\nimport \"codemirror/lib/codemirror.css\";\nimport \"codemirror/addon/lint/json-lint\";\nimport \"codemirror/keymap/sublime\";\nimport \"codemirror/addon/display/fullscreen\";\nimport \"codemirror/addon/display/fullscreen.css\"; // apply fullscreen to CodeEditor\nimport { CSSProperties } from \"@mui/styled-engine\";\n\nconst StyledOuterWrapper = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_CodeEditor.OuterWrapper as CSSProperties)\n}));\nconst StyledInnerWrapper = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_CodeEditor.InnerWrapper as CSSProperties)\n}));\nconst StyledEditorWrapper = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_CodeEditor.EditorWrapper as CSSProperties)\n}));\nconst IconWrapper = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_CodeEditor.IconWrapper as CSSProperties)\n}));\n\nexport interface SolaceCodeEditorProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier for the button\n\t */\n\tid?: string;\n\t/**\n\t * The value to initialize the content with\n\t */\n\tvalue?: string;\n\t/**\n\t * Renders the button disabled\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * render SolaceCodeEditor in fullscreen state\n\t */\n\tfullScreen?: boolean;\n\t/**\n\t * The formatting style to render the content as\n\t */\n\tmode?: \"json\" | \"xml\" | \"protobuf\";\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * Boolean flag to mark the SolaceCodeEditor in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag to mark the SolaceCodeEditor in warning state\n\t */\n\thasWarnings?: boolean;\n\t/**\n\t * whether to allow CodeEditor to be expandable\n\t */\n\texpandable?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tonChange?: (editor: CodeMirror, data: any, value: string) => void;\n}\n\nconst renderHelperText = (helperText: string | JSX.Element, hasErrors: boolean, hasWarnings: boolean): JSX.Element => {\n\treturn hasErrors ? (\n\t\t<ErrorText>{helperText}</ErrorText>\n\t) : hasWarnings ? (\n\t\t<WarningText>{helperText}</WarningText>\n\t) : (\n\t\t<HelperText>{helperText}</HelperText>\n\t);\n};\n\nfunction SolaceCodeEditor({\n\tid,\n\tmode = \"json\",\n\tvalue,\n\treadOnly = false,\n\tfullScreen = false,\n\texpandable = false,\n\thelperText = \"\",\n\thasErrors = false,\n\thasWarnings = false,\n\tonChange\n}: SolaceCodeEditorProps): JSX.Element {\n\tconst theme = useTheme();\n\n\tconst [val, setVal] = useState(value || \"\");\n\tconst [editorExpanded, setEditorExpanded] = useState(false);\n\tuseEffect(() => {\n\t\tif (value !== undefined) setVal(value);\n\t}, [value]);\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst handleChange = (_editor: CodeMirror, _data: any, value: string) => {\n\t\tsetVal(value);\n\t};\n\n\tconst toggleExpandedMode = () => {\n\t\tsetEditorExpanded(!editorExpanded);\n\t};\n\n\tlet codeMirrorMode = \"\";\n\tswitch (mode) {\n\t\tcase \"xml\":\n\t\t\tcodeMirrorMode = \"application/xml\";\n\t\t\tbreak;\n\t\tcase \"protobuf\":\n\t\t\tcodeMirrorMode = \"text/x-protobuf\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tcodeMirrorMode = \"application/ld+json\";\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{expandable && (\n\t\t\t\t<StyledOuterWrapper className={editorExpanded ? \"codeEditor-expanded--backdrop\" : \"\"}>\n\t\t\t\t\t<StyledInnerWrapper className={editorExpanded ? \"codeEditor-expanded--main\" : \"\"}>\n\t\t\t\t\t\t<IconWrapper className={editorExpanded ? \"codeEditor-expanded--icon\" : \"codeEditor-collapsed--icon\"}>\n\t\t\t\t\t\t\t{editorExpanded ? (\n\t\t\t\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\t\t\t\tdataQa=\"buttonCollapseCodeEditor\"\n\t\t\t\t\t\t\t\t\tonClick={toggleExpandedMode}\n\t\t\t\t\t\t\t\t\ttitle=\"Collapse\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CollapseIcon fill={theme.palette.ux.secondary.wMain} size={24} />\n\t\t\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\t\t\t\tdataQa=\"buttonExpandCodeEditor\"\n\t\t\t\t\t\t\t\t\tonClick={toggleExpandedMode}\n\t\t\t\t\t\t\t\t\ttitle=\"Expand\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ExpandIcon fill={theme.palette.ux.secondary.wMain} size={24} />\n\t\t\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</IconWrapper>\n\t\t\t\t\t\t<StyledEditorWrapper\n\t\t\t\t\t\t\tclassName={`${!editorExpanded ? \"codeEditor-border\" : \"\"} ${readOnly ? \"codeEditor-readonly\" : \"\"}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CodeMirror\n\t\t\t\t\t\t\t\tkey={id}\n\t\t\t\t\t\t\t\tvalue={val}\n\t\t\t\t\t\t\t\tonBeforeChange={handleChange}\n\t\t\t\t\t\t\t\toptions={{\n\t\t\t\t\t\t\t\t\ttheme: \"default\",\n\t\t\t\t\t\t\t\t\tmode: codeMirrorMode,\n\t\t\t\t\t\t\t\t\tstyleActiveLine: true,\n\t\t\t\t\t\t\t\t\tkeyMap: \"sublime\",\n\t\t\t\t\t\t\t\t\tlint: false,\n\t\t\t\t\t\t\t\t\tfullScreen: fullScreen,\n\t\t\t\t\t\t\t\t\tmatchClosing: true,\n\t\t\t\t\t\t\t\t\tmatchBrackets: true,\n\t\t\t\t\t\t\t\t\tautoCloseBrackets: true,\n\t\t\t\t\t\t\t\t\tautoCloseTags: true,\n\t\t\t\t\t\t\t\t\tlineWrapping: true,\n\t\t\t\t\t\t\t\t\tlineNumbers: true,\n\t\t\t\t\t\t\t\t\tfoldGutter: true,\n\t\t\t\t\t\t\t\t\treadOnly: readOnly,\n\t\t\t\t\t\t\t\t\tgutters: [\"CodeMirror-lint-markers\", \"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"]\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</StyledEditorWrapper>\n\t\t\t\t\t\t{helperText && renderHelperText(helperText, hasErrors, hasWarnings)}\n\t\t\t\t\t</StyledInnerWrapper>\n\t\t\t\t</StyledOuterWrapper>\n\t\t\t)}\n\t\t\t{!expandable && (\n\t\t\t\t<>\n\t\t\t\t\t<StyledEditorWrapper\n\t\t\t\t\t\tclassName={`${!editorExpanded ? \"codeEditor-border\" : \"\"} ${readOnly ? \"codeEditor-readonly\" : \"\"}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<CodeMirror\n\t\t\t\t\t\t\tkey={id}\n\t\t\t\t\t\t\tvalue={val}\n\t\t\t\t\t\t\tonBeforeChange={handleChange}\n\t\t\t\t\t\t\toptions={{\n\t\t\t\t\t\t\t\ttheme: \"default\",\n\t\t\t\t\t\t\t\tmode: codeMirrorMode,\n\t\t\t\t\t\t\t\tstyleActiveLine: true,\n\t\t\t\t\t\t\t\tkeyMap: \"sublime\",\n\t\t\t\t\t\t\t\tlint: false,\n\t\t\t\t\t\t\t\tfullScreen: fullScreen,\n\t\t\t\t\t\t\t\tmatchClosing: true,\n\t\t\t\t\t\t\t\tmatchBrackets: true,\n\t\t\t\t\t\t\t\tautoCloseBrackets: true,\n\t\t\t\t\t\t\t\tautoCloseTags: true,\n\t\t\t\t\t\t\t\tlineWrapping: true,\n\t\t\t\t\t\t\t\tlineNumbers: true,\n\t\t\t\t\t\t\t\tfoldGutter: true,\n\t\t\t\t\t\t\t\treadOnly: readOnly,\n\t\t\t\t\t\t\t\tgutters: [\"CodeMirror-lint-markers\", \"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"]\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</StyledEditorWrapper>\n\t\t\t\t\t{helperText && renderHelperText(helperText, hasErrors, hasWarnings)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport default SolaceCodeEditor;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A functional component that wraps the Material-UI `Popover` component with additional\n * customization options and props. This component is used to display content in a popover\n * anchored to a specific element or position.\n *\n * @param props - The properties to configure the `SolacePopover` component.\n * @param props.id - The unique identifier for the popover.\n * @param props.key - A React key for the component.\n * @param props.anchorElement - The element to which the popover is anchored.\n * @param props.anchorPosition - The position to anchor the popover, if specified.\n * @param props.anchorOrigin - The origin point for the popover's anchor.\n * @param props.transformOrigin - The origin point for the popover's transformation.\n * @param props.open - A boolean indicating whether the popover is open.\n * @param props.dataQa - A data attribute for QA purposes.\n * @param props.dataTags - A data attribute for tagging purposes.\n * @param props.children - The content to be displayed inside the popover.\n * @param props.onClose - A callback function triggered when the popover is closed.\n * @param props.marginThreshold - The margin threshold for the popover's positioning.\n * @param props.activateOnHover - A boolean indicating whether the popover should activate on hover.\n * @param props.additionalProps - Additional props to be passed to the `Popover` component.\n *\n * @returns A Material-UI `Popover` component with the provided configuration and content.\n *\n * @example\n * ```tsx\n * import React, { useState } from \"react\";\n * import SolacePopover from \"./SolacePopover\";\n *\n * const Example = () => {\n * const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n * const [open, setOpen] = useState(false);\n *\n * const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n * setAnchorEl(event.currentTarget);\n * setOpen(true);\n * };\n *\n * const handleClose = () => {\n * setAnchorEl(null);\n * setOpen(false);\n * };\n *\n * return (\n * <div>\n * <button onClick={handleClick}>Open Popover</button>\n * <SolacePopover\n * id=\"example-popover\"\n * open={open}\n * anchorElement={anchorEl}\n * anchorOrigin={{ vertical: \"bottom\", horizontal: \"center\" }}\n * transformOrigin={{ vertical: \"top\", horizontal: \"center\" }}\n * onClose={handleClose}\n * >\n * <div style={{ padding: \"16px\" }}>This is the content of the popover.</div>\n * </SolacePopover>\n * </div>\n * );\n * };\n *\n * export default Example;\n * ```\n */\nimport Popover from \"@mui/material/Popover\";\nimport { SolacePopoverProps } from \"../types/solacePopover\";\n\nconst SolacePopover = (props: SolacePopoverProps) => {\n\tconst {\n\t\tid,\n\t\tkey,\n\t\tanchorElement,\n\t\tanchorPosition,\n\t\tanchorOrigin,\n\t\ttransformOrigin,\n\t\topen,\n\t\tdataQa,\n\t\tdataTags,\n\t\tchildren,\n\t\tonClose,\n\t\tmarginThreshold,\n\t\tactivateOnHover,\n\t\t...additionalProps\n\t} = props;\n\t// Determine the anchorReference based on the presence of anchorPosition\n\tconst anchorRef = anchorPosition ? \"anchorPosition\" : \"anchorEl\";\n\n\t// Return the Popover component with the provided props and handlers\n\treturn (\n\t\t<Popover\n\t\t\tid={id}\n\t\t\topen={open}\n\t\t\tanchorReference={anchorRef}\n\t\t\tanchorOrigin={anchorOrigin}\n\t\t\ttransformOrigin={transformOrigin}\n\t\t\tanchorPosition={anchorPosition}\n\t\t\tanchorEl={anchorElement}\n\t\t\tkey={key}\n\t\t\tclasses={{ paper: \"SolacePopover\" }}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t\tonClose={onClose}\n\t\t\tmarginThreshold={marginThreshold}\n\t\t\tsx={{ pointerEvents: activateOnHover ? \"none\" : \"auto\" }}\n\t\t\t{...additionalProps}\n\t\t>\n\t\t\t{children}\n\t\t</Popover>\n\t);\n};\n\nSolacePopover.displayName = \"SolacePopover\";\n\nexport default SolacePopover;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\n\nexport interface DeleteIconProps {\n\tfill?: string;\n\topacity?: number;\n}\n\nexport const DeleteIcon = ({ fill, opacity }: DeleteIconProps): JSX.Element => {\n\treturn (\n\t\t<SvgIcon width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n\t\t\t<g transform=\"translate(5,3)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M9.5 0H4.5L3.5 1H0.401C0.179 1 0 1.179 0 1.401V2.599C0 2.821 0.179 3 0.401 3H13.599C13.821 3 14 2.821 14 2.599V1.401C14 1.179 13.821 1 13.599 1H10.5L9.5 0ZM10.875 6L10.118 16H3.882L3.125 6H10.875ZM12.59 4H1.39C1.159 4 0.982 4.196 1 4.426L2 17.634C2.016 17.841 2.193 18 2.4 18H11.6C11.807 18 11.984 17.841 12 17.635L13 4.427C13.018 4.196 12.82 4 12.59 4Z\"\n\t\t\t\t\tfill={fill}\n\t\t\t\t\topacity={opacity}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\n\nexport interface MoveIconProps {\n\tfill?: string;\n\topacity?: number;\n}\n\nexport const MoveIcon = ({ fill, opacity }: MoveIconProps): JSX.Element => {\n\treturn (\n\t\t<SvgIcon width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n\t\t\t<g transform=\"translate(7,4)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M4 14C4 15.1 3.1 16 2 16C0.9 16 0 15.1 0 14C0 12.9 0.9 12 2 12C3.1 12 4 12.9 4 14ZM2 6C0.9 6 0 6.9 0 8C0 9.1 0.9 10 2 10C3.1 10 4 9.1 4 8C4 6.9 3.1 6 2 6ZM2 0C0.9 0 0 0.9 0 2C0 3.1 0.9 4 2 4C3.1 4 4 3.1 4 2C4 0.9 3.1 0 2 0ZM8 4C9.1 4 10 3.1 10 2C10 0.9 9.1 0 8 0C6.9 0 6 0.9 6 2C6 3.1 6.9 4 8 4ZM8 6C6.9 6 6 6.9 6 8C6 9.1 6.9 10 8 10C9.1 10 10 9.1 10 8C10 6.9 9.1 6 8 6ZM8 12C6.9 12 6 12.9 6 14C6 15.1 6.9 16 8 16C9.1 16 10 15.1 10 14C10 12.9 9.1 12 8 12Z\"\n\t\t\t\t\tfill={fill}\n\t\t\t\t\tfillOpacity={opacity}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport SolaceTextField, { SolaceTextFieldChangeEvent } from \"./SolaceTextField\";\nimport { styled, Theme, useTheme } from \"@mui/material\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport { DeleteIcon } from \"../../resources/icons/DeleteIcon\";\nimport { MoveIcon } from \"../../resources/icons/MoveIcon\";\nimport { CSSProperties } from \"@mui/styled-engine\";\n\ninterface SolaceAVPContainerProps {\n\tisDragging: boolean;\n\tdropOverIndex: number | null;\n\tdropFromTop: boolean | null;\n\tindex: number;\n\treadOnly: boolean;\n\tdisableReorder?: boolean;\n}\n\ninterface SolaceAVPMoveButtonProps {\n\tisDragging: boolean;\n\tghostItem: boolean;\n\treadOnly: boolean;\n}\ninterface SolaceAVPDeleteButtonProps {\n\tghostItem: boolean;\n\tcursor: string;\n\tbackground: string;\n\treadOnly: boolean;\n}\n\n// conditionally display a drop line as a visual indicator for droppable position\nconst displayDropLine = (\n\ttheme: Theme,\n\tdropFromTop: boolean | null,\n\tdropOverIndex: number | null,\n\tindex: number\n): string => {\n\tlet dropLine = \"\";\n\tif (\n\t\tdropFromTop !== null &&\n\t\tdropOverIndex !== null &&\n\t\t((dropFromTop && dropOverIndex + 1 === index) || (!dropFromTop && dropOverIndex === index))\n\t) {\n\t\tdropLine = `1px solid ${theme.palette.ux.accent.n2.wMain}`;\n\t}\n\treturn dropLine;\n};\n\nconst SolaceAVPContainer = styled(\"div\", {\n\tshouldForwardProp: (prop) =>\n\t\tprop !== \"isDragging\" &&\n\t\tprop !== \"dropOverIndex\" &&\n\t\tprop !== \"dropFromTop\" &&\n\t\tprop !== \"readOnly\" &&\n\t\tprop !== \"disableReorder\"\n})<SolaceAVPContainerProps>(({ theme, isDragging, dropOverIndex, index, dropFromTop, readOnly, disableReorder }) => ({\n\t...(theme.mixins.formComponent_AVPItem.container as CSSProperties),\n\tbackgroundColor: isDragging ? theme.palette.ux.brand.w10 : \"inherit\",\n\tborderTop: displayDropLine(theme, dropFromTop, dropOverIndex, index),\n\tgridTemplateColumns: readOnly\n\t\t? \"0px minmax(0, 1fr) 8px minmax(0, 1fr) 0px\"\n\t\t: disableReorder\n\t\t ? \"0px 1fr 8px 1fr 40px\"\n\t\t : \"32px 1fr 8px 1fr 40px\"\n}));\nconst SolaceAVPInputForKey = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_AVPItem.inputWrapperForKey as CSSProperties)\n}));\nconst SolaceAVPInputForValue = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_AVPItem.inputWrapperForValue as CSSProperties)\n}));\n\nconst SolaceAVPMoveButton = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"ghostItem\" && prop !== \"isDragging\" && prop !== \"readOnly\"\n})<SolaceAVPMoveButtonProps>(({ theme, ghostItem, isDragging, readOnly }) => ({\n\t...(theme.mixins.formComponent_AVPItem.moveButton as CSSProperties),\n\tcursor: ghostItem ? \"default\" : isDragging ? \"move\" : \"pointer\",\n\tdisplay: readOnly ? \"none\" : \"inherit\"\n}));\n\nconst SolaceAVPDeleteButton = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"ghostItem\" && prop !== \"cursor\" && prop !== \"background\" && prop !== \"readOnly\"\n})<SolaceAVPDeleteButtonProps>(({ theme, ghostItem, cursor, background, readOnly }) => ({\n\t...(theme.mixins.formComponent_AVPItem.deleteButton as CSSProperties),\n\tcursor: cursor,\n\tdisplay: readOnly ? \"none\" : \"inherit\",\n\theight: \"fit-content\",\n\t\":hover\": {\n\t\tbackgroundColor: background,\n\t\tsvg: {\n\t\t\tpath: {\n\t\t\t\tfill: ghostItem ? theme.palette.ux.secondary.w40 : theme.palette.ux.deprecated.primary.wMain\n\t\t\t}\n\t\t}\n\t},\n\tpaddingBottom: theme.spacing(0.5),\n\tmarginLeft: theme.spacing(1)\n}));\n\nconst ValueWrapper = styled(\"div\")(({ theme }) => ({\n\tpaddingTop: \"7px\",\n\tcolor: theme.palette.ux.secondary.text.wMain\n}));\n\nexport enum valueInputTypes {\n\ttextfield = \"textfield\",\n\tselect = \"select\",\n\tautocomplete = \"autocomplete\"\n}\n\nexport interface SolaceAttributeValuePairProps {\n\t/**\n\t * unique id for each Attribute Value Pair (AVP) item\n\t */\n\tid: string;\n\t/**\n\t * index for each Attribute Value Pair (AVP) item in the list, used to updated the list in response to delete and onchange events\n\t */\n\tindex: number;\n\t/**\n\t * key for Attribute Value Pair (AVP)\n\t */\n\tavpKey: string;\n\t/**\n\t * value for Attribute Value Pair (AVP)\n\t */\n\tavpValue: string;\n\t/**\n\t *\n\t */\n\tdataTags: string;\n\t/**\n\t * TODO: implementation required\n\t * specifies the type of the value providing component: types can be input, select etc. component, default to SolaceTextField if no type provided\n\t */\n\ttype?: valueInputTypes;\n\t/**\n\t * specifies whether the Attribute Value Pair (AVP) component is rendered in ghost state\n\t */\n\tghostItem: boolean;\n\t/**\n\t * callback for delete action\n\t */\n\tonDelete: (event: React.MouseEvent<HTMLElement>, index: number) => void;\n\t/**\n\t * callback for input onchange event\n\t */\n\tonChange: (event: SolaceTextFieldChangeEvent, index: number) => void;\n\t/**\n\t * callback for keyup event\n\t */\n\tonKeyUp: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\t/**\n\t * callback for onblur event\n\t */\n\tonBlur: (event: React.FocusEvent<HTMLInputElement>, index: number) => void;\n\t/**\n\t * validation error on an AVP value input value\n\t */\n\tkeyErrorText?: string;\n\t/**\n\t * validation error on an AVP value input value\n\t */\n\tvalueErrorText?: string;\n\t/**\n\t * An optional string to be displayed when an AVP key or value is empty when set to read-only.\n\t */\n\temptyFieldDisplayValue?: string;\n\t/**\n\t * index of the element that is being dragged over with\n\t * the index is updated on dragging\n\t */\n\tdropOverIndex: number | null;\n\t/**\n\t * dropping over state with three possible values:\n\t * true: dropping from top to bottom\n\t * false: dropping from bottom to top\n\t * null: dropping back to the same position or outside of the droppable container\n\t */\n\tdropFromTop: boolean | null;\n\t/**\n\t * read only flag\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Boolean flag to disable re-ordering of items\n\t */\n\tdisableReorder?: boolean;\n}\n\nexport const SolaceAttributeValuePair = ({\n\tid,\n\tindex,\n\tavpKey,\n\tavpValue,\n\tdataTags,\n\tghostItem = false,\n\tonDelete,\n\tonChange,\n\tonKeyUp,\n\tonBlur,\n\tkeyErrorText,\n\tvalueErrorText,\n\tdropOverIndex,\n\tdropFromTop,\n\treadOnly,\n\temptyFieldDisplayValue = \"\",\n\tdisableReorder = false\n}: SolaceAttributeValuePairProps) => {\n\tconst theme = useTheme();\n\treturn (\n\t\t<Draggable draggableId={id} index={index} isDragDisabled={ghostItem || disableReorder}>\n\t\t\t{\n\t\t\t\t// TODO: Refactor this function to reduce its Cognitive Complexity from 17 to the 15 allowed\n\t\t\t\t// eslint-disable-next-line sonarjs/cognitive-complexity\n\t\t\t\t(provided, snapshot) => (\n\t\t\t\t\t<SolaceAVPContainer\n\t\t\t\t\t\tref={provided.innerRef}\n\t\t\t\t\t\t{...provided.draggableProps}\n\t\t\t\t\t\tisDragging={snapshot.isDragging}\n\t\t\t\t\t\tdropOverIndex={dropOverIndex}\n\t\t\t\t\t\tdropFromTop={dropFromTop}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\treadOnly={!!readOnly}\n\t\t\t\t\t\tdisableReorder={disableReorder}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!disableReorder && (\n\t\t\t\t\t\t\t<SolaceAVPMoveButton\n\t\t\t\t\t\t\t\t{...provided.dragHandleProps}\n\t\t\t\t\t\t\t\tisDragging={snapshot.isDragging}\n\t\t\t\t\t\t\t\tghostItem={ghostItem}\n\t\t\t\t\t\t\t\treadOnly={!!readOnly}\n\t\t\t\t\t\t\t\tdata-qa={`avpMove-${index}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MoveIcon\n\t\t\t\t\t\t\t\t\tfill={ghostItem ? theme.palette.ux.secondary.w40 : theme.palette.ux.secondary.wMain}\n\t\t\t\t\t\t\t\t\topacity={1}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</SolaceAVPMoveButton>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<SolaceAVPInputForKey>\n\t\t\t\t\t\t\t{!avpKey && avpValue && readOnly && (\n\t\t\t\t\t\t\t\t<ValueWrapper data-qa={`avpKey-${index}`}>{emptyFieldDisplayValue}</ValueWrapper>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{(avpKey || (!avpKey && !readOnly)) && (\n\t\t\t\t\t\t\t\t<SolaceTextField\n\t\t\t\t\t\t\t\t\tname=\"key\"\n\t\t\t\t\t\t\t\t\tdataQa={`avpKey-${index}`}\n\t\t\t\t\t\t\t\t\tdataTags={dataTags}\n\t\t\t\t\t\t\t\t\tvalue={avpKey}\n\t\t\t\t\t\t\t\t\tonChange={(e) => onChange(e, index)}\n\t\t\t\t\t\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\t\t\t\t\t\tonBlur={(e) => onBlur(e, index)}\n\t\t\t\t\t\t\t\t\thasErrors={ghostItem ? false : !!keyErrorText}\n\t\t\t\t\t\t\t\t\thelperText={ghostItem ? \"\" : keyErrorText}\n\t\t\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</SolaceAVPInputForKey>\n\n\t\t\t\t\t\t<SolaceAVPInputForValue>\n\t\t\t\t\t\t\t{avpKey && !avpValue && readOnly && (\n\t\t\t\t\t\t\t\t<ValueWrapper data-qa={`avpValue-${index}`}>{emptyFieldDisplayValue}</ValueWrapper>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{(avpValue || (!avpValue && !readOnly)) && (\n\t\t\t\t\t\t\t\t<SolaceTextField\n\t\t\t\t\t\t\t\t\tname=\"value\"\n\t\t\t\t\t\t\t\t\tdataQa={`avpValue-${index}`}\n\t\t\t\t\t\t\t\t\tdataTags={dataTags}\n\t\t\t\t\t\t\t\t\tvalue={avpValue}\n\t\t\t\t\t\t\t\t\tonChange={(e) => onChange(e, index)}\n\t\t\t\t\t\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\t\t\t\t\t\tonBlur={(e) => onBlur(e, index)}\n\t\t\t\t\t\t\t\t\thasErrors={ghostItem ? false : !!valueErrorText}\n\t\t\t\t\t\t\t\t\thelperText={ghostItem ? \"\" : valueErrorText}\n\t\t\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</SolaceAVPInputForValue>\n\n\t\t\t\t\t\t<SolaceAVPDeleteButton\n\t\t\t\t\t\t\tonClick={(e) => onDelete(e, index)}\n\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\tghostItem={ghostItem}\n\t\t\t\t\t\t\tcursor={ghostItem ? \"default\" : \"pointer\"}\n\t\t\t\t\t\t\tbackground={ghostItem ? \"inherit\" : theme.palette.ux.secondary.w10}\n\t\t\t\t\t\t\treadOnly={!!readOnly}\n\t\t\t\t\t\t\tdata-qa={`avpDelete-${index}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DeleteIcon\n\t\t\t\t\t\t\t\tfill={ghostItem ? theme.palette.ux.secondary.w40 : theme.palette.ux.secondary.wMain}\n\t\t\t\t\t\t\t\topacity={1}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</SolaceAVPDeleteButton>\n\t\t\t\t\t</SolaceAVPContainer>\n\t\t\t\t)\n\t\t\t}\n\t\t</Draggable>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useState, useCallback, useEffect, useRef } from \"react\";\nimport { styled } from \"@mui/material\";\nimport { DragDropContext, Droppable, OnDragEndResponder, OnDragUpdateResponder } from \"react-beautiful-dnd\";\nimport SolaceLabel from \"./SolaceLabel\";\nimport { SolaceAttributeValuePair, valueInputTypes } from \"./SolaceAttributeValuePair\";\nimport HelperText from \"./HelperText\";\nimport ErrorText from \"./ErrorText\";\nimport WarningText from \"./WarningText\";\nimport { CSSProperties } from \"@mui/styled-engine\";\nimport { SolaceTextFieldChangeEvent } from \"./SolaceTextField\";\nimport { Virtuoso } from \"react-virtuoso\";\n\ninterface SolaceAVPFormLabelProps {\n\treadOnly: boolean;\n\tdisableReorder?: boolean;\n\thasScrollBar?: boolean;\n}\n\nexport interface VirtualizeAvpListOptions {\n\tminHeight?: number | string;\n\theight?: number | string;\n\tuseWindowScrolling?: boolean;\n\tincreaseViewportBy?:\n\t\t| number\n\t\t| {\n\t\t\t\ttop: number;\n\t\t\t\tbottom: number;\n\t\t };\n\tinitialTopMostItemIndex?: number;\n}\n\nexport interface AVPItem {\n\tid?: string;\n\tkey: string;\n\tvalue: string;\n\tkeyErrorText?: string;\n\tvalueErrorText?: string;\n}\n\nconst SolaceAVPFormContainer = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_AVPForm.container as CSSProperties)\n}));\n\n// If hasScrollBar is true, the label wrapper will have an additional 16px padding to accommodate the scrollbar in the content area\nconst SolaceAVPFormLabel = styled(\"div\")<SolaceAVPFormLabelProps>(\n\t({ theme, readOnly, disableReorder, hasScrollBar }) => ({\n\t\t...(theme.mixins.formComponent_AVPForm.labelWrapper as CSSProperties),\n\t\tgridTemplateColumns: readOnly\n\t\t\t? `0px minmax(0, 1fr) 8px minmax(0, 1fr) 0px${hasScrollBar ? \" 16px\" : \"\"}`\n\t\t\t: disableReorder\n\t\t\t ? `0px 1fr 8px 1fr 32px${hasScrollBar ? \" 16px\" : \"\"}`\n\t\t\t : `32px 1fr 8px 1fr 32px${hasScrollBar ? \" 16px\" : \"\"}`\n\t})\n);\nconst SolaceAVPListContainer = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.formComponent_AVPForm.listWrapper as CSSProperties)\n}));\n\nconst reorderList = (list: Array<AVPItem>, startIndex: number, endIndex: number): Array<AVPItem> => {\n\tconst result = Array.from(list);\n\tconst [removed] = result.splice(startIndex, 1);\n\tresult.splice(endIndex, 0, removed);\n\n\treturn result;\n};\n\nconst ghostItemAtIndex = (list: Array<AVPItem>, index: number) => {\n\treturn list[index][\"key\"] === \"\" && list[index][\"value\"] === \"\";\n};\n\nenum AVPNavigationKeys {\n\tDown = \"ArrowDown\",\n\tUp = \"ArrowUp\",\n\tNextLine = \"Enter\"\n}\n\n// the navigation logic assumes there are two columns per row for the enum list\nconst handleNavigateAVPList = (key: string, index: number, enumList: NodeListOf<Element>): void => {\n\tif (key === AVPNavigationKeys.Up && index - 1 > 0) {\n\t\t(enumList[index - 2] as HTMLInputElement).select();\n\t} else if (key === AVPNavigationKeys.Down && index + 2 < enumList.length) {\n\t\t(enumList[index + 2] as HTMLInputElement).select();\n\t} else if (key === AVPNavigationKeys.NextLine && index + 2 < enumList.length) {\n\t\tif (index % 2 === 0) {\n\t\t\t(enumList[index + 2] as HTMLInputElement).select();\n\t\t} else if (index % 2 === 1) {\n\t\t\t(enumList[index + 1] as HTMLInputElement).select();\n\t\t}\n\t}\n};\n\nconst List = React.forwardRef<HTMLDivElement>((props, ref) => {\n\tconst headerRef = props[\"context\"]?.headerRef;\n\tconst virtualizedAvpListOption = props[\"context\"]?.virtualizedAvpListOption;\n\tconst style = props[\"style\"];\n\n\treturn (\n\t\t<SolaceAVPListContainer\n\t\t\t{...props}\n\t\t\tref={ref}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\twidth: virtualizedAvpListOption?.height && headerRef.current ? headerRef.current.offsetWidth - 16 : \"100%\"\n\t\t\t}}\n\t\t/>\n\t);\n});\n\nList.displayName = \"List\";\n\nexport interface SolaceAttributeValuePairFormProps {\n\t/**\n\t * Unique identifier, if `id` is not specified, `name` value will be used\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the AVP form\n\t */\n\tname: string;\n\t/**\n\t * read only flag\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * label for the key column\n\t */\n\tlabelForKeys?: string | JSX.Element;\n\t/**\n\t * label for the value column\n\t */\n\tlabelForValues?: string | JSX.Element;\n\t/**\n\t * TODO: implementation required\n\t * specifies the type of the value providing component: types can be input, select etc. component, default to SolaceTextField if no type provided\n\t */\n\ttype?: valueInputTypes;\n\t/**\n\t * initial AVP list of key/value pairs, it can be an empty array e.g.[]\n\t */\n\tavpList?: Array<AVPItem>;\n\t/**\n\t * callback function that returns the current AVP list\n\t */\n\tonAVPListUpdate?: (list: Array<AVPItem>) => void;\n\t/**\n\t * validate individual AVP values, the function is triggered onBlur event\n\t */\n\tavpKeyValidationCallback?: (input: string, values: Array<AVPItem>) => string;\n\t/**\n\t * validate individual AVP values, the function is triggered onBlur event\n\t */\n\tavpValueValidationCallback?: (input: string, values: Array<AVPItem>) => string;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not `input` for key field is mandatory\n\t */\n\tenableRequiredKeyFieldIndicator?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not `input` for value field is mandatory\n\t */\n\tenableRequiredValueFieldIndicator?: boolean;\n\t/**\n\t * An optional string to be displayed when an AVP key or value is empty when set to read-only.\n\t */\n\temptyFieldDisplayValue?: string;\n\t/**\n\t *\n\t * This boolean allows user to toggle whether keys are mandatory or not (i.e. if set to false, you can have a value without an associated key)\n\t */\n\tkeyRequired?: boolean;\n\t/**\n\t * String message to display if an AVP value is specified without an associated key (unless allowedKeyToBeEmpty is true, then no validation check done)\n\t */\n\tkeyIsRequiredMessage?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag to mark the `input` in warn state\n\t */\n\thasWarnings?: boolean;\n\t/**\n\t * Boolean flag to disable re-ordering of items\n\t */\n\tdisableReorder?: boolean;\n\t/**\n\t * AVP values maximum height if virtualizedAvpListOption is not set\n\t */\n\tavpListMaxHeight?: string;\n\t/**\n\t * If option is set, only render part of a large data set to fill the viewport\n\t */\n\tvirtualizedAvpListOption?: VirtualizeAvpListOptions;\n}\n\nconst SolaceAttributeValuePairForm = ({\n\tid,\n\tname,\n\treadOnly,\n\tlabelForKeys = \"Name\",\n\tlabelForValues = \"DisplayName\",\n\tavpList = [],\n\tonAVPListUpdate,\n\tavpKeyValidationCallback,\n\tavpValueValidationCallback,\n\tenableRequiredKeyFieldIndicator,\n\tenableRequiredValueFieldIndicator,\n\temptyFieldDisplayValue = \"\",\n\tkeyRequired = true, // by default, key is considered mandatory for every AVP (i.e. you can have a key with no value, but you cannot have a value with no key)\n\tkeyIsRequiredMessage = \"Required\",\n\thelperText = \"\",\n\thasErrors = false,\n\thasWarnings = false,\n\tdisableReorder = false,\n\tavpListMaxHeight,\n\tvirtualizedAvpListOption\n}: SolaceAttributeValuePairFormProps): JSX.Element => {\n\tconst [currentAVPList, setCurrentAVPList] = useState(avpList);\n\tconst [dropOverIndex, setDropOverIndex] = useState<number | null>(null);\n\tconst [dropFromTop, setDropFromTop] = useState<boolean | null>(null);\n\tconst headerRef = useRef<HTMLDivElement>(null);\n\n\t// Add new entry on avp list update\n\tuseEffect(() => {\n\t\tconst list = [...avpList];\n\t\tlist.push({ key: \"\", value: \"\" });\n\t\tsetCurrentAVPList(list);\n\t}, [avpList]);\n\n\tconst handleListUpdate = useCallback(\n\t\t(list: Array<AVPItem>) => {\n\t\t\tsetCurrentAVPList(list);\n\t\t\tif (onAVPListUpdate && ghostItemAtIndex(list, list.length - 1)) onAVPListUpdate(list.slice(0, -1));\n\t\t\tsetDropOverIndex(null); // reset drop over index on drag end\n\t\t\tsetDropFromTop(null); // reset drop over direction on drag end\n\t\t},\n\t\t[onAVPListUpdate]\n\t);\n\n\t// All the things to do when a drag action ended\n\tconst handleDragEnd: OnDragEndResponder = (result) => {\n\t\t/**\n\t\t * No changes on the following conditions:\n\t\t * 1. Drag outside of the list\n\t\t * 2. Drag & Drop on the same item\n\t\t * 3. Drag & Drop on the last item e.g. ghost item\n\t\t */\n\t\tif (\n\t\t\t!result.destination ||\n\t\t\tresult.destination.index === result.source.index ||\n\t\t\tresult.destination.index === currentAVPList.length - 1\n\t\t)\n\t\t\treturn;\n\n\t\tconst reorderedList = reorderList(currentAVPList, result.source.index, result.destination.index);\n\n\t\tsetCurrentAVPList(reorderedList);\n\n\t\tif (onAVPListUpdate && ghostItemAtIndex(reorderedList, reorderedList.length - 1))\n\t\t\tonAVPListUpdate(reorderedList.slice(0, -1));\n\n\t\tsetDropOverIndex(null); // reset drop over index on drag end\n\t\tsetDropFromTop(null); // reset drop over direction on drag end\n\t};\n\n\t/**\n\t * update drop over index & direction on drag update\n\t * this allows to apply visual indicators to UI elements based on dragging behaviors\n\t */\n\tconst handleDragUpdate: OnDragUpdateResponder | undefined = (update) => {\n\t\tconst sourceIndex: number | null = update.source.index;\n\t\tconst destinationIndex: number | null = update?.destination?.index ?? null;\n\t\tconst dropOverIndex: number | null = destinationIndex;\n\t\tlet dropFromTop: boolean | null = null;\n\t\tif (sourceIndex !== null && destinationIndex !== null) {\n\t\t\tif (sourceIndex > destinationIndex) {\n\t\t\t\tdropFromTop = false;\n\t\t\t} else if (sourceIndex < destinationIndex) {\n\t\t\t\tdropFromTop = true;\n\t\t\t}\n\t\t}\n\t\tsetDropOverIndex(dropOverIndex);\n\t\tsetDropFromTop(dropFromTop);\n\t};\n\n\tconst handleInputChange = useCallback(\n\t\t(event: SolaceTextFieldChangeEvent, index: number) => {\n\t\t\tconst eventName: string = event.name;\n\t\t\tconst value: string = event.value;\n\n\t\t\tconst list = [...currentAVPList];\n\t\t\tlist[index][eventName] = value;\n\n\t\t\t// add a new row at the end of the list upon input changes\n\t\t\tif (eventName && list.length - 1 === index) {\n\t\t\t\tlist.push({ key: \"\", value: \"\" });\n\t\t\t}\n\t\t\tsetCurrentAVPList(list);\n\t\t\thandleListUpdate(list);\n\t\t},\n\t\t[currentAVPList, handleListUpdate]\n\t);\n\n\t// determine whether an enum item is a ghost item\n\tconst ghostItem = useCallback(\n\t\t(index: number): boolean => index === currentAVPList.length - 1,\n\t\t[currentAVPList.length]\n\t);\n\n\tconst handleDeleteItem = useCallback(\n\t\t(event: React.MouseEvent<HTMLElement>, index: number) => {\n\t\t\tif (event.type === \"click\" && !ghostItem(index) && currentAVPList.length > 1) {\n\t\t\t\tconst list = [...currentAVPList];\n\t\t\t\tlist.splice(index, 1);\n\t\t\t\tsetCurrentAVPList(list);\n\t\t\t\thandleListUpdate(list);\n\t\t\t}\n\t\t},\n\t\t[currentAVPList, handleListUpdate, ghostItem]\n\t);\n\n\tconst handleKeyUp = useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tconst inputEleList = document.querySelectorAll(\"[data-tags='avpInput']\");\n\t\tconst focusedEle = document.activeElement;\n\n\t\tfor (let i = 0; i < inputEleList.length; i++) {\n\t\t\tif (inputEleList[i].getAttribute(\"data-qa\") === focusedEle?.getAttribute(\"data-qa\")) {\n\t\t\t\thandleNavigateAVPList(event.key, i, inputEleList);\n\t\t\t}\n\t\t}\n\t}, []);\n\n\tconst handleInputOnBlur = useCallback(\n\t\t(event: React.FocusEvent<HTMLInputElement>, index: number) => {\n\t\t\tconst list = [...currentAVPList];\n\n\t\t\tlist[index][\"key\"] = list[index][\"key\"].trim();\n\t\t\tlist[index][\"value\"] = list[index][\"value\"].trim();\n\n\t\t\t// Check if the key field is valid if key validation callback is provided\n\t\t\tif (event.target.getAttribute(\"name\") === \"key\" && avpKeyValidationCallback) {\n\t\t\t\tconst error = avpKeyValidationCallback(event.target.value, list.slice(0, -1));\n\n\t\t\t\tif (error) {\n\t\t\t\t\tlist[index][\"keyErrorText\"] = error;\n\t\t\t\t} else {\n\t\t\t\t\tdelete list[index][\"keyErrorText\"];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check if the value field is valid if value callback is provided\n\t\t\tif (event.target.getAttribute(\"name\") === \"value\" && avpValueValidationCallback) {\n\t\t\t\tconst error = avpValueValidationCallback(event.target.value, list.slice(0, -1));\n\n\t\t\t\tif (error) {\n\t\t\t\t\tlist[index][\"valueErrorText\"] = error;\n\t\t\t\t} else {\n\t\t\t\t\tdelete list[index][\"valueErrorText\"];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check if the key field is empty\n\t\t\tif (keyRequired && !list[index][\"key\"]) {\n\t\t\t\tlist[index][\"keyErrorText\"] = keyIsRequiredMessage;\n\t\t\t} else if (list[index][\"keyErrorText\"] === keyIsRequiredMessage) {\n\t\t\t\tdelete list[index][\"keyErrorText\"];\n\t\t\t}\n\n\t\t\tsetCurrentAVPList(list);\n\t\t\thandleListUpdate(list);\n\t\t},\n\t\t[\n\t\t\tcurrentAVPList,\n\t\t\tkeyRequired,\n\t\t\tavpKeyValidationCallback,\n\t\t\tavpValueValidationCallback,\n\t\t\tkeyIsRequiredMessage,\n\t\t\thandleListUpdate\n\t\t]\n\t);\n\n\treturn (\n\t\t<DragDropContext onDragEnd={handleDragEnd} onDragUpdate={handleDragUpdate}>\n\t\t\t<Droppable droppableId={id ?? name}>\n\t\t\t\t{(provided) => (\n\t\t\t\t\t<SolaceAVPFormContainer ref={provided.innerRef} {...provided.droppableProps}>\n\t\t\t\t\t\t<SolaceAVPFormLabel\n\t\t\t\t\t\t\tref={headerRef}\n\t\t\t\t\t\t\treadOnly={!!readOnly}\n\t\t\t\t\t\t\tdisableReorder={!!disableReorder}\n\t\t\t\t\t\t\thasScrollBar={!!avpListMaxHeight || !!virtualizedAvpListOption?.height}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SolaceLabel id=\"avpLabelForKeys\" required={enableRequiredKeyFieldIndicator}>\n\t\t\t\t\t\t\t\t{labelForKeys}\n\t\t\t\t\t\t\t</SolaceLabel>\n\t\t\t\t\t\t\t<SolaceLabel id=\"avpLabelForValues\" required={enableRequiredValueFieldIndicator}>\n\t\t\t\t\t\t\t\t{labelForValues}\n\t\t\t\t\t\t\t</SolaceLabel>\n\t\t\t\t\t\t</SolaceAVPFormLabel>\n\t\t\t\t\t\t{virtualizedAvpListOption && headerRef.current && (\n\t\t\t\t\t\t\t<Virtuoso\n\t\t\t\t\t\t\t\tcontext={{ headerRef, virtualizedAvpListOption }}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\theight: virtualizedAvpListOption.height ? virtualizedAvpListOption.height : \"auto\",\n\t\t\t\t\t\t\t\t\tminHeight: virtualizedAvpListOption.minHeight ? virtualizedAvpListOption.minHeight : 40\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tuseWindowScroll={virtualizedAvpListOption.useWindowScrolling}\n\t\t\t\t\t\t\t\tincreaseViewportBy={virtualizedAvpListOption.increaseViewportBy}\n\t\t\t\t\t\t\t\tcomponents={{ List }}\n\t\t\t\t\t\t\t\tinitialTopMostItemIndex={virtualizedAvpListOption.initialTopMostItemIndex ?? 0}\n\t\t\t\t\t\t\t\tdata={currentAVPList}\n\t\t\t\t\t\t\t\titemContent={(index, item) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<SolaceAttributeValuePair\n\t\t\t\t\t\t\t\t\t\t\tkey={`${index}`}\n\t\t\t\t\t\t\t\t\t\t\tid={`${index}`}\n\t\t\t\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\t\t\t\tavpKey={item.key}\n\t\t\t\t\t\t\t\t\t\t\tavpValue={item.value}\n\t\t\t\t\t\t\t\t\t\t\tdataTags=\"avpInput\"\n\t\t\t\t\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\t\t\t\t\tonDelete={handleDeleteItem}\n\t\t\t\t\t\t\t\t\t\t\tonKeyUp={handleKeyUp}\n\t\t\t\t\t\t\t\t\t\t\tghostItem={ghostItem(index)}\n\t\t\t\t\t\t\t\t\t\t\tonBlur={handleInputOnBlur}\n\t\t\t\t\t\t\t\t\t\t\tkeyErrorText={item.keyErrorText}\n\t\t\t\t\t\t\t\t\t\t\tvalueErrorText={item.valueErrorText}\n\t\t\t\t\t\t\t\t\t\t\tdropOverIndex={dropOverIndex}\n\t\t\t\t\t\t\t\t\t\t\tdropFromTop={dropFromTop}\n\t\t\t\t\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\t\t\t\t\temptyFieldDisplayValue={emptyFieldDisplayValue}\n\t\t\t\t\t\t\t\t\t\t\tdisableReorder={disableReorder}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!virtualizedAvpListOption && headerRef.current && (\n\t\t\t\t\t\t\t<div style={avpListMaxHeight ? { maxHeight: avpListMaxHeight, overflowY: \"auto\" } : undefined}>\n\t\t\t\t\t\t\t\t<SolaceAVPListContainer\n\t\t\t\t\t\t\t\t\tstyle={{ width: avpListMaxHeight ? headerRef.current.offsetWidth - 16 : \"100%\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{currentAVPList.map((item, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<SolaceAttributeValuePair\n\t\t\t\t\t\t\t\t\t\t\t\tkey={`${index}`}\n\t\t\t\t\t\t\t\t\t\t\t\tid={`${index}`}\n\t\t\t\t\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\t\t\t\t\tavpKey={item.key}\n\t\t\t\t\t\t\t\t\t\t\t\tavpValue={item.value}\n\t\t\t\t\t\t\t\t\t\t\t\tdataTags=\"avpInput\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\t\t\t\t\t\tonDelete={handleDeleteItem}\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyUp={handleKeyUp}\n\t\t\t\t\t\t\t\t\t\t\t\tghostItem={ghostItem(index)}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={handleInputOnBlur}\n\t\t\t\t\t\t\t\t\t\t\t\tkeyErrorText={item.keyErrorText}\n\t\t\t\t\t\t\t\t\t\t\t\tvalueErrorText={item.valueErrorText}\n\t\t\t\t\t\t\t\t\t\t\t\tdropOverIndex={dropOverIndex}\n\t\t\t\t\t\t\t\t\t\t\t\tdropFromTop={dropFromTop}\n\t\t\t\t\t\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\t\t\t\t\t\temptyFieldDisplayValue={emptyFieldDisplayValue}\n\t\t\t\t\t\t\t\t\t\t\t\tdisableReorder={disableReorder}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</SolaceAVPListContainer>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{provided.placeholder}\n\t\t\t\t\t</SolaceAVPFormContainer>\n\t\t\t\t)}\n\t\t\t</Droppable>\n\t\t\t{helperText && (\n\t\t\t\t<div style={{ paddingLeft: \"16px\" }}>\n\t\t\t\t\t{helperText && !hasWarnings && !hasErrors && <HelperText>{helperText}</HelperText>}\n\t\t\t\t\t{helperText && !hasErrors && hasWarnings && <WarningText>{helperText}</WarningText>}\n\t\t\t\t\t{helperText && hasErrors && <ErrorText>{helperText}</ErrorText>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</DragDropContext>\n\t);\n};\n\nexport default SolaceAttributeValuePairForm;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useTheme } from \"@mui/material\";\n\nexport const VerticalDotsIcon = ({ fill = \"\" }): JSX.Element => {\n\tconst defaultFill = useTheme().palette.ux?.secondary.wMain;\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"16\" viewBox=\"0 0 4 16\" fill=\"none\">\n\t\t\t<path\n\t\t\t\td=\"M4 14C4 15.1 3.1 16 2 16C0.9 16 0 15.1 0 14C0 12.9 0.9 12 2 12C3.1 12 4 12.9 4 14ZM2 6C0.9 6 0 6.9 0 8C0 9.1 0.9 10 2 10C3.1 10 4 9.1 4 8C4 6.9 3.1 6 2 6ZM2 0C0.9 0 0 0.9 0 2C0 3.1 0.9 4 2 4C3.1 4 4 3.1 4 2C4 0.9 3.1 0 2 0Z\"\n\t\t\t\tfill={fill || defaultFill}\n\t\t\t/>\n\t\t</svg>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Drawer, styled, Box, useTheme } from \"@mui/material\";\nimport { useState, useCallback, useRef, useEffect } from \"react\";\nimport { VerticalDotsIcon } from \"../resources/icons/VerticalDotsIcon\";\n\nenum ANCHOR {\n\tLEFT = \"left\",\n\tRIGHT = \"right\"\n}\n\nconst Dragger = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"anchor\" })<{\n\tanchor: \"left\" | \"right\";\n}>(({ anchor, theme }) => ({\n\twidth: \"8px\",\n\tcursor: \"ew-resize\",\n\t...(anchor === ANCHOR.LEFT && { borderLeft: `1px solid ${theme.palette.ux.secondary.w40}` }),\n\t...(anchor === ANCHOR.RIGHT && { borderRight: `1px solid ${theme.palette.ux.secondary.w40}` }),\n\tposition: \"absolute\",\n\ttop: 0,\n\tbottom: 0,\n\t...(anchor === ANCHOR.LEFT && { right: 0 }),\n\t...(anchor === ANCHOR.RIGHT && { left: 0 }),\n\tbackgroundColor: `${theme.palette.ux.background.w20}`,\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\tjustifyContent: \"space-around\",\n\talignItems: \"center\"\n}));\n\nexport interface SolaceDrawerProps {\n\t/**\n\t * Flag signifying if the drawer is opened or closed.\n\t */\n\topen: boolean;\n\t/**\n\t * The initial width of the drawer. Default to 320.\n\t */\n\twidth?: number;\n\t/**\n\t * Optional flag to have the drawer resizable in width. default is set to false.\n\t */\n\tresizable?: boolean;\n\t/**\n\t * Optional callback to pass new width back after the action of resizing is completed.\n\t */\n\tonResizeDone?: (newWidth: number) => void;\n\t/**\n\t * Optional value to control the range of drawer width. Needs resizable to be true. default is set to 100.\n\t */\n\tminWidth?: number;\n\t/**\n\t * Optional value to control the range of the drawer width. Needs resizable to be true. default is set to 1000.\n\t */\n\tmaxWidth?: number;\n\t/**\n\t * \tSide from which the drawer will appear.\n\t */\n\tanchor?: \"left\" | \"right\";\n\t/**\n\t * \tCSS property of position top.\n\t */\n\ttop?: string;\n\t/**\n\t * \tCSS property of position height.\n\t */\n\theight?: string;\n\t/**\n\t * \tCSS property of position left or right, relative to border, depends on anchor.\n\t */\n\toffset?: string;\n\t/**\n\t * The content that is in the drawer.\n\t */\n\tchildren?: JSX.Element;\n}\n\nfunction SolaceDrawer({\n\topen,\n\twidth = 320,\n\tresizable = false,\n\tonResizeDone,\n\tminWidth = 100,\n\tmaxWidth = 1000,\n\tanchor = ANCHOR.RIGHT,\n\ttop = \"0\",\n\toffset,\n\theight = \"100%\",\n\tchildren\n}: SolaceDrawerProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst initialClientX = useRef<number>(0);\n\tconst [drawerWidth, setDrawerWidth] = useState(width);\n\t// Create ref to track the value of drawerWidth state, as the state will be stale in callback function handleMouseUp().\n\tconst widthRef = useRef<number>(width);\n\twidthRef.current = drawerWidth;\n\n\t// If prop maxWidth is changed and is smaller than the current width, set width to the new maxWidth\n\tuseEffect(() => {\n\t\tif (drawerWidth > maxWidth) {\n\t\t\tsetDrawerWidth(maxWidth);\n\t\t}\n\t}, [drawerWidth, maxWidth]);\n\n\tconst handleMouseMove = useCallback(\n\t\t(e) => {\n\t\t\te.preventDefault();\n\t\t\tconst delta = e.clientX - initialClientX.current;\n\t\t\tconst newWidth = anchor === ANCHOR.RIGHT ? drawerWidth - delta : drawerWidth + delta;\n\t\t\tif (newWidth >= minWidth && newWidth <= maxWidth) {\n\t\t\t\tsetDrawerWidth(newWidth);\n\t\t\t} else if (newWidth < minWidth) {\n\t\t\t\tsetDrawerWidth(minWidth);\n\t\t\t} else {\n\t\t\t\tsetDrawerWidth(maxWidth);\n\t\t\t}\n\t\t},\n\t\t[maxWidth, minWidth, anchor, drawerWidth]\n\t);\n\n\tconst handleMouseUp = useCallback(() => {\n\t\tdocument.removeEventListener(\"mouseup\", handleMouseUp, true);\n\t\tdocument.removeEventListener(\"mousemove\", handleMouseMove, true);\n\t\tinitialClientX.current = 0;\n\t\t// Pass the new width back only after mouse up. Using ref to get the latest state.\n\t\tonResizeDone?.(widthRef.current);\n\t}, [handleMouseMove, onResizeDone]);\n\n\tconst handleMouseDown = useCallback(\n\t\t(e) => {\n\t\t\te.preventDefault();\n\t\t\tif (initialClientX.current === 0) {\n\t\t\t\tinitialClientX.current = e.clientX;\n\t\t\t}\n\t\t\tdocument.addEventListener(\"mouseup\", handleMouseUp, true);\n\t\t\tdocument.addEventListener(\"mousemove\", handleMouseMove, true);\n\t\t},\n\t\t[handleMouseMove, handleMouseUp]\n\t);\n\n\tconst getStyle = () => {\n\t\tif (anchor === ANCHOR.LEFT && offset) {\n\t\t\treturn { top, height, left: offset };\n\t\t} else if (anchor === ANCHOR.RIGHT && offset) {\n\t\t\treturn { top, height, right: offset };\n\t\t} else {\n\t\t\treturn { top, height };\n\t\t}\n\t};\n\n\treturn (\n\t\t<Drawer\n\t\t\tsx={{\n\t\t\t\twidth: drawerWidth,\n\t\t\t\tflexShrink: 0,\n\t\t\t\t\"& .MuiDrawer-paper\": {\n\t\t\t\t\twidth: drawerWidth,\n\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\tborderRadius: \"2px\",\n\t\t\t\t\tborder: `1px solid ${theme.palette.ux.secondary.w40}`,\n\t\t\t\t\tboxShadow: `0px 2px 4px ${theme.palette.ux.deprecated.secondary.w8040}`\n\t\t\t\t}\n\t\t\t}}\n\t\t\tPaperProps={{ style: getStyle() }}\n\t\t\tBackdropProps={{ style: getStyle() }}\n\t\t\tvariant=\"persistent\"\n\t\t\tanchor={anchor}\n\t\t\topen={open}\n\t\t>\n\t\t\t{resizable && (\n\t\t\t\t<Dragger anchor={anchor} onMouseDown={handleMouseDown}>\n\t\t\t\t\t<VerticalDotsIcon />\n\t\t\t\t</Dragger>\n\t\t\t)}\n\t\t\t<Box\n\t\t\t\tsx={anchor === ANCHOR.LEFT ? { marginRight: \"8px\", overflow: \"auto\" } : { marginLeft: \"8px\", overflow: \"auto\" }}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Box>\n\t\t</Drawer>\n\t);\n}\nexport default SolaceDrawer;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled, useTheme } from \"@mui/material\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { CSSProperties } from \"@mui/styled-engine\";\nimport { getGridListItemHeight } from \"../../utils\";\nimport { useScrollIndicator } from \"../../hooks/useScrollIndicator\";\nimport { FixedSizeList as VirtualizedList } from \"react-window\";\n\nconst Row = styled(\"div\")(({ theme }) => ({ ...(theme.mixins.layoutComponent_ImageList.row as CSSProperties) }));\nconst VirtualRow = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.layoutComponent_ImageList.virtualRow as CSSProperties)\n}));\nconst VirtualRowContainer = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.layoutComponent_ImageList.virtualRowContainer as CSSProperties)\n}));\nconst List = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.layoutComponent_ImageList.list as CSSProperties)\n}));\nconst Border = styled(\"div\")(({ theme }) => ({ ...(theme.mixins.layoutComponent_ImageList.border as CSSProperties) }));\n\nexport interface VirtualizeListOptions {\n\theight?: number;\n\twidth?: string | number;\n\titemHeight?: number;\n\toverscanCount?: number;\n\tcontentPlaceholder?: JSX.Element;\n}\n\ninterface SolaceGridListProps<T> extends SolaceComponentProps {\n\tid?: string;\n\titems: T[];\n\tobjectIdentifier?: string;\n\tindicatorVariantIdentifier?: string;\n\temphasizedIdentifier?: string;\n\theaders?: string[];\n\tselectedItemId?: string | number;\n\tonSelection?: (item: T) => void;\n\trowMapping: (item: T, index: number) => JSX.Element[];\n\tgridTemplate: string;\n\tbackground?: string;\n\tnumOfGridListItemDisplayed?: number;\n\t// only render part of a large data set to fill the viewport\n\tvirtualizedListOption?: VirtualizeListOptions;\n}\n\ninterface SolaceGridListRowProps extends SolaceComponentProps {\n\tid: string;\n\tindex: number;\n\titems: JSX.Element[];\n\tgridTemplate: string;\n\tselected?: boolean;\n\t/**\n\t * A colored vertical bar displayed inside the left border to indicate the variant\n\t */\n\tindicatorVariant?: \"info\" | \"error\" | \"warn\" | \"success\" | \"secondary\";\n\t/**\n\t * A colored background applies to the row to provide emphasize\n\t */\n\temphasized?: boolean;\n\tonClick: (id: string) => void;\n\tdataQa?: string;\n\tbackground?: string;\n\tvirtualRow?: boolean;\n\tisLoading?: boolean;\n\tcontentPlaceholder?: JSX.Element;\n}\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nfunction SolaceGridListRow({\n\tid,\n\tindex,\n\titems,\n\tgridTemplate,\n\tselected,\n\tindicatorVariant,\n\temphasized,\n\tonClick,\n\tdataQa,\n\tvirtualRow = false,\n\tisLoading = false,\n\tcontentPlaceholder\n}: SolaceGridListRowProps): JSX.Element {\n\tconst handleKeyPress = (e: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (e.key === \"Enter\") {\n\t\t\tonClick(id);\n\t\t}\n\t};\n\n\treturn virtualRow ? (\n\t\t<VirtualRow\n\t\t\tkey={`row-${id}`}\n\t\t\tclassName={`${selected ? \"selected\" : \"\"} ${indicatorVariant ? \"indicator-\" + indicatorVariant : \"\"} ${\n\t\t\t\temphasized ? \"emphasized\" : \"\"\n\t\t\t}`}\n\t\t\tonClick={() => onClick(id)}\n\t\t\tonKeyPress={(e) => handleKeyPress(e)}\n\t\t\tstyle={{ gridTemplateColumns: gridTemplate }}\n\t\t\ttabIndex={index}\n\t\t\tdata-qa={`${dataQa}-row-${id}`}\n\t\t>\n\t\t\t{isLoading && contentPlaceholder ? contentPlaceholder : items}\n\t\t</VirtualRow>\n\t) : (\n\t\t<Row\n\t\t\tkey={`row-${id}`}\n\t\t\tclassName={`${selected ? \"selected\" : \"\"} ${indicatorVariant ? \"indicator-\" + indicatorVariant : \"\"} ${\n\t\t\t\temphasized ? \"emphasized\" : \"\"\n\t\t\t}`}\n\t\t\tonClick={() => onClick(id)}\n\t\t\tonKeyPress={(e) => handleKeyPress(e)}\n\t\t\tstyle={{ gridTemplateColumns: gridTemplate }}\n\t\t\ttabIndex={index}\n\t\t\tdata-qa={`${dataQa}-row-${id}`}\n\t\t>\n\t\t\t{items}\n\t\t</Row>\n\t);\n}\n\nfunction SolaceGridList<T>({\n\tid,\n\titems,\n\tobjectIdentifier = \"id\",\n\tindicatorVariantIdentifier = \"indicatorVariant\",\n\temphasizedIdentifier = \"emphasized\",\n\theaders,\n\tselectedItemId,\n\tonSelection,\n\trowMapping,\n\tgridTemplate,\n\tdataQa,\n\tbackground,\n\tnumOfGridListItemDisplayed,\n\tvirtualizedListOption\n}: SolaceGridListProps<T>): JSX.Element {\n\tconst [headerBGC, setHeaderBGC] = useState(\"\");\n\tconst theme = useTheme();\n\n\tuseEffect(() => {\n\t\tconst getBackgroundColour = (element: Element): string => {\n\t\t\tlet backgroundColor = window.getComputedStyle(element).backgroundColor;\n\t\t\tif (backgroundColor !== \"rgba(0, 0, 0, 0)\") {\n\t\t\t\treturn backgroundColor;\n\t\t\t} else if (element.parentElement) {\n\t\t\t\tbackgroundColor = getBackgroundColour(element.parentElement);\n\t\t\t} else {\n\t\t\t\t// fall through case (no background color defined in any parent element)\n\t\t\t\tbackgroundColor = theme.palette.ux.background.w10;\n\t\t\t}\n\n\t\t\treturn backgroundColor;\n\t\t};\n\n\t\tconst currentBase = document.getElementById(\"listComponent\");\n\t\tconst parentElement = currentBase?.parentElement;\n\t\tif (parentElement) {\n\t\t\tconst bkColor = getBackgroundColour(parentElement);\n\t\t\tsetHeaderBGC(bkColor);\n\t\t}\n\t}, [theme.palette.ux.background.w10]); // will not change\n\n\tconst getListHeader = useMemo(() => {\n\t\tif (headers) {\n\t\t\treturn (\n\t\t\t\t<Row\n\t\t\t\t\tkey=\"headerRow\"\n\t\t\t\t\tclassName=\"headerRow\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgridTemplateColumns: gridTemplate,\n\t\t\t\t\t\tbackgroundColor: headerBGC,\n\t\t\t\t\t\tcolor: theme.palette.ux.secondary.text.wMain\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{headers.map((label, index) => (\n\t\t\t\t\t\t<span key={index}>{label}</span>\n\t\t\t\t\t))}\n\t\t\t\t</Row>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [gridTemplate, headerBGC, headers, theme.palette.ux.secondary.text.wMain]);\n\n\tconst handleRowClick = useCallback(\n\t\t(id: string) => {\n\t\t\tif (onSelection) {\n\t\t\t\tconst selectedRow = items.find((item) => item[objectIdentifier] === id);\n\t\t\t\tif (selectedRow && selectedRow[objectIdentifier] !== selectedItemId) {\n\t\t\t\t\tonSelection(selectedRow);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[items, objectIdentifier, onSelection, selectedItemId]\n\t);\n\n\tconst { maskImage, onScrollHandler } = useScrollIndicator();\n\tconst itemHeight = getGridListItemHeight();\n\n\tconst maskImageEffect = () => {\n\t\treturn numOfGridListItemDisplayed\n\t\t\t? items && items.length > numOfGridListItemDisplayed\n\t\t\t\t? maskImage\n\t\t\t\t: \"none\"\n\t\t\t: \"none\";\n\t};\n\n\tconst [gridListRef, setGridListRef] = useState<null | HTMLElement>(null);\n\n\tuseEffect(() => {\n\t\tconst gridElement = gridListRef;\n\t\tgridElement?.addEventListener(\"scroll\", onScrollHandler);\n\t\treturn () => {\n\t\t\tgridElement?.removeEventListener(\"scroll\", onScrollHandler);\n\t\t};\n\t}, [gridListRef, onScrollHandler]);\n\n\tconst virtualListRef = useRef<VirtualizedList<T> | null>();\n\n\tuseEffect(() => {\n\t\tif (selectedItemId && virtualListRef.current && items) {\n\t\t\tconst foundIndex = items.findIndex((item) => item[objectIdentifier] === selectedItemId);\n\t\t\tif (foundIndex >= 0) {\n\t\t\t\t// scroll to the selected row as little as possible\n\t\t\t\tvirtualListRef.current.scrollToItem(foundIndex);\n\t\t\t}\n\t\t}\n\t}, [items, objectIdentifier, selectedItemId]);\n\n\treturn (\n\t\t<div\n\t\t\tid=\"listComponent\"\n\t\t\tkey={id}\n\t\t\tdata-qa={dataQa}\n\t\t\tstyle={{\n\t\t\t\tcolor: theme.palette.ux.primary.text.wMain\n\t\t\t}}\n\t\t>\n\t\t\t{headers && getListHeader}\n\t\t\t<Border>\n\t\t\t\t{!virtualizedListOption && (\n\t\t\t\t\t<List\n\t\t\t\t\t\tref={setGridListRef}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: background,\n\t\t\t\t\t\t\tmaxHeight: numOfGridListItemDisplayed\n\t\t\t\t\t\t\t\t? `${itemHeight * numOfGridListItemDisplayed + itemHeight / 2}px`\n\t\t\t\t\t\t\t\t: \"none\",\n\t\t\t\t\t\t\tmaskImage: maskImageEffect(),\n\t\t\t\t\t\t\tWebkitMaskImage: maskImageEffect()\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{items?.map((item, index) => (\n\t\t\t\t\t\t\t<SolaceGridListRow\n\t\t\t\t\t\t\t\tkey={`solaceGridListRow-${item[objectIdentifier] ?? index}`}\n\t\t\t\t\t\t\t\tid={item[objectIdentifier] ?? index}\n\t\t\t\t\t\t\t\tindex={index + 1}\n\t\t\t\t\t\t\t\titems={rowMapping(item, index)}\n\t\t\t\t\t\t\t\tselected={selectedItemId ? item[objectIdentifier] === selectedItemId : false}\n\t\t\t\t\t\t\t\tindicatorVariant={item[indicatorVariantIdentifier]}\n\t\t\t\t\t\t\t\temphasized={item[emphasizedIdentifier]}\n\t\t\t\t\t\t\t\tgridTemplate={gridTemplate}\n\t\t\t\t\t\t\t\tonClick={handleRowClick}\n\t\t\t\t\t\t\t\tdataQa={dataQa}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</List>\n\t\t\t\t)}\n\t\t\t\t{virtualizedListOption && items?.length > 0 && (\n\t\t\t\t\t<VirtualizedList\n\t\t\t\t\t\tclassName=\"List\"\n\t\t\t\t\t\tstyle={{ backgroundColor: background }}\n\t\t\t\t\t\theight={\n\t\t\t\t\t\t\tvirtualizedListOption.height\n\t\t\t\t\t\t\t\t? virtualizedListOption.height\n\t\t\t\t\t\t\t\t: numOfGridListItemDisplayed\n\t\t\t\t\t\t\t\t ? itemHeight * numOfGridListItemDisplayed + itemHeight / 2\n\t\t\t\t\t\t\t\t : 200\n\t\t\t\t\t\t}\n\t\t\t\t\t\twidth={virtualizedListOption.width ?? \"100%\"}\n\t\t\t\t\t\titemCount={items.length}\n\t\t\t\t\t\titemSize={virtualizedListOption.itemHeight ? virtualizedListOption.itemHeight : getGridListItemHeight()}\n\t\t\t\t\t\toverscanCount={virtualizedListOption.overscanCount ?? 1}\n\t\t\t\t\t\tuseIsScrolling={true}\n\t\t\t\t\t\tref={(element) => {\n\t\t\t\t\t\t\tvirtualListRef.current = element;\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{({ index, style, isScrolling }) => (\n\t\t\t\t\t\t\t<VirtualRowContainer style={style}>\n\t\t\t\t\t\t\t\t<SolaceGridListRow\n\t\t\t\t\t\t\t\t\tkey={`solaceGridListRow-${items[index][objectIdentifier] ?? index}`}\n\t\t\t\t\t\t\t\t\tid={items[index][objectIdentifier] ?? index}\n\t\t\t\t\t\t\t\t\tindex={index + 1}\n\t\t\t\t\t\t\t\t\titems={rowMapping(items[index], index)}\n\t\t\t\t\t\t\t\t\tselected={selectedItemId ? items[index][objectIdentifier] === selectedItemId : false}\n\t\t\t\t\t\t\t\t\tindicatorVariant={items[index][indicatorVariantIdentifier]}\n\t\t\t\t\t\t\t\t\temphasized={items[index][emphasizedIdentifier]}\n\t\t\t\t\t\t\t\t\tgridTemplate={gridTemplate}\n\t\t\t\t\t\t\t\t\tonClick={handleRowClick}\n\t\t\t\t\t\t\t\t\tdataQa={dataQa}\n\t\t\t\t\t\t\t\t\tvirtualRow={true}\n\t\t\t\t\t\t\t\t\tisLoading={isScrolling}\n\t\t\t\t\t\t\t\t\tcontentPlaceholder={virtualizedListOption.contentPlaceholder}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</VirtualRowContainer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</VirtualizedList>\n\t\t\t\t)}\n\t\t\t</Border>\n\t\t</div>\n\t);\n}\n\nexport default SolaceGridList;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled, useTheme } from \"@mui/material\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport SolaceCheckBox, { SolaceCheckboxChangeEvent } from \"../form/SolaceCheckBox\";\nimport { CSSProperties } from \"@mui/styled-engine\";\n\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport SolaceGridList, { VirtualizeListOptions } from \"./SolaceGridList\";\n\nconst ImageListHeader = styled(\"div\")(({ theme }) => ({\n\t...(theme.mixins.layoutComponent_ImageList.header as CSSProperties)\n}));\nconst Row = styled(\"div\")(({ theme }) => ({ ...(theme.mixins.layoutComponent_ImageList.row as CSSProperties) }));\n\ninterface SolaceGridListMultiSelectProps<T> extends SolaceComponentProps {\n\tid?: string;\n\titems: T[];\n\tobjectIdentifier?: string;\n\tindicatorVariantIdentifier?: string;\n\temphasizedIdentifier?: string;\n\theaders?: string[];\n\thighlightedRowId?: string | number;\n\tonRowHighlight?: (item: T) => void;\n\tselectedRowIds?: Array<string | number>;\n\tonSelection?: (item: T[]) => void;\n\trowMapping: (item: T) => JSX.Element[];\n\tgridTemplate: string;\n\tselectAll?: boolean;\n\tselectAllLabel?: string;\n\tactions?: JSX.Element[];\n\tnumOfGridListItemDisplayed?: number;\n\tshowCount?: boolean;\n\titemsType?: string;\n\tvirtualizedListOption?: VirtualizeListOptions;\n}\n\nfunction SolaceGridListMultiSelect<T>({\n\tid,\n\titems,\n\tobjectIdentifier = \"id\",\n\tindicatorVariantIdentifier = \"indicatorVariant\",\n\temphasizedIdentifier = \"emphasized\",\n\theaders,\n\thighlightedRowId,\n\tonRowHighlight,\n\tselectedRowIds = [],\n\tonSelection,\n\trowMapping,\n\tgridTemplate,\n\tselectAllLabel = \"Select All\",\n\tselectAll = true,\n\tactions,\n\tdataQa,\n\tnumOfGridListItemDisplayed,\n\tshowCount = false,\n\titemsType = \"\",\n\tvirtualizedListOption\n}: SolaceGridListMultiSelectProps<T>): JSX.Element {\n\t// checkbox is 25px wide, column gap is 16px, setting a min width of 17px\n\t// gives a gap of 8px between checkbox and first column (as per UX design)\n\tconst CHECKBOX_GRID_STRING = \"min(17px)\";\n\tconst HEADER_HEIGHT = \"49px\";\n\n\tconst [allSelected, setAllSelected] = useState(false);\n\tconst [headerBGC, setHeaderBGC] = useState(\"\");\n\tconst theme = useTheme();\n\tconst [indeterminate, setIndeterminate] = useState(false);\n\n\tconst getGridTemplate = useMemo(() => {\n\t\treturn CHECKBOX_GRID_STRING.concat(\" \", gridTemplate);\n\t}, [gridTemplate]);\n\n\t//set indeterminate state for select all checkbox\n\tuseEffect(() => {\n\t\tif (selectedRowIds.length > 0 && selectedRowIds.length < items.length) {\n\t\t\tsetIndeterminate(true);\n\t\t} else {\n\t\t\tsetIndeterminate(false);\n\t\t}\n\t}, [items?.length, selectedRowIds?.length]);\n\n\tuseEffect(() => {\n\t\tif (items.length !== 0 && selectedRowIds.length === items.length) {\n\t\t\tsetAllSelected(true);\n\t\t} else {\n\t\t\tsetAllSelected(false);\n\t\t}\n\t}, [selectedRowIds.length, items?.length]);\n\n\tconst handleRowSelection = useCallback(\n\t\t(event: SolaceCheckboxChangeEvent) => {\n\t\t\tconst selectedObj = items.find((obj) => obj[objectIdentifier] === event.name);\n\t\t\tif (selectedObj) {\n\t\t\t\t// found the selected row object\n\t\t\t\tif (event.value && !selectedRowIds.includes(event.name) && onSelection) {\n\t\t\t\t\t// a new checkbox is being selected\n\t\t\t\t\tconst selectedRows = items.filter((item) => selectedRowIds.includes(item[objectIdentifier]));\n\t\t\t\t\tonSelection([...selectedRows, selectedObj]);\n\n\t\t\t\t\tif (selectedRows.length + 1 === items.length && !allSelected) {\n\t\t\t\t\t\t// all items in the list have been selected, check the \"Select All\" checkbox\n\t\t\t\t\t\tsetAllSelected(true);\n\t\t\t\t\t}\n\t\t\t\t} else if (onSelection) {\n\t\t\t\t\t// a checkbox is being unselected\n\t\t\t\t\tconst selectedRows = items.filter(\n\t\t\t\t\t\t(item) => selectedRowIds.includes(item[objectIdentifier]) && item[objectIdentifier] !== event.name\n\t\t\t\t\t);\n\t\t\t\t\tonSelection(selectedRows);\n\n\t\t\t\t\tif (selectedRows.length < items.length && allSelected) {\n\t\t\t\t\t\t// not all items in the list have been selected, uncheck the \"Select All\" checkbox\n\t\t\t\t\t\tsetAllSelected(false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[allSelected, items, objectIdentifier, onSelection, selectedRowIds]\n\t);\n\n\tconst handleSelectAll = useCallback(\n\t\t(event: SolaceCheckboxChangeEvent) => {\n\t\t\tif (onSelection) {\n\t\t\t\tif (event.value) {\n\t\t\t\t\t// select all items\n\t\t\t\t\tsetAllSelected(true);\n\t\t\t\t\tonSelection(items);\n\t\t\t\t} else {\n\t\t\t\t\t// clear all selections\n\t\t\t\t\tsetAllSelected(false);\n\t\t\t\t\tonSelection([]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[items, onSelection]\n\t);\n\n\tconst getRowMapping = useCallback(\n\t\t(item: T) => {\n\t\t\tconst checkboxList = [];\n\t\t\tconst rowItems = rowMapping(item);\n\t\t\tcheckboxList.push(\n\t\t\t\t<div\n\t\t\t\t\tid={`checkbox-${item[objectIdentifier]}`}\n\t\t\t\t\tkey={`checkbox-${item[objectIdentifier]}`}\n\t\t\t\t\tstyle={{ justifySelf: \"left\" }}\n\t\t\t\t>\n\t\t\t\t\t<SolaceCheckBox\n\t\t\t\t\t\tname={item[objectIdentifier]}\n\t\t\t\t\t\tonChange={handleRowSelection}\n\t\t\t\t\t\tchecked={selectedRowIds.includes(item[objectIdentifier])}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t\tcheckboxList.push(...rowItems);\n\n\t\t\treturn checkboxList;\n\t\t},\n\t\t[handleRowSelection, objectIdentifier, rowMapping, selectedRowIds]\n\t);\n\n\tuseEffect(() => {\n\t\tconst getBackgroundColour = (element: Element): string => {\n\t\t\tlet backgroundColor = window.getComputedStyle(element).backgroundColor;\n\t\t\tif (backgroundColor !== \"rgba(0, 0, 0, 0)\") {\n\t\t\t\treturn backgroundColor;\n\t\t\t} else if (element.parentElement) {\n\t\t\t\tbackgroundColor = getBackgroundColour(element.parentElement);\n\t\t\t} else {\n\t\t\t\t// fall through case (no background color defined in any parent element)\n\t\t\t\tbackgroundColor = theme.palette.ux.background.w10;\n\t\t\t}\n\n\t\t\treturn backgroundColor;\n\t\t};\n\n\t\tconst currentBase = document.getElementById(\"listComponent\");\n\t\tconst parentElement = currentBase?.parentElement;\n\t\tif (parentElement) {\n\t\t\tconst bkColor = getBackgroundColour(parentElement);\n\t\t\tsetHeaderBGC(bkColor);\n\t\t}\n\t}, [theme.palette.ux.background.w10]); // will not change\n\n\tconst getListHeader = useMemo(() => {\n\t\tif (headers) {\n\t\t\treturn (\n\t\t\t\t<Row\n\t\t\t\t\tkey=\"headerRow\"\n\t\t\t\t\tclassName=\"headerRow\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tpadding: \"0 64px\",\n\t\t\t\t\t\tgridTemplateColumns: gridTemplate,\n\t\t\t\t\t\tbackgroundColor: headerBGC,\n\t\t\t\t\t\tcolor: theme.palette.ux.secondary.text.wMain\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{headers.map((label, index) => (\n\t\t\t\t\t\t<span key={index}>{label}</span>\n\t\t\t\t\t))}\n\t\t\t\t</Row>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [gridTemplate, headerBGC, headers, theme.palette.ux.secondary.text.wMain]);\n\n\tconst isHeaderDisplayed = useMemo(() => {\n\t\treturn selectAll || actions;\n\t}, [actions, selectAll]);\n\n\treturn (\n\t\t<div\n\t\t\tdata-qa={dataQa}\n\t\t\tstyle={\n\t\t\t\t!virtualizedListOption ? { height: isHeaderDisplayed ? `calc(100% - ${HEADER_HEIGHT})` : \"100%\" } : undefined\n\t\t\t}\n\t\t>\n\t\t\t{getListHeader}\n\t\t\t{isHeaderDisplayed && (\n\t\t\t\t<ImageListHeader>\n\t\t\t\t\t{selectAll && (\n\t\t\t\t\t\t<div className=\"selectAll\" key=\"selectAll\">\n\t\t\t\t\t\t\t<SolaceCheckBox\n\t\t\t\t\t\t\t\tname={\"ImageListSelectAllCheckbox\"}\n\t\t\t\t\t\t\t\tonChange={handleSelectAll}\n\t\t\t\t\t\t\t\tchecked={allSelected || indeterminate}\n\t\t\t\t\t\t\t\tindeterminate={indeterminate}\n\t\t\t\t\t\t\t\tdataQa={`${dataQa}-selectAll`}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<span className=\"selectAllText\">{selectAllLabel}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{\n\t\t\t\t\t\t!selectAll && (\n\t\t\t\t\t\t\t<span key=\"selectAllPlaceholder\"></span>\n\t\t\t\t\t\t) /*this is to ensure 'actions' are right aligned when there is no 'Select All' checkbox */\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{showCount && actions && (\n\t\t\t\t\t\t\t\t<span className=\"countItemsText\">{`${selectedRowIds.length} ${itemsType} Selected`}</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t</ImageListHeader>\n\t\t\t)}\n\t\t\t<SolaceGridList\n\t\t\t\tid={id}\n\t\t\t\titems={items}\n\t\t\t\tobjectIdentifier={objectIdentifier}\n\t\t\t\tindicatorVariantIdentifier={indicatorVariantIdentifier}\n\t\t\t\temphasizedIdentifier={emphasizedIdentifier}\n\t\t\t\tselectedItemId={highlightedRowId}\n\t\t\t\tonSelection={onRowHighlight}\n\t\t\t\trowMapping={getRowMapping}\n\t\t\t\tgridTemplate={getGridTemplate}\n\t\t\t\tdataQa={`${dataQa}-gridlist`}\n\t\t\t\tnumOfGridListItemDisplayed={numOfGridListItemDisplayed}\n\t\t\t\tvirtualizedListOption={virtualizedListOption}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default SolaceGridListMultiSelect;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { keyframes } from \"@emotion/react\";\nimport { alpha, styled, useTheme } from \"@mui/material\";\nimport { useEffect, useRef, useState } from \"react\";\nimport SolaceTooltip from \"./SolaceToolTip\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { CSSProperties } from \"@mui/styled-engine\";\n\nexport interface SolaceNotificationCounterProps extends SolaceComponentProps {\n\t/**\n\t * Text inside the badge\n\t */\n\tvalue: string | number;\n\t/**\n\t * Whether to show text inside the badge\n\t */\n\tshow?: boolean;\n\t/**\n\t * Size of the badge\n\t */\n\tsize?: number;\n\t/**\n\t * Font size of the text value\n\t */\n\tfontSize?: number;\n\t/**\n\t * Tooltip\n\t */\n\ttitle?: string;\n\t/**\n\t * Badge animation duration in milliseconds. If set to 0, then no animation.\n\t */\n\tanimationDuration?: number;\n\t/**\n\t * The number of animation repeats when making the text visible\n\t */\n\tanimationRepeatsInitialCount?: number;\n\t/**\n\t * The number of animation repeats when the text is updated\n\t */\n\tanimationRepeatsUpdateCount?: number;\n}\n\nconst Badge = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"size\" && prop !== \"fontSize\" })<{\n\tsize: number;\n\tfontSize: number;\n}>(({ theme, size, fontSize }) => ({\n\t...(theme.mixins.component_NotificationCounter.container as CSSProperties),\n\twidth: `${size}px`,\n\theight: `${size}px`,\n\tfontSize: `${fontSize ? fontSize : (size / 3) * 2}px`,\n\tlineHeight: `${size + 1}px`\n}));\n\nconst Value = styled(\"span\")(({ theme }) => ({\n\t...(theme.mixins.component_NotificationCounter.value as CSSProperties)\n}));\n\nfunction SolaceNotificationCounter({\n\tvalue,\n\tshow = true,\n\tsize = 21,\n\tfontSize = 14,\n\ttitle,\n\tanimationDuration = 1000,\n\tanimationRepeatsInitialCount = 1,\n\tanimationRepeatsUpdateCount = 3,\n\tdataQa,\n\tdataTags\n}: SolaceNotificationCounterProps): JSX.Element {\n\tconst [lastValue, setLastValue] = useState(value);\n\tconst [showState, setShowState] = useState(show);\n\tconst [showing, setShowing] = useState(false);\n\tconst [pulsing, setPulsing] = useState(false);\n\n\tconst showTimer = useRef<NodeJS.Timeout | null>(null);\n\tconst changeTimer = useRef<NodeJS.Timeout | null>(null);\n\n\tconst theme = useTheme();\n\n\tconst pulse = keyframes`\n\t\t0% {\n\t\t\ttransform: scale(1);\n\t\t\tbox-shadow: 0 0 0 0 ${alpha(theme.palette.ux.info.w100, 0.3)};\n\t\t}\n\n\t\t70% {\n\t\t\ttransform: scale(1.05);\n\t\t\tbox-shadow: 0 0 0 6px ${alpha(theme.palette.ux.info.w100, 0.2)};\n\t\t}\n\n\t\t100% {\n\t\t\ttransform: scale(1);\n\t\t\tbox-shadow: 0 0 0 0 ${alpha(theme.palette.ux.info.w100, 0)};\n\t\t}\n\t`;\n\tuseEffect(() => {\n\t\tif (show !== showState) {\n\t\t\tif (show) {\n\t\t\t\t// if the timer started, then no need to start another timer\n\t\t\t\tif (animationDuration > 0 && !showTimer.current) {\n\t\t\t\t\tsetShowing(true);\n\t\t\t\t\tsetPulsing(true);\n\t\t\t\t\tshowTimer.current = setTimeout(\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tsetShowing(false);\n\t\t\t\t\t\t\tsetPulsing(false);\n\t\t\t\t\t\t\tshowTimer.current = null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tanimationRepeatsInitialCount > 0 ? animationRepeatsInitialCount * animationDuration : animationDuration\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tsetShowing(false);\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetShowState(show);\n\t\t}\n\t}, [animationDuration, show, animationRepeatsInitialCount, showState]);\n\n\tuseEffect(() => {\n\t\tif (value !== lastValue) {\n\t\t\t// if the timer started, then no need to start another timer\n\t\t\tif (value && animationDuration > 0 && !changeTimer.current) {\n\t\t\t\tsetPulsing(true);\n\t\t\t\tchangeTimer.current = setTimeout(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tsetPulsing(false);\n\t\t\t\t\t\tchangeTimer.current = null;\n\t\t\t\t\t},\n\t\t\t\t\tanimationRepeatsUpdateCount > 0 ? animationRepeatsUpdateCount * animationDuration : animationDuration\n\t\t\t\t);\n\t\t\t}\n\t\t\tsetLastValue(value);\n\t\t}\n\t}, [animationDuration, animationRepeatsUpdateCount, lastValue, value]);\n\n\tif (!showState) {\n\t\treturn <></>;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<SolaceTooltip title={title}>\n\t\t\t\t<Badge\n\t\t\t\t\tdata-qa={dataQa ? dataQa + \"-counterBadge\" : \"counterBadge\"}\n\t\t\t\t\tdata-tags={dataTags}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tfontSize={fontSize}\n\t\t\t\t\tsx={pulsing && animationDuration > 0 ? { animation: `${pulse} ${animationDuration}ms ease infinite;` } : {}}\n\t\t\t\t\tclassName=\"notificationCounter\"\n\t\t\t\t>\n\t\t\t\t\t<Value\n\t\t\t\t\t\tsx={{ opacity: showing ? 0 : 1 }}\n\t\t\t\t\t\tdata-qa={dataQa ? dataQa + \"-counterValue\" : \"counterValue\"}\n\t\t\t\t\t\tdata-tags={dataTags}\n\t\t\t\t\t>\n\t\t\t\t\t\t{value}\n\t\t\t\t\t</Value>\n\t\t\t\t</Badge>\n\t\t\t</SolaceTooltip>\n\t\t</>\n\t);\n}\n\nexport default SolaceNotificationCounter;\n","/** @license React v17.0.2\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),m=require(\"react\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar q=60106,r=60107,u=60108,z=60114,B=60109,aa=60110,ba=60112,D=60113,ca=60120,da=60115,ea=60116,fa=60121,ha=60117,ia=60119,ja=60129,ka=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;q=E(\"react.portal\");r=E(\"react.fragment\");u=E(\"react.strict_mode\");z=E(\"react.profiler\");B=E(\"react.provider\");aa=E(\"react.context\");ba=E(\"react.forward_ref\");D=E(\"react.suspense\");ca=E(\"react.suspense_list\");da=E(\"react.memo\");ea=E(\"react.lazy\");fa=E(\"react.block\");ha=E(\"react.fundamental\");ia=E(\"react.scope\");ja=E(\"react.debug_trace_mode\");ka=E(\"react.legacy_hidden\")}\nfunction F(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case r:return\"Fragment\";case q:return\"Portal\";case z:return\"Profiler\";case u:return\"StrictMode\";case D:return\"Suspense\";case ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case aa:return(a.displayName||\"Context\")+\".Consumer\";case B:return(a._context.displayName||\"Context\")+\".Provider\";case ba:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||\n(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case da:return F(a.type);case fa:return F(a._render);case ea:b=a._payload;a=a._init;try{return F(a(b))}catch(c){}}return null}var la=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ma={};function I(a,b){for(var c=a._threadCount|0;c<=b;c++)a[c]=a._currentValue2,a._threadCount=c+1}function na(a,b,c,d){if(d&&(d=a.contextType,\"object\"===typeof d&&null!==d))return I(d,c),d[c];if(a=a.contextTypes){c={};for(var f in a)c[f]=b[f];b=c}else b=ma;return b}\nfor(var J=new Uint16Array(16),K=0;15>K;K++)J[K]=K+1;J[15]=0;var oa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,pa=Object.prototype.hasOwnProperty,qa={},ra={};\nfunction sa(a){if(pa.call(ra,a))return!0;if(pa.call(qa,a))return!1;if(oa.test(a))return ra[a]=!0;qa[a]=!0;return!1}function ta(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction ua(a,b,c,d){if(null===b||\"undefined\"===typeof b||ta(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function M(a,b,c,d,f,h,t){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=h;this.removeEmptyString=t}var N={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){N[a]=new M(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];N[b]=new M(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){N[a]=new M(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){N[a]=new M(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){N[a]=new M(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){N[a]=new M(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){N[a]=new M(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){N[a]=new M(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){N[a]=new M(a,5,!1,a.toLowerCase(),null,!1,!1)});var va=/[\\-:]([a-z])/g;function wa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(va,\nwa);N[b]=new M(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!1,!1)});\nN.xlinkHref=new M(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!0,!0)});var xa=/[\"'&<>]/;\nfunction O(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;d<a.length;d++){switch(a.charCodeAt(d)){case 34:b=\"&quot;\";break;case 38:b=\"&amp;\";break;case 39:b=\"&#x27;\";break;case 60:b=\"&lt;\";break;case 62:b=\"&gt;\";break;default:continue}f!==d&&(c+=a.substring(f,d));f=d+1;c+=b}a=f!==d?c+a.substring(f,d):c}return a}\nfunction ya(a,b){var c=N.hasOwnProperty(a)?N[a]:null;var d;if(d=\"style\"!==a)d=null!==c?0===c.type:!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1]?!1:!0;if(d||ua(a,b,c,!1))return\"\";if(null!==c){a=c.attributeName;d=c.type;if(3===d||4===d&&!0===b)return a+'=\"\"';c.sanitizeURL&&(b=\"\"+b);return a+'=\"'+(O(b)+'\"')}return sa(a)?a+'=\"'+(O(b)+'\"'):\"\"}function za(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}\nvar Aa=\"function\"===typeof Object.is?Object.is:za,P=null,Q=null,R=null,S=!1,T=!1,U=null,V=0;function W(){if(null===P)throw Error(p(321));return P}function Ba(){if(0<V)throw Error(p(312));return{memoizedState:null,queue:null,next:null}}function Ca(){null===R?null===Q?(S=!1,Q=R=Ba()):(S=!0,R=Q):null===R.next?(S=!1,R=R.next=Ba()):(S=!0,R=R.next);return R}function Da(a,b,c,d){for(;T;)T=!1,V+=1,R=null,c=a(b,d);Ea();return c}function Ea(){P=null;T=!1;Q=null;V=0;R=U=null}\nfunction Fa(a,b){return\"function\"===typeof b?b(a):b}function Ga(a,b,c){P=W();R=Ca();if(S){var d=R.queue;b=d.dispatch;if(null!==U&&(c=U.get(d),void 0!==c)){U.delete(d);d=R.memoizedState;do d=a(d,c.action),c=c.next;while(null!==c);R.memoizedState=d;return[d,b]}return[R.memoizedState,b]}a=a===Fa?\"function\"===typeof b?b():b:void 0!==c?c(b):b;R.memoizedState=a;a=R.queue={last:null,dispatch:null};a=a.dispatch=Ha.bind(null,P,a);return[R.memoizedState,a]}\nfunction Ia(a,b){P=W();R=Ca();b=void 0===b?null:b;if(null!==R){var c=R.memoizedState;if(null!==c&&null!==b){var d=c[1];a:if(null===d)d=!1;else{for(var f=0;f<d.length&&f<b.length;f++)if(!Aa(b[f],d[f])){d=!1;break a}d=!0}if(d)return c[0]}}a=a();R.memoizedState=[a,b];return a}function Ha(a,b,c){if(!(25>V))throw Error(p(301));if(a===P)if(T=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ja(){}\nvar X=null,Ka={readContext:function(a){var b=X.threadID;I(a,b);return a[b]},useContext:function(a){W();var b=X.threadID;I(a,b);return a[b]},useMemo:Ia,useReducer:Ga,useRef:function(a){P=W();R=Ca();var b=R.memoizedState;return null===b?(a={current:a},R.memoizedState=a):b},useState:function(a){return Ga(Fa,a)},useLayoutEffect:function(){},useCallback:function(a,b){return Ia(function(){return a},b)},useImperativeHandle:Ja,useEffect:Ja,useDebugValue:Ja,useDeferredValue:function(a){W();return a},useTransition:function(){W();\nreturn[function(a){a()},!1]},useOpaqueIdentifier:function(){return(X.identifierPrefix||\"\")+\"R:\"+(X.uniqueID++).toString(36)},useMutableSource:function(a,b){W();return b(a._source)}},La={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};function Ma(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nvar Na={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Oa=l({menuitem:!0},Na),Y={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,\ngridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pa=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Y).forEach(function(a){Pa.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Y[b]=Y[a]})});\nvar Qa=/([A-Z])/g,Ra=/^ms-/,Z=m.Children.toArray,Sa=la.ReactCurrentDispatcher,Ta={listing:!0,pre:!0,textarea:!0},Ua=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Va={},Wa={};function Xa(a){if(void 0===a||null===a)return a;var b=\"\";m.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Ya=Object.prototype.hasOwnProperty,Za={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function $a(a,b){if(void 0===a)throw Error(p(152,F(b)||\"Component\"));}\nfunction ab(a,b,c){function d(d,h){var e=h.prototype&&h.prototype.isReactComponent,f=na(h,b,c,e),t=[],g=!1,n={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===t)return null},enqueueReplaceState:function(a,c){g=!0;t=[c]},enqueueSetState:function(a,c){if(null===t)return null;t.push(c)}};if(e){if(e=new h(d.props,f,n),\"function\"===typeof h.getDerivedStateFromProps){var k=h.getDerivedStateFromProps.call(null,d.props,e.state);null!=k&&(e.state=l({},e.state,k))}}else if(P={},e=h(d.props,\nf,n),e=Da(h,d.props,e,f),null==e||null==e.render){a=e;$a(a,h);return}e.props=d.props;e.context=f;e.updater=n;n=e.state;void 0===n&&(e.state=n=null);if(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount)if(\"function\"===typeof e.componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.UNSAFE_componentWillMount(),t.length){n=t;var v=\ng;t=null;g=!1;if(v&&1===n.length)e.state=n[0];else{k=v?n[0]:e.state;var H=!0;for(v=v?1:0;v<n.length;v++){var x=n[v];x=\"function\"===typeof x?x.call(e,k,d.props,f):x;null!=x&&(H?(H=!1,k=l({},k,x)):l(k,x))}e.state=k}}else t=null;a=e.render();$a(a,h);if(\"function\"===typeof e.getChildContext&&(d=h.childContextTypes,\"object\"===typeof d)){var y=e.getChildContext();for(var A in y)if(!(A in d))throw Error(p(108,F(h)||\"Unknown\",A));}y&&(b=l({},b,y))}for(;m.isValidElement(a);){var f=a,h=f.type;if(\"function\"!==\ntypeof h)break;d(f,h)}return{child:a,context:b}}\nvar bb=function(){function a(a,b,f){m.isValidElement(a)?a.type!==r?a=[a]:(a=a.props.children,a=m.isValidElement(a)?[a]:Z(a)):a=Z(a);a={type:null,domNamespace:La.html,children:a,childIndex:0,context:ma,footer:\"\"};var c=J[0];if(0===c){var d=J;c=d.length;var g=2*c;if(!(65536>=g))throw Error(p(304));var e=new Uint16Array(g);e.set(d);J=e;J[0]=c+1;for(d=c;d<g-1;d++)J[d]=d+1;J[g-1]=0}else J[0]=J[c];this.threadID=c;this.stack=[a];this.exhausted=!1;this.currentSelectValue=null;this.previousWasTextNode=!1;\nthis.makeStaticMarkup=b;this.suspenseDepth=0;this.contextIndex=-1;this.contextStack=[];this.contextValueStack=[];this.uniqueID=0;this.identifierPrefix=f&&f.identifierPrefix||\"\"}var b=a.prototype;b.destroy=function(){if(!this.exhausted){this.exhausted=!0;this.clearProviders();var a=this.threadID;J[a]=J[0];J[0]=a}};b.pushProvider=function(a){var b=++this.contextIndex,c=a.type._context,h=this.threadID;I(c,h);var t=c[h];this.contextStack[b]=c;this.contextValueStack[b]=t;c[h]=a.props.value};b.popProvider=\nfunction(){var a=this.contextIndex,b=this.contextStack[a],f=this.contextValueStack[a];this.contextStack[a]=null;this.contextValueStack[a]=null;this.contextIndex--;b[this.threadID]=f};b.clearProviders=function(){for(var a=this.contextIndex;0<=a;a--)this.contextStack[a][this.threadID]=this.contextValueStack[a]};b.read=function(a){if(this.exhausted)return null;var b=X;X=this;var c=Sa.current;Sa.current=Ka;try{for(var h=[\"\"],t=!1;h[0].length<a;){if(0===this.stack.length){this.exhausted=!0;var g=this.threadID;\nJ[g]=J[0];J[0]=g;break}var e=this.stack[this.stack.length-1];if(t||e.childIndex>=e.children.length){var L=e.footer;\"\"!==L&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===B)this.popProvider(e.type);else if(e.type===D){this.suspenseDepth--;var G=h.pop();if(t){t=!1;var C=e.fallbackFrame;if(!C)throw Error(p(303));this.stack.push(C);h[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else h[this.suspenseDepth]+=\nG}h[this.suspenseDepth]+=L}else{var n=e.children[e.childIndex++],k=\"\";try{k+=this.render(n,e.context,e.domNamespace)}catch(v){if(null!=v&&\"function\"===typeof v.then)throw Error(p(294));throw v;}finally{}h.length<=this.suspenseDepth&&h.push(\"\");h[this.suspenseDepth]+=k}}return h[0]}finally{Sa.current=c,X=b,Ea()}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return O(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+O(f);\nthis.previousWasTextNode=!0;return O(f)}b=ab(a,b,this.threadID);a=b.child;b=b.context;if(null===a||!1===a)return\"\";if(!m.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===q)throw Error(p(257));throw Error(p(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ka:case ja:case u:case z:case ca:case r:return a=Z(a.props.children),this.stack.push({type:null,\ndomNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case D:throw Error(p(294));case ia:throw Error(p(343));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case ba:P={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case da:return a=[m.createElement(c.type,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case aa:c=a.type;d=a.props;var g=this.threadID;I(c,g);c=Z(d.children(c[g]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case ha:throw Error(p(338));case ea:return c=a.type,d=c._init,c=d(c._payload),a=[m.createElement(c,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,\ncontext:b,footer:\"\"}),\"\"}throw Error(p(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===La.html&&Ma(c);if(!Va.hasOwnProperty(c)){if(!Ua.test(c))throw Error(p(65,c));Va[c]=!0}var d=a.props;if(\"input\"===c)d=l({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var g=d.value;if(null==g){g=d.defaultValue;var e=d.children;if(null!=e){if(null!=\ng)throw Error(p(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(p(93));e=e[0]}g=\"\"+e}null==g&&(g=\"\")}d=l({},d,{value:void 0,children:\"\"+g})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=l({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var L=Xa(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":L;g=!1;if(Array.isArray(e))for(var C=0;C<e.length;C++){if(\"\"+e[C]===G){g=!0;break}}else g=\"\"+e===G;d=l({selected:void 0,children:void 0},\nd,{selected:g,children:L})}}if(g=d){if(Oa[c]&&(null!=g.children||null!=g.dangerouslySetInnerHTML))throw Error(p(137,c));if(null!=g.dangerouslySetInnerHTML){if(null!=g.children)throw Error(p(60));if(!(\"object\"===typeof g.dangerouslySetInnerHTML&&\"__html\"in g.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=g.style&&\"object\"!==typeof g.style)throw Error(p(62));}g=d;e=this.makeStaticMarkup;L=1===this.stack.length;G=\"<\"+a.type;b:if(-1===c.indexOf(\"-\"))C=\"string\"===typeof g.is;else switch(c){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":C=\n!1;break b;default:C=!0}for(w in g)if(Ya.call(g,w)){var n=g[w];if(null!=n){if(\"style\"===w){var k=void 0,v=\"\",H=\"\";for(k in n)if(n.hasOwnProperty(k)){var x=0===k.indexOf(\"--\"),y=n[k];if(null!=y){if(x)var A=k;else if(A=k,Wa.hasOwnProperty(A))A=Wa[A];else{var cb=A.replace(Qa,\"-$1\").toLowerCase().replace(Ra,\"-ms-\");A=Wa[A]=cb}v+=H+A+\":\";H=k;x=null==y||\"boolean\"===typeof y||\"\"===y?\"\":x||\"number\"!==typeof y||0===y||Y.hasOwnProperty(H)&&Y[H]?(\"\"+y).trim():y+\"px\";v+=x;H=\";\"}}n=v||null}k=null;C?Za.hasOwnProperty(w)||\n(k=w,k=sa(k)&&null!=n?k+'=\"'+(O(n)+'\"'):\"\"):k=ya(w,n);k&&(G+=\" \"+k)}}e||L&&(G+=' data-reactroot=\"\"');var w=G;g=\"\";Na.hasOwnProperty(c)?w+=\"/>\":(w+=\">\",g=\"</\"+a.type+\">\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=O(e);break a}e=null}null!=e?(d=[],Ta.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(w+=\"\\n\"),w+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===f?Ma(a):\"http://www.w3.org/2000/svg\"===\nf&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:g});this.previousWasTextNode=!1;return w};return a}();exports.renderToNodeStream=function(){throw Error(p(207));};exports.renderToStaticMarkup=function(a,b){a=new bb(a,!0,b);try{return a.read(Infinity)}finally{a.destroy()}};exports.renderToStaticNodeStream=function(){throw Error(p(208));};exports.renderToString=function(a,b){a=new bb(a,!1,b);try{return a.read(Infinity)}finally{a.destroy()}};\nexports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom-server.browser.development.js');\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useTheme } from \"@mui/material\";\n\nexport const EllipsisIcon = ({ fill = \"\" }): JSX.Element => {\n\tconst defaultFill = useTheme().palette.ux?.secondary.wMain;\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"8\" viewBox=\"0 0 24 8\" fill=\"none\">\n\t\t\t<circle cx=\"6\" cy=\"4\" r=\"2\" fill={fill || defaultFill} />\n\t\t\t<circle cx=\"12\" cy=\"4\" r=\"2\" fill={fill || defaultFill} />\n\t\t\t<circle cx=\"18\" cy=\"4\" r=\"2\" fill={fill || defaultFill} />\n\t\t</svg>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ReactDOMServer from \"react-dom/server\";\nimport SplitPane from \"react-split-pane\";\nimport Pane from \"react-split-pane\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { VerticalDotsIcon } from \"../../resources/icons/VerticalDotsIcon\";\nimport { EllipsisIcon } from \"../../resources/icons/EllipsisIcon\";\nimport { useMemo } from \"react\";\nimport { useTheme } from \"@mui/material\";\n\ninterface SolaceSplitPaneProps extends SolaceComponentProps {\n\tminSize?: number;\n\tdefaultSize?: number | string;\n\tmaxSize?: number;\n\tsplit?: \"vertical\" | \"horizontal\";\n\tallowedResize?: boolean;\n\tchildren: Array<JSX.Element>;\n\tonDragFinished?: (newSize: number) => void;\n}\n\nfunction SolaceSplitPane({\n\tminSize = 0,\n\tdefaultSize = \"50%\",\n\tmaxSize = -8,\n\tsplit = \"vertical\",\n\tallowedResize = true,\n\tchildren,\n\tonDragFinished\n}: SolaceSplitPaneProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst borderColor = theme.palette.ux.secondary.w40;\n\tconst dotsColor = theme.palette.ux.secondary.wMain;\n\n\tconst getWidth = useMemo(() => {\n\t\tif (split === \"vertical\") {\n\t\t\treturn allowedResize ? \"8px\" : \"0px\";\n\t\t} else {\n\t\t\treturn \"100%\";\n\t\t}\n\t}, [allowedResize, split]);\n\n\tconst getHeight = useMemo(() => {\n\t\tif (split === \"horizontal\") {\n\t\t\treturn allowedResize ? \"8px\" : \"0px\";\n\t\t} else {\n\t\t\treturn \"100%\";\n\t\t}\n\t}, [allowedResize, split]);\n\n\tconst getCursor = useMemo(() => {\n\t\tif (allowedResize) {\n\t\t\treturn split === \"vertical\" ? \"ew-resize\" : \"ns-resize\";\n\t\t} else {\n\t\t\treturn \"default\";\n\t\t}\n\t}, [allowedResize, split]);\n\n\tconst getVerticalSplitBorder = useMemo(() => {\n\t\tif (split === \"vertical\") {\n\t\t\treturn `solid 1px ${borderColor}`;\n\t\t} else {\n\t\t\treturn \"\";\n\t\t}\n\t}, [borderColor, split]);\n\n\tconst getHorizontalSplitBorder = useMemo(() => {\n\t\tif (split === \"horizontal\") {\n\t\t\treturn `solid 1px ${borderColor}`;\n\t\t} else {\n\t\t\treturn \"\";\n\t\t}\n\t}, [borderColor, split]);\n\n\tconst getBackgroundImage = useMemo(() => {\n\t\tif (allowedResize) {\n\t\t\treturn split === \"vertical\"\n\t\t\t\t? `url(\"data:image/svg+xml;base64,${btoa(\n\t\t\t\t\t\tReactDOMServer.renderToStaticMarkup(<VerticalDotsIcon fill={dotsColor} />)\n\t\t\t\t )}\")`\n\t\t\t\t: `url(\"data:image/svg+xml;base64,${btoa(\n\t\t\t\t\t\tReactDOMServer.renderToStaticMarkup(<EllipsisIcon fill={dotsColor} />)\n\t\t\t\t )}\")`;\n\t\t} else {\n\t\t\treturn \"none\";\n\t\t}\n\t}, [allowedResize, dotsColor, split]);\n\n\tconst handleDragFinish = (newSize: number) => {\n\t\tif (onDragFinished) {\n\t\t\tonDragFinished(newSize);\n\t\t}\n\t};\n\n\treturn (\n\t\t<SplitPane\n\t\t\tsplit={split}\n\t\t\tminSize={minSize}\n\t\t\tmaxSize={maxSize}\n\t\t\tdefaultSize={defaultSize}\n\t\t\tallowResize={allowedResize}\n\t\t\tonDragFinished={handleDragFinish}\n\t\t\tresizerStyle={{\n\t\t\t\twidth: getWidth,\n\t\t\t\theight: getHeight,\n\t\t\t\tcursor: getCursor,\n\t\t\t\tborderLeft: getVerticalSplitBorder,\n\t\t\t\tborderRight: getVerticalSplitBorder,\n\t\t\t\tborderTop: getHorizontalSplitBorder,\n\t\t\t\tborderBottom: getHorizontalSplitBorder,\n\t\t\t\tbackgroundImage: getBackgroundImage,\n\t\t\t\tbackgroundPosition: \"center\",\n\t\t\t\tbackgroundRepeat: \"no-repeat\"\n\t\t\t}}\n\t\t\tstyle={{\n\t\t\t\tborder: `solid 1px ${borderColor}`\n\t\t\t}}\n\t\t>\n\t\t\t{children &&\n\t\t\t\tchildren.map((content: JSX.Element, index: number) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Pane key={`pane${index}`} size=\"100%\" style={{ overflow: \"auto\" }}>\n\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t</Pane>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t</SplitPane>\n\t);\n}\n\nexport default SolaceSplitPane;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { ArrowRightIcon } from \"../resources/icons/ArrowRight\";\nimport React from \"react\";\nimport clsx from \"clsx\";\nimport { Accordion, AccordionSummary, AccordionDetails, useTheme } from \"@mui/material\";\n\nexport interface SolaceAccordionProps extends SolaceComponentProps {\n\t/**\n\t * unique identifier\n\t */\n\tid?: string;\n\t/**\n\t * \tThe summary section of the Accordion component.\n\t */\n\tsummary: string | JSX.Element;\n\t/**\n\t * \tThe details section of the Accordion component, which can be expanded or closed.\n\t */\n\tdetails: string | JSX.Element;\n\t/**\n\t * A colored vertical bar displayed inside the left border to indicate the variant\n\t */\n\tindicatorVariant?: \"info\" | \"error\" | \"warn\" | \"success\" | \"secondary\";\n\t/**\n\t * If true, the Accordion component is disabled.\n\t */\n\tdisabled?: boolean;\n\t/**\n\t *\tIf true, expands the Accordion component, otherwise collapse it.\n\t */\n\texpanded: boolean;\n\t/**\n\t * Callback function that fires when the expand/collapse state of the Accordion component is changed\n\t * event: the event source of the callback function. Note: this is a generic event not a change event\n\t * expanded: the expanded state of the Accordion component\n\t */\n\tonChange: (event: React.SyntheticEvent, expanded: boolean) => void;\n\t/**\n\t * If true, the Accordion component is has hover effect.\n\t */\n\thover?: boolean;\n\t/**\n\t * Background color of the accordion\n\t */\n\tbackgroundColor?: string;\n\t/**\n\t * If `false`, rounded corners are enabled. The default is `true`.\n\t */\n\tsquare?: boolean;\n\t/**\n\t * if `false`, the component will be borderless. The default is `true`.\n\t */\n\tborder?: boolean;\n\t/**\n\t * border color variants: error, info, warn and success, default to `palette.ux.secondary.w10`\n\t */\n\tborderColor?: \"info\" | \"error\" | \"warn\" | \"success\";\n\t/**\n\t * If `true`, the Accordion details component will not have padding. The default is `false`.\n\t * If enabled, the content will not left align with the header title anymore.\n\t */\n\tdisablePadding?: boolean;\n}\n\nconst parseBorderColor = (borderColor: string): string => {\n\treturn `1px solid ${borderColor}`;\n};\n\nconst SolaceAccordion = ({\n\tid,\n\tsummary,\n\tdetails,\n\tindicatorVariant,\n\tdisabled = false,\n\texpanded = false,\n\thover = false,\n\tonChange,\n\tdataQa,\n\tdataTags,\n\tbackgroundColor,\n\tsquare = true,\n\tborder = true,\n\tborderColor,\n\tdisablePadding = false\n}: SolaceAccordionProps) => {\n\tconst theme = useTheme();\n\tconst getBorderColor = () => {\n\t\tswitch (borderColor) {\n\t\t\tcase \"error\":\n\t\t\t\treturn theme.palette.ux.error.w100;\n\t\t\tcase \"warn\":\n\t\t\t\treturn theme.palette.ux.warning.w100;\n\t\t\tcase \"success\":\n\t\t\t\treturn theme.palette.ux.success.w100;\n\t\t\tcase \"info\":\n\t\t\t\treturn theme.palette.ux.info.w100;\n\t\t\tdefault:\n\t\t\t\treturn theme.palette.ux.secondary.w20;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Accordion\n\t\t\tid={id}\n\t\t\tsquare={square}\n\t\t\tdisableGutters={true}\n\t\t\tdisabled={disabled}\n\t\t\texpanded={expanded}\n\t\t\tonChange={onChange}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t\tsx={{\n\t\t\t\tbackgroundColor: backgroundColor ?? \"transparent\",\n\t\t\t\tborder: border ? parseBorderColor(getBorderColor()) : \"none\"\n\t\t\t}}\n\t\t\tslotProps={{ transition: { timeout: 350 } }}\n\t\t>\n\t\t\t<AccordionSummary\n\t\t\t\texpandIcon={<ArrowRightIcon />}\n\t\t\t\tclassName={clsx({ hasHoverEffect: hover }, indicatorVariant ? `indicator-${indicatorVariant}` : \"\")}\n\t\t\t>\n\t\t\t\t{summary}\n\t\t\t</AccordionSummary>\n\t\t\t<AccordionDetails sx={{ padding: disablePadding ? 0 : undefined }}>{details}</AccordionDetails>\n\t\t</Accordion>\n\t);\n};\n\nexport default SolaceAccordion;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Stack } from \"@mui/material\";\nimport { SolaceStackProps } from \"../../types/solaceStack\";\n\nexport default function SolaceStack(props: SolaceStackProps): JSX.Element {\n\tconst { children, spacing = 2, ...rest } = props;\n\n\treturn (\n\t\t<Stack spacing={spacing} {...rest}>\n\t\t\t{children}\n\t\t</Stack>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Grid, useTheme } from \"@mui/material\";\nimport { SolaceGridProps } from \"../../types/solaceGrid\";\n\n/**\n * All of the supported props related to SolaceGrid can be found at https://mui.com/api/grid/\n * Examples on how to use this components can be found at https://mui.com/components/grid/\n * All props provided by mui have been extended, to provide more flexibility for developers while using these layout components.\n */\nexport default function SolaceGrid(props: SolaceGridProps) {\n\tconst { children, container, ...rest } = props;\n\tlet { spacing } = rest;\n\n\tif (container && !spacing) {\n\t\t// defaulting the spacing to 16px if nothing is provided.\n\t\tspacing = 2;\n\t}\n\n\tconst theme = useTheme();\n\treturn (\n\t\t<Grid container={container} spacing={spacing} color={theme.palette.ux.primary.text.wMain} {...rest}>\n\t\t\t{children}\n\t\t</Grid>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Breadcrumbs, Link, LinkProps, styled } from \"@mui/material\";\nimport { Link as RouterLink } from \"react-router-dom\";\nimport NavigateNextIcon from \"@mui/icons-material/NavigateNext\";\n\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { useMemo } from \"react\";\nimport SolaceTooltip from \"./SolaceToolTip\";\nimport SolaceCircularProgress from \"./SolaceCircularProgress\";\n\nconst SolaceLink = styled(Link)<LinkProps<typeof Link | RouterLink>>(() => ({\n\tmaxWidth: \"200px\",\n\toverflow: \"hidden\",\n\ttextOverflow: \"ellipsis\",\n\twhiteSpace: \"nowrap\"\n}));\n\nconst RouteContainer = styled(\"div\")(({ theme }) => ({\n\talignItems: \"center\",\n\tcolumnGap: theme.spacing(0.5),\n\tdisplay: \"flex\",\n\tflexDirection: \"row\"\n}));\n\nexport type SolacePath = {\n\t/**\n\t * Title of the path\n\t */\n\ttitle: string | JSX.Element;\n\t/**\n\t * Link's path to be use with react-router-dom's Link component\n\t */\n\tlink: string;\n\t/**\n\t * Indicate if this path is the current one (typically the last path in paths)\n\t */\n\tcurrent?: boolean;\n\t/**\n\t * Optional tooltip to display\n\t */\n\ttooltip?: string;\n\t/**\n\t * Optional progress indicator\n\t */\n\tprogress?: boolean;\n\t/**\n\t * Optional progress indicator tooltip\n\t */\n\tprogressTooltip?: string;\n};\n\nexport interface SolaceBreadcrumbProps extends SolaceComponentProps {\n\t/**\n\t * Optional ID of this component\n\t */\n\tid?: string;\n\t/**\n\t * Array of Paths\n\t */\n\tpaths: SolacePath[];\n\t/**\n\t * Maximum of displayed paths (to see ... when there's more)\n\t */\n\tmaxItems?: number;\n\t/**\n\t * Optional click handler. When not set, it's assume a React Router's Link will be used.\n\t * @param route link\n\t * @returns\n\t */\n\tonRouteClick?: (route: string) => void;\n}\n\nfunction SolaceBreadcrumb({\n\tid,\n\tpaths,\n\tmaxItems = 8,\n\tonRouteClick,\n\tdataQa = \"breadcrumbs\",\n\tdataTags\n}: SolaceBreadcrumbProps): JSX.Element {\n\tconst handleRouteClick = useMemo(\n\t\t() =>\n\t\t\tpaths.map(({ link }) => () => {\n\t\t\t\tif (onRouteClick) {\n\t\t\t\t\tonRouteClick(link);\n\t\t\t\t}\n\t\t\t}),\n\t\t[onRouteClick, paths]\n\t);\n\n\treturn (\n\t\t<Breadcrumbs\n\t\t\tid={id}\n\t\t\tseparator={<NavigateNextIcon fontSize=\"small\" />}\n\t\t\tmaxItems={maxItems}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t>\n\t\t\t{paths.map(({ title, link, current, tooltip, progress, progressTooltip }, index) =>\n\t\t\t\tcurrent ? (\n\t\t\t\t\t<RouteContainer key={link}>\n\t\t\t\t\t\t<SolaceLink underline=\"none\" component=\"span\" data-qa={link}>\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</SolaceLink>\n\t\t\t\t\t\t{progress && (\n\t\t\t\t\t\t\t<SolaceTooltip title={progressTooltip}>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<SolaceCircularProgress size=\"xs\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</RouteContainer>\n\t\t\t\t) : (\n\t\t\t\t\t<RouteContainer key={link}>\n\t\t\t\t\t\t<SolaceTooltip title={tooltip} variant=\"overflow\">\n\t\t\t\t\t\t\t{onRouteClick ? (\n\t\t\t\t\t\t\t\t<SolaceLink underline=\"hover\" component={\"button\"} onClick={handleRouteClick[index]} data-qa={link}>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</SolaceLink>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<SolaceLink underline=\"hover\" component={RouterLink} to={link} data-qa={link}>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</SolaceLink>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t{progress && (\n\t\t\t\t\t\t\t<SolaceTooltip title={progressTooltip}>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<SolaceCircularProgress size=\"xs\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</RouteContainer>\n\t\t\t\t)\n\t\t\t)}\n\t\t</Breadcrumbs>\n\t);\n}\n\nexport default SolaceBreadcrumb;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled, ToggleButtonGroup, ToggleButton } from \"@mui/material\";\nimport { appTheme } from \"../../theming/themeUtils\";\nimport { SupportedThemes } from \"../../types/supportedThemes\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\n\nexport interface SolaceToggleButtonGroupProps extends SolaceComponentProps {\n\toptions: SolaceToggleButtonGroupOptionProps[];\n\tonChange: (event: React.MouseEvent<HTMLElement, MouseEvent>, value: string) => void;\n\tactiveValue?: string;\n\tisDisabled?: boolean;\n}\n\nexport interface SolaceToggleButtonGroupOptionProps extends SolaceComponentProps {\n\tlabel: string | JSX.Element;\n\tvalue: string;\n\tdisabled?: boolean;\n}\n\n// override here to match specificity of default mui styles\nconst OutlineSolaceToggleButtonGroup = styled(ToggleButtonGroup)(({ theme }) => {\n\tconst sharedStyles = {\n\t\theight: theme.spacing(4),\n\t\tpadding: theme.spacing(0, 2),\n\n\t\tcolor: theme.palette.ux.deprecated.secondary.text.wMain,\n\t\tfontWeight: theme.typography.fontWeightRegular,\n\t\ttextTransform: \"none\",\n\t\tbackgroundColor: theme.palette.ux.background.w10,\n\t\tborderColor: theme.palette.ux.secondary.w40,\n\n\t\t\"&:hover\": {\n\t\t\tbackgroundColor: theme.palette.ux.secondary.w10,\n\t\t\tborderColor: theme.palette.ux.secondary.w40,\n\t\t\t// remove \"solace\" option when new palette is adopted\n\t\t\tcolor:\n\t\t\t\tappTheme === SupportedThemes.solace\n\t\t\t\t\t? theme.palette.ux.deprecated.secondary.text.wMain\n\t\t\t\t\t: theme.palette.ux.primary.text.wMain\n\t\t},\n\n\t\t\"&.Mui-selected\": {\n\t\t\tcolor: theme.palette.ux.primary.wMain,\n\t\t\tfontWeight: theme.typography.fontWeightMedium,\n\t\t\tbackgroundColor: theme.palette.ux.brand.w10,\n\n\t\t\t\"&:hover\": {\n\t\t\t\tbackgroundColor: theme.palette.ux.brand.w10\n\t\t\t},\n\n\t\t\t\"&.Mui-disabled\": {\n\t\t\t\tbackgroundColor: theme.palette.ux.background.w20\n\t\t\t}\n\t\t},\n\n\t\t\"&:focus-visible, &.Mui-selected:focus-visible\": {\n\t\t\tborderColor: theme.palette.ux.deprecated.accent.n2.wMain\n\t\t},\n\n\t\t\"&.Mui-disabled, &.Mui-selected.Mui-disabled\": {\n\t\t\tborderColor: theme.palette.ux.secondary.w40,\n\t\t\tcolor: theme.palette.ux.secondary.text.w50\n\t\t}\n\t};\n\n\t// override the sharedStyles for the new Solace Theme\n\tconst newSolaceStyles = {\n\t\tcolor: theme.palette.ux.secondary.text.wMain,\n\n\t\t\"&.Mui-selected\": {\n\t\t\tcolor: theme.palette.ux.primary.text.wMain,\n\t\t\tfontWeight: theme.typography.fontWeightMedium,\n\t\t\tbackgroundColor: theme.palette.ux.accent.n2.w10,\n\n\t\t\t\"&:hover\": {\n\t\t\t\tbackgroundColor: theme.palette.ux.accent.n2.w10\n\t\t\t},\n\n\t\t\t\"&.Mui-disabled\": {\n\t\t\t\tbackgroundColor: theme.palette.ux.secondary.w10\n\t\t\t}\n\t\t}\n\t};\n\n\treturn {\n\t\t\".MuiToggleButtonGroup-grouped:not(:first-of-type)\": {\n\t\t\tmarginLeft: 0,\n\t\t\tborderLeft: \"none\",\n\n\t\t\t\"&:focus-visible\": {\n\t\t\t\tborderLeftColor: theme.palette.ux.deprecated.accent.n2.wMain\n\t\t\t}\n\t\t},\n\n\t\tbutton: {\n\t\t\t...sharedStyles,\n\t\t\t...(appTheme === SupportedThemes.newSolace && newSolaceStyles)\n\t\t}\n\t};\n});\n\nfunction SolaceToggleButtonGroup({\n\tonChange,\n\toptions = [],\n\tactiveValue = undefined,\n\tisDisabled = false\n}: SolaceToggleButtonGroupProps): JSX.Element {\n\treturn (\n\t\t<OutlineSolaceToggleButtonGroup exclusive={true} onChange={onChange} disabled={isDisabled} size={\"small\"}>\n\t\t\t{options.map((option) => (\n\t\t\t\t<ToggleButton\n\t\t\t\t\tkey={option.value}\n\t\t\t\t\tvalue={option.value}\n\t\t\t\t\tdisableRipple={true}\n\t\t\t\t\tdisableFocusRipple={true}\n\t\t\t\t\tdisabled={option.disabled ?? false}\n\t\t\t\t\tselected={activeValue === option.value}\n\t\t\t\t>\n\t\t\t\t\t{option.label}\n\t\t\t\t</ToggleButton>\n\t\t\t))}\n\t\t</OutlineSolaceToggleButtonGroup>\n\t);\n}\n\nexport default SolaceToggleButtonGroup;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport SolaceComponentProps from \"../components/SolaceComponentProps\";\nimport { BASE_SIZE_TYPES } from \"./sizing\";\nimport { RANGE_0_TO_100 } from \"./numericTypes\";\n\nexport const PROGRESS_HEIGHT: BASE_SIZE_TYPES = {\n\txs: 4, // size of the progress bar in modal dialog component\n\tsm: 6, // size of small progress indicator on side panels\n\tmd: 10, // size of progress bar when used on pages\n\tlg: 14\n};\n\nexport interface SolaceLinearProgressProps extends SolaceComponentProps {\n\t/**\n\t * The variant style to use. Use indeterminate when there is no progress value to showcase\n\t */\n\tvariant: \"indeterminate\" | \"determinate\";\n\n\t/**\n\t * Height of the linear indicator\n\t */\n\theight?: keyof BASE_SIZE_TYPES;\n\n\t/**\n\t * Represent the progress value in percentage (useful only if the variant is \"determinate\", value between 0 and 100).\n\t */\n\tvalue?: RANGE_0_TO_100;\n\n\t/**\n\t * Color to style the progress bar with.\n\t */\n\tcolor?: \"default\" | \"learning\";\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LinearProgress } from \"@mui/material\";\nimport { PROGRESS_HEIGHT, SolaceLinearProgressProps } from \"../types/solaceProgress\";\n\nexport default function SolaceLinearProgress(props: SolaceLinearProgressProps): JSX.Element {\n\tconst { variant, height, value, color } = props;\n\treturn (\n\t\t<LinearProgress\n\t\t\tvariant={variant}\n\t\t\tvalue={variant === \"determinate\" ? value : undefined}\n\t\t\tclassName={color ?? \"default\"}\n\t\t\tsx={{\n\t\t\t\theight: PROGRESS_HEIGHT[height ?? \"md\"]\n\t\t\t}}\n\t\t/>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum FIELD_TYPES {\n\tDEFAULT = \"default_field\",\n\tSEARCH = \"search_field\",\n\tFILTER = \"filter_field\"\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon, useTheme } from \"@mui/material\";\n\nexport const FilterIcon = ({ size = 24, fill = \"\" }): JSX.Element => {\n\tconst theme = useTheme();\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<g>\n\t\t\t\t<path\n\t\t\t\t\td=\"M20.598,18H16.4c-0.356,0-0.535,0.431-0.283,0.683l2.13,2.2C18.325,20.961,18.428,21,18.53,21\n c0.102,0,0.205-0.039,0.283-0.117l2.068-2.2C21.133,18.431,20.954,18,20.598,18z M17.798,5l-4.522,6L13,11.462V12v3.899L11,17.4V12\n v-0.538L10.723,11L6.201,5H17.798z M20.6,3H3.4C3.067,3,2.801,3.379,3,3.645L9,12v8.6C9,20.84,9.196,21,9.404,21\n c0.088,0,0.178-0.022,0.256-0.087L14.853,17C14.945,16.924,15,16.817,15,16.698V12l6-8.4C21.2,3.334,20.932,3,20.6,3z\"\n\t\t\t\t\tfill={fill || theme.palette.ux.secondary.wMain}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon, useTheme } from \"@mui/material\";\n\nexport const SearchIcon = ({ size = 24, fill = \"\" }): JSX.Element => {\n\tconst theme = useTheme();\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<g>\n\t\t\t\t<path\n\t\t\t\t\td=\"M10.504,3.13C6.402,3.13,3,6.53,3,10.63S6.402,18,10.504,18c1.701,0,3.202-0.37,4.503-1.37l4.442,4.09\n\t\tc0.1,0.1,0.2,0.15,0.3,0.15c0.1,0,0.2-0.05,0.3-0.15l0.8-0.8c0.2-0.2,0.2-0.4,0-0.6l-4.342-4.19c0.901-1.2,1.492-2.8,1.492-4.5\n\t\tC18,6.53,14.606,3.13,10.504,3.13L10.504,3.13z M10.504,16c-3.002,0-5.503-2.37-5.503-5.37s2.501-5.5,5.503-5.5S16,7.63,16,10.63\n\t\tS13.506,16,10.504,16L10.504,16z\"\n\t\t\t\t\tfill={fill || theme.palette.ux.secondary.wMain}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useRef } from \"react\";\nimport { FIELD_TYPES } from \"../types/fieldTypes\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport SolaceButton from \"./form/SolaceButton\";\nimport SolaceTextField, { SolaceTextFieldChangeEvent } from \"./form/SolaceTextField\";\nimport { CloseIcon } from \"../resources/icons/CloseIcon\";\nimport { FilterIcon } from \"../resources/icons/FilterIcon\";\nimport { SearchIcon } from \"../resources/icons/SearchIcon\";\nimport { styled } from \"@mui/material\";\nimport { constants } from \"../constants\";\n\nconst SvgContainer = styled(\"div\")(({ theme }) => ({\n\tmargin: `${theme.spacing(1)} ${theme.spacing(1)} 0 -${theme.spacing(0.5)}`,\n\t\".MuiSvgIcon-root\": {\n\t\tfill: theme.palette.ux.secondary.wMain\n\t}\n}));\n\nexport interface SolaceSearchAndFilterProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname: string;\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tvalue?: string;\n\t/**\n\t * Short hint displayed in the `input` before user enters a value\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Custom Width of the component.\n\t */\n\twidth?: string;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to keep the `input` focused\n\t */\n\tautoFocus?: boolean;\n\t/**\n\t * Indicates whether this is a \"search\" or \"filter\" field (appropriate icon will show as the adornment)\n\t */\n\ttype?: FIELD_TYPES;\n\t/**\n\t * Boolean flag to mark the field in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed\n\t */\n\tonChange: (event: SolaceTextFieldChangeEvent) => void;\n\t/**\n\t * Callback function to notify the callee when the `input` is focused\n\t */\n\tonFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to notify the callee when the `input` is blurred\n\t */\n\tonBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to notify the callee when the clear (x) button is clicked (in case\n\t * the callee wishes to perform any additional operations other than clearing the search/filter text)\n\t */\n\tonClearAll?: () => void;\n}\n\nfunction SolaceSearchAndFilter({\n\tid,\n\tname,\n\tlabel,\n\thelperText,\n\tvalue = \"\",\n\tplaceholder,\n\twidth,\n\tdisabled = false,\n\tautoFocus = false,\n\ttype = FIELD_TYPES.DEFAULT,\n\thasErrors = false,\n\tonChange,\n\tonFocus,\n\tonBlur,\n\tonClearAll\n}: SolaceSearchAndFilterProps): JSX.Element {\n\tconst inputRef = useRef<HTMLElement>();\n\tconst getAdornment = useCallback(() => {\n\t\tconst handleClearInput = () => {\n\t\t\tonChange({ name, value: \"\" });\n\t\t\tonClearAll && onClearAll();\n\t\t\tinputRef.current?.focus(); // The input shall not lose focus after the clear action per UX requirement\n\t\t};\n\n\t\tconst getFieldIcon = (type: FIELD_TYPES) => {\n\t\t\tswitch (type) {\n\t\t\t\tcase FIELD_TYPES.FILTER:\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SvgContainer key=\"filterIcon\">\n\t\t\t\t\t\t\t<FilterIcon size={20} />\n\t\t\t\t\t\t</SvgContainer>\n\t\t\t\t\t);\n\t\t\t\tcase FIELD_TYPES.SEARCH:\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SvgContainer key=\"searchIcon\">\n\t\t\t\t\t\t\t<SearchIcon size={20} />\n\t\t\t\t\t\t</SvgContainer>\n\t\t\t\t\t);\n\t\t\t\tdefault:\n\t\t\t\t\treturn undefined;\n\t\t\t}\n\t\t};\n\n\t\tconst icons = [];\n\n\t\tif (value && value.trim().length > 0) {\n\t\t\ticons.push(\n\t\t\t\t<SolaceButton\n\t\t\t\t\tkey={\"closeIcon\"}\n\t\t\t\t\tdataQa=\"clearButton\"\n\t\t\t\t\tisDisabled={disabled}\n\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\tonClick={handleClearInput}\n\t\t\t\t\taria-label={constants.clearButtonAriaLabel}\n\t\t\t\t>\n\t\t\t\t\t<CloseIcon size={20} key=\"closeIcon\" />\n\t\t\t\t</SolaceButton>\n\t\t\t);\n\t\t}\n\n\t\ticons.push(getFieldIcon(type));\n\n\t\treturn icons;\n\t}, [value, type, onChange, name, onClearAll, disabled]);\n\n\tconst handleChange = (event: SolaceTextFieldChangeEvent) => {\n\t\tonChange(event);\n\t};\n\n\tconst handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n\t\tonFocus && onFocus(event);\n\t};\n\n\tconst handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n\t\tonBlur && onBlur(event);\n\t};\n\n\treturn (\n\t\t<SolaceTextField\n\t\t\tid={id}\n\t\t\tname={name}\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\tvalue={value}\n\t\t\tautoFocus={autoFocus}\n\t\t\tonChange={handleChange}\n\t\t\tonFocus={handleFocus}\n\t\t\tonBlur={handleBlur}\n\t\t\twidth={width}\n\t\t\tendAdornment={getAdornment()}\n\t\t\thasErrors={hasErrors}\n\t\t\tdisabled={disabled}\n\t\t\tdataQa={`searchAndFilter-${id}`}\n\t\t\tplaceholder={placeholder}\n\t\t\tinputRef={(input) => {\n\t\t\t\tinputRef.current = input;\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nexport default SolaceSearchAndFilter;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { List } from \"@mui/material\";\nimport { solaceListProps } from \"../../types\";\n\n// Component to layout a list of items\nfunction SolaceList({ children, ...rest }: solaceListProps) {\n\treturn <List {...rest}>{children}</List>;\n}\n\n// export component SolaceList\nexport default SolaceList;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ListItem } from \"@mui/material\";\nimport { solaceListItemProps } from \"../../types\";\n\n// component to properly layout a list item\nfunction SolaceListItem({ children, ...rest }: solaceListItemProps) {\n\treturn <ListItem {...rest}>{children}</ListItem>;\n}\n\n// export component SolaceListItem\nexport default SolaceListItem;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ListItemButton } from \"@mui/material\";\nimport { solaceListItemButtonProps } from \"../../types\";\n\n// Converts a list item into a button\nfunction SolaceListItemButton({ children, ...rest }: solaceListItemButtonProps) {\n\treturn <ListItemButton {...rest}>{children}</ListItemButton>;\n}\n\nexport default SolaceListItemButton;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, IconButton } from \"@mui/material\";\nimport SolaceTooltip from \"../../SolaceToolTip\";\n\nimport { SolaceLearningButtonProps } from \"../../../types\";\n\nfunction SolaceLearningButton({\n\tid,\n\tvariant = \"call-to-action\",\n\t\"aria-label\": ariaLabel,\n\t\"aria-labelledby\": ariaLabelledby,\n\tisDisabled = false,\n\ttitle = \"\",\n\tcomponent = \"button\",\n\ttype = \"button\",\n\tstartIcon,\n\tendIcon,\n\tonClick,\n\tdataQa,\n\tdataTags,\n\tchildren\n}: SolaceLearningButtonProps): JSX.Element {\n\tconst handleClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n\t\tif (onClick) {\n\t\t\tonClick(event);\n\t\t}\n\t};\n\n\tif (variant === \"icon\") {\n\t\treturn (\n\t\t\t<SolaceTooltip title={title}>\n\t\t\t\t<IconButton\n\t\t\t\t\taria-label={ariaLabel}\n\t\t\t\t\taria-labelledby={ariaLabelledby}\n\t\t\t\t\tdata-qa={dataQa}\n\t\t\t\t\tdata-tags={dataTags}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tid={id}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\tclassName=\"icon-button\"\n\t\t\t\t\tcomponent=\"button\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</IconButton>\n\t\t\t</SolaceTooltip>\n\t\t);\n\t} else {\n\t\tenum MATERIAL_VARIANTS {\n\t\t\tcontained = \"contained\",\n\t\t\toutlined = \"outlined\"\n\t\t}\n\t\tconst BUTTON_VARIANT_MAP = {\n\t\t\tlearning: MATERIAL_VARIANTS.contained,\n\t\t\t\"dark-call-to-action\": MATERIAL_VARIANTS.contained,\n\t\t\t\"dark-outline\": MATERIAL_VARIANTS.outlined\n\t\t};\n\n\t\tlet className = \"\";\n\t\tswitch (variant) {\n\t\t\tcase \"dark-call-to-action\":\n\t\t\t\tclassName = \"dark-call-to-action-button\";\n\t\t\t\tbreak;\n\t\t\tcase \"dark-outline\":\n\t\t\t\tclassName = \"dark-outline-button\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tclassName = \"call-to-action-button\";\n\t\t}\n\n\t\treturn (\n\t\t\t<SolaceTooltip title={title}>\n\t\t\t\t<Button\n\t\t\t\t\tid={id}\n\t\t\t\t\tdata-qa={dataQa}\n\t\t\t\t\tdata-tags={dataTags}\n\t\t\t\t\tstartIcon={startIcon}\n\t\t\t\t\tendIcon={endIcon}\n\t\t\t\t\tcomponent={component}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\tvariant={BUTTON_VARIANT_MAP[variant]}\n\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\tclassName={className}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Button>\n\t\t\t</SolaceTooltip>\n\t\t);\n\t}\n}\n\nexport default SolaceLearningButton;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconProps } from \"./IconProps\";\nimport { SvgIcon } from \"@mui/material\";\nimport { useTheme } from \"@mui/material\";\n\nexport function Error16Icon({ size, fill }: IconProps): JSX.Element {\n\tconst theme = useTheme();\n\n\treturn (\n\t\t<SvgIcon\n\t\t\tsx={{ width: `${size}px`, height: `${size}px`, background: theme.palette.ux.background.w10 }}\n\t\t\tviewBox=\"0 0 16 16\"\n\t\t>\n\t\t\t<g clipPath=\"url(#clip0_3499_35806)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M10 5.013L8 7.013L6 5.013C5.8901 4.9031 5.713 4.9031 5.6031 5.013L5.013 5.6038C4.9031 5.7137 4.9031 5.8908 5.013 6.0007L7.013 8L5.013 10C4.9031 10.1099 4.9031 10.287 5.013 10.3969L5.6031 10.987C5.713 11.0969 5.8901 11.0969 6 10.987L8 8.987L10 10.987C10.1099 11.0969 10.287 11.0969 10.3969 10.987L10.987 10.3969C11.0969 10.287 11.0969 10.1099 10.987 10L8.987 8L10.987 6C11.0969 5.8901 11.0969 5.713 10.987 5.6031L10.3969 5.013C10.287 4.9038 10.1092 4.9038 10 5.013ZM8 1C4.15 1 1 4.15 1 8C1 11.85 4.15 15 8 15C11.85 15 15 11.85 15 8C15 4.15 11.85 1 8 1ZM8 2.4C11.08 2.4 13.6 4.92 13.6 8C13.6 11.08 11.08 13.6 8 13.6C4.92 13.6 2.4 11.08 2.4 8C2.4 4.92 4.92 2.4 8 2.4Z\"\n\t\t\t\t\tfill={fill}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id=\"clip0_3499_35806\">\n\t\t\t\t\t<rect width=\"16\" height=\"16\" fill=\"white\" />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</SvgIcon>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconProps } from \"./IconProps\";\nimport { SvgIcon } from \"@mui/material\";\nimport { useTheme } from \"@mui/material\";\n\nexport function CheckFilled16Icon({ size, fill }: IconProps): JSX.Element {\n\tconst theme = useTheme();\n\treturn (\n\t\t<SvgIcon\n\t\t\tsx={{ width: `${size}px`, height: `${size}px`, background: theme.palette.ux.background.w10 }}\n\t\t\tviewBox=\"0 0 16 16\"\n\t\t>\n\t\t\t<g clipPath=\"url(#clip0_8332_25903)\">\n\t\t\t\t<path\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M14.6668 8C14.6668 11.6819 11.6821 14.6667 8.00016 14.6667C4.31826 14.6667 1.3335 11.6819 1.3335 8C1.3335 4.3181 4.31826 1.33333 8.00016 1.33333C11.6821 1.33333 14.6668 4.3181 14.6668 8ZM6.84111 11.404L12.2361 6.00901L11.2933 5.0662L6.84049 9.51904L4.70569 7.38708L3.76351 8.33052L6.84111 11.404Z\"\n\t\t\t\t\tfill={fill}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id=\"clip0_8332_25903\">\n\t\t\t\t\t<rect width=\"16\" height=\"16\" fill=\"white\" />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</SvgIcon>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Badge, Box, useTheme } from \"@mui/material\";\nimport { Error16Icon } from \"../../../resources/icons/Error16Icon\";\nimport { CheckFilled16Icon } from \"../../../resources/icons/CheckFilled16Icon\";\nconst shapeStyles = { width: 48, height: 48 };\nconst shapeCircleStyles = { borderRadius: \"50%\" };\n\nexport type SolaceStepIconProps = {\n\tactive?: boolean;\n\tcompleted?: boolean;\n\ticon: React.ReactNode;\n\terror?: boolean;\n};\n\n/**\n * Renders a SolaceStepIcon component in a stepper.\n *\n * @param {SolaceStepIconProps} props - The props for the SolaceStepIcon component.\n * @returns {JSX.Element} The rendered SolaceStepIcon component.\n */\nexport default function SolaceStepIcon(props: SolaceStepIconProps) {\n\tconst { active, completed, icon, error } = props;\n\tconst theme = useTheme();\n\n\tconst borderColor = active\n\t\t? theme.palette.ux.brand.wMain\n\t\t: error\n\t\t ? theme.palette.ux.error.wMain\n\t\t : theme.palette.ux.secondary.w40;\n\n\tconst borderStyles = {\n\t\tborder: `${active ? \"2px\" : \"1px\"} solid ${borderColor}`\n\t};\n\n\tconst circle = (\n\t\t<Box\n\t\t\tcomponent=\"span\"\n\t\t\tsx={{ border: borderStyles, ...shapeStyles, ...shapeCircleStyles }}\n\t\t\tdisplay=\"flex\"\n\t\t\talignItems=\"center\"\n\t\t\tjustifyContent=\"center\"\n\t\t>\n\t\t\t{icon}\n\t\t</Box>\n\t);\n\n\tconst badgeContent = completed ? (\n\t\t<CheckFilled16Icon fill={theme.palette.ux.success.wMain} size={16} />\n\t) : (\n\t\t<Error16Icon fill={theme.palette.ux.error.wMain} size={16} />\n\t);\n\n\treturn (\n\t\t<Badge overlap=\"circular\" badgeContent={error || completed ? badgeContent : null}>\n\t\t\t{circle}\n\t\t</Badge>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Divider, styled, useTheme } from \"@mui/material\";\nimport { ArrowLeft24Icon, ArrowRight24Icon } from \"@SolaceDev/maas-icons\";\nimport { useMemo } from \"react\";\nimport { SolaceStepperFooterProps } from \"../../../types\";\nimport SolaceButton from \"../SolaceButton\";\n\nconst buttonStrings = {\n\tcancel: \"Cancel\",\n\tnext: \"Next\",\n\tback: \"Back\"\n};\n\n/**\n * Renders the footer component for the SolaceStepper.\n *\n * @param {SolaceStepperFooterProps} props - The props for the SolaceStepperFooter component.\n * @returns {JSX.Element} The rendered SolaceStepperFooter component.\n * @example\n * return (\n * <SolaceStepperFooter\n * steps={steps}\n * onClose={handleClose}\n * onSubmit={handleSubmit}\n * onSecondarySubmit={handleSecondarySubmit}\n * setActiveStep={setActiveStep}\n * activeStep={activeStep}\n * submitLabel=\"Submit\"\n * secondarySubmitLabel=\"Secondary Submit\"\n * disableSubmit={false}\n * shouldDisableSecondarySubmit={() => someCondition}\n * />\n * );\n */\n\nconst StyledButtonGroupBox = styled(Box)(({ theme }) => ({\n\tpaddingTop: theme.spacing(2),\n\tpaddingLeft: theme.spacing(3),\n\tpaddingRight: theme.spacing(2),\n\tdisplay: \"flex\",\n\tflexDirection: \"row\"\n}));\n\n// left and right directions have different padding\n// right direction only has padding when onLastStep is false\nconst StyledButtonBox = styled(Box, {\n\tshouldForwardProp: (prop) => prop !== \"onLastStep\" && prop !== \"direction\"\n})<{ direction: \"left\" | \"right\"; onLastStep?: boolean }>(({ theme, direction, onLastStep }) => ({\n\tmarginRight: direction === \"left\" ? theme.spacing(1) : 0,\n\t\".MuiButtonBase-root\": {\n\t\tpadding: (() => {\n\t\t\tif (direction === \"left\") return \"0 16px 0 0\";\n\t\t\tif (!onLastStep) return \"0 0 0 16px\";\n\t\t\treturn undefined;\n\t\t})()\n\t}\n}));\n\nconst ButtonContent = styled(\"span\")(({ theme }) => ({\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tgap: theme.spacing(1)\n}));\n\nexport default function SolaceStepperFooter(props: SolaceStepperFooterProps) {\n\tconst {\n\t\tsteps,\n\t\tonClose,\n\t\tonSubmit,\n\t\tonSecondarySubmit,\n\t\tsetActiveStep,\n\t\tactiveStep,\n\t\tsubmitLabel,\n\t\tsecondarySubmitLabel,\n\t\tdisableSubmit,\n\t\tshouldDisableSecondarySubmit\n\t} = props;\n\tconst onLastStep = activeStep === steps.length - 1;\n\tconst onFirstStep = activeStep === 0;\n\n\t// The first step after activeStep in enabled state, if such step not found, return activeStep + 1\n\tconst nextStepAllowed = useMemo(() => {\n\t\tif (activeStep === steps.length - 1) return activeStep;\n\n\t\tlet nextEnabledStep = -1;\n\t\tfor (let index = activeStep + 1; index < steps.length; index++) {\n\t\t\tif (!steps[index].disabled) {\n\t\t\t\tnextEnabledStep = index;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn nextEnabledStep === -1 ? activeStep + 1 : nextEnabledStep;\n\t}, [steps, activeStep]);\n\tconst previousStepAllowed = useMemo(() => {\n\t\tif (activeStep === 0) return activeStep;\n\n\t\tlet previousEnabledStep = -1;\n\t\tfor (let index = activeStep - 1; index >= 0; index--) {\n\t\t\tif (!steps[index].disabled) {\n\t\t\t\tpreviousEnabledStep = index;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn previousEnabledStep === -1 ? activeStep - 1 : previousEnabledStep;\n\t}, [steps, activeStep]);\n\n\tconst theme = useTheme();\n\n\tconst handleNext = () => {\n\t\tif (onLastStep) {\n\t\t\tonSubmit();\n\t\t\treturn;\n\t\t}\n\t\tsetActiveStep(nextStepAllowed);\n\t};\n\n\tconst handleSecondarySubmit = () => {\n\t\tonSecondarySubmit?.();\n\t};\n\n\tconst handleBack = () => {\n\t\tif (onFirstStep) return;\n\t\tsetActiveStep(previousStepAllowed);\n\t};\n\n\treturn (\n\t\t<Box minHeight=\"69px\">\n\t\t\t<Divider />\n\t\t\t<StyledButtonGroupBox>\n\t\t\t\t<StyledButtonBox direction=\"left\">\n\t\t\t\t\t{!onFirstStep && (\n\t\t\t\t\t\t<SolaceButton variant=\"text\" onClick={handleBack} isDisabled={steps[previousStepAllowed].disabled}>\n\t\t\t\t\t\t\t<ButtonContent>\n\t\t\t\t\t\t\t\t<ArrowLeft24Icon\n\t\t\t\t\t\t\t\t\tfill={\n\t\t\t\t\t\t\t\t\t\tsteps[previousStepAllowed].disabled\n\t\t\t\t\t\t\t\t\t\t\t? theme.palette.ux.secondary.w40\n\t\t\t\t\t\t\t\t\t\t\t: theme.palette.ux.primary.wMain\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tsx={{ padding: \"4px 0px 4px 4px\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{`${buttonStrings.back}: ${steps[previousStepAllowed].label}`}\n\t\t\t\t\t\t\t</ButtonContent>\n\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t)}\n\t\t\t\t</StyledButtonBox>\n\t\t\t\t<Box sx={{ flex: \"1 1 auto\" }} />\n\t\t\t\t<Box sx={{ mr: 1 }}>\n\t\t\t\t\t<SolaceButton variant=\"text\" onClick={onClose}>\n\t\t\t\t\t\t{buttonStrings.cancel}\n\t\t\t\t\t</SolaceButton>\n\t\t\t\t</Box>\n\t\t\t\t{secondarySubmitLabel && (\n\t\t\t\t\t<Box sx={{ mr: 1 }}>\n\t\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\tonClick={handleSecondarySubmit}\n\t\t\t\t\t\t\tisDisabled={shouldDisableSecondarySubmit?.() || (onLastStep && disableSubmit)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{secondarySubmitLabel}\n\t\t\t\t\t\t</SolaceButton>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t\t<StyledButtonBox direction=\"right\" onLastStep={onLastStep}>\n\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\tvariant=\"call-to-action\"\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t\tisDisabled={(onLastStep && disableSubmit) || (!onLastStep && steps[nextStepAllowed].disabled)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{onLastStep ? (\n\t\t\t\t\t\t\tsubmitLabel\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ButtonContent>\n\t\t\t\t\t\t\t\t{`${buttonStrings.next}: ${steps[nextStepAllowed]?.label}`}\n\t\t\t\t\t\t\t\t<ArrowRight24Icon fill={theme.palette.ux.primary.text.w10} sx={{ padding: \"4px 4px 4px 0px\" }} />\n\t\t\t\t\t\t\t</ButtonContent>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</SolaceButton>\n\t\t\t\t</StyledButtonBox>\n\t\t\t</StyledButtonGroupBox>\n\t\t</Box>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Step, StepButton, StepLabel, Stepper, Tooltip, useTheme } from \"@mui/material\";\nimport { SolaceStepperProps, StepProp } from \"../../../types\";\nimport SolaceTypography from \"../../SolaceTypography\";\nimport SolaceStepIcon from \"./SolaceStepIcon\";\nimport SolaceStepperFooter from \"./SolaceStepperFooter\";\n\n/**\n * SolaceStepper component.\n * Renders a stepper component with customizable steps and content.\n *\n * @param {SolaceStepperProps} props - The component props.\n * @returns {JSX.Element} The SolaceStepper component.\n */\nexport default function SolaceStepper(props: SolaceStepperProps) {\n\tconst { activeStep, steps, setActiveStep, children, stepContentOverflow, ...rest } = props;\n\tconst theme = useTheme();\n\n\t/**\n\t * Handles the click event for a step button.\n\t *\n\t * @param {number} step - The index of the step.\n\t */\n\tconst handleStep = (step: number) => () => {\n\t\tsetActiveStep(step);\n\t};\n\n\tconst getSolaceIconComponent = (step: StepProp, active?: boolean) => {\n\t\treturn <SolaceStepIcon icon={step.icon} completed={step.completed} error={step.error} active={active} />;\n\t};\n\n\treturn (\n\t\t<Box display=\"flex\" flexDirection=\"column\" overflow=\"auto\" flexGrow={1}>\n\t\t\t<Stepper nonLinear activeStep={activeStep}>\n\t\t\t\t{steps.map((step, index) => {\n\t\t\t\t\tconst labelColor =\n\t\t\t\t\t\tactiveStep === index\n\t\t\t\t\t\t\t? theme.palette.ux.primary.text.wMain\n\t\t\t\t\t\t\t: theme.palette.ux.deprecated.secondary.text.wMain;\n\t\t\t\t\tconst stepButton = (\n\t\t\t\t\t\t<StepButton\n\t\t\t\t\t\t\toptional={\n\t\t\t\t\t\t\t\tstep.hideOptionalLabel ? undefined : (\n\t\t\t\t\t\t\t\t\t<SolaceTypography sx={{ color: labelColor }} variant=\"caption\">\n\t\t\t\t\t\t\t\t\t\t{`Step ${index + 1} ${step?.subText ?? \"\"}`}\n\t\t\t\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcolor=\"inherit\"\n\t\t\t\t\t\t\tonClick={step.disabled ? undefined : handleStep(index)}\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\ttextAlign: \"left\",\n\t\t\t\t\t\t\t\topacity: step.disabled ? 0.35 : 1,\n\t\t\t\t\t\t\t\tcursor: step.disabled ? \"default\" : \"pointer\",\n\t\t\t\t\t\t\t\t\"&:hover .MuiTypography-root\": {\n\t\t\t\t\t\t\t\t\tcolor: step.disabled ? undefined : theme.palette.ux.primary.text.wMain\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<StepLabel StepIconComponent={() => getSolaceIconComponent(step, activeStep === index)}>\n\t\t\t\t\t\t\t\t<SolaceTypography variant=\"h5\" sx={{ color: labelColor }}>\n\t\t\t\t\t\t\t\t\t{step.label}\n\t\t\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t\t</StepLabel>\n\t\t\t\t\t\t</StepButton>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Step key={step.label}>\n\t\t\t\t\t\t\t{step.disabled && step.disabledReason ? (\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\ttitle={step.disabledReason}\n\t\t\t\t\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\t\t\t\tpopper: {\n\t\t\t\t\t\t\t\t\t\t\tmodifiers: [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"offset\",\n\t\t\t\t\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toffset: [0, -24]\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{stepButton}\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tstepButton\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Step>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Stepper>\n\t\t\t<Box pl={3} pr={3} flexGrow={1} overflow={stepContentOverflow ?? \"auto\"}>\n\t\t\t\t{children}\n\t\t\t</Box>\n\t\t\t<SolaceStepperFooter activeStep={activeStep} setActiveStep={setActiveStep} steps={steps} {...rest} />\n\t\t</Box>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Theme, useTheme, styled } from \"@mui/material\";\nimport SolaceTypography from \"./SolaceTypography\";\nimport SolaceLearningButton from \"./form/Button/SolaceLearningButton\";\nimport SolaceStack from \"./layout/SolaceStack\";\nimport { SolaceEmptyStateBannerProps } from \"../types\";\n\nconst ImageContainer = styled(\"div\")(({ theme }: { theme: Theme }) => ({\n\tpadding: `${theme.spacing(3)} ${theme.spacing(3)} 0px ${theme.spacing(3)}`,\n\tborderRadius: `${theme.spacing(1.25)} ${theme.spacing(1.25)} 0 0`,\n\tmarginBottom: \"-6px\",\n\tborder: `solid 1px ${theme.palette.ux.learning.w20}`,\n\twidth: \"100%\",\n\tbackgroundColor: theme.palette.ux.learning.w10,\n\tboxSizing: \"border-box\"\n}));\n\nexport default function SolaceEmptyStateBanner(props: SolaceEmptyStateBannerProps) {\n\tconst theme = useTheme();\n\tconst { bannerImage, subtitle, title, description, primaryButton, secondaryButton, dataQa } = props;\n\tconst invertTextColor = theme.palette.ux.primary.text.w10;\n\n\tconst onPrimaryButtonClick = () => {\n\t\tprimaryButton.onClick();\n\t};\n\n\treturn (\n\t\t<Box\n\t\t\twidth={\"100%\"}\n\t\t\theight={\"100%\"}\n\t\t\tdisplay={\"flex\"}\n\t\t\tjustifyContent={\"center\"}\n\t\t\talignItems={\"center\"}\n\t\t\tdata-qa={\"emptyStateBannerWrapper\"}\n\t\t>\n\t\t\t<Box data-qa={dataQa ?? \"emptyStateBanner\"} width={825}>\n\t\t\t\t{bannerImage && <ImageContainer>{bannerImage}</ImageContainer>}\n\t\t\t\t<SolaceStack spacing={3}>\n\t\t\t\t\t<Box\n\t\t\t\t\t\tboxSizing=\"border-box\"\n\t\t\t\t\t\tpadding={5}\n\t\t\t\t\t\theight={261}\n\t\t\t\t\t\tborderRadius={2.5}\n\t\t\t\t\t\tdisplay={\"flex\"}\n\t\t\t\t\t\tjustifyContent={\"space-between\"}\n\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\tbackground: `radial-gradient(75.04% 70.41% at 20.32% 70.41%, ${theme.palette.ux.learning.wMain} 0%, ${theme.palette.ux.learning.w100} 100%)`\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Box>\n\t\t\t\t\t\t\t<SolaceTypography variant={\"caption\"} fontWeight={600} sx={{ color: theme.palette.ux.brand.w30 }}>\n\t\t\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t\t<SolaceStack>\n\t\t\t\t\t\t\t\t<SolaceTypography variant=\"h2\" width={600} sx={{ fontSize: \"1.5rem\", color: invertTextColor }}>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</SolaceTypography>\n\n\t\t\t\t\t\t\t\t<SolaceTypography width={\"100%\"} sx={{ color: invertTextColor }}>\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t\t</SolaceStack>\n\t\t\t\t\t\t\t<SolaceStack direction=\"row\" alignItems=\"center\" paddingTop={theme.spacing(3)} spacing={1.5}>\n\t\t\t\t\t\t\t\t<SolaceLearningButton\n\t\t\t\t\t\t\t\t\tvariant={\"call-to-action\"}\n\t\t\t\t\t\t\t\t\tonClick={onPrimaryButtonClick}\n\t\t\t\t\t\t\t\t\tdataQa={primaryButton?.dataQa ?? \"emptyStateBannerPrimaryButton\"}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{primaryButton.label}\n\t\t\t\t\t\t\t\t</SolaceLearningButton>\n\n\t\t\t\t\t\t\t\t{secondaryButton && (\n\t\t\t\t\t\t\t\t\t<SolaceLearningButton\n\t\t\t\t\t\t\t\t\t\tvariant=\"dark-call-to-action\"\n\t\t\t\t\t\t\t\t\t\tdataQa={secondaryButton.dataQa ?? \"emptyStateBannerSecondaryButton\"}\n\t\t\t\t\t\t\t\t\t\tonClick={() => secondaryButton.onClick()}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{secondaryButton.label}\n\t\t\t\t\t\t\t\t\t</SolaceLearningButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</SolaceStack>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</Box>\n\t\t\t\t</SolaceStack>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\nimport SolaceTypography from \"./SolaceTypography\";\nimport { SolaceCardHeaderProps } from \"../types\";\n\n/**\n * Styled container for the card header\n */\nconst CardHeader = styled(\"div\")(({ theme }) => ({\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tjustifyContent: \"space-between\",\n\tgap: theme.spacing(1),\n\twidth: \"100%\",\n\tboxSizing: \"border-box\"\n}));\n\nconst CardHeaderContent = styled(\"div\")(({ theme }) => ({\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tgap: theme.spacing(1)\n}));\n\n/**\n * Styled container for the icon\n */\nconst IconContainer = styled(\"div\")(() => ({\n\tdisplay: \"flex\",\n\talignSelf: \"flex-start\",\n\tjustifyContent: \"center\",\n\talignItems: \"center\"\n}));\n\n/**\n * Styled container for the title and subheader\n */\nconst CardHeaderText = styled(\"div\")(() => ({\n\tflex: 1,\n\tdisplay: \"flex\",\n\tflexDirection: \"column\"\n}));\n\n/**\n * Styled container for the action elements\n */\nconst CardHeaderActions = styled(\"div\")(({ theme }) => ({\n\tdisplay: \"flex\",\n\talignSelf: \"flex-start\",\n\talignItems: \"center\",\n\tmarginTop: theme.spacing(-0.5)\n}));\n\n/**\n * SolaceCardHeader component\n *\n * A custom card header component that doesn't wrap the title in a Typography element,\n * allowing for direct use of custom Typography components.\n */\nfunction SolaceCardHeader({\n\ticon,\n\ttitle,\n\tsubTitle,\n\tactionElements = null,\n\tdataQa,\n\tdataTags\n}: Readonly<SolaceCardHeaderProps>): JSX.Element {\n\treturn (\n\t\t<CardHeader data-qa={dataQa} data-tags={dataTags}>\n\t\t\t<CardHeaderContent>\n\t\t\t\t{icon && <IconContainer>{icon}</IconContainer>}\n\t\t\t\t{title && (\n\t\t\t\t\t<CardHeaderText>\n\t\t\t\t\t\t<SolaceTypography variant=\"h3\" className=\"solaceCardTitle\">\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t{subTitle && <SolaceTypography variant=\"body1\">{subTitle}</SolaceTypography>}\n\t\t\t\t\t</CardHeaderText>\n\t\t\t\t)}\n\t\t\t</CardHeaderContent>\n\t\t\t{actionElements && <CardHeaderActions>{actionElements}</CardHeaderActions>}\n\t\t</CardHeader>\n\t);\n}\n\nexport default SolaceCardHeader;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Card, CardActions, CardContent, useTheme } from \"@mui/material\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport SolaceCardHeader from \"./SolaceCardHeader\";\nimport { SolaceCardProps } from \"../types\";\n\n/**\n * SolaceCard component\n *\n * A customizable card component for displaying learning resources with optional\n * icon, title, content, custom action elements, and menu.\n */\nfunction SolaceCard({\n\tcardHeaderProps,\n\tcardContent,\n\tcardActions,\n\twidth,\n\theight,\n\tminWidth = \"250px\",\n\tpadding,\n\treadOnly = false,\n\tariaLabel,\n\tdataQa,\n\tdataTags,\n\tisSelected = false,\n\tshowBorderOnSelect = false,\n\tonClick\n}: Readonly<SolaceCardProps>): JSX.Element {\n\tconst theme = useTheme();\n\tconst [selected, setSelected] = useState(isSelected);\n\n\tuseEffect(() => {\n\t\tsetSelected(isSelected);\n\t}, [isSelected]);\n\n\tconst handleCardClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n\t\t\tif (!readOnly && onClick) {\n\t\t\t\tonClick(event, !selected);\n\t\t\t\tsetSelected(!selected);\n\t\t\t}\n\t\t},\n\t\t[selected, onClick, readOnly]\n\t);\n\n\treturn (\n\t\t<Card\n\t\t\tclassName={`solaceCard ${readOnly ? \"readOnly\" : \"\"} ${selected ? \"selected\" : \"\"}`}\n\t\t\tsx={{\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tminWidth,\n\t\t\t\tpadding: padding ?? theme.spacing(2),\n\t\t\t\t...(showBorderOnSelect &&\n\t\t\t\t\tselected && {\n\t\t\t\t\t\tborder: `1px solid ${theme.palette.ux.brand.wMain}`\n\t\t\t\t\t})\n\t\t\t}}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t\taria-label={ariaLabel}\n\t\t\trole=\"article\"\n\t\t\tonClick={!readOnly ? handleCardClick : undefined}\n\t\t>\n\t\t\t{cardHeaderProps && <SolaceCardHeader {...cardHeaderProps} />}\n\n\t\t\t{cardContent && (\n\t\t\t\t<CardContent\n\t\t\t\t\tsx={{\n\t\t\t\t\t\t\"&.MuiCardContent-root:last-child\": {\n\t\t\t\t\t\t\tpaddingBottom: theme.spacing(0)\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpadding: theme.spacing(0)\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{cardContent}\n\t\t\t\t</CardContent>\n\t\t\t)}\n\n\t\t\t{cardActions && (\n\t\t\t\t<CardActions\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tpadding: theme.spacing(0)\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{cardActions}\n\t\t\t\t</CardActions>\n\t\t\t)}\n\t\t</Card>\n\t);\n}\n\nexport default SolaceCard;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\n\nexport const MoreHorizOutlinedIcon = (): JSX.Element => {\n\treturn (\n\t\t<SvgIcon width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n\t\t\t<path\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\td=\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\"\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\n\nconst CheckCircleIcon = ({ fill = \"#7ED321\" }): JSX.Element => {\n\treturn (\n\t\t<SvgIcon sx={{ width: \"20\", height: \"20\", fill: \"none\" }} viewBox=\"0 0 20 20\">\n\t\t\t<path\n\t\t\t\td=\"M11.6951 0.140109C4.85411 -0.984891 -0.984891 4.85411 0.140109 11.6951C0.821109 15.8381 4.16311 19.1801 8.30611 19.8611C15.1471 20.9861 20.9861 15.1471 19.8611 8.30611C19.1791 4.16211 15.8381 0.821109 11.6951 0.140109ZM11.5681 17.8501C5.94311 18.9261 1.07411 14.0571 2.15011 8.43211C2.75111 5.28711 5.28711 2.75111 8.43211 2.15011C14.0571 1.07411 18.9261 5.94311 17.8501 11.5681C17.2481 14.7131 14.7131 17.2481 11.5681 17.8501ZM14.0651 6.10511L8.00011 12.1701L5.92211 10.1011C5.76811 9.94711 5.51811 9.94711 5.36411 10.1021L4.51811 10.9481C4.36011 11.1061 4.36011 11.3611 4.51811 11.5191L7.71411 14.8931C7.87211 15.0511 8.12711 15.0511 8.28511 14.8931L15.4761 7.52511C15.6321 7.36911 15.6331 7.11511 15.4771 6.95811L14.6331 6.10811C14.4771 5.94911 14.2221 5.94811 14.0651 6.10511Z\"\n\t\t\t\tfill={fill}\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n\nexport default CheckCircleIcon;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DateView } from \"@mui/x-date-pickers\";\n\nexport enum SolaceDatePickerVariant {\n\tFORMAT_YEAR_MONTH_DAY = \"yearMonthDay\", // view have day, month and year with format: format: \"YYYY-MM-DD\" i.e. 2022-01-24\n\tFORMAT_MONTH_YEAR = \"monthYear\" // view have month and year with format: format: \"MMMM YYYY\" i.e. January 2022\n}\n\n/**\n * these properties are defined in the Material-UI DatePicker component ( https://mui.com/x/api/date-pickers/date-picker/ )\n * `views` is used for controlliing which views are shown in the date picker (e.g. year, month, day) and an array\n * `openTo` is used for controlling which view the date picker should open to (e.g. year, month, day)\n * `format` is used for controlling the format of the date displayed in the input field\n */\nexport const variantConfig: Record<SolaceDatePickerVariant, { views?: DateView[]; openTo?: DateView; format: string }> =\n\t{\n\t\t[SolaceDatePickerVariant.FORMAT_YEAR_MONTH_DAY]: {\n\t\t\tviews: undefined,\n\t\t\topenTo: undefined,\n\t\t\tformat: \"YYYY-MM-DD\"\n\t\t},\n\t\t[SolaceDatePickerVariant.FORMAT_MONTH_YEAR]: {\n\t\t\tviews: [\"year\", \"month\"],\n\t\t\topenTo: \"month\",\n\t\t\tformat: \"MMMM YYYY\"\n\t\t}\n\t};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Enum representing the possible overflow behaviors for step content.\n *\n * @enum {string}\n * @property {string} Auto - The overflow is automatically determined by the browser.\n * @property {string} Hidden - The overflow is clipped, and the rest of the content will be invisible.\n * @property {string} Scroll - The overflow is clipped, but a scrollbar is added to see the rest of the content.\n * @property {string} Visible - The overflow is not clipped, and it renders outside the element's box.\n */\nexport enum StepContentOverflow {\n\tAuto = \"auto\",\n\tHidden = \"hidden\",\n\tScroll = \"scroll\",\n\tVisible = \"visible\"\n}\n\n/**\n * Props for the SolaceStepper component.\n *\n * @typedef {Object} SolaceStepperProps\n * @property {React.ReactNode} children - The child components to be rendered inside the stepper.\n * @property {StepContentOverflow} [stepContentOverflow] - The overflow behavior for the step content.\n */\nexport type SolaceStepperProps = SolaceStepperFooterProps & {\n\tchildren: React.ReactNode;\n\tstepContentOverflow?: StepContentOverflow;\n};\n\n/**\n * Props for the SolaceStepperFooter component.\n *\n * @typedef {Object} SolaceStepperFooterProps\n * @property {StepsProps} steps - The array of step properties.\n * @property {number} activeStep - The index of the currently active step.\n * @property {React.Dispatch<React.SetStateAction<number>>} setActiveStep - Function to set the active step.\n * @property {() => void} onClose - Function to call when the stepper is closed.\n * @property {() => void} onSubmit - Function to call when the stepper is submitted.\n * @property {string} submitLabel - The label for the submit button.\n * @property {boolean} [disableSubmit] - Whether the submit button should be disabled.\n * @property {() => boolean} [shouldDisableSecondarySubmit] - Function to determine if the secondary submit button should be disabled.\n */\nexport type SolaceStepperFooterProps = {\n\tsteps: StepsProps;\n\tactiveStep: number;\n\tsetActiveStep: React.Dispatch<React.SetStateAction<number>>;\n\tonClose: () => void;\n\tonSecondarySubmit?: () => void;\n\tonSubmit: () => void;\n\tsubmitLabel: string;\n\tsecondarySubmitLabel?: string;\n\tdisableSubmit?: boolean;\n\tshouldDisableSecondarySubmit?: () => boolean;\n};\n\n/**\n * Props for an individual step.\n *\n * @typedef {Object} StepProp\n * @property {string} label - The label for the step.\n * @property {JSX.Element} icon - The icon to display for the step.\n * @property {string} [subText] - Optional subtext for the step.\n * @property {boolean} [hideOptionalLabel] - Whether to hide the optional label displayed inside step button.\n * @property {boolean} [error] - Whether the step has an error.\n * @property {boolean} [completed] - Whether the step is completed.\n * @property {boolean} [disabled] - Whether the step is disabled.\n * @property {string} [disabledReason] - Reason for the step being disabled.\n */\n\nexport type StepProp = {\n\tlabel: string;\n\ticon: JSX.Element;\n\tsubText?: string;\n\thideOptionalLabel?: boolean;\n\terror?: boolean;\n\tcompleted?: boolean;\n\tdisabled?: boolean;\n\tdisabledReason?: string;\n};\n\n/**\n * Array of step properties.\n *\n * @typedef {StepProp[]} StepsProps\n */\nexport type StepsProps = StepProp[];\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SolaceTextFieldChangeEvent } from \"../components/form/SolaceTextField\";\nimport { SolaceToggleButtonGroupOptionProps } from \"../components/form/SolaceToggleButtonGroup\";\nimport SolaceComponentProps from \"../components/SolaceComponentProps\";\n\nexport enum SolaceCategorizedSearchLayout {\n\thorizontal = \"horizontal\",\n\tvertical = \"vertical\"\n}\n\nexport interface SolaceCategorizedSearchProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the search `input` element\n\t */\n\tname: string;\n\t/**\n\t * Options for the category buttons\n\t */\n\tcategoryOptions?: SolaceToggleButtonGroupOptionProps[];\n\t/**\n\t * Custom Width of the category options.\n\t */\n\tcategoryOptionsWidth?: string;\n\t/**\n\t * The value of the selected category button\n\t */\n\tselectedCategoryValue?: string;\n\t/**\n\t * Callback function to notify the callee when a category button is clicked\n\t */\n\tonCategoryChange: (event: React.MouseEvent<HTMLElement, MouseEvent>, value: string) => void;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tsearchValue?: string;\n\t/**\n\t * Short hint displayed in the search `input` before user enters a value\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Custom Width of the search input.\n\t */\n\tsearchInputWidth?: string;\n\t/**\n\t * Boolean flag to disable the search `input` and category buttons\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to keep the search `input` focused\n\t */\n\tautoFocus?: boolean;\n\t/**\n\t * Boolean flag to mark the field in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the search `input` is changed\n\t */\n\tonSearchValueChange: (event: SolaceTextFieldChangeEvent) => void;\n\t/**\n\t * Callback function to notify the callee when the search `input` is focused\n\t */\n\tonSearchInputFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to notify the callee when the search `input` is blurred\n\t */\n\tonSearchInputBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback function to notify the callee when the clear (x) button is clicked (in case\n\t * the callee wishes to perform any additional operations other than clearing the search/filter text)\n\t */\n\tonClearAll?: () => void;\n\t/**\n\t * Layout direction of buttons and search input. Default is vertical.\n\t */\n\tlayout?: SolaceCategorizedSearchLayout;\n\t/**\n\t * Boolean flag to indicate whether category buttons should have equal width\n\t */\n\tequalButtonWidth?: boolean;\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SolacePath } from \"@src/components/SolaceBreadcrumb\";\nimport SolaceComponentProps from \"@src/components/SolaceComponentProps\";\n\nexport enum TitleLocation {\n\tTOP_OF_TABS = \"topOfTabs\",\n\tLEFT_OF_TABS = \"leftOfTabs\"\n}\n\nexport interface SolacePageHeaderProps extends SolaceComponentProps {\n\t/**\n\t * Optional id to be used\n\t */\n\tid?: string;\n\t/**\n\t * The header's title to display\n\t */\n\ttitle: string;\n\t/**\n\t * The sub-title to display next to the title (when used, a\n\t * column \":\" will show up after the title automagically)\n\t */\n\tsubTitle?: string;\n\t/**\n\t * The release string (e.g. \"BETA\")\n\t */\n\trelease?: string;\n\t/**\n\t * The environment's chip (#SolaceEnvironmentChip) or (#SolaceEnvironmentSelectChip)\n\t */\n\tenvironment?: JSX.Element;\n\t/**\n\t * The header's top border color (should match the bgColor used with #SolaceEnvironmentChip)\n\t */\n\tborderTop?: string;\n\t/**\n\t * Breadcrumbs where the last path should be the current one. It can be a #SolaceBreadcrumb component\n\t */\n\tbreadcrumbs?: SolacePath[] | JSX.Element;\n\t/**\n\t * Array of actions (like #SolaceButton) but can be pretty much anything you want\n\t */\n\tactions?: JSX.Element[];\n\t/**\n\t * The action menu (usually with a \"...\" icon) that will appear on 2nd row at the far end\n\t */\n\tactionMenu?: JSX.Element;\n\t/**\n\t * The tabs (#SolaceTabs) to be displayed next to the title/sub-title\n\t */\n\ttabs?: JSX.Element;\n\t/**\n\t * The icon tabs (#SolaceIconTabs) to be displayed before the title/sub-title\n\t */\n\ticonTabs?: JSX.Element;\n\t/**\n\t * Used to add a \"Return to X\" link in front of the breadcrumbs (NOTE: this property may go away in the future)\n\t */\n\treturnTo?: JSX.Element;\n\t/**\n\t * Used to determine the location of the title. Options: TOP_OF_TABS, LEFT_OF_TABS.\n\t */\n\ttitleLocation?: TitleLocation;\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable sonarjs/no-duplicate-string */\nimport { alpha, hexToRgb, ThemeOptions } from \"@mui/material\";\nimport { createTheme } from \"@mui/material/styles\";\nimport getThemeMappings from \"../theming/themeUtils\";\nimport { SupportedThemes, ThemeMapping, ThemeMappingPalette } from \"../types\";\nimport { BASE_FONT_PX_SIZES, DEFAULT_BASE_SIZE } from \"./typography\";\n\nconst noneImportant = \"none !important\";\nconst theme = createTheme();\n\nconst deprecatedBoxShadows: { [key: string]: string } = {\n\tw12: alpha(\"#000000\", 0.12),\n\tw15: alpha(\"#000000\", 0.15),\n\tw20: alpha(\"#000000\", 0.2),\n\tw30: alpha(\"#000000\", 0.3)\n};\n\nconst verticalIndicatorHeight = \"calc(100% - 4px)\";\n\nconst verticalIndicatorStyle = (themeMapping: ThemeMapping): Record<string, unknown> => {\n\treturn {\n\t\t\"&.indicator-info\": {\n\t\t\t\":after\": {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: 2,\n\t\t\t\ttop: 2,\n\t\t\t\theight: verticalIndicatorHeight,\n\t\t\t\twidth: \"3px\",\n\t\t\t\tcontent: \"''\",\n\t\t\t\tbackground: themeMapping.palette.info.w100,\n\t\t\t\tborderRadius: \"4px\"\n\t\t\t}\n\t\t},\n\t\t\"&.indicator-error\": {\n\t\t\t\":after\": {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: 2,\n\t\t\t\ttop: 2,\n\t\t\t\theight: verticalIndicatorHeight,\n\t\t\t\twidth: \"3px\",\n\t\t\t\tcontent: \"''\",\n\t\t\t\tbackground: themeMapping.palette.error.w100,\n\t\t\t\tborderRadius: \"4px\"\n\t\t\t}\n\t\t},\n\t\t\"&.indicator-warn\": {\n\t\t\t\":after\": {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: 2,\n\t\t\t\ttop: 2,\n\t\t\t\theight: verticalIndicatorHeight,\n\t\t\t\twidth: \"3px\",\n\t\t\t\tcontent: \"''\",\n\t\t\t\tbackground: themeMapping.palette.warning.w100,\n\t\t\t\tborderRadius: \"4px\"\n\t\t\t}\n\t\t},\n\t\t\"&.indicator-success\": {\n\t\t\t\":after\": {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: 2,\n\t\t\t\ttop: 2,\n\t\t\t\theight: verticalIndicatorHeight,\n\t\t\t\twidth: \"3px\",\n\t\t\t\tcontent: \"''\",\n\t\t\t\tbackground: themeMapping.palette.success.w100,\n\t\t\t\tborderRadius: \"4px\"\n\t\t\t}\n\t\t},\n\t\t\"&.indicator-secondary\": {\n\t\t\t\":after\": {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: 2,\n\t\t\t\ttop: 2,\n\t\t\t\theight: verticalIndicatorHeight,\n\t\t\t\twidth: \"3px\",\n\t\t\t\tcontent: \"''\",\n\t\t\t\tbackground: themeMapping.palette.secondary.text.w50,\n\t\t\t\tborderRadius: \"4px\"\n\t\t\t}\n\t\t}\n\t};\n};\n\nconst gridListRowCommonStyle = (themeMapping: ThemeMapping): Record<string, unknown> => {\n\treturn {\n\t\tposition: \"relative\",\n\t\tdisplay: \"grid\",\n\t\tgridColumnGap: \"32px\",\n\t\twhiteSpace: \"nowrap\",\n\t\tplaceItems: \"center left\",\n\t\tpadding: \"10px 16px\",\n\t\tminHeight: \"32px\",\n\t\tcursor: \"pointer\",\n\t\t\":hover\": {\n\t\t\tbackground: themeMapping.palette.deprecated.secondary.w10\n\t\t},\n\t\t\":focus-visible\": {\n\t\t\tbackground: themeMapping.palette.secondary.w10,\n\t\t\toutline: \"none\"\n\t\t},\n\t\t\"&.selected\": {\n\t\t\tbackground: themeMapping.palette.brand.w10,\n\t\t\tcursor: \"default\"\n\t\t},\n\t\t\"&.emphasized\": {\n\t\t\t\"&:not(.selected)\": {\n\t\t\t\tbackground: themeMapping.palette.background.w20,\n\t\t\t\t\"&:hover\": {\n\t\t\t\t\tbackground: themeMapping.palette.secondary.w20\n\t\t\t\t},\n\t\t\t\t\"&:focus-visible\": {\n\t\t\t\t\tbackground: themeMapping.palette.secondary.w20\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t...verticalIndicatorStyle(themeMapping)\n\t};\n};\n\n// https://sol-jira.atlassian.net/wiki/spaces/MAASB/pages/2702704723/How+to+add+theming+in+maas-ui#React:\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst getThemeOptions = (themeName: SupportedThemes, baseTypographySize?: number) => {\n\tconst themeMapping = getThemeMappings(themeName);\n\tconst isCurrentSolace = themeName === SupportedThemes.solace;\n\tconst isSap = themeName === SupportedThemes.sap;\n\n\t/**\n\t * Helper function to convert px to rem, adjusted for the base typography size.\n\t * If baseTypographySize is provided, calculates the rem value such that the actual\n\t * rendered size matches what it would be with a 16px base.\n\t *\n\t * @param pxSize - The target size in pixels (as if base were 16px)\n\t * @returns The calculated rem value as a string\n\t */\n\tconst toAdjustedRem = (pxSize: number): string => {\n\t\tif (!baseTypographySize) {\n\t\t\treturn `${pxSize / DEFAULT_BASE_SIZE}rem`;\n\t\t}\n\t\treturn `${pxSize / baseTypographySize}rem`;\n\t};\n\n\tconst getBoxShadow = (currentKey: string) => {\n\t\tif (isCurrentSolace) {\n\t\t\treturn deprecatedBoxShadows[currentKey];\n\t\t}\n\t\treturn themeMapping.palette.secondary.w8040;\n\t};\n\n\t// A custom theme option for this app\n\tconst themeOptions: ThemeOptions = {\n\t\tbreakpoints: {\n\t\t\tvalues: {\n\t\t\t\t// desktop\n\t\t\t\tlg: 1200,\n\n\t\t\t\t// small laptop\n\t\t\t\tmd: 900,\n\n\t\t\t\t// default dialog\n\t\t\t\tdialogMd: 800,\n\n\t\t\t\t// tablets\n\t\t\t\tsm: 600,\n\n\t\t\t\t// large screens\n\t\t\t\txl: 1536,\n\n\t\t\t\t//mobile\n\t\t\t\txs: 0\n\t\t\t}\n\t\t},\n\t\tcomponents: {\n\t\t\tMuiSnackbar: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\".MuiPaper-root\": {\n\t\t\t\t\t\t\tminHeight: \"40px\",\n\t\t\t\t\t\t\tminWidth: \"200px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.wMain,\n\t\t\t\t\t\t\tboxShadow: `0px 2px 8px 0px ${themeMapping.palette.secondary.w8040}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAlert-message .MuiSnackbarContent-message\": {\n\t\t\t\t\t\t\tpadding: \"12px 0 11px 0\",\n\t\t\t\t\t\t\tlineHeight: \"normal\"\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\".MuiSnackbarContent-root\": {\n\t\t\t\t\t\t\tpadding: \"0px 16px\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAlert-icon\": {\n\t\t\t\t\t\t\tpadding: \"8px 0px\",\n\t\t\t\t\t\t\tmarginRight: \"8px\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"& svg.close-icon\": {\n\t\t\t\t\t\t\tfill: isCurrentSolace ? alpha(\"#FFFFFF\", 0.5) : themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiAppBar: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\tcolorPrimary: {\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.wMain // unused?\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiButtonBase: {\n\t\t\t\tdefaultProps: {\n\t\t\t\t\tdisableRipple: true\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiButton: {\n\t\t\t\tdefaultProps: {\n\t\t\t\t\tdisableRipple: true,\n\t\t\t\t\tdisableElevation: true\n\t\t\t\t},\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\tcontainedPrimary: {\n\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w90\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w100\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w100\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\toutlinedPrimary: {\n\t\t\t\t\t\tborderWidth: \"1px\",\n\t\t\t\t\t\tborderStyle: \"solid\",\n\t\t\t\t\t\tborderColor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\tcolor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w10,\n\t\t\t\t\t\t\tborderColor: themeMapping.palette.primary.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w20,\n\t\t\t\t\t\t\tborderColor: themeMapping.palette.primary.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w20,\n\t\t\t\t\t\t\tborderColor: themeMapping.palette.primary.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\troot: {\n\t\t\t\t\t\ttextTransform: \"none\",\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tminWidth: \"100px\",\n\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\tpadding: theme.spacing(1, 2),\n\n\t\t\t\t\t\t\"&.Mui-focusVisible\": {\n\t\t\t\t\t\t\toutline: `1px solid ${themeMapping.palette.accent.n2.wMain}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.call-to-action-button\": {\n\t\t\t\t\t\t\tborderRadius: `10px 3px`,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.learning.wMain,\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w60,\n\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.wMain\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w10,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.learning.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\"&.dark-call-to-action-button\": {\n\t\t\t\t\t\t\tborderRadius: `10px 3px`,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.wMain,\n\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w90\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w20,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\"&.dark-outline-button\": {\n\t\t\t\t\t\t\tborderRadius: `10px 3px`,\n\t\t\t\t\t\t\tborderColor: themeMapping.palette.learning.wMain,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.learning.wMain,\n\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.learning.w90,\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w10\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.learning.w100,\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.learning.w100,\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.learning.w20,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.learning.w20\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tstartIcon: {\n\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\tmarginRight: theme.spacing(1),\n\t\t\t\t\t\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\t\t\">*:nth-of-type(1)\": {\n\t\t\t\t\t\t\tfontSize: \"24px\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tendIcon: {\n\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\tmarginLeft: theme.spacing(1),\n\t\t\t\t\t\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\t\t\">*:nth-of-type(1)\": {\n\t\t\t\t\t\t\tfontSize: \"24px\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\ttextPrimary: {\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tcolor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w10\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w20\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w20\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiFormControl: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\t// re-position the Solace Dropdown icon inside Select input element\n\t\t\t\t\t\t\".MuiOutlinedInput-root.MuiSelect-root\": {\n\t\t\t\t\t\t\t\".MuiSelect-icon\": {\n\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\ttop: \"12px\",\n\t\t\t\t\t\t\t\tright: \"0\",\n\t\t\t\t\t\t\t\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\t\t\t\t\tpointerEvents: \"none\",\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.wMain // dropdown icon color in resting/focused/error states\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\".MuiSelect-icon\": {\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.w40 // dropdown icon color in disabled state\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.readOnlySelect\": {\n\t\t\t\t\t\t\t\t\".MuiSelect-select\": {\n\t\t\t\t\t\t\t\t\t// reset svg inside selected area which is sibling to the svg icon for dropdown caret\n\t\t\t\t\t\t\t\t\t\".MuiSelect-icon\": {\n\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-block\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiSelect-select\": {\n\t\t\t\t\t\t\t\t// reset svg inside selected area which is sibling to the svg icon for dropdown caret\n\t\t\t\t\t\t\t\t\".MuiSelect-icon\": {\n\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\ttop: \"0\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiOutlinedInput-root\": {\n\t\t\t\t\t\t\t\"&.readOnlySelect\": {\n\t\t\t\t\t\t\t\tbackgroundColor: \"transparent\" // set background transparent in readonly state\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\".MuiSelect-icon\": {\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.w40 // dropdown icon color in disabled state\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiFormGroup: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\".MuiBox-root:not(:last-child) .MuiRadio-root\": {\n\t\t\t\t\t\t\tmarginBottom: \"12px\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiLinearProgress: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\t\"&.learning\": {\n\t\t\t\t\t\t\t\".MuiLinearProgress-bar\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w60\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiFormHelperText: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tfontSize: \"0.75rem\",\n\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\t\tlineHeight: 1.5,\n\t\t\t\t\t\tmarginLeft: \"0\",\n\t\t\t\t\t\tmarginTop: \"2px\",\n\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\twidth: \"18px\",\n\t\t\t\t\t\t\theight: \"18px\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-error\": {\n\t\t\t\t\t\t\t// TODO: remove \"solace\" option when new theme is adopted\n\t\t\t\t\t\t\tcolor: isCurrentSolace ? themeMapping.palette.error.w100 : themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\t\t\tsvg: {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.error.w100\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiIconButton: {\n\t\t\t\tdefaultProps: { disableRipple: true },\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tpadding: \"4px\",\n\t\t\t\t\t\tborderRadius: \"5px\",\n\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10,\n\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.primary.wMain,\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.deprecated.primary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.deprecated.secondary.w20,\n\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.primary.wMain,\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.deprecated.primary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.deprecated.secondary.w20,\n\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.primary.wMain,\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.deprecated.primary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.icon-button\": {\n\t\t\t\t\t\t\tborderRadius: `10px 3px`,\n\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w90,\n\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.brand.w60\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.pressed\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.learning.w100,\n\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.brand.w60\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:disabled\": {\n\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.brand.w10\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiInputLabel: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\tasterisk: {\n\t\t\t\t\t\tcolor: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t},\n\t\t\t\t\troot: {\n\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\t\tfontSize: \"0.875rem\",\n\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\tlineHeight: 1.5,\n\t\t\t\t\t\t\"&.Mui-error\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\tcolor: isCurrentSolace\n\t\t\t\t\t\t\t\t? themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t\t: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiFormLabel: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\tasterisk: {\n\t\t\t\t\t\tcolor: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t},\n\t\t\t\t\troot: {\n\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\tlineHeight: 1.5,\n\t\t\t\t\t\t\"&.radio-btn-label\": {\n\t\t\t\t\t\t\t\"& a\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\t\ttextDecoration: \"none\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-error\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.light-sub-text\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.check-box-label\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.w50,\n\t\t\t\t\t\t\t\"&.check-box-label\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.radio-btn-label\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.readOnly\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.bold-label\": {\n\t\t\t\t\t\t\tfontWeight: 500\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.read-only\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiLink: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tlineHeight: 1.5,\n\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\tcolor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t// TODO: remove \"solace\" options when new theme is adopted\n\t\t\t\t\t\t\tcolor: isCurrentSolace ? themeMapping.palette.primary.wMain : themeMapping.palette.primary.w90\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\tcolor: isCurrentSolace ? themeMapping.palette.primary.wMain : themeMapping.palette.primary.w100\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&[disabled]\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".SolaceOpenExternalIcon\": {\n\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\tfill: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\tmarginBottom: \"2px\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiInputBase: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\t// TextArea Component\n\t\t\t\t\tmultiline: ({ ownerState }) => ({\n\t\t\t\t\t\t// Additional checks to make sure resize is enabled correctly\n\t\t\t\t\t\t...(ownerState.id &&\n\t\t\t\t\t\t\townerState.id.split(\"-\").length > 1 &&\n\t\t\t\t\t\t\townerState.id.split(\"-\")[ownerState.id.split(\"-\").length - 2] === \"resizable\" &&\n\t\t\t\t\t\t\t[\"both\", \"horizontal\", \"vertical\"].indexOf(\n\t\t\t\t\t\t\t\townerState.id.split(\"-\")[ownerState.id.split(\"-\").length - 1]\n\t\t\t\t\t\t\t) > -1 && {\n\t\t\t\t\t\t\t\ttextarea: {\n\t\t\t\t\t\t\t\t\tresize: ownerState.id.split(\"-\")[ownerState.id.split(\"-\").length - 1]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\t\t\t\"&.MuiOutlinedInput-root\": {\n\t\t\t\t\t\t\tpadding: \"0\",\n\t\t\t\t\t\t\tdisplay: \"inline-table\", // this ensures helper text is below textarea\n\t\t\t\t\t\t\tbackgroundColor: \"transparent\", // set background transparent on TextArea input container\n\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\tborder: \"none\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.inline-label\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-input:read-only\": {\n\t\t\t\t\t\t\t\t\tpadding: \"1px\" // top align with label in ready-only & inline state\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\".MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\tborder: `solid 1px ${themeMapping.palette.secondary.w40}`,\n\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\tpadding: \"8px\",\n\t\t\t\t\t\t\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t\t\t\t\t\t\tboxSizing: \"border-box\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:hover .MuiOutlinedInput-input:read-only, &.Mui-focused .MuiOutlinedInput-input:read-only, .MuiOutlinedInput-input:read-only\":\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\tpadding: \"7px 0 0 0\",\n\t\t\t\t\t\t\t\tcursor: \"default\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"transparent\" // set background transparent on TextArea input container in readonly state\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\".MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.secondary.text.w50 : themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.MuiOutlinedInput-root\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: \"none\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-focused\": {\n\t\t\t\t\t\t\t\".MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.brand.w30 : themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.MuiOutlinedInput-root\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: \"none\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-error\": {\n\t\t\t\t\t\t\t\".MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.error.w100 : themeMapping.palette.error.wMain\n\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-focused\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.brand.w30 : themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".Mui-disabled.MuiOutlinedInput-input, &:hover .Mui-disabled.MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20,\n\t\t\t\t\t\t\tpadding: \"8px\",\n\t\t\t\t\t\t\tborder: `solid 1px ${themeMapping.palette.secondary.w20}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-disabled .MuiOutlinedInput-input:read-only.Mui-disabled + .MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\tborder: \"none\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiInputBase-inputMultiline\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiTextField: {\n\t\t\t\t// Textfield component\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * styles applied to .SolaceDatePicker\n\t\t\t\t\t\t * default disabled horizontal padding is set to 8px\n\t\t\t\t\t\t * ensure the horizontal padding of the Read-Only DatePicker is set to 0px\n\t\t\t\t\t\t */\n\t\t\t\t\t\t\"&.SolaceDatePicker\": {\n\t\t\t\t\t\t\t\".MuiOutlinedInput-root\": {\n\t\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\t\tpadding: \"0 8px\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiOutlinedInput-root\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\tborder: `solid 1px ${themeMapping.palette.secondary.w40}`,\n\t\t\t\t\t\t\t\tbackgroundColor: \"transparent\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.secondary.text.w50 : themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"transparent\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:hover .MuiOutlinedInput-input:read-only\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: \"none\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.readOnlySelect, .MuiOutlinedInput-root.readOnlySelect.Mui-focused\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: \"none\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\tdisplay: \"none\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".MuiSelect-select\": {\n\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\tdisplay: \"block\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".MuiSelect-select.MuiInputBase-input.MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\t\t\tcursor: \"default\",\n\t\t\t\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.emptySelect, .MuiOutlinedInput-root.readOnlySelect.Mui-focused\": {\n\t\t\t\t\t\t\t\t\".MuiSelect-select.MuiInputBase-input.MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-focused\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.brand.w30 : themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-error\": {\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline, .MuiInputBase-inputMultiline\": {\n\t\t\t\t\t\t\t\t\tborder: `solid 1px ${themeMapping.palette.error.wMain}`\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-focused\": {\n\t\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.brand.w30 : themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20,\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.secondary.w10 : themeMapping.palette.secondary.w20\n\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".MuiOutlinedInput-input:read-only + .MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.secondary.w10 : themeMapping.palette.secondary.w20\n\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\tWebkitTextFillColor: themeMapping.palette.secondary.text.w50,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50,\n\t\t\t\t\t\t\t\t\tpadding: \"8px\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.MuiInputBase-adornedEnd\": {\n\t\t\t\t\t\t\t\tpaddingRight: \"0px\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiInputAdornment-root\": {\n\t\t\t\t\t\t\t\t\".MuiIconButton-root\": {\n\t\t\t\t\t\t\t\t\tpadding: \"0px\",\n\t\t\t\t\t\t\t\t\tmarginRight: \"8px\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t// add focus state for SolaceDatePicker\n\t\t\t\t\t\t\t\t\".MuiIconButton-root:focus-visible\": {\n\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\toutline: `1px solid ${themeMapping.palette.accent.n2.wMain}`,\n\t\t\t\t\t\t\t\t\t\toutlineOffset: \"-1px\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".MuiIconButton-root:hover, .MuiIconButton-root:active\": {\n\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.sm,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\tpadding: \"0 8px\",\n\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\t\"&:read-only\": {\n\t\t\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:read-only + .MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\tborder: \"none\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiCheckbox: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tmarginRight: \"16px\",\n\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\tborder: `1px solid ${themeMapping.palette.secondary.w40}`,\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t//This overrides the thick border\n\t\t\t\t\t\tcolor: \"#FFFFFF\",\n\n\t\t\t\t\t\t// Unselected, Enabled\n\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// Selected, Enabled\n\t\t\t\t\t\t\"&.Mui-checked\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"& .MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t//Color of Selection Indicator\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t//(Unselected, Hover)\n\t\t\t\t\t\t\"&:not(.Mui-checked):hover\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// (Selected, Hover)\n\t\t\t\t\t\t\"&.Mui-checked:hover\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"& .MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t//Color of Selection Indicator\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// (Unselected, Read-only)\n\t\t\t\t\t\t\".readOnly\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20,\n\t\t\t\t\t\t\t\t// backgroundColor: \"red\",\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.background.w20\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// (Selected, Read-only)\n\t\t\t\t\t\t\"&.Mui-checked.readOnly\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20 + \" !important\",\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40 + \" !important\"\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"& .MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t//Color of Selection Indicator\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain + \" !important\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// (Unselected, Disabled)\n\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w20,\n\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.background.w10\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// (Selected, Disabled)\n\t\t\t\t\t\t\"&.Mui-disabled.Mui-checked\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w20\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"& .MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t//Color of Selection Indicator\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.accent.n2.w30\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// Indeterminate state (unselected)\n\t\t\t\t\t\t\"&.MuiCheckbox-indeterminate:not(.Mui-checked)\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"& .MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t// Hide the icon when indeterminate but not checked\n\t\t\t\t\t\t\t\tdisplay: \"none\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// Indeterminate state (unselected) - hover state\n\t\t\t\t\t\t\"&.MuiCheckbox-indeterminate:not(.Mui-checked):hover\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// (Indeterminate, Enabled)\n\t\t\t\t\t\t\"&.MuiCheckbox-indeterminate.Mui-checked\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"& .MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t//Color of Selection Indicator\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// (Indeterminate, Hover and Enabled)\n\t\t\t\t\t\t\"&.MuiCheckbox-indeterminate.Mui-checked:hover\": {\n\t\t\t\t\t\t\t\"&.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t//Color of the area between checkmark and border (Fill)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t//Color of the Border(Stroke)\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"& .MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t//Color of Selection Indicator\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// Other styling\n\t\t\t\t\t\t\"+.MuiFormLabel-root\": {\n\t\t\t\t\t\t\tmarginLeft: \"16px\",\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\tlineHeight: 1.5,\n\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiRadio: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t/* eslint-disable sonarjs/no-duplicate-string */\n\t\t\t\t\t\talignItems: \"flex-start\",\n\t\t\t\t\t\tmarginRight: \"16px\",\n\t\t\t\t\t\t\".MuiFormHelperText-root\": {\n\t\t\t\t\t\t\tmarginLeft: \"0\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiSvgIcon-root .SolaceRadioContainer\": {\n\t\t\t\t\t\t\tfill: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\tstroke: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root .SolaceRadioContainer\": {\n\t\t\t\t\t\t\t\tstroke: themeMapping.palette.deprecated.secondary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-focusVisible\": {\n\t\t\t\t\t\t\toutline: `1px solid ${themeMapping.palette.accent.n2.wMain}`,\n\t\t\t\t\t\t\toutlineOffset: \"-1px\",\n\t\t\t\t\t\t\tborderRadius: \"50%\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-checked\": {\n\t\t\t\t\t\t\t\".SolaceRadioSelection\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.deprecated.accent.n2.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-disabled .MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\".SolaceRadioContainer\": {\n\t\t\t\t\t\t\t\tstroke: themeMapping.palette.secondary.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".SolaceRadioSelection\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.accent.n2.w30\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.readOnly .MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\".SolaceRadioContainer\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.background.w20,\n\t\t\t\t\t\t\t\tstroke: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".SolaceRadioSelection\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.deprecated.secondary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Style added to overide Aurelia custom styling, to be removed once Aurelia code is phased out.\n\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\tleft: \"auto !important\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpadding: 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiSelect: {\n\t\t\t\t// Select component\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\tborder: `solid 1px ${themeMapping.palette.secondary.w40}`,\n\t\t\t\t\t\t\tbackgroundColor: \"transparent\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.secondary.text.w50 : themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\tbackgroundColor: \"transparent\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-focused\": {\n\t\t\t\t\t\t\t\".MuiOutlinedInput-notchedOutline\": {\n\t\t\t\t\t\t\t\tborder: `solid 1px ${\n\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.brand.w30 : themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tselect: {\n\t\t\t\t\t\t\"&.MuiOutlinedInput-input\": {\n\t\t\t\t\t\t\tpadding: theme.spacing(0.75, 4.25, 0.75, 1),\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\".MuiSelect-icon\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".menuItemIcon\": {\n\t\t\t\t\t\t\t\tminWidth: \"24px\",\n\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".supplementalText\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\".MuiSelect-icon\": {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".menuItemIcon\": {\n\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".supplementalText\": {\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".SolacePickerGrid & .MuiSelect-icon\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w100\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// input field for select is always read-only, make sure the style override has higher precedence than the style defined for\n\t\t\t\t\t\t// default input field in MuiOutlinedInput\n\t\t\t\t\t\t\"&.MuiOutlinedInput-input:read-only\": {\n\t\t\t\t\t\t\tpadding: theme.spacing(0.75, 4.25, 0.75, 1),\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\theight: \"auto\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\ticonOpen: {\n\t\t\t\t\t\t// remove dropdown icon flip animation when Select menu opens/closes\n\t\t\t\t\t\ttransform: \"none\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiPopover: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * styles applied to .SolaceMenuPopover should match exactly these applied to .SolaceMenu\n\t\t\t\t\t\t */\n\t\t\t\t\t\t\"&.SolaceMenuPopover\": {\n\t\t\t\t\t\t\t\".MuiPaper-root\": {\n\t\t\t\t\t\t\t\tmargin: theme.spacing(0.5, 0.5, 0.5, 0),\n\t\t\t\t\t\t\t\toverflowY: \"auto\",\n\t\t\t\t\t\t\t\tboxShadow: `0 1px 4px ${getBoxShadow(\"w20\")}`,\n\t\t\t\t\t\t\t\t\".MuiMenuItem-root\": {\n\t\t\t\t\t\t\t\t\tminWidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\"&.wideMenu\": {\n\t\t\t\t\t\t\t\t\t\tminWidth: \"320px\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiMenu: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * any style update inside .SolaceMenu should also be applied to .SolaceMenuPopover\n\t\t\t\t\t\t */\n\t\t\t\t\t\t\"&.SolaceMenu\": {\n\t\t\t\t\t\t\t\".MuiPaper-root\": {\n\t\t\t\t\t\t\t\tmargin: theme.spacing(0.5, 0.5, 0.5, 0),\n\t\t\t\t\t\t\t\t\".MuiMenuItem-root\": {\n\t\t\t\t\t\t\t\t\tminWidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\"&.wideMenu\": {\n\t\t\t\t\t\t\t\t\t\tminWidth: \"320px\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&.selectedItem\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w10\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiPaper-root\": {\n\t\t\t\t\t\t\toverflowY: \"auto\",\n\t\t\t\t\t\t\tboxShadow: `0 1px 4px ${getBoxShadow(\"w20\")}`,\n\n\t\t\t\t\t\t\t\".MuiMenuItem-root\": {\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tpadding: \"0 16px 0 16px\",\n\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\tminHeight: \"38px\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\twhiteSpace: \"normal\",\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.multiline\": {\n\t\t\t\t\t\t\t\t\tpaddingTop: \"8px\",\n\t\t\t\t\t\t\t\t\tpaddingBottom: \"8px\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-focusVisible:not(.Mui-selected)\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-selected:not(:hover)\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w10,\n\t\t\t\t\t\t\t\t\t\"&.Mui-focusVisible\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".MuiListItemIcon-root\": {\n\t\t\t\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\t\t\t\t\theight: \"24px\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".menuItemIcon\": {\n\t\t\t\t\t\t\t\t\tminWidth: \"24px\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain,\n\t\t\t\t\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\t\t\t\t\theight: \"24px\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t// select styles\n\t\t\t\t\t\t\t\t\".MuiTouchRipple-child\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiMenuItem-root.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\".menuItemIcon\": {\n\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".SolacePickerGrid\": {\n\t\t\t\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\t\t\t\tcolumnGap: \"8px\",\n\t\t\t\t\t\t\t\tpadding: \"0px\",\n\t\t\t\t\t\t\t\trowGap: \"8px\",\n\t\t\t\t\t\t\t\t\".MuiMenuItem-root\": {\n\t\t\t\t\t\t\t\t\tborder: `1px solid transparent`,\n\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\tminHeight: \"32px\",\n\t\t\t\t\t\t\t\t\tminWidth: \"32px\",\n\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\"&.Mui-selected:not(:hover)\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\".MuiList-root.MuiMenu-list\": {\n\t\t\t\t\t\t\t\t\".MuiMenuItem-root.MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\t\t// remove all ripple effect from MenuList Items\n\t\t\t\t\t\t\t\t\t// currently applied to SolaceSelect component\n\t\t\t\t\t\t\t\t\t\"*,*::before,*::after\": {\n\t\t\t\t\t\t\t\t\t\ttransition: noneImportant,\n\t\t\t\t\t\t\t\t\t\tanimation: noneImportant\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\".MuiGrid-root.MuiGrid-container\": {\n\t\t\t\t\t\t\t\t\t\"&.multiline\": {\n\t\t\t\t\t\t\t\t\t\tpaddingTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\tpaddingBottom: \"8px\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\t\t\".subtext\": {\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.wMain,\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"24px\",\n\t\t\t\t\t\t\t\t\t\twidth: \"100%\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\".supplementalText\": {\n\t\t\t\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xs,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.wMain,\n\t\t\t\t\t\t\t\t\t\tmarginLeft: \"24px\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiList: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\"& .MuiRadio-root + .MuiBox-root .MuiBox-root\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiListSubheader-root\": {\n\t\t\t\t\t\t\tlineHeight: 1.5,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.wMain,\n\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.sm,\n\t\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\"&.categoryHeader\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xs,\n\t\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\tposition: \"unset\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiListItemText-multiline\": {\n\t\t\t\t\t\t\tpaddingTop: \"8px\",\n\t\t\t\t\t\t\tpaddingBottom: \"8px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\tjustifyContent: \"center\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiListItemText-secondary\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiAutocomplete: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\".MuiOutlinedInput-root .MuiAutocomplete-input\": {\n\t\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiOutlinedInput-root .MuiAutocomplete-endAdornment\": {\n\t\t\t\t\t\t\tright: \"0\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiOutlinedInput-root\": {\n\t\t\t\t\t\t\tpadding: \"0 0 0 8px\",\n\t\t\t\t\t\t\theight: \"32px\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// allow the container to grow when there are more than one line\n\t\t\t\t\t\t\".MuiOutlinedInput-root.MuiInputBase-root\": {\n\t\t\t\t\t\t\theight: \"auto\",\n\t\t\t\t\t\t\tflexWrap: \"wrap\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiOutlinedInput-root.readOnlySelect\": {\n\t\t\t\t\t\t\tpadding: \"0\",\n\t\t\t\t\t\t\t// styles specifically applied when autocomplete allows multiple lines with chips\n\t\t\t\t\t\t\t\".MuiChip-root\": {\n\t\t\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\t\t\tmargin: \"3px 6px 3px 0\",\n\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\tcursor: \"default\",\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiFormControl-root .MuiOutlinedInput-root.Mui-disabled input\": {\n\t\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiIconButton-root.MuiAutocomplete-popupIndicator:hover\": {\n\t\t\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// styles specifically applied when autocomplete allows multiple lines with chips\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiChip-root\": {\n\t\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\t\tmargin: \"3px 6px 3px 0\",\n\t\t\t\t\t\t\t\"&.Mui-disabled, &.solaceChip.MuiChip-filledDefault.Mui-disabled\": {\n\t\t\t\t\t\t\t\t// solace chip made disabled background opacity 1, has to change it back to default 0.38\n\t\t\t\t\t\t\t\topacity: 0.38\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:focus\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\tboxShadow: \"none\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.errorStatus\": {\n\t\t\t\t\t\t\t\t\".errorIcon\": {\n\t\t\t\t\t\t\t\t\tmargin: \"4px 2px 0px 4px\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tinput: {\n\t\t\t\t\t\t// allow 'input' element to be inline with chips instead of taking its own line\n\t\t\t\t\t\twidth: 0\n\t\t\t\t\t},\n\t\t\t\t\tpopper: {\n\t\t\t\t\t\t\".MuiAutocomplete-listbox\": {\n\t\t\t\t\t\t\tboxSizing: \"border-box\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiAutocomplete-option\": {\n\t\t\t\t\t\t\tpadding: \"0 16px\",\n\t\t\t\t\t\t\tminHeight: \"38px\",\n\t\t\t\t\t\t\t\".MuiGrid-root.MuiGrid-container\": {\n\t\t\t\t\t\t\t\t\"&.multiline\": {\n\t\t\t\t\t\t\t\t\tpaddingTop: \"8px\",\n\t\t\t\t\t\t\t\t\tpaddingBottom: \"8px\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".menuItemIcon\": {\n\t\t\t\t\t\t\t\tminWidth: \"24px\",\n\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-paper\": {\n\t\t\t\t\t\t\tboxShadow: \"none\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiAutocomplete-option.Mui-focused \": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiAutocomplete-option[aria-selected='true']\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.w10,\n\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiAutocomplete-option[aria-selected='true'].Mui-focused:not(:hover)\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiAutocomplete-option[aria-selected='true'].Mui-focused:hover\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiAutocomplete-option[aria-disabled='true']\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50,\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\".subtext, .supplementalText\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".menuItemIcon\": {\n\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiAutocomplete-groupLabel\": {\n\t\t\t\t\t\t\tlineHeight: 1.5,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xs,\n\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\tposition: \"unset\",\n\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tpadding: \"0 16px\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAutocomplete-listbox .MuiDivider-root\": {\n\t\t\t\t\t\t\tmargin: \"8px 0\",\n\t\t\t\t\t\t\tbackground: themeMapping.palette.primary.w10\n\t\t\t\t\t\t},\n\t\t\t\t\t\tboxShadow: `0 1px 4px ${getBoxShadow(\"w20\")}`,\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\".subtext\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".supplementalText\": {\n\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xs,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.secondary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tpopupIndicator: {\n\t\t\t\t\t\tpadding: \"0 4px 0 8px\",\n\t\t\t\t\t\tmarginRight: \"0\",\n\t\t\t\t\t\theight: \"28px\"\n\t\t\t\t\t},\n\t\t\t\t\tpopupIndicatorOpen: {\n\t\t\t\t\t\ttransform: \"none\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiSwitch: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tmarginTop: \"3px\",\n\t\t\t\t\t\twidth: \"50px\",\n\t\t\t\t\t\theight: \"30px\",\n\t\t\t\t\t\tmarginRight: \"8px\",\n\t\t\t\t\t\tpaddingBottom: \"0\",\n\t\t\t\t\t\t\".MuiButtonBase-root\": {\n\t\t\t\t\t\t\t\"&.MuiSwitch-switchBase\": {\n\t\t\t\t\t\t\t\t\"&.Mui-checked\": {\n\t\t\t\t\t\t\t\t\ttransform: \"translate(22px)\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-checked + .MuiSwitch-track\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w40,\n\t\t\t\t\t\t\t\t\topacity: 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-disabled + .MuiSwitch-track\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10,\n\t\t\t\t\t\t\t\t\topacity: 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-disabled .MuiSwitch-thumb\": {\n\t\t\t\t\t\t\t\t\t// TODO: remove \"solace\" options when new theme is adopted\n\t\t\t\t\t\t\t\t\tbackgroundColor: isCurrentSolace\n\t\t\t\t\t\t\t\t\t\t? themeMapping.palette.background.w20\n\t\t\t\t\t\t\t\t\t\t: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\tborderColor: isCurrentSolace ? themeMapping.palette.secondary.w10 : themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.wMain30\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-focusVisible\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.brand.wMain30\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiSwitch-thumb\": {\n\t\t\t\t\t\t\t\twidth: \"20px\",\n\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\tborder: `solid 2px ${themeMapping.palette.primary.w60}`,\n\t\t\t\t\t\t\t\tboxShadow: \"none\",\n\t\t\t\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.background.w10\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.Mui-checked .MuiSwitch-thumb\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.primary.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiSwitch-track\": {\n\t\t\t\t\t\t\theight: \"12px\",\n\t\t\t\t\t\t\twidth: \"36px\",\n\t\t\t\t\t\t\ttransform: \"translateY(1px)\",\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w40,\n\t\t\t\t\t\t\topacity: 1\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tswitchBase: {\n\t\t\t\t\t\t\"&.MuiChecked .MuiSwitch-track\": {\n\t\t\t\t\t\t\theight: \"12px\",\n\t\t\t\t\t\t\ttransform: \"translateY(1px)\",\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.primary.w40,\n\t\t\t\t\t\t\topacity: 1\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiDialog: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\".MuiBackdrop-root\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w8040\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiDialog-paper\": {\n\t\t\t\t\t\t\tminWidth: \"400px\",\n\t\t\t\t\t\t\tmaxHeight: \"80%\",\n\t\t\t\t\t\t\tboxShadow: `0 2px 8px ${getBoxShadow(\"w30\")}`,\n\t\t\t\t\t\t\tpadding: \"24px\",\n\t\t\t\t\t\t\t\".MuiDialogTitle-root\": {\n\t\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xl,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\tpadding: \"0 0 24px 0\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiDialogContent-root\": {\n\t\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.sm,\n\t\t\t\t\t\t\t\tlineHeight: `${BASE_FONT_PX_SIZES.lg}px`,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiDialogContentText-root\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiDialogActions-root\": {\n\t\t\t\t\t\t\t\tpadding: \"24px 0 0 0\",\n\t\t\t\t\t\t\t\t\"& > :not(:nth-of-type(1))\": {\n\t\t\t\t\t\t\t\t\tmarginLeft: \"8px\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".success\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\tfill: isCurrentSolace\n\t\t\t\t\t\t\t\t\t? themeMapping.palette.deprecated.accent.n2.wMain\n\t\t\t\t\t\t\t\t\t: themeMapping.palette.success.w100\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".error\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.error.w100\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".progress\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\tfill: isCurrentSolace\n\t\t\t\t\t\t\t\t\t? themeMapping.palette.deprecated.accent.n2.wMain\n\t\t\t\t\t\t\t\t\t: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.disableDefaultPadding\": {\n\t\t\t\t\t\t\t\".MuiDialog-paper\": {\n\t\t\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiDialogTitle-root\": {\n\t\t\t\t\t\t\t\tpadding: \"0\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.linearProgressIndicator\": {\n\t\t\t\t\t\t\t\".MuiDialog-paper\": {\n\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\toverflowX: \"hidden\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t// the light background of the progress bar\n\t\t\t\t\t\t\t\".MuiDialog-paper::before\": {\n\t\t\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: \"4px\",\n\t\t\t\t\t\t\t\tbackgroundColor: isCurrentSolace ? themeMapping.palette.brand.w10 : themeMapping.palette.accent.n2.w10\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t// the dark sliding part of the progress bar\n\t\t\t\t\t\t\t\".MuiDialog-paper::after\": {\n\t\t\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: \"4px\",\n\t\t\t\t\t\t\t\tbackground: `linear-gradient(90deg, ${hexToRgb(\n\t\t\t\t\t\t\t\t\t// TODO: remove \"solace\" option when new theme is adopted\n\t\t\t\t\t\t\t\t\tisCurrentSolace ? themeMapping.palette.primary.wMain : themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t\t\t)} 0% 40%, transparent 40% 100%)`,\n\t\t\t\t\t\t\t\tanimation: \"animation 2s linear infinite\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"@keyframes animation\": {\n\t\t\t\t\t\t\t\t\"0%\": {\n\t\t\t\t\t\t\t\t\tleft: \"-40%\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"100%\": {\n\t\t\t\t\t\t\t\t\tleft: \"100%\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiChip: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\"&.solaceChip\": {\n\t\t\t\t\t\t\t\".errorIcon, .leadingIcon\": {\n\t\t\t\t\t\t\t\tmargin: \"3px 3px 0px 3px\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t// all solace chips (standard, input & choice)\n\t\t\t\t\t\t\t\"&.MuiChip-filledDefault\": {\n\t\t\t\t\t\t\t\t// only standard and input chips\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon\": {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50,\n\t\t\t\t\t\t\t\t\topacity: 1 // MuiChip by default applies opacity of 0.38 for disabled\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.darkMode\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w70,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon\": {\n\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w80,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\t\t\t\topacity: 1 // MuiChip by default applies opacity of 0.38 for disabled\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.MuiChip-clickable\": {\n\t\t\t\t\t\t\t\t\t// only input chips\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon\": {\n\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\t\t\t\":has(.MuiChip-deleteIcon:hover)\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon:hover\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"none\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&.darkMode\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w70,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon\": {\n\t\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w80,\n\t\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\t\t\t\t\t\":has(.MuiChip-deleteIcon:hover)\": {\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w70\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon:hover\": {\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w80\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.wMain,\n\t\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"none\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&.errorStatus\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w10,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.error.w100,\n\t\t\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon\": {\n\t\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.error.w100\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w20,\n\t\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.error.w100,\n\t\t\t\t\t\t\t\t\t\t\t\":has(.MuiChip-deleteIcon:hover)\": {\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w10\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\".MuiChip-deleteIcon:hover\": {\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w20\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w30,\n\t\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.error.w100,\n\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"none\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\".MuiSvgIcon-root\": {\n\t\t\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.error.w100\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.MuiChip-outlinedDefault\": {\n\t\t\t\t\t\t\t\t// only choice chips (active & not selected)\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\tboxShadow: \"none\",\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.darkMode\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.background.wMain,\n\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w70,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&.activeState\": {\n\t\t\t\t\t\t\t\t\t// only active chioce chip\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20,\n\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.wMain,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&.darkMode\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w70,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10,\n\t\t\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.background.wMain,\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w80,\n\t\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.wMain,\n\t\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.solaceTag\": {\n\t\t\t\t\t\t\t\".leadingIcon\": {\n\t\t\t\t\t\t\t\tmargin: \"3px 0px 0px 0px\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.MuiChip-filledDefault\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w20,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.wMain,\n\t\t\t\t\t\t\t\t\"&.MuiChip-clickable\": {\n\t\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w40,\n\t\t\t\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"none\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&.MuiChip-outlinedDefault\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.wMain,\n\t\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w70,\n\t\t\t\t\t\t\t\tboxShadow: \"none\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\tpaddingLeft: \"6px\",\n\t\t\t\t\t\tpaddingRight: \"6px\"\n\t\t\t\t\t},\n\t\t\t\t\tdeleteIcon: {\n\t\t\t\t\t\tmargin: \"0px 0px 0px 0px\",\n\t\t\t\t\t\tpadding: \"2px\",\n\t\t\t\t\t\tborderRadius: \"3px\",\n\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.md\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiBreadcrumbs: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\".MuiBreadcrumbs-separator\": {\n\t\t\t\t\t\t\tmarginLeft: \"0px\",\n\t\t\t\t\t\t\tmarginRight: \"0px\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiLink-root:not(.MuiLink-underlineNone)\": {\n\t\t\t\t\t\t\tfontWeight: 500\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiBreadcrumbs-li\": {\n\t\t\t\t\t\t\t\".MuiLink-underlineNone\": {\n\t\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiTab: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\ttextTransform: \"none\",\n\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\t\"&.Mui-selected\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\".notificationCounter\": {\n\t\t\t\t\t\t\t\tfontWeight: 400\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiTabs: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\ta: {\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\t\t\tborderBottom: \"2px solid transparent\",\n\t\t\t\t\t\t\t// TODO: remove \"solace\" options when new theme is adopted\n\t\t\t\t\t\t\t\":active\": {\n\t\t\t\t\t\t\t\tborderBottomColor: isCurrentSolace ? \"transparent\" : themeMapping.palette.primary.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\t\tborderBottomColor: isCurrentSolace ? \"transparent\" : themeMapping.palette.primary.w10\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiTabs-indicator\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.accent.n2.wMain\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.singleTab\": {\n\t\t\t\t\t\t\ta: {\n\t\t\t\t\t\t\t\tcursor: \"inherit\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiTabs-indicator\": {\n\t\t\t\t\t\t\t\tbackgroundColor: \"transparent\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiPagination: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tpadding: theme.spacing(0),\n\t\t\t\t\t\tli: {\n\t\t\t\t\t\t\t\"&:first-child\": {\n\t\t\t\t\t\t\t\tpaddingRight: theme.spacing(1),\n\t\t\t\t\t\t\t\tsvg: {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"&:last-child\": {\n\t\t\t\t\t\t\t\tpaddingLeft: theme.spacing(1),\n\t\t\t\t\t\t\t\tsvg: {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"& .Mui-disabled\": {\n\t\t\t\t\t\t\t\tsvg: {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiTouchRipple-root\": {\n\t\t\t\t\t\t\tdisplay: \"none\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiPaginationItem-root\": {\n\t\t\t\t\t\t\tmargin: theme.spacing(0),\n\t\t\t\t\t\t\tpadding: theme.spacing(0, 1),\n\t\t\t\t\t\t\theight: theme.spacing(3),\n\t\t\t\t\t\t\tminWidth: theme.spacing(3),\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.wMain,\n\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.sm\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiPaginationItem-root:hover\": {\n\t\t\t\t\t\t\tbackground: \"none\",\n\t\t\t\t\t\t\ttextDecoration: \"underline\",\n\t\t\t\t\t\t\t// TODO: remove \"solace\" options when new theme is adopted\n\t\t\t\t\t\t\tcolor: isCurrentSolace ? themeMapping.palette.primary.wMain : themeMapping.palette.primary.w90\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiPaginationItem-root.Mui-selected\": {\n\t\t\t\t\t\t\tbackground: \"none\",\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiTooltip: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\tpopper: {\n\t\t\t\t\t\t// the gap between the hovered over element and the Tooltip\n\t\t\t\t\t\t\"&.MuiTooltip-popper\": {\n\t\t\t\t\t\t\t\".MuiTooltip-tooltip.MuiTooltip-tooltipPlacementRight\": {\n\t\t\t\t\t\t\t\tmarginLeft: \"14px\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiTooltip-tooltip.MuiTooltip-tooltipPlacementLeft\": {\n\t\t\t\t\t\t\t\tmarginRight: \"14px\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiTooltip-tooltip.MuiTooltip-tooltipPlacementTop\": {\n\t\t\t\t\t\t\t\tmarginBottom: \"14px\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom\": {\n\t\t\t\t\t\t\t\tmarginTop: \"14px\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\ttooltip: {\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tmaxWidth: \"300px\",\n\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\twordWrap: \"break-word\",\n\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\tpadding: \"6px 8px\",\n\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xs,\n\t\t\t\t\t\tlineHeight: \"18px\",\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.wMain,\n\t\t\t\t\t\tcolor: themeMapping.palette.deprecated.primary.text.w10,\n\t\t\t\t\t\tboxShadow: isCurrentSolace\n\t\t\t\t\t\t\t? `0 2px 2px ${getBoxShadow(\"w12\")}`\n\t\t\t\t\t\t\t: `0 1px 4px ${alpha(themeMapping.palette.secondary.w80, 0.4)}`,\n\t\t\t\t\t\t\"&.htmlContent\": {\n\t\t\t\t\t\t\tpadding: \"12px 16px\",\n\t\t\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.sm,\n\t\t\t\t\t\t\tlineHeight: \"21px\",\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\tboxShadow: `0 2px 5px ${getBoxShadow(\"w15\")}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.mediumWidth\": {\n\t\t\t\t\t\t\tmaxWidth: \"500px\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.fullWidth\": {\n\t\t\t\t\t\t\tmaxWidth: \"100%\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiAccordion: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tboxShadow: \"none\",\n\t\t\t\t\t\t\"&:not(:last-child)\": {\n\t\t\t\t\t\t\tborderBottom: 0\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&:before\": {\n\t\t\t\t\t\t\tdisplay: \"none\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.w50,\n\t\t\t\t\t\t\t\".MuiAccordionSummary-expandIconWrapper\": {\n\t\t\t\t\t\t\t\tsvg: {\n\t\t\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.MuiPaper-root\": {\n\t\t\t\t\t\t\tminWidth: \"100px\",\n\t\t\t\t\t\t\tmaxHeight: \"100%\",\n\t\t\t\t\t\t\tboxShadow: \"none\",\n\t\t\t\t\t\t\tpadding: \"0px\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiAccordionSummary: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tflexDirection: \"row-reverse\",\n\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\"&.hasHoverEffect\": {\n\t\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w10\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiAccordionSummary-expandIconWrapper.Mui-expanded\": {\n\t\t\t\t\t\t\ttransform: \"rotate(90deg)\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"&.Mui-disabled\": {\n\t\t\t\t\t\t\topacity: 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...verticalIndicatorStyle(themeMapping)\n\t\t\t\t\t},\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\tmargin: \"6px 0px 6px 8px\"\n\t\t\t\t\t},\n\t\t\t\t\texpandIconWrapper: {\n\t\t\t\t\t\tpadding: \"0px\",\n\t\t\t\t\t\tsvg: {\n\t\t\t\t\t\t\tfill: themeMapping.palette.secondary.wMain,\n\t\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\t\tfill: themeMapping.palette.deprecated.secondary.w80\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiAccordionDetails: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * To left align the title with the content:\n\t\t\t\t\t\t * padding left of the content is calculated based on the elements in the accordion summary title:\n\t\t\t\t\t\t * so, 16px (padding left) + 24px (width of the chevron icon) + 8px (padding right)= 48px\n\t\t\t\t\t\t */\n\t\t\t\t\t\tpadding: \"8px 16px 16px 48px\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiCard: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\"&.solaceCard\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain,\n\t\t\t\t\t\t\tborderRadius: theme.spacing(0.5),\n\t\t\t\t\t\t\tboxShadow: `0px 1px 4px 0px ${themeMapping.palette.secondary.w8040}`,\n\t\t\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\tgap: theme.spacing(1),\n\t\t\t\t\t\t\ttransition: \"background-color 0.3s, box-shadow 0.3s\",\n\n\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\tboxShadow: `0px 2px 8px 0px ${themeMapping.palette.secondary.w8040}`,\n\t\t\t\t\t\t\t\tcursor: \"pointer\"\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\"&.readOnly\": {\n\t\t\t\t\t\t\t\tborder: `1px solid ${themeMapping.palette.secondary.w40}`,\n\t\t\t\t\t\t\t\tboxShadow: \"none\",\n\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tboxShadow: \"none\",\n\t\t\t\t\t\t\t\t\tcursor: \"default\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiListItemButton: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: { \"&.Mui-selected\": { backgroundColor: themeMapping.palette.brand.w10 } }\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiStep: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: { paddingLeft: \"24px\", paddingRight: \"24px\" }\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiStepper: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\tpaddingTop: \"24px\",\n\t\t\t\t\t\tpaddingBottom: \"24px\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tMuiStepConnector: {\n\t\t\t\tstyleOverrides: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\t\".MuiStepConnector-line\": {\n\t\t\t\t\t\t\tborderColor: themeMapping.palette.secondary.w40\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmixins: {\n\t\t\t/** ErrorText for form components */\n\t\t\tformComponent_ErrorText: {\n\t\t\t\tcontainer: {\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\tjustifyContent: \"flex-start\",\n\t\t\t\t\tmarginTop: \"2px\"\n\t\t\t\t},\n\t\t\t\tlabel: {\n\t\t\t\t\t// TODO: remove \"solace\" option when new theme is adopted\n\t\t\t\t\tcolor:\n\t\t\t\t\t\tisCurrentSolace || isSap ? themeMapping.palette.error.wMain : themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xs,\n\t\t\t\t\tmarginLeft: \"8px\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tformComponent_ReadOnlyToolTipContainer: {\n\t\t\t\tcontainer: {\n\t\t\t\t\theight: \"32px\",\n\t\t\t\t\tdisplay: \"inline-flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t}\n\t\t\t},\n\t\t\t/** ErrorText for form components */\n\t\t\tformComponent_WarningText: {\n\t\t\t\tcontainer: {\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\tjustifyContent: \"flex-start\",\n\t\t\t\t\tmarginTop: \"2px\"\n\t\t\t\t},\n\t\t\t\tlabel: {\n\t\t\t\t\tfontSize: BASE_FONT_PX_SIZES.xs,\n\t\t\t\t\tmarginLeft: \"8px\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t/** Attribute Value Pair (AVP) for form components */\n\t\t\tformComponent_AVPItem: {\n\t\t\t\tcontainer: {\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgridTemplateRows: \"auto\",\n\t\t\t\t\tpadding: \"4px 0\"\n\t\t\t\t},\n\t\t\t\tmoveButton: {\n\t\t\t\t\tpaddingTop: \"4px\",\n\t\t\t\t\tpaddingLeft: \"4px\",\n\t\t\t\t\tjustifyItems: \"end\"\n\t\t\t\t},\n\t\t\t\tdeleteButton: {\n\t\t\t\t\tpaddingTop: \"4px\",\n\t\t\t\t\tpaddingLeft: \"4px\",\n\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\tjustifyItems: \"start\"\n\t\t\t\t},\n\t\t\t\tinputWrapperForKey: {\n\t\t\t\t\tgridColumnStart: 2,\n\t\t\t\t\tgridColumnEnd: 3\n\t\t\t\t},\n\t\t\t\tinputWrapperForValue: {\n\t\t\t\t\tgridColumnStart: 4,\n\t\t\t\t\tgridColumnEnd: 5\n\t\t\t\t}\n\t\t\t},\n\t\t\tformComponent_AVPForm: {\n\t\t\t\tcontainer: {\n\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\tminWidth: \"500px\",\n\t\t\t\t\tmaxWidth: \"900px\"\n\t\t\t\t},\n\t\t\t\tlistWrapper: {\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgridTemplateColumns: \"auto\",\n\t\t\t\t\tgridTemplateRows: \"auto\",\n\t\t\t\t\trowGap: \"0\"\n\t\t\t\t},\n\t\t\t\tlabelWrapper: {\n\t\t\t\t\tpadding: \"2px 0\",\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgridTemplateRows: \"auto\",\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\t\tfontWeight: \"medium\",\n\t\t\t\t\t\t\":first-of-type\": {\n\t\t\t\t\t\t\tgridColumnStart: 2,\n\t\t\t\t\t\t\tgridColumnEnd: 3\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\":last-of-type\": {\n\t\t\t\t\t\t\tgridColumnStart: 4,\n\t\t\t\t\t\t\tgridColumnEnd: 5\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t/** Solace CodeEditor */\n\t\t\tformComponent_CodeEditor: {\n\t\t\t\tOuterWrapper: {\n\t\t\t\t\t\"&.codeEditor-expanded--backdrop\": {\n\t\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.secondary.w8040,\n\t\t\t\t\t\tdisplay: \"block\",\n\t\t\t\t\t\tzIndex: 1200\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tInnerWrapper: {\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\"&.codeEditor-expanded--main\": {\n\t\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tpadding: \"4px\",\n\t\t\t\t\t\twidth: \"80%\",\n\t\t\t\t\t\theight: \"80%\",\n\t\t\t\t\t\ttop: \"50%\",\n\t\t\t\t\t\tleft: \"50%\",\n\t\t\t\t\t\ttransform: \"translate(-50%,-50%)\",\n\t\t\t\t\t\t\".react-codemirror2\": {\n\t\t\t\t\t\t\theight: \"100%\"\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tThis code is duplicated in EditorWrapper, but it is necessary to have it here as well\n\t\t\t\t\t\t*/\n\t\t\t\t\t\t\".CodeMirror\": {\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\tclipPath: \"unset !important\", // undo the fix for Chrome 105 https://github.com/codemirror/codemirror5/commit/0f41e5153f8948604a0e9a2d71a1adbb9aeaed23\n\t\t\t\t\t\t\tborderRadius: \"0px\",\n\t\t\t\t\t\t\t\".cm-string, .cm-string-2\": {\n\t\t\t\t\t\t\t\tcolor: `${themeMapping.palette.error.w100}`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".cm-number, .cm-tag\": {\n\t\t\t\t\t\t\t\tcolor: `${themeMapping.palette.success.w100}`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".cm-atom, .cm-attribute\": {\n\t\t\t\t\t\t\t\tcolor: `${themeMapping.palette.info.w100}`\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-matchingbracket\": {\n\t\t\t\t\t\t\tcolor: `${themeMapping.palette.success.w100}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-gutter\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-gutters\": {\n\t\t\t\t\t\t\tborderRight: `1px solid ${themeMapping.palette.secondary.w40}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-linenumber\": {\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tEditorWrapper: {\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\"&.codeEditor-border\": {\n\t\t\t\t\t\tborder: `solid 1px ${themeMapping.palette.secondary.w40}`,\n\t\t\t\t\t\tborderRadius: \"0px\",\n\n\t\t\t\t\t\t\"&.codeEditor-readonly\": {\n\t\t\t\t\t\t\t\".CodeMirror-cursor\": { display: \"none\" } // hide the cursor when in readOnly mode\n\t\t\t\t\t\t},\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tThis code is duplicated in InnerWrapper, but it is necessary to have it here as well\n\t\t\t\t\t\t*/\n\t\t\t\t\t\t\".CodeMirror\": {\n\t\t\t\t\t\t\tborderRadius: \"0px\",\n\t\t\t\t\t\t\t\".cm-string, .cm-string-2\": {\n\t\t\t\t\t\t\t\tcolor: `${themeMapping.palette.error.w100}`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".cm-number, .cm-tag\": {\n\t\t\t\t\t\t\t\tcolor: `${themeMapping.palette.success.w100}`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\".cm-atom, .cm-attribute\": {\n\t\t\t\t\t\t\t\tcolor: `${themeMapping.palette.info.w100}`\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-matchingbracket\": {\n\t\t\t\t\t\t\tcolor: `${themeMapping.palette.success.w100}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-gutter\": {\n\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w20\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-gutters\": {\n\t\t\t\t\t\t\tborderRight: `1px solid ${themeMapping.palette.secondary.w40}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".CodeMirror-linenumber\": {\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tIconWrapper: {\n\t\t\t\t\tboxShadow: `0px 1px 4px ${getBoxShadow(\"w20\")}`,\n\t\t\t\t\tborderRadius: \"5px\",\n\t\t\t\t\tbackgroundColor: themeMapping.palette.background.w10,\n\t\t\t\t\t// position is relative to its parent with position: relative\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t// the z-index of the buttons should be higher than the z-index of the CodeMirror, which is 9\n\t\t\t\t\tzIndex: 20,\n\t\t\t\t\t\"&.codeEditor-expanded--icon\": {\n\t\t\t\t\t\ttop: -12,\n\t\t\t\t\t\tright: -12\n\t\t\t\t\t},\n\t\t\t\t\t\"&.codeEditor-collapsed--icon\": {\n\t\t\t\t\t\ttop: 16,\n\t\t\t\t\t\tright: 24\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t/** SolaceMessageBox component */\n\t\t\tcomponent_MessageBox: {\n\t\t\t\tcontainer: {\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tborderRadius: \"2px\",\n\t\t\t\t\t\"&::before\": {\n\t\t\t\t\t\tcontent: '\"\"', // Required for the ::before to work\n\t\t\t\t\t\tleft: \"0\",\n\t\t\t\t\t\ttop: \"0\",\n\t\t\t\t\t\tbottom: \"0\",\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\twidth: \"3px\", // Width of the vertical bar\n\t\t\t\t\t\tborderRadius: \"10px\"\n\t\t\t\t\t},\n\t\t\t\t\t\".MuiButton-root\": {\n\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\tmargin: \"4px 0px\"\n\t\t\t\t\t},\n\n\t\t\t\t\t\".MuiButtonBase-root.MuiIconButton-root\": {\n\t\t\t\t\t\tpadding: \"0px\",\n\t\t\t\t\t\tmargin: \"4px 8px 4px 0px\",\n\t\t\t\t\t\talignItems: \"flex-start\",\n\t\t\t\t\t\theight: \"24px\"\n\t\t\t\t\t},\n\n\t\t\t\t\t\"&.info\": {\n\t\t\t\t\t\t\"&::before\": {\n\t\t\t\t\t\t\tbackgroundColor: `${themeMapping.palette.info.w100}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.info.w10,\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiIconButton-root\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t// TODO: remove \"solace\" option when new theme is adopted\n\t\t\t\t\t\t\t\tfill: isCurrentSolace ? themeMapping.palette.secondary.wMain : themeMapping.palette.info.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.info.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":active\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.info.w30\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButton-root\": {\n\t\t\t\t\t\t\t\"&.MuiButton-textPrimary\": {\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.info.w20\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.info.w30\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"&.error\": {\n\t\t\t\t\t\t\"&::before\": {\n\t\t\t\t\t\t\tbackgroundColor: `${themeMapping.palette.error.w100}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w10,\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiIconButton-root\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t// TODO: remove \"solace\" options when new theme is adopted\n\t\t\t\t\t\t\t\tfill: isCurrentSolace ? themeMapping.palette.secondary.wMain : themeMapping.palette.error.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":active\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w30\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButton-root\": {\n\t\t\t\t\t\t\t\"&.MuiButton-textPrimary\": {\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w20\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.error.w30\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"&.warn\": {\n\t\t\t\t\t\t\"&::before\": {\n\t\t\t\t\t\t\tbackgroundColor: `${themeMapping.palette.warning.w100}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.warning.w10,\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiIconButton-root\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t// TODO: remove \"solace\" options when new theme is adopted\n\t\t\t\t\t\t\t\tfill: isCurrentSolace ? themeMapping.palette.secondary.wMain : themeMapping.palette.warning.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.warning.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":active\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.warning.w30\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButton-root\": {\n\t\t\t\t\t\t\t\"&.MuiButton-textPrimary\": {\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.warning.w20\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.warning.w30\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"&.success\": {\n\t\t\t\t\t\t\"&::before\": {\n\t\t\t\t\t\t\tbackgroundColor: `${themeMapping.palette.success.w100}`\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbackgroundColor: themeMapping.palette.success.w10,\n\t\t\t\t\t\t\".MuiButtonBase-root.MuiIconButton-root\": {\n\t\t\t\t\t\t\t\".MuiSvgIcon-root path\": {\n\t\t\t\t\t\t\t\t// TODO: remove \"solace\" options when new theme is adopted\n\t\t\t\t\t\t\t\tfill: isCurrentSolace ? themeMapping.palette.secondary.wMain : themeMapping.palette.success.w100\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.success.w20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\":active\": {\n\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.success.w30\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\".MuiButton-root\": {\n\t\t\t\t\t\t\t\"&.MuiButton-textPrimary\": {\n\t\t\t\t\t\t\t\t\"&:hover\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.success.w20\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"&:active\": {\n\t\t\t\t\t\t\t\t\tbackgroundColor: themeMapping.palette.success.w30\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmessageContainer: {\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\tbutton: {\n\t\t\t\t\t\twidth: \"auto\"\n\t\t\t\t\t},\n\t\t\t\t\ta: {\n\t\t\t\t\t\tfontWeight: 500\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmessage: {\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\tpadding: \"4px 8px 4px 8px\",\n\t\t\t\t\tlineHeight: \"1.5\",\n\t\t\t\t\t\"&.dense\": {\n\t\t\t\t\t\tpadding: \"0 8px\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ticonContainer: {\n\t\t\t\t\talignSelf: \"flex-start\",\n\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\"&.dense\": {\n\t\t\t\t\t\tpaddingTop: \"4px\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmessageTextContainer: {\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t// TODO: remove \"solace\" option when new theme is adopted\n\t\t\t\t\tcolor: isCurrentSolace ? themeMapping.palette.primary.text.wMain : \"\"\n\t\t\t\t},\n\t\t\t\tdetailsContainer: {\n\t\t\t\t\t// 10px on top because the message will have 6px padding bottom\n\t\t\t\t\tpadding: \"10px 16px 16px 16px\",\n\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t}\n\t\t\t},\n\t\t\t/** SolaceGridList */\n\t\t\tlayoutComponent_ImageList: {\n\t\t\t\tborder: {\n\t\t\t\t\tborder: `1px solid ${themeMapping.palette.secondary.w20}`\n\t\t\t\t},\n\t\t\t\theader: {\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\tpadding: \"8px 16px 8px 16px\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tborderLeft: `1px solid ${themeMapping.palette.secondary.w20}`,\n\t\t\t\t\tborderTop: `1px solid ${themeMapping.palette.secondary.w20}`,\n\t\t\t\t\tborderRight: `1px solid ${themeMapping.palette.secondary.w20}`,\n\t\t\t\t\tboxShadow: `0 2px 4px -1px ${getBoxShadow(\"w20\")}`,\n\t\t\t\t\t\"& .selectAll\": {\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t\"& .selectAllText\": {\n\t\t\t\t\t\tmarginLeft: \"8px\",\n\t\t\t\t\t\tcolor: themeMapping.palette.primary.text.wMain\n\t\t\t\t\t},\n\t\t\t\t\t\"& .countItemsText\": {\n\t\t\t\t\t\tmarginRight: \"16px\",\n\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\trow: {\n\t\t\t\t\t...gridListRowCommonStyle(themeMapping),\n\t\t\t\t\t\"&.headerRow\": {\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\theight: \"30px\",\n\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\tcolor: themeMapping.palette.secondary.text.wMain,\n\t\t\t\t\t\tcursor: \"auto\",\n\t\t\t\t\t\tpadding: \"0 16px\",\n\t\t\t\t\t\tposition: \"sticky\",\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\":hover\": {\n\t\t\t\t\t\t\tbackground: \"unset\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\t\":first-of-type\": {\n\t\t\t\t\t\t\tborderTop: \"none\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tborderBottom: `1px solid ${themeMapping.palette.secondary.w20}`,\n\t\t\t\t\t\":last-child\": {\n\t\t\t\t\t\tborderBottom: \"none\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvirtualRow: {\n\t\t\t\t\t...gridListRowCommonStyle(themeMapping)\n\t\t\t\t},\n\t\t\t\tvirtualRowContainer: {\n\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\tborderBottom: `1px solid ${themeMapping.palette.secondary.w20}`\n\t\t\t\t},\n\t\t\t\tlist: {\n\t\t\t\t\toverflow: \"overlay\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\"@-moz-document url-prefix()\": {\n\t\t\t\t\t\toverflow: \"auto\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t/** SolaceNotification Count */\n\t\t\tcomponent_NotificationCounter: {\n\t\t\t\tcontainer: {\n\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\tverticalAlign: \"middle\",\n\t\t\t\t\tbackground: themeMapping.palette.info.w100,\n\t\t\t\t\tcolor: themeMapping.palette.primary.text.w10\n\t\t\t\t},\n\t\t\t\tvalue: {\n\t\t\t\t\ttransition: \"opacity 300ms\",\n\t\t\t\t\tcursor: \"default\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tpalette: {\n\t\t\tux: themeMapping.palette,\n\t\t\tbackground: {\n\t\t\t\t/** @deprecated */\n\t\t\t\tdefault: themeMapping.palette.background.w20\n\t\t\t},\n\t\t\terror: {\n\t\t\t\t/** @deprecated */\n\t\t\t\tmain: themeMapping.palette.error.w100\n\t\t\t},\n\t\t\twarning: {\n\t\t\t\t/** @deprecated */\n\t\t\t\tmain: themeMapping.palette.warning.w100\n\t\t\t},\n\t\t\tprimary: {\n\t\t\t\t/** @deprecated */\n\t\t\t\tcontrastText: themeMapping.palette.primary.text.w10,\n\t\t\t\t/** @deprecated */\n\t\t\t\tdark: themeMapping.palette.brand.wMain,\n\t\t\t\t/** @deprecated */\n\t\t\t\tmain: themeMapping.palette.brand.wMain\n\t\t\t},\n\t\t\tsecondary: {\n\t\t\t\t/** @deprecated */\n\t\t\t\tcontrastText: themeMapping.palette.primary.text.w10,\n\t\t\t\t/** @deprecated */\n\t\t\t\tmain: themeMapping.palette.brand.wMain\n\t\t\t},\n\t\t\t// TBD: Do we want to keep these defaults via <Typography...?\n\t\t\ttext: {\n\t\t\t\tprimary: themeMapping.palette.primary.text.wMain,\n\t\t\t\tsecondary: themeMapping.palette.secondary.text.wMain,\n\t\t\t\tdisabled: themeMapping.palette.secondary.text.w50\n\t\t\t}\n\t\t},\n\t\tspacing: 8,\n\t\ttypography: {\n\t\t\t/**\n\t\t\t * typography properties coming from the standard defined in\n\t\t\t * https://www.figma.com/file/2LR7eIvywQ8jgTrA0wlHTK/Text-styles-in-PS%2B?node-id=213%3A20861\n\t\t\t */\n\t\t\tfontFamily: \"Rubik,sans-serif\",\n\t\t\th1: {\n\t\t\t\tfontSize: toAdjustedRem(BASE_FONT_PX_SIZES.xl), // 1.25rem at 16px base\n\t\t\t\tlineHeight: 1.5,\n\t\t\t\tfontWeight: 500\n\t\t\t},\n\t\t\th2: { fontSize: toAdjustedRem(BASE_FONT_PX_SIZES.xl), lineHeight: 1.5, fontWeight: 400 }, // 1.25rem at 16px base\n\t\t\th3: { fontSize: toAdjustedRem(BASE_FONT_PX_SIZES.md), lineHeight: 1.5, fontWeight: 500 }, // 1rem at 16px base\n\t\t\th4: { fontSize: toAdjustedRem(BASE_FONT_PX_SIZES.md), lineHeight: 1.5, fontWeight: 400 }, // 1rem at 16px base\n\t\t\th5: { fontSize: toAdjustedRem(BASE_FONT_PX_SIZES.sm), lineHeight: 1.5, fontWeight: 500 }, // 0.875rem at 16px base\n\t\t\tbody1: { fontSize: toAdjustedRem(BASE_FONT_PX_SIZES.sm), lineHeight: 1.5, fontWeight: 400 }, // 0.875rem at 16px base\n\t\t\tcaption: { fontSize: toAdjustedRem(BASE_FONT_PX_SIZES.xs), lineHeight: 1.5, fontWeight: 400 }, // 0.75rem at 16px base\n\t\t\t//***************************************************************\n\t\t\tfontSize: BASE_FONT_PX_SIZES.sm,\n\n\t\t\tbutton: {\n\t\t\t\tlineHeight: 1.5,\n\t\t\t\tfontSize: BASE_FONT_PX_SIZES.sm,\n\t\t\t\tfontWeight: 500\n\t\t\t},\n\t\t\tsubtitle1: {\n\t\t\t\tfontSize: BASE_FONT_PX_SIZES.md,\n\t\t\t\tlineHeight: 1.5\n\t\t\t}\n\t\t}\n\t};\n\treturn themeOptions;\n};\n\ndeclare module \"@mui/material/styles\" {\n\tinterface BreakpointOverrides {\n\t\tdialogMd: true;\n\t}\n\n\tinterface Palette {\n\t\tux: ThemeMappingPalette;\n\t}\n\tinterface PaletteOptions {\n\t\tux: ThemeMappingPalette;\n\t}\n}\n\ndeclare module \"@mui/material/styles/createMixins\" {\n\tinterface Mixins {\n\t\tlayoutComponent_ImageList: {\n\t\t\theader: CSSProperties;\n\t\t\trow: CSSProperties;\n\t\t\tvirtualRow: CSSProperties;\n\t\t\tvirtualRowContainer: CSSProperties;\n\t\t\tlist: CSSProperties;\n\t\t\tborder: CSSProperties;\n\t\t};\n\t\tformComponent_ErrorText: {\n\t\t\tcontainer: CSSProperties;\n\t\t\tlabel: CSSProperties;\n\t\t};\n\t\tformComponent_ReadOnlyToolTipContainer: {\n\t\t\tcontainer: CSSProperties;\n\t\t};\n\t\tformComponent_WarningText: {\n\t\t\tcontainer: CSSProperties;\n\t\t\tlabel: CSSProperties;\n\t\t};\n\t\tformComponent_AVPItem: {\n\t\t\tcontainer: CSSProperties;\n\t\t\tmoveButton: CSSProperties;\n\t\t\tdeleteButton: CSSProperties;\n\t\t\tinputWrapperForKey: CSSProperties;\n\t\t\tinputWrapperForValue: CSSProperties;\n\t\t};\n\t\tformComponent_AVPForm: {\n\t\t\tcontainer: CSSProperties;\n\t\t\tlistWrapper: CSSProperties;\n\t\t\tlabelWrapper: CSSProperties;\n\t\t};\n\t\tformComponent_CodeEditor: {\n\t\t\tOuterWrapper: CSSProperties;\n\t\t\tInnerWrapper: CSSProperties;\n\t\t\tEditorWrapper: CSSProperties;\n\t\t\tIconWrapper: CSSProperties;\n\t\t};\n\t\tcomponent_MessageBox: {\n\t\t\tcontainer: CSSProperties;\n\t\t\tmessageContainer: CSSProperties;\n\t\t\tmessage: CSSProperties;\n\t\t\ticonContainer: CSSProperties;\n\t\t\tmessageTextContainer: CSSProperties;\n\t\t\tdetailsContainer: CSSProperties;\n\t\t};\n\t\tcomponent_NotificationCounter: {\n\t\t\tcontainer: CSSProperties;\n\t\t\tvalue: CSSProperties;\n\t\t};\n\t}\n}\n\nexport default getThemeOptions;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DatePicker } from \"@mui/x-date-pickers/DatePicker\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { AdapterMoment } from \"@mui/x-date-pickers/AdapterMoment\";\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\nimport { useState, useEffect } from \"react\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { SolaceDatePickerVariant, variantConfig } from \"../types/solaceDatePicker\";\nimport { useTheme } from \"@mui/material\";\n\nexport interface SolaceDatePickerProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname?: string;\n\n\t/**\n\t * The current value of the date picker, represented as a string in ISO 8601 format.\n\t * This prop makes the date picker a controlled component\n\t */\n\tvalue?: string | null;\n\n\t/**\n\t * If `true`, the date picker is readOnly and cannot be changed.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * The variant of the date picker to use. Defaults to `FORMAT_YEAR_MONTH_DAY` if not provided.\n\t */\n\tvariant?: SolaceDatePickerVariant;\n\n\t/**\n\t * A callback that's called when the date picker's value changes. The new value is passed\n\t * as a string in ISO 8601 format. If the date picker is cleared, `null` is passed.\n\t */\n\tonChange?: (date: string | null) => void;\n\n\t/**\n\t * A callback that's called when the date picker is cleared.\n\t */\n\tonClear?: () => void;\n\n\t/**\n\t * Optional timezone string to be used for the date picker. This is useful for\n\t * displaying the date in a specific timezone. If not provided, the local timezone\n\t * will be used.\n\t */\n\ttimezone?: string;\n\n\t/**\n\t * This prop prevents the selection of all dates after the current date.\n\t */\n\tdisableFuture?: boolean;\n}\n\n/**\n * Helper function to create a Moment object with timezone support\n * If timezone is provided, uses moment.tz to parse the date in that timezone\n * If no timezone is provided, uses moment directly (local timezone)\n */\nconst createMomentWithTimezone = (value: string | null, timezone?: string): Moment | null => {\n\tif (!value) return null;\n\treturn timezone ? moment.tz(value, timezone) : moment(value);\n};\n\nexport default function SolaceDatePicker({\n\tid,\n\tname,\n\tvalue = null,\n\tonChange,\n\tonClear,\n\tdataQa,\n\tvariant = SolaceDatePickerVariant.FORMAT_YEAR_MONTH_DAY,\n\tdisabled = false,\n\ttimezone = undefined,\n\tdisableFuture = false\n}: Readonly<SolaceDatePickerProps>) {\n\t// Initialize date state with timezone support using the helper function\n\tconst [date, setDate] = useState<Moment | null>(createMomentWithTimezone(value, timezone));\n\n\tconst { views, openTo, format } = variantConfig[variant];\n\n\t// Update date when value or timezone changes\n\tuseEffect(() => {\n\t\tsetDate(createMomentWithTimezone(value, timezone));\n\t}, [value, timezone]);\n\n\tconst handleChange = (newValue: Moment | null) => {\n\t\tsetDate(newValue);\n\t\tif (onChange && newValue) {\n\t\t\t// We need to convert the Moment object to a string first\n\t\t\tconst momentValue = createMomentWithTimezone(newValue.format(), timezone);\n\t\t\tonChange(momentValue ? momentValue.toISOString() : null);\n\t\t} else if (onChange) {\n\t\t\tonChange(null);\n\t\t}\n\t};\n\n\tconst theme = useTheme();\n\tconst color = theme.palette.ux.accent.n2.wMain;\n\tconst styles = {\n\t\t\".MuiPickersCalendarHeader-switchViewButton:focus-visible\": {\n\t\t\tborder: `1px solid ${color}`,\n\t\t\tpadding: \"3px\",\n\t\t\tborderRadius: \"3px\"\n\t\t},\n\n\t\t\".MuiPickersArrowSwitcher-button:focus-visible\": {\n\t\t\tborder: `1px solid ${color}`,\n\t\t\tpadding: \"3px\",\n\t\t\tborderRadius: \"3px\"\n\t\t},\n\n\t\t\".MuiPickersDay-root:focus-visible\": {\n\t\t\tborder: `1px solid ${color}`,\n\t\t\tborderRadius: \"50%\"\n\t\t}\n\t};\n\n\treturn (\n\t\t<LocalizationProvider dateAdapter={AdapterMoment} dateLibInstance={moment}>\n\t\t\t<DatePicker\n\t\t\t\tclassName=\"SolaceDatePicker\"\n\t\t\t\tvalue={date}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tslotProps={{\n\t\t\t\t\tfield: { clearable: true, onClear: () => onClear && onClear() },\n\t\t\t\t\tpopper: {\n\t\t\t\t\t\tsx: styles\n\t\t\t\t\t},\n\t\t\t\t\ttextField: {\n\t\t\t\t\t\tinputProps: {\n\t\t\t\t\t\t\t\"data-qa\": dataQa,\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tviews={views}\n\t\t\t\topenTo={openTo}\n\t\t\t\tformat={format}\n\t\t\t\tdisableFuture={disableFuture}\n\t\t\t\ttimezone={timezone ?? \"system\"}\n\t\t\t/>\n\t\t</LocalizationProvider>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport accepts from \"attr-accept\";\n\nexport const strings = {\n\tmaxFilesErrorMessage: \"Maximum files allowed is \",\n\tmaxSizeErrorMessage: \"Maximum fileSize allowed is \",\n\tminSizeErrorMessage: \"Minimum fileSize allowed is \",\n\tdefaultSize: \"0 kb\",\n\tsizeInKb: \" kb\",\n\tsizeInMb: \" mb\"\n};\n\nexport function isMIMEType(value: string) {\n\treturn (\n\t\tvalue === \"audio/*\" ||\n\t\tvalue === \"video/*\" ||\n\t\tvalue === \"image/*\" ||\n\t\tvalue === \"text/*\" ||\n\t\t/\\w+\\/[-+.\\w]+/g.test(value)\n\t);\n}\n\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\nexport function isExt(value: string) {\n\treturn /^.*\\.[\\w]+$/.test(value);\n}\n\nexport function acceptPropAsAcceptAttr(acceptedFiles: Record<string, string[]>) {\n\treturn Object.values(acceptedFiles)\n\t\t.reduce((acc, curr) => acc.concat(curr), [])\n\t\t.filter((v) => isMIMEType(v) || isExt(v))\n\t\t.join(\",\");\n}\n\nexport const validateFiles = (\n\tmaxFiles: number,\n\tminSize: number,\n\tfiles: File[],\n\tmaxSize?: number,\n\tacceptedFiles?: string\n): string | null => {\n\tif (maxFiles !== 0 && files.length > maxFiles) {\n\t\treturn strings.maxFilesErrorMessage + maxFiles;\n\t}\n\n\tlet errorMessage: string | null = null;\n\n\tfiles.some((file) => {\n\t\tif (maxSize && file.size > maxSize) {\n\t\t\terrorMessage = strings.maxSizeErrorMessage + readableFileSize(maxSize);\n\t\t\treturn true; // break the loop\n\t\t}\n\n\t\tif (file.size < minSize) {\n\t\t\terrorMessage = strings.minSizeErrorMessage + readableFileSize(minSize);\n\t\t\treturn true; // break the loop\n\t\t}\n\n\t\tif (acceptedFiles && acceptedFiles.length > 0 && !accepts(file, acceptedFiles)) {\n\t\t\terrorMessage = \"File type not supported\";\n\t\t\treturn true; // break the loop\n\t\t}\n\n\t\treturn false; // continue the loop\n\t});\n\n\treturn errorMessage;\n};\n\nexport function readableFileSize(bytes: number): string {\n\tconst DEFAULT_SIZE = strings.defaultSize;\n\n\tif (!bytes) {\n\t\treturn DEFAULT_SIZE;\n\t}\n\n\tconst sizeInKb = bytes / 1024;\n\n\tif (sizeInKb > 1024) {\n\t\treturn `${(sizeInKb / 1024).toFixed(2)}${strings.sizeInMb}`;\n\t} else {\n\t\treturn `${sizeInKb.toFixed(2)}${strings.sizeInKb}`;\n\t}\n}\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon } from \"@mui/material\";\n\nconst UploadIcon = (): JSX.Element => {\n\treturn (\n\t\t<SvgIcon width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" fill=\"none\" sx={{ opacity: 0.5 }}>\n\t\t\t<path\n\t\t\t\td=\"M11.15 17C10.9291 17 10.75 16.8209 10.75 16.6V6.81253L7.78785 9.77468C7.6297 9.93283 7.3726 9.93057 7.21725 9.76967L6.02301 8.53278C5.87146 8.37582 5.87365 8.12638 6.02792 7.9721L11.7172 2.28287C11.8734 2.12666 12.1266 2.12666 12.2828 2.28287L17.9721 7.9721C18.1264 8.12638 18.1285 8.37582 17.977 8.53278L16.7828 9.76967C16.6274 9.93057 16.3703 9.93283 16.2122 9.77468L13.25 6.81253V16.6C13.25 16.8209 13.0709 17 12.85 17H11.15ZM4.5 22C3.8125 22 3.22396 21.7552 2.73438 21.2656C2.24479 20.7761 2 20.1875 2 19.5V16.15C2 15.9291 2.17909 15.75 2.4 15.75H4.1C4.32091 15.75 4.5 15.9291 4.5 16.15V19.5H19.5V16.15C19.5 15.9291 19.6791 15.75 19.9 15.75H21.6C21.8209 15.75 22 15.9291 22 16.15V19.5C22 20.1875 21.7552 20.7761 21.2656 21.2656C20.776 21.7552 20.1875 22 19.5 22H4.5Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t</SvgIcon>\n\t);\n};\n\nexport default UploadIcon;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport SolaceTypography from \"../SolaceTypography\";\nimport { useMemo, useState } from \"react\";\nimport SolaceStack from \"../layout/SolaceStack\";\nimport styled from \"@emotion/styled\";\nimport { Box, Button, useTheme } from \"@mui/material\";\nimport SolaceButton from \"../form/SolaceButton\";\nimport { CloseIcon } from \"../../resources/icons/CloseIcon\";\nimport ErrorText from \"../form/ErrorText\";\nimport { SolaceFileUploaderProps } from \"../../types\";\nimport { acceptPropAsAcceptAttr, validateFiles } from \"./fileUploaderUtils\";\nimport UploadIcon from \"../../resources/icons/UploadIcon\";\n\nconst VisuallyHiddenInput = styled(\"input\")({\n\tclip: \"rect(0 0 0 0)\",\n\tclipPath: \"inset(50%)\",\n\theight: 1,\n\toverflow: \"hidden\",\n\tposition: \"absolute\",\n\tbottom: 0,\n\tleft: 0,\n\twhiteSpace: \"nowrap\",\n\twidth: 1\n});\n\n/**\n * SolaceFileUploader component allows users to upload files by dragging and dropping or selecting files from their device.\n *\n * @component\n * @example\n * ```tsx\n * <SolaceFileUploader\n * maxFiles={3}\n * readOnly={false}\n * fileNames={[]}\n * onFileChange={(files) => console.log(files)}\n * label=\"Drag and drop file here\"\n * errorText=\"Invalid file format\"\n * dataQa=\"fileUploader\"\n * id=\"fileUploader\"\n * minSize={0}\n * maxSize={1024}\n * accept:\n * \t\t\t{\n * \t\t\t'image/png': ['.png'],\n * \t\t\t'text/html': ['.html', '.htm']\n * \t\t\t'image/*': []\n * \t\t\t}\n * />\n * ```\n * @returns {JSX.Element} The rendered SolaceFileUploader component.\n */\n\nexport default function SolaceFileUploader(props: SolaceFileUploaderProps) {\n\tconst {\n\t\tmaxFiles = 1,\n\t\treadOnly = false,\n\t\tfileNames = [],\n\t\tonFileChange,\n\t\tlabel = \"Drag and drop file here\",\n\t\terrorText,\n\t\tdataQa,\n\t\tid,\n\t\tminSize = 0,\n\t\tmaxSize,\n\t\taccept\n\t} = props;\n\n\tconst theme = useTheme();\n\tconst [dragEvent, setDragEvent] = useState(false);\n\tconst [filesData, setFilesData] = useState<File[] | string[]>(fileNames ?? []);\n\tconst [validationError, setValidationError] = useState(\"\");\n\n\tconst acceptedFilesArray = useMemo(() => {\n\t\tif (accept) {\n\t\t\treturn acceptPropAsAcceptAttr(accept);\n\t\t}\n\t\treturn undefined;\n\t}, [accept]);\n\n\tconst getDivider = (direction: \"left\" | \"right\") => (\n\t\t<Box\n\t\t\tborderRadius={\"4px\"}\n\t\t\twidth={\"125px\"}\n\t\t\theight=\"1px\"\n\t\t\tbgcolor={theme.palette.ux.secondary.w40}\n\t\t\tmr={direction === \"left\" ? 1 : undefined}\n\t\t\tml={direction === \"right\" ? 1 : undefined}\n\t\t></Box>\n\t);\n\n\tconst onDragEvent = (e: React.DragEvent<HTMLDivElement>) => {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t\tif (!dragEvent) {\n\t\t\tsetDragEvent(true);\n\t\t}\n\t};\n\n\tconst onFileDrop = (e: React.DragEvent<HTMLDivElement>) => {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t\tsetDragEvent(false);\n\t\tif (validationError) setValidationError(\"\");\n\t\tconst filesAdded: File[] = [];\n\t\tif (e.dataTransfer.items) {\n\t\t\t// Use DataTransferItemList interface to access the file(s)\n\t\t\tArray.from(e.dataTransfer.items).forEach((item) => {\n\t\t\t\t// If dropped items aren't files, reject them\n\t\t\t\tif (item.kind === \"file\") {\n\t\t\t\t\tconst file = item.getAsFile();\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\tfilesAdded.push(file);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (filesAdded.length > 0) {\n\t\t\tconst validationResult = validateFiles(maxFiles, minSize, filesAdded, maxSize, acceptedFilesArray);\n\t\t\tif (validationResult !== null) {\n\t\t\t\tsetValidationError(validationResult);\n\t\t\t} else {\n\t\t\t\tsetFilesData([...filesData, ...filesAdded] as File[]);\n\t\t\t\tonFileChange && onFileChange([...filesData, ...filesAdded] as File[]);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tif (event.target.files === null) return;\n\t\tif (validationError) setValidationError(\"\");\n\n\t\tconst file = event?.target?.files[0];\n\t\tconst validationResult = validateFiles(maxFiles, minSize, [file], maxSize, acceptedFilesArray);\n\t\tif (validationResult !== null) {\n\t\t\tsetValidationError(validationResult);\n\t\t} else {\n\t\t\tsetFilesData([...filesData, file] as File[]);\n\t\t\tonFileChange && onFileChange([...filesData, file] as File[]);\n\t\t}\n\t};\n\n\tconst renderFileNameDisplay = (file: File | string, index: number): JSX.Element => {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tkey={index}\n\t\t\t\tborder={`1px solid ${theme.palette.ux.secondary.w20}`}\n\t\t\t\tdisplay={\"flex\"}\n\t\t\t\talignItems={\"center\"}\n\t\t\t\tjustifyContent={\"space-between\"}\n\t\t\t\theight=\"48px\"\n\t\t\t\trole=\"listitem\"\n\t\t\t\tdata-qa={`solaceFileUploaderFileName-${index}`}\n\t\t\t\tpaddingLeft={2}\n\t\t\t\tpaddingRight={1}\n\t\t\t>\n\t\t\t\t<SolaceTypography variant=\"h5\">{typeof file === \"string\" ? file : file.name}</SolaceTypography>\n\t\t\t\t{/* option to remove the item is disabled in read only mode */}\n\t\t\t\t{!readOnly && (\n\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tconst newFiles = (filesData as File[]).filter((_, i) => i !== index);\n\t\t\t\t\t\t\tsetFilesData(newFiles as File[]);\n\t\t\t\t\t\t\tonFileChange && onFileChange(newFiles as File[]);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttitle=\"Remove\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<CloseIcon />\n\t\t\t\t\t</SolaceButton>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{filesData.length < maxFiles && !readOnly && (\n\t\t\t\t<Box\n\t\t\t\t\tonDragEnter={onDragEvent}\n\t\t\t\t\tonDragOver={onDragEvent}\n\t\t\t\t\tonDrop={onFileDrop}\n\t\t\t\t\tonDragLeave={() => setDragEvent(false)}\n\t\t\t\t\theight={\"139px\"}\n\t\t\t\t\tsx={[\n\t\t\t\t\t\t(theme) => ({\n\t\t\t\t\t\t\tborder: dragEvent\n\t\t\t\t\t\t\t\t? `1px solid ${theme.palette.ux.brand.wMain}`\n\t\t\t\t\t\t\t\t: `1px dashed ${theme.palette.ux.secondary.w40}`\n\t\t\t\t\t\t})\n\t\t\t\t\t]}\n\t\t\t\t\talignContent={\"center\"}\n\t\t\t\t\tid={\"solaceFileUploaderWrapper\" ?? id}\n\t\t\t\t\tdata-qa={dataQa}\n\t\t\t\t\trole=\"dropzone\"\n\t\t\t\t>\n\t\t\t\t\t{dragEvent && (\n\t\t\t\t\t\t<SolaceTypography variant=\"body1\" textAlign={\"center\"}>\n\t\t\t\t\t\t\tDrop file here\n\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t)}\n\t\t\t\t\t{!dragEvent && (\n\t\t\t\t\t\t<SolaceStack alignItems={\"center\"} spacing={2}>\n\t\t\t\t\t\t\t<Box display={\"flex\"} alignItems={\"center\"}>\n\t\t\t\t\t\t\t\t<UploadIcon />\n\t\t\t\t\t\t\t\t<SolaceTypography\n\t\t\t\t\t\t\t\t\tvariant=\"body1\"\n\t\t\t\t\t\t\t\t\tsx={{ color: theme.palette.ux.secondary.text.wMain, marginLeft: theme.spacing() }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t<Box display={\"flex\"} flexDirection={\"row\"} alignItems={\"center\"} justifyContent={\"center\"}>\n\t\t\t\t\t\t\t\t{getDivider(\"left\")}\n\t\t\t\t\t\t\t\t<SolaceTypography sx={{ color: theme.palette.ux.secondary.text.wMain }} variant=\"body1\">\n\t\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t</SolaceTypography>\n\t\t\t\t\t\t\t\t{getDivider(\"right\")}\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t<Button component=\"label\" role={undefined} variant=\"text\" tabIndex={-1}>\n\t\t\t\t\t\t\t\tUpload File\n\t\t\t\t\t\t\t\t<VisuallyHiddenInput type=\"file\" onChange={handleFileChange} />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</SolaceStack>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t{filesData.length > 0 && (\n\t\t\t\t<SolaceStack mt={maxFiles > 1 ? 2 : 0}>\n\t\t\t\t\t{filesData.map((file, index) => renderFileNameDisplay(file, index))}\n\t\t\t\t</SolaceStack>\n\t\t\t)}\n\t\t\t{(errorText || validationError) && (\n\t\t\t\t<ErrorText dataQa=\"solaceFileUploaderError\">{errorText || validationError}</ErrorText>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useRef, useState } from \"react\";\nimport { styled, useTheme } from \"@mui/material\";\nimport { Cell, Pie, PieChart, Tooltip } from \"recharts\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\n\ninterface DataItem {\n\tname: string;\n\tvalue: number;\n\tcolor?: string;\n\tlabel?: string;\n}\n\ninterface SolaceDonutChartProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier for the chart\n\t */\n\tid?: string;\n\t/**\n\t * Size of the chart: 'large', 'medium', or 'small'\n\t */\n\tsize?: \"lg\" | \"md\" | \"sm\";\n\t/**\n\t * Icon to display in the center of the chart\n\t */\n\ticon?: JSX.Element;\n\t/**\n\t * Width of the icon, 24px by default\n\t */\n\ticonWidth?: number;\n\t/**\n\t * Height of the icon, 24px by default\n\t */\n\ticonHeight?: number;\n\t/**\n\t * Show tooltip on hover\n\t */\n\tshowTooltip?: boolean;\n\t/**\n\t * Data to display in the chart\n\t */\n\tdata: DataItem[];\n}\n\ninterface CustomTooltipProps {\n\t// these props are exposed by the recharts lib\n\tactive?: boolean;\n\tpayload?: { payload?: DataItem }[];\n}\n\nconst ANIMATION_DELAY = 0;\n\nconst SIZES = {\n\tlg: { chartWidth: 160, chartHeight: 160, width: 24 },\n\tmd: { chartWidth: 100, chartHeight: 100, width: 16 },\n\tsm: { chartWidth: 60, chartHeight: 60, width: 8 }\n};\n\nconst TooltipContainer = styled(\"div\")(({ theme }) => ({\n\tdisplay: \"flex\",\n\tcolumnGap: theme.spacing(2),\n\tpadding: theme.spacing(1),\n\tbackgroundColor: theme.palette.ux.background.w10,\n\tboxShadow: `0px 1px 4px ${theme.palette.ux.secondary.w40}`,\n\tborderRadius: theme.spacing(0.5)\n}));\n\nconst TooltipLabel = styled(\"div\")(({ theme }) => ({\n\tflex: 1,\n\tdisplay: \"flex\",\n\tjustifyContent: \"space-between\",\n\talignItems: \"center\",\n\tcolumnGap: theme.spacing(1),\n\t\".tooltip-label\": {\n\t\twhiteSpace: \"nowrap\"\n\t}\n}));\n\nconst SquaredIcon = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"bgColor\" })<{ bgColor?: string }>(\n\t({ bgColor, theme }) => ({\n\t\twidth: \"16px\",\n\t\theight: \"16px\",\n\t\tdisplay: \"inline-block\",\n\t\tbackgroundColor: bgColor ?? theme.palette.ux.secondary.w40\n\t})\n);\n\nconst ChartContainer = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"width\" && prop !== \"height\"\n})<{\n\twidth?: number;\n\theight?: number;\n}>(({ width, height }) => ({\n\tposition: \"relative\", // needed to center the icon\n\twidth: width,\n\theight: height\n}));\n\nconst IconContainer = styled(\"div\", {\n\tshouldForwardProp: (prop) => prop !== \"width\" && prop !== \"height\"\n})<{\n\twidth?: number;\n\theight?: number;\n}>(({ width, height }) => ({\n\tposition: \"absolute\",\n\twidth: width,\n\theight: height,\n\ttop: \"50%\",\n\tleft: \"50%\",\n\ttransform: \"translate(-50%, -50%)\"\n}));\n\nconst CustomTooltip = React.forwardRef<HTMLDivElement, CustomTooltipProps>(({ active, payload }, ref) => {\n\tif (!active || !payload || !payload[0]?.payload) {\n\t\treturn null;\n\t}\n\tconst { name, color, label, value } = payload[0].payload;\n\treturn (\n\t\t<TooltipContainer ref={ref}>\n\t\t\t<TooltipLabel>\n\t\t\t\t<SquaredIcon bgColor={color} />\n\t\t\t\t<div className=\"tooltip-label\">{label ?? name}</div>\n\t\t\t</TooltipLabel>\n\t\t\t<div>{value}</div>\n\t\t</TooltipContainer>\n\t);\n});\n\n// When using React.forwardRef, the component's name might not be inferred correctly, leading to the need for an explicit displayName by eslint\nCustomTooltip.displayName = \"CustomTooltip\";\n\nconst calculateTooltipPosition = (\n\tmouse: { x: number; y: number },\n\tchartWidth: number,\n\tchartHeight: number,\n\ttooltipWidth: number,\n\ttooltipHeight: number\n) => {\n\tconst offset = 10;\n\tlet x, y;\n\n\tx = mouse.x + offset;\n\ty = mouse.y + offset;\n\n\t// Determine the quadrant of the cursor position\n\tconst isTopHalf = mouse.y < chartHeight / 2;\n\tconst isRightHalf = mouse.x > chartWidth / 2;\n\n\tif (isTopHalf && isRightHalf) {\n\t\t// Top Right: Display tooltip top right of the cursor\n\t\tx = mouse.x + offset;\n\t\ty = mouse.y - tooltipHeight - offset;\n\t} else if (!isTopHalf && isRightHalf) {\n\t\t// Bottom Right: Display tooltip bottom right\n\t\tx = mouse.x + offset;\n\t\ty = mouse.y + offset;\n\t} else if (isTopHalf && !isRightHalf) {\n\t\t// Top Left: Display tooltip top left, considering the width of it\n\t\tx = mouse.x - tooltipWidth - offset;\n\t\ty = mouse.y - tooltipHeight - offset;\n\t} else {\n\t\t// Bottom Left: Display tooltip bottom left, also considering the width of it\n\t\tx = mouse.x - tooltipWidth - offset;\n\t\ty = mouse.y + offset;\n\t}\n\n\treturn { x, y };\n};\n\nfunction SolaceDonutChart({\n\tid,\n\tdata,\n\tsize = \"sm\",\n\ticon,\n\ticonWidth = 24,\n\ticonHeight = 24,\n\tshowTooltip = false,\n\tdataQa,\n\tdataTags\n}: SolaceDonutChartProps): JSX.Element {\n\tconst theme = useTheme();\n\tconst [tooltipPosition, setTooltipPosition] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n\tconst tooltipRef = useRef<HTMLDivElement>(null);\n\n\tconst { chartWidth, chartHeight, width } = SIZES[size];\n\tconst outerRadius = chartHeight / 2;\n\tconst innerRadius = outerRadius - width;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst handleMouseMove = (e: any) => {\n\t\tconst tooltipElement = tooltipRef.current;\n\n\t\t// If the tooltip element is available, use its dimensions\n\t\tconst tooltipWidth = tooltipElement?.offsetWidth ?? 170; // give a default width\n\t\tconst tooltipHeight = tooltipElement?.offsetHeight ?? 40; // give a default height\n\n\t\tconst position = calculateTooltipPosition(\n\t\t\t{ x: e.tooltipPosition.x, y: e.tooltipPosition.y },\n\t\t\tchartWidth,\n\t\t\tchartHeight,\n\t\t\ttooltipWidth,\n\t\t\ttooltipHeight\n\t\t);\n\n\t\tsetTooltipPosition(position);\n\t};\n\n\treturn (\n\t\t<ChartContainer width={chartWidth} height={chartHeight} id={id} data-qa={dataQa} data-tags={dataTags}>\n\t\t\t<PieChart width={chartWidth} height={chartHeight}>\n\t\t\t\t<Pie\n\t\t\t\t\tnameKey=\"name\"\n\t\t\t\t\tdataKey=\"value\"\n\t\t\t\t\tdata={data}\n\t\t\t\t\tcx=\"50%\"\n\t\t\t\t\tcy=\"50%\"\n\t\t\t\t\tinnerRadius={innerRadius}\n\t\t\t\t\touterRadius={outerRadius}\n\t\t\t\t\tisAnimationActive={true}\n\t\t\t\t\tanimationBegin={ANIMATION_DELAY}\n\t\t\t\t\tpaddingAngle={0}\n\t\t\t\t\tstartAngle={90} // ensures the starting angle of the pie chart is always at 12 o’clock\n\t\t\t\t\tendAngle={-270} // ensures the pie chart reads clockwise from the starting point\n\t\t\t\t\tonMouseMove={handleMouseMove}\n\t\t\t\t>\n\t\t\t\t\t{data.map((entry, index) => (\n\t\t\t\t\t\t<Cell\n\t\t\t\t\t\t\tkey={`cell-${index}`}\n\t\t\t\t\t\t\tfill={entry.color ?? theme.palette.ux.secondary.w40} // fallback to a default color if no color is provided in the data\n\t\t\t\t\t\t\tstyle={{ strokeWidth: 0.5, userSelect: \"none\", outline: \"none\" }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</Pie>\n\t\t\t\t{showTooltip && (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tcontent={<CustomTooltip ref={tooltipRef} />}\n\t\t\t\t\t\tposition={tooltipPosition}\n\t\t\t\t\t\tisAnimationActive={false}\n\t\t\t\t\t\tallowEscapeViewBox={{ x: true, y: true }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PieChart>\n\t\t\t{icon && (\n\t\t\t\t<IconContainer width={iconWidth} height={iconHeight}>\n\t\t\t\t\t{icon}\n\t\t\t\t</IconContainer>\n\t\t\t)}\n\t\t</ChartContainer>\n\t);\n}\n\nexport default SolaceDonutChart;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon, useTheme } from \"@mui/material\";\n\nexport const VisibilityShowIcon = ({ size = 24, fill = \"\" }): JSX.Element => {\n\tconst theme = useTheme();\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<g clipPath=\"url(#clip0_3496_34902)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M16.34 12.28C15.94 10.78 14.73 9.55999 13.22 9.15999C12.74 9.02999 12.26 8.97999 11.8 9.00999L16.49 13.7C16.52 13.24 16.47 12.76 16.34 12.28ZM15.82 15.85L8.62999 8.65999L7.10999 7.13999L3.69999 3.72999C3.54999 3.57999 3.28999 3.57999 3.13999 3.72999L2.28999 4.58999C2.13999 4.73999 2.13999 4.99999 2.28999 5.14999L5.37999 8.23999C3.99999 9.32999 2.86999 10.76 2.03999 12.43C1.90999 12.69 2.10999 13 2.39999 13H3.76999C3.90999 13 4.03999 12.92 4.10999 12.8C4.84999 11.54 5.75999 10.49 6.82999 9.68999L8.21999 11.08C7.56999 12.09 7.30999 13.38 7.65999 14.72C8.05999 16.22 9.27999 17.44 10.78 17.84C12.12 18.2 13.41 17.93 14.42 17.28L19.46 22.32C19.61 22.47 19.87 22.47 20.02 22.32L20.87 21.47C21.02 21.32 21.02 21.06 20.87 20.91L15.82 15.85ZM21.96 12.43C20.05 8.60999 16.59 5.99999 12 5.99999C11 5.99999 10.05 6.12999 9.15999 6.36999L10.87 8.06999C11.23 8.01999 11.61 7.99999 12 7.99999C15.52 7.99999 18.16 9.83999 19.89 12.8C19.96 12.92 20.08 13 20.22 13H21.48C21.89 13 22.09 12.69 21.96 12.43Z\"\n\t\t\t\t\tfill={fill || theme.palette.ux.secondary.wMain}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id=\"clip0_3496_34902\">\n\t\t\t\t\t<rect width={size} height={size} fill={theme.palette.ux.background.w10} />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon, useTheme } from \"@mui/material\";\n\nexport const VisibilityHideIcon = ({ size = 24, fill = \"\" }): JSX.Element => {\n\tconst theme = useTheme();\n\treturn (\n\t\t<SvgIcon sx={{ width: `${size}px`, height: `${size}px` }} viewBox=\"0 0 24 24\">\n\t\t\t<g clipPath=\"url(#clip0_3496_34944)\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M13.224 9.162C9.80697 8.253 6.75497 11.305 7.66397 14.722C8.06297 16.223 9.27797 17.438 10.779 17.837C14.196 18.746 17.248 15.694 16.339 12.277C15.939 10.776 14.725 9.562 13.224 9.162ZM13.224 9.162C9.80697 8.253 6.75497 11.305 7.66397 14.722C8.06297 16.223 9.27797 17.438 10.779 17.837C14.196 18.746 17.248 15.694 16.339 12.277C15.939 10.776 14.725 9.562 13.224 9.162ZM12.001 6C7.41597 6 3.94897 8.608 2.04097 12.428C1.90997 12.69 2.10997 13 2.40197 13H3.77397C3.91497 13 4.04397 12.923 4.11497 12.801C5.83797 9.837 8.47897 8 12.001 8C15.523 8 18.164 9.838 19.888 12.802C19.958 12.923 20.083 13 20.223 13H21.476C21.892 13 22.091 12.689 21.96 12.426C20.052 8.607 16.585 6 12.001 6ZM13.224 9.162C9.80697 8.253 6.75497 11.305 7.66397 14.722C8.06297 16.223 9.27797 17.438 10.779 17.837C14.196 18.746 17.248 15.694 16.339 12.277C15.939 10.776 14.725 9.562 13.224 9.162ZM13.224 9.162C9.80697 8.253 6.75497 11.305 7.66397 14.722C8.06297 16.223 9.27797 17.438 10.779 17.837C14.196 18.746 17.248 15.694 16.339 12.277C15.939 10.776 14.725 9.562 13.224 9.162ZM13.224 9.162C9.80697 8.253 6.75497 11.305 7.66397 14.722C8.06297 16.223 9.27797 17.438 10.779 17.837C14.196 18.746 17.248 15.694 16.339 12.277C15.939 10.776 14.725 9.562 13.224 9.162Z\"\n\t\t\t\t\tfill={fill || theme.palette.ux.secondary.wMain}\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id=\"clip0_3496_34944\">\n\t\t\t\t\t<rect width={size} height={size} fill={theme.palette.ux.background.w10} />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</SvgIcon>\n\t);\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DescriptionFieldProps, RegistryWidgetsType, RJSFSchema, TitleFieldProps, WidgetProps } from \"@rjsf/utils\";\nimport { isEmpty, toString } from \"lodash\";\nimport { useMemo, useState } from \"react\";\nimport SolaceButton from \"../form/SolaceButton\";\nimport SolaceCheckBox from \"../form/SolaceCheckBox\";\nimport SolaceSelect from \"../form/SolaceSelect\";\nimport SolaceTextArea from \"../form/SolaceTextArea\";\nimport SolaceTextField from \"../form/SolaceTextField\";\nimport SolaceTypography from \"../SolaceTypography\";\nimport { VisibilityShowIcon } from \"../../resources/icons/VisibilityShowIcon\";\nimport { VisibilityHideIcon } from \"../../resources/icons/VisibilityHideIcon\";\nimport { Box, MenuItem } from \"@mui/material\";\n\nexport enum CustomProperty {\n\terror = \"x-custom-error\",\n\thidden = \"x-custom-hidden\"\n}\n\nconst EMPTY_VALUE = \"-\";\nconst SENSITIVE_FIELD_VALUE = \"**********\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst onChangeTrigger = (props: any, e: any) => {\n\tconst value = e.value;\n\n\tif (isEmpty(toString(value))) {\n\t\tprops.onChange(undefined);\n\t} else {\n\t\tprops.onChange(value);\n\t}\n};\n\nconst isPasswordField = (schema: RJSFSchema) => {\n\treturn schema.options?.format === \"password\" || schema.format === \"password\";\n};\nconst getMaxLength = (schema: RJSFSchema, value: string, readonly = false) => {\n\t// if readonly and maxLength is set, use the length of the data to reduce empty space\n\tif (readonly) {\n\t\treturn schema.maxLength ? value.length : schema.maxLength;\n\t}\n\n\treturn schema.maxLength;\n};\n\nconst CustomTextWidget = function (\n\twidgetProps: WidgetProps,\n\ttransformWidgetProps?: (props: WidgetProps) => WidgetProps,\n\tshouldShowEmptyValueForSensitiveField?: (schema: RJSFSchema, props: WidgetProps) => boolean\n) {\n\tconst props = transformWidgetProps ? transformWidgetProps(widgetProps) : widgetProps;\n\tconst { disabled, label, name, readonly, required, schema, value } = props;\n\n\tconst errorMessage = props[CustomProperty.error] ?? \"\";\n\tconst helperMessage = readonly ? \"\" : errorMessage || schema.description;\n\tconst isSensitiveField = isPasswordField(schema);\n\n\t// state\n\tconst [showSensitiveField, setShowSensitiveField] = useState(false);\n\n\tconst shouldShowEmptyValue = useMemo(() => {\n\t\treturn readonly && isSensitiveField && !value && shouldShowEmptyValueForSensitiveField?.(schema, props);\n\t}, [isSensitiveField, props, readonly, schema, shouldShowEmptyValueForSensitiveField, value]);\n\n\tconst fieldValue = useMemo(() => {\n\t\tlet fieldValue = value ?? \"\";\n\n\t\tif (readonly) {\n\t\t\tif (isSensitiveField) {\n\t\t\t\tif (shouldShowEmptyValue) {\n\t\t\t\t\tfieldValue = EMPTY_VALUE;\n\t\t\t\t} else {\n\t\t\t\t\tfieldValue = showSensitiveField ? fieldValue : SENSITIVE_FIELD_VALUE;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfieldValue = fieldValue || EMPTY_VALUE;\n\t\t\t}\n\t\t} else if (schema.const) {\n\t\t\tfieldValue = schema.const;\n\t\t}\n\n\t\treturn fieldValue;\n\t}, [value, readonly, schema.const, isSensitiveField, showSensitiveField, shouldShowEmptyValue]);\n\n\tconst sensitiveFieldToggle = useMemo(() => {\n\t\tif (isSensitiveField && !shouldShowEmptyValue) {\n\t\t\treturn [\n\t\t\t\t<SolaceButton\n\t\t\t\t\tkey={showSensitiveField ? \"eyeIcon\" : \"hideEyeIcon\"}\n\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\tonClick={() => setShowSensitiveField(!showSensitiveField)}\n\t\t\t\t\tdataQa={showSensitiveField ? \"showPasswordButton\" : \"hidePasswordButton\"}\n\t\t\t\t>\n\t\t\t\t\t{showSensitiveField ? <VisibilityShowIcon /> : <VisibilityHideIcon />}\n\t\t\t\t</SolaceButton>\n\t\t\t];\n\t\t}\n\n\t\treturn undefined;\n\t}, [isSensitiveField, showSensitiveField, shouldShowEmptyValue]);\n\n\tconst maxLength = getMaxLength(schema, fieldValue, readonly);\n\treturn (\n\t\t<Box\n\t\t\tsx={{\n\t\t\t\tdisplay: isSensitiveField ? \"grid\" : \"block\",\n\t\t\t\tgridTemplateColumns: \"1fr auto\",\n\t\t\t\talignItems: \"flex-end\",\n\t\t\t\toverflow: \"hidden\"\n\t\t\t}}\n\t\t>\n\t\t\t{maxLength && maxLength > 100 ? (\n\t\t\t\t<SolaceTextArea\n\t\t\t\t\tname={name}\n\t\t\t\t\tlabel={label}\n\t\t\t\t\tonChange={(e) => onChangeTrigger(props, e)}\n\t\t\t\t\tvalue={fieldValue}\n\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\trequired={required && !readonly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\tmaxLength={maxLength + 1} // add one to the maxLength to display error message to user\n\t\t\t\t\thasErrors={!!errorMessage}\n\t\t\t\t\thelperText={helperMessage}\n\t\t\t\t\tplaceholder={schema.placeholder ?? \"\"}\n\t\t\t\t\tdataQa={`${label}-form-textArea`}\n\t\t\t\t></SolaceTextArea>\n\t\t\t) : (\n\t\t\t\t<SolaceTextField\n\t\t\t\t\ttype={isSensitiveField && !showSensitiveField ? \"password\" : \"text\"}\n\t\t\t\t\tlabel={label}\n\t\t\t\t\tname={name}\n\t\t\t\t\tonChange={(e) => onChangeTrigger(props, e)}\n\t\t\t\t\tvalue={fieldValue}\n\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\trequired={required && !readonly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tendAdornment={!readonly ? sensitiveFieldToggle : undefined}\n\t\t\t\t\thasErrors={!!errorMessage}\n\t\t\t\t\thelperText={helperMessage}\n\t\t\t\t\tplaceholder={schema.placeholder ?? \"\"}\n\t\t\t\t\tdataQa={`${label}-form-textField`}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{readonly && sensitiveFieldToggle ? <Box ml={1}>{sensitiveFieldToggle}</Box> : null}\n\t\t</Box>\n\t);\n};\n\nconst CustomSelectWidget = function (\n\twidgetProps: WidgetProps,\n\ttransformWidgetProps?: (props: WidgetProps) => WidgetProps\n) {\n\tconst props = transformWidgetProps ? transformWidgetProps(widgetProps) : widgetProps;\n\tconst { disabled, id, label, name, options, readonly, required, schema, title, value } = props;\n\tconst errorMessage = props[CustomProperty.error] ?? \"\";\n\tconst helperMessage = readonly ? \"\" : errorMessage || schema.description;\n\n\treturn options.enumOptions !== undefined ? (\n\t\t<Box mb={props.id.includes(\"oneof\") ? 2 : 0}>\n\t\t\t<SolaceSelect\n\t\t\t\tlabel={label}\n\t\t\t\tname={name}\n\t\t\t\tonChange={(e) => onChangeTrigger(props, e)}\n\t\t\t\tvalue={value}\n\t\t\t\treadOnly={readonly}\n\t\t\t\trequired={required && !readonly}\n\t\t\t\tdisabled={disabled}\n\t\t\t\ttitle={title}\n\t\t\t\tid={id}\n\t\t\t\thasErrors={!!errorMessage}\n\t\t\t\thelperText={helperMessage}\n\t\t\t\tdataQa={`${id}-form-select`}\n\t\t\t>\n\t\t\t\t{options.enumOptions.map((option) => (\n\t\t\t\t\t<MenuItem value={option.value} key={option.label}>\n\t\t\t\t\t\t{option.label}\n\t\t\t\t\t</MenuItem>\n\t\t\t\t))}\n\t\t\t</SolaceSelect>\n\t\t</Box>\n\t) : (\n\t\t<></>\n\t);\n};\n\nconst CustomCheckboxWidget = function (\n\twidgetProps: WidgetProps,\n\ttransformWidgetProps?: (props: WidgetProps) => WidgetProps\n) {\n\tconst props = transformWidgetProps ? transformWidgetProps(widgetProps) : widgetProps;\n\tconst { disabled, label, name, readonly, required, schema, value } = props;\n\tconst errorMessage = props[CustomProperty.error] ?? \"\";\n\tconst helperMessage = readonly ? \"\" : errorMessage || schema.description;\n\n\treturn (\n\t\t<SolaceCheckBox\n\t\t\tname={name}\n\t\t\tlabel={label}\n\t\t\tonChange={(e) => props.onChange(e.value)}\n\t\t\treadOnly={readonly}\n\t\t\trequired={required && !readonly}\n\t\t\tdisabled={disabled}\n\t\t\tchecked={value}\n\t\t\thasErrors={!!errorMessage}\n\t\t\thelperText={helperMessage}\n\t\t\tdataQa={`${label}-form-checkbox`}\n\t\t/>\n\t);\n};\n\nfunction CustomDescriptionFieldTemplate(\n\ttemplateProps: DescriptionFieldProps,\n\ttransformTemplateProps?: (props: DescriptionFieldProps) => DescriptionFieldProps\n) {\n\tconst props = transformTemplateProps ? transformTemplateProps(templateProps) : templateProps;\n\tconst { description, id } = props;\n\n\treturn description === CustomProperty.hidden ? null : <SolaceTypography id={id}>{description}</SolaceTypography>;\n}\n\nfunction CustomTitleFieldTemplate(\n\ttemplateProps: TitleFieldProps,\n\ttransformTemplateProps?: (props: TitleFieldProps) => TitleFieldProps\n) {\n\tconst props = transformTemplateProps ? transformTemplateProps(templateProps) : templateProps;\n\tconst { id, title } = props;\n\n\treturn title === CustomProperty.hidden ? null : (\n\t\t<SolaceTypography id={id} variant=\"h5\">\n\t\t\t{title}\n\t\t</SolaceTypography>\n\t);\n}\n\nexport const getTemplates = (\n\ttransformDescriptionProps?: (props: DescriptionFieldProps) => DescriptionFieldProps,\n\ttransformTitleProps?: (props: TitleFieldProps) => TitleFieldProps\n) => {\n\treturn {\n\t\tDescriptionFieldTemplate: (props: DescriptionFieldProps) =>\n\t\t\tCustomDescriptionFieldTemplate(props, transformDescriptionProps),\n\t\tTitleFieldTemplate: (props: TitleFieldProps) => CustomTitleFieldTemplate(props, transformTitleProps)\n\t};\n};\n\nexport const getWidgets = (\n\ttransformWidgetProps?: (props: WidgetProps) => WidgetProps,\n\tshouldShowEmptyValueForSensitiveField?: (schema: RJSFSchema, props: WidgetProps) => boolean\n): RegistryWidgetsType => {\n\treturn {\n\t\tCheckboxWidget: (props: WidgetProps) => CustomCheckboxWidget(props, transformWidgetProps),\n\t\tSelectWidget: (props: WidgetProps) => CustomSelectWidget(props, transformWidgetProps),\n\t\tTextWidget: (props: WidgetProps) =>\n\t\t\tCustomTextWidget(props, transformWidgetProps, shouldShowEmptyValueForSensitiveField),\n\t\tPasswordWidget: (props: WidgetProps) =>\n\t\t\tCustomTextWidget(props, transformWidgetProps, shouldShowEmptyValueForSensitiveField)\n\t};\n};\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Form } from \"@rjsf/mui\";\nimport { CustomProperty, getTemplates, getWidgets } from \"./jsonSchemaFormUtils\";\nimport { RJSFSchema, UiSchema, WidgetProps } from \"@rjsf/utils\";\nimport { customizeValidator } from \"@rjsf/validator-ajv8\";\nimport Ajv2020 from \"ajv/dist/2020\";\nimport { styled } from \"@mui/material\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport { ElementType } from \"react\";\nimport Ajv from \"ajv\";\n\nenum FormFieldType {\n\tdescription = \"description\",\n\tproperty = \"property\",\n\tsubmitButton = \"submitButton\",\n\ttitle = \"title\"\n}\ninterface FormItem {\n\tid: string; // unique id for the form\n\tschema: unknown; // must be castable to RJSFSchema\n}\ninterface FormOptions {\n\torder?: string[];\n\tisHidden?: (fieldType: FormFieldType, propertyName?: string, data?: any) => boolean;\n\tshouldShowEmptyValueForSensitiveField?: (schema: RJSFSchema, props: WidgetProps) => boolean;\n\ttagName?: ElementType<any> | undefined;\n}\n\n/**\n * Custom form component to override Form styles built into rjsf\n */\nconst CustomForm = styled(Form)(({ theme }) => ({\n\t\".solaceJsonSchemaForm\": {\n\t\tmaxWidth: \"585px\",\n\t\t\".MuiTypography-root\": {\n\t\t\tpadding: theme.spacing(3, 0), // form titles\n\n\t\t\t\"&.MuiTypography-caption\": {\n\t\t\t\tdisplay: \"none\" // hide form captions\n\t\t\t}\n\t\t},\n\t\t\".MuiFormControl-root\": {\n\t\t\t\".MuiGrid-root\": {\n\t\t\t\tpadding: 0,\n\t\t\t\tmargin: `0 16px 0 0 !important` // override rjsf element margin styles\n\t\t\t},\n\t\t\t\".form-group.field\": {\n\t\t\t\tpaddingBottom: theme.spacing(2), // form fields\n\n\t\t\t\t\"&.field-error ul\": {\n\t\t\t\t\tdisplay: \"none\" // hide error list\n\t\t\t\t},\n\n\t\t\t\t\".MuiBox-root\": {\n\t\t\t\t\t\"label .MuiFormLabel-asterisk\": {\n\t\t\t\t\t\tdisplay: \"none\"\n\t\t\t\t\t},\n\t\t\t\t\t\"label[for] .MuiFormLabel-asterisk\": {\n\t\t\t\t\t\tdisplay: \"inline\" // display only first asterisk on label for input\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\".form-group.field-array\": {\n\t\t\t\t// override rjsf array styles\n\t\t\t\t\".MuiPaper-root\": {\n\t\t\t\t\tboxShadow: \"none\",\n\t\t\t\t\tborder: `1px solid ${theme.palette.ux.secondary.w20}`,\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tmargin: theme.spacing(1, 0, 0, 0)\n\t\t\t\t},\n\t\t\t\t\".MuiTypography-root\": {\n\t\t\t\t\tpadding: theme.spacing(1, 0)\n\t\t\t\t},\n\t\t\t\t\".form-group.field\": {\n\t\t\t\t\tpaddingBottom: theme.spacing(2),\n\t\t\t\t\t\"&.field-object\": {\n\t\t\t\t\t\tpaddingBottom: 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}));\n\n/**\n * Returns the order of the form items ensuring there is an asterisk to include all fields\n */\nconst getOrder = (order: any) => {\n\tlet uiOrder;\n\n\tif (order?.length > 0) {\n\t\tif (!order.includes(\"*\")) {\n\t\t\torder.push(\"*\");\n\t\t}\n\n\t\tuiOrder = order;\n\t}\n\n\treturn uiOrder;\n};\n\n/**\n * Recursively hides properties based on the isHidden function\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst hideProperties = (isHidden: any, uiSchema: UiSchema, schema: any) => {\n\tif (!schema) {\n\t\treturn;\n\t}\n\n\tconst properties = schema.properties;\n\n\tif (properties) {\n\t\tfor (const property in properties) {\n\t\t\t// hide all errors - errors are displayed with custom widgets\n\t\t\tuiSchema[property] = { \"ui:hideError\": true };\n\t\t\tif (isHidden(FormFieldType.property, property, properties[property])) {\n\t\t\t\t// hide rjsf property widget\n\t\t\t\tuiSchema[property][\"ui:widget\"] = \"hidden\";\n\t\t\t} else if (isHidden(FormFieldType.description, property, properties[property])) {\n\t\t\t\t// hide rjsf property description via custom handling - descriptions are displayed with custom widgets\n\t\t\t\tuiSchema[property][\"ui:description\"] = CustomProperty.hidden;\n\t\t\t}\n\t\t\t// Recursively process nested properties\n\t\t\tif (properties[property] && typeof properties[property] === \"object\") {\n\t\t\t\tif (!uiSchema[property]) {\n\t\t\t\t\tuiSchema[property] = {};\n\t\t\t\t}\n\t\t\t\thideProperties(isHidden, uiSchema[property], properties[property]);\n\t\t\t}\n\t\t}\n\t} else if (typeof schema === \"object\") {\n\t\tfor (const property in schema) {\n\t\t\thideProperties(isHidden, uiSchema, schema[property]);\n\t\t}\n\t}\n};\n\nexport interface SolaceJsonSchemaFormProps extends SolaceComponentProps {\n\t/*\n\t * The form item to render with an id and schema.\n\t *\n\t * id: string; // unique id for the form\n\t * schema: unknown; // must be castable to RJSFSchema\n\t */\n\tformItem: FormItem;\n\t/**\n\t * The form data to render in the form.\n\t */\n\tformData?: Record<string, unknown>;\n\t/**\n\t * The form options to customize the form, including:\n\t *\n\t * order?: string[]; // ordered property keys for display\n\t * isHidden?: () => boolean; // function to determine if field should be hidden,\n\t * shouldShowEmptyValueForSensitiveField?: (schema: RJSFSchema, props: WidgetProps) => boolean; // function to determine if empty sensitive fields should show empty value instead of sensitive field toggle in readonly mode,\n\t * tagName?: ElementType<any> | undefined; // tag name (eg. \"div\") to replace \"form\" and support embedding in other forms\n\t */\n\tformOptions?: FormOptions;\n\t/*\n\t * Whether the form is read-only.\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Whether the form is disabled.\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Can be used in trigger form validation manually\n\t * e.g. formRef.current.validateForm()\n\t */\n\tformRef?: any;\n\t/**\n\t * Whether to validate the form data live\n\t */\n\tliveValidate?: boolean;\n\t/**\n\t * Callback function when the form data changes.\n\t */\n\tonChange?: (formData: any, formErrors: any[]) => void;\n\t/**\n\t * Function to transform the description widget props.\n\t */\n\ttransformDescription?: (props: any) => any;\n\t/**\n\t * Function to transform the error message.\n\t */\n\ttransformError?: (error: { name: string; message: string }) => any;\n\t/**\n\t * Function to transform the widget props.\n\t */\n\ttransformWidget?: (props: any) => any;\n\t/**\n\t * Function to transform the title widget props.\n\t */\n\ttransformTitle?: (props: any) => any;\n\t/**\n\t * Custom Ajv to use for the form, default to Ajv2020.\n\t */\n\tajvClass?: typeof Ajv;\n}\n\nfunction SolaceJsonSchemaForm({\n\tformItem,\n\tformData = {},\n\tformOptions = {},\n\treadOnly = false,\n\tdisabled = false,\n\tformRef,\n\tliveValidate = true,\n\tonChange,\n\ttransformDescription,\n\ttransformError,\n\ttransformWidget,\n\ttransformTitle,\n\tajvClass\n}: Readonly<SolaceJsonSchemaFormProps>) {\n\tconst schema = formItem.schema as RJSFSchema;\n\tconst { order, isHidden, shouldShowEmptyValueForSensitiveField, tagName } = formOptions;\n\tconst customValidator = customizeValidator({ AjvClass: ajvClass ?? Ajv2020 });\n\n\t/**\n\t * Build the uiSchema to support:\n\t * - overriding default styles\n\t * - ordering form items\n\t * - hiding widgets/properties\n\t */\n\tconst uiSchema: UiSchema = {\n\t\t\"ui:classNames\": \"solaceJsonSchemaForm\"\n\t};\n\n\tuiSchema[\"ui:order\"] = getOrder(order);\n\n\tif (isHidden) {\n\t\tif (isHidden(FormFieldType.submitButton)) {\n\t\t\tuiSchema[\"ui:submitButtonOptions\"] = { norender: true };\n\t\t}\n\n\t\tif (isHidden(FormFieldType.title)) {\n\t\t\tuiSchema[\"ui:options\"] = { label: false };\n\t\t}\n\n\t\thideProperties(isHidden, uiSchema, schema);\n\t}\n\n\t/**\n\t * Returns the transformed widget props with the first error message set as a custom error message for display\n\t */\n\tfunction transformWidgetProps(props: any) {\n\t\tconst newProps = transformWidget?.(props) ?? { ...props };\n\t\tconst hasErrors = props.rawErrors && props.rawErrors.length > 0;\n\n\t\tif (hasErrors) {\n\t\t\tnewProps[CustomProperty.error] = Array.from(new Set(props.rawErrors)).join(\", \");\n\t\t}\n\n\t\treturn newProps;\n\t}\n\n\t/**\n\t * Returns all errors, transformed by the provided function if it exists\n\t */\n\tfunction transformErrors(errors: any[]) {\n\t\tif (!transformError) {\n\t\t\treturn errors;\n\t\t}\n\n\t\treturn errors.map((error) => {\n\t\t\treturn transformError?.(error) ?? error;\n\t\t});\n\t}\n\n\tfunction handleOnChange(data: any) {\n\t\tonChange?.(data.formData, data.errors);\n\t}\n\n\treturn (\n\t\t<CustomForm\n\t\t\ttagName={tagName}\n\t\t\tkey={formItem.id}\n\t\t\tidPrefix={formItem.id}\n\t\t\tschema={schema}\n\t\t\tuiSchema={uiSchema}\n\t\t\tvalidator={customValidator}\n\t\t\twidgets={getWidgets(transformWidgetProps, shouldShowEmptyValueForSensitiveField)}\n\t\t\ttemplates={getTemplates(transformDescription, transformTitle)}\n\t\t\tformData={formData}\n\t\t\tonChange={handleOnChange}\n\t\t\treadonly={readOnly}\n\t\t\tdisabled={disabled}\n\t\t\tliveValidate={liveValidate}\n\t\t\tshowErrorList={false}\n\t\t\ttransformErrors={transformErrors}\n\t\t\tdata-qa={formItem.id}\n\t\t\tref={formRef}\n\t\t/>\n\t);\n}\n\nexport default SolaceJsonSchemaForm;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport SolaceTooltip from \"./SolaceToolTip\";\nimport SolaceButton from \"./form/SolaceButton\";\n\nconst TextWrapper = styled(\"div\")(() => ({\n\twhiteSpace: \"nowrap\",\n\toverflow: \"hidden\",\n\ttextOverflow: \"ellipsis\",\n\tmaxWidth: \"100%\"\n}));\n\nconst SolaceButtonWrapper = styled(\"div\")(() => ({\n\tdisplay: \"flex\",\n\tbutton: {\n\t\twhiteSpace: \"nowrap\",\n\t\toverflow: \"hidden\",\n\t\ttextOverflow: \"ellipsis\",\n\t\tdisplay: \"inline-block\",\n\t\tmaxWidth: \"100%\",\n\t\t// Overriding a default global button style\n\t\t\"&.MuiLink-root:hover\": {\n\t\t\tbackgroundColor: \"inherit\"\n\t\t}\n\t},\n\ta: {\n\t\toverflow: \"hidden\",\n\t\tmaxWidth: \"100%\",\n\t\tspan: {\n\t\t\twhiteSpace: \"nowrap\",\n\t\t\toverflow: \"hidden\",\n\t\t\ttextOverflow: \"ellipsis\",\n\t\t\twidth: \"100%\"\n\t\t}\n\t}\n}));\n\nexport interface SolaceTruncatableLinkProps extends SolaceComponentProps {\n\t/**\n\t * Unique identifier for the component\n\t */\n\tid: string;\n\t/**\n\t * This is the text that will be displayed in the button\n\t */\n\ttext: string | JSX.Element;\n\t/**\n\t * This is the function that will be called when the button/link is clicked\n\t */\n\tonClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n\t/**\n\t * This is the data-qa attribute for the component to identify it in tests\n\t */\n\tdataQa?: string;\n\t/**\n\t * This is the href for the external link\n\t */\n\thref?: string;\n}\n\n/**\n * This component allows the SolaceButton (\"link\") to truncate its text with an ellipsis and provide a tooltip\n */\nfunction SolaceTruncatableLink({ id, text, onClick, dataQa, href }: SolaceTruncatableLinkProps) {\n\treturn (\n\t\t<>\n\t\t\t{(href || onClick) && (\n\t\t\t\t<SolaceButtonWrapper key={`${id}-link`} data-qa={`${id}-link`}>\n\t\t\t\t\t<SolaceButton\n\t\t\t\t\t\tvariant={\"link\"}\n\t\t\t\t\t\thref={!onClick && href ? href : undefined}\n\t\t\t\t\t\tonClick={!href && onClick ? onClick : undefined}\n\t\t\t\t\t\tdense={true}\n\t\t\t\t\t\tdataQa={dataQa}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SolaceTooltip variant=\"overflow\" title={text} maxWidth=\"medium\" placement=\"bottom-end\">\n\t\t\t\t\t\t\t{text}\n\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t</SolaceButton>\n\t\t\t\t</SolaceButtonWrapper>\n\t\t\t)}\n\t\t\t{!onClick && !href && (\n\t\t\t\t<TextWrapper key={`${id}-text`} data-qa={`${id}-text`} className=\"textWrapper\">\n\t\t\t\t\t<SolaceTooltip variant=\"overflow\" title={text} maxWidth=\"medium\" placement=\"bottom-end\">\n\t\t\t\t\t\t{text}\n\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t</TextWrapper>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport default SolaceTruncatableLink;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IconButton, styled } from \"@mui/material\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { CloseIcon } from \"../resources/icons/CloseIcon\";\n\nexport const ColoredBase = styled(\"div\", {\n\tshouldForwardProp: (key: string) => key !== \"bgColor\" && key !== \"fgColor\"\n})<{\n\tbgColor: string;\n\tfgColor: string;\n}>(\n\t({ theme, bgColor = \"#FFFFFF\", fgColor = \"#000000\" }) => `\n\talign-items: center;\n\tbackground-color: ${bgColor};\n\tborder-color: ${bgColor?.toUpperCase() === \"#FFFFFF\" ? theme.palette.ux.secondary.w100 : \"transparent\"};\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-radius: ${theme.spacing(0.5)};\n\tbox-sizing: border-box;\n\tcolor: ${fgColor};\n\tcursor: default;\n\tdisplay: inline-flex;\n\theight: ${theme.spacing(3)};\n\tsvg {\n\t\tfill: ${fgColor};\n\t}`\n);\n\nconst ColoredContainer = styled(ColoredBase, {\n\tshouldForwardProp: (key: string) => key !== \"maxWidth\" && key !== \"iconOnly\" && key !== \"removable\"\n})<{\n\tmaxWidth: `${number}px` | `${number}%`;\n\ticonOnly: boolean;\n\tremovable: boolean;\n}>(\n\t({ theme, maxWidth, iconOnly, removable }) => `\n\tcolumn-gap: ${theme.spacing(0.5)};\n\tfont-family: ${theme.typography.body1.fontFamily};\n\tfont-size: ${theme.typography.body1.fontSize};\n\tfont-weight: ${theme.typography.body1.fontWeight};\n\twidth: fit-content;\n\tmax-width: ${maxWidth};\n\tpadding: ${iconOnly || removable ? theme.spacing(0, 0.5) : theme.spacing(0, 1, 0, 0.5)};\n\t.MuiIconButton-root:hover {\n\t\tbackground-color: ${theme.palette.ux.secondary.w20};\n\t}`\n);\n\nconst Icon = styled(\"span\")`\n\tdisplay: flex;\n`;\n\nconst Text = styled(\"span\")`\n\tflex: 1 0 0%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n`;\n\nexport interface SolaceEnvironmentChipProps extends SolaceComponentProps {\n\t/**\n\t * \tThe text of the component\n\t */\n\tlabel?: string;\n\t/**\n\t * Sets the fill color of the component (RGB like \"#3C69E1\")\n\t */\n\tbgColor: string;\n\t/**\n\t * Sets the text color of the label (RGB like \"#FFFFFF\")\n\t */\n\tfgColor: string;\n\t/**\n\t * Add a leading icon (from maas-icons) and ensure the size of the icon is 16x16 pixels\n\t */\n\ticon: JSX.Element;\n\t/**\n\t * Adds a close icon and makes the component removable\n\t */\n\tonDelete?: () => void;\n\t/**\n\t * Max width of the chip, default to 200px\n\t */\n\tmaxWidth?: `${number}px` | `${number}%`;\n}\n\nexport default function SolaceEnvironmentChip({\n\tlabel,\n\tbgColor,\n\tfgColor,\n\ticon,\n\tmaxWidth,\n\tdataQa,\n\tdataTags,\n\tonDelete\n}: SolaceEnvironmentChipProps): JSX.Element {\n\treturn (\n\t\t<ColoredContainer\n\t\t\tbgColor={bgColor}\n\t\t\tfgColor={fgColor}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t\tmaxWidth={maxWidth ?? \"200px\"}\n\t\t\ticonOnly={!label}\n\t\t\tremovable={!!onDelete}\n\t\t>\n\t\t\t{icon && <Icon>{icon}</Icon>}\n\t\t\t{label && <Text>{label}</Text>}\n\t\t\t{onDelete && (\n\t\t\t\t<IconButton data-qa={`${dataQa}-delete`} type=\"button\" onClick={onDelete}>\n\t\t\t\t\t<CloseIcon size={16} fill={fgColor} />\n\t\t\t\t</IconButton>\n\t\t\t)}\n\t\t</ColoredContainer>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\n\nimport { ColoredBase, SolaceEnvironmentChipProps } from \"./SolaceEnvironmentChip\";\n\nconst ColoredIcon = styled(ColoredBase, { shouldForwardProp: (prop) => prop !== \"disabled\" })<{ disabled?: boolean }>(\n\t({ theme, disabled }) => `\n\topacity: ${disabled ? 0.38 : 1}; // Use same opacity for disabled icon container as MUI menu item\n\tjustify-content: center;\n\tmin-width: ${theme.spacing(3)};`\n);\n\nconst Container = styled(\"div\")(\n\t({ theme }) => `\n\talign-items: center;\n\tcolumn-gap: ${theme.spacing(2)};\n\tdisplay: inline-flex;\n\tfont-family: ${theme.typography.body1.fontFamily};\n\tfont-size: ${theme.typography.body1.fontSize};\n\tfont-weight: ${theme.typography.body1.fontWeight};\n\theight: ${theme.spacing(3)};\n\twidth: 100%`\n);\n\nconst Text = styled(\"span\")(`\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n`);\n\nconst Label = styled(Text, { shouldForwardProp: (key: string) => key !== \"variant\" && key !== \"disabled\" })<{\n\tvariant?: \"standard\" | \"title\";\n\tdisabled?: boolean;\n}>(({ theme, variant, disabled = false }) =>\n\tvariant === \"title\"\n\t\t? `\n\tcolor: ${disabled ? theme.palette.ux.deprecated.secondary.text.w50 : theme.palette.ux.primary.text.wMain};\n\tfont-family: ${theme.typography.h1.fontFamily};\n\tfont-size: ${theme.typography.h1.fontSize};\n\tfont-weight: ${theme.typography.h1.fontWeight};`\n\t\t: `\n\tcolor: ${disabled ? theme.palette.ux.deprecated.secondary.text.w50 : theme.palette.ux.primary.text.wMain};`\n);\n\nexport interface SolaceEnvironmentLabelProps extends SolaceEnvironmentChipProps {\n\t/**\n\t * With \"standard\", the label is inside the box, whereas with \"label\" and \"title\" only the icon displays the colours.\n\t * The \"title\" variant use bold and bigger font (h4)\n\t */\n\tvariant?: \"standard\" | \"title\";\n\tdisabled?: boolean;\n}\n\nexport default function SolaceEnvironmentLabel({\n\tlabel,\n\tbgColor,\n\tfgColor,\n\ticon,\n\tvariant,\n\tdataQa,\n\tdataTags,\n\tdisabled = false\n}: SolaceEnvironmentLabelProps): JSX.Element {\n\treturn (\n\t\t<Container data-qa={dataQa} data-tags={dataTags}>\n\t\t\t<ColoredIcon bgColor={bgColor} fgColor={fgColor} disabled={disabled}>\n\t\t\t\t{icon}\n\t\t\t</ColoredIcon>\n\t\t\t<Label variant={variant} disabled={disabled}>\n\t\t\t\t{label}\n\t\t\t</Label>\n\t\t</Container>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { styled } from \"@mui/material\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\n\nconst FeatureTag = styled(\"span\")(\n\t({ theme }) => `\n\tborder: 2px solid ${theme.palette.ux.secondary.text.w50};\n\tborder-radius: ${theme.spacing(0.5)};\n\tbox-sizing: border-box;\n\tcolor: ${theme.palette.ux.secondary.text.w50};\n\tfont-size: 10px;\n\tfont-weight: 500;\n\tline-height: 10px;\n\tpadding: ${theme.spacing(0.25, 1)};\n\ttext-transform: uppercase;\n\t&.active {\n\t\tborder-color: ${theme.palette.ux.primary.wMain};\n\t\tcolor: ${theme.palette.ux.primary.wMain};\n\t}`\n);\n\nexport interface SolaceFeatureTagProps extends SolaceComponentProps {\n\t/**\n\t * The feature's text (e.g. \"BETA\")\n\t */\n\ttext: string;\n\t/**\n\t * When true, use the branding color\n\t */\n\tactive?: boolean;\n}\n\nexport default function SolaceFeatureTag({ text, active, dataQa, dataTags }: SolaceFeatureTagProps): JSX.Element {\n\treturn (\n\t\t<FeatureTag data-qa={dataQa} data-tags={dataTags} className={active ? \"active\" : \"\"}>\n\t\t\t{text}\n\t\t</FeatureTag>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MouseEventHandler, useMemo } from \"react\";\nimport { styled } from \"@mui/material\";\nimport SolaceTooltip from \"../SolaceToolTip\";\n\nconst shouldForwardProp = (prop: PropertyKey) => prop !== \"active\";\n\nconst ViewsContainer = styled(\"div\")(\n\t({ theme }) => `\n\tdisplay: flex;\n\tflex-direction: row;\n\theight: ${theme.spacing(5)};`\n);\n\nconst ViewButton = styled(\"a\", { shouldForwardProp })<{ active?: boolean }>(({ theme, active }) =>\n\tactive\n\t\t? `\n\tbackground-color: ${theme.palette.ux.background.w10};\n\tborder-inline: 1px solid ${theme.palette.ux.secondary.w20};\n\tbox-sizing: border-box;\n\tcolor: ${theme.palette.ux.primary.text.wMain};\n\tcursor: default;\n\tfill: ${theme.palette.ux.primary.text.wMain};\n\tposition: relative;`\n\t\t: `\n\tbackground-color: ${theme.palette.ux.background.w20};\n\tborder-bottom: 1px solid ${theme.palette.ux.secondary.w40};\n\tbox-sizing: border-box;\n\tcolor: ${theme.palette.ux.secondary.wMain};\n\tcursor: pointer;\n\tfill: ${theme.palette.ux.secondary.wMain};\n\tposition: relative;\n\t&:hover {\n\t\tbackground-color: ${theme.palette.ux.secondary.w10};\n\t\tcolor: ${theme.palette.ux.primary.text.wMain};\n\t}`\n);\n\nconst ViewActive = styled(\"div\")(\n\t({ theme }) => `\n\tbackground-color: ${theme.palette.ux.accent.n2.wMain};\n\theight: 2px;\n\tposition: absolute;\n\twidth: 100%;`\n);\n\nconst ViewIcon = styled(\"div\")(\n\t({ theme }) => `\n\tpadding: ${theme.spacing(1, 1)};\n\t> svg {\n\t\tvertical-align: top;\n\t}`\n);\n\nexport type SolaceIconTabsButton = {\n\t/**\n\t * Icon of the view\n\t */\n\ticon: JSX.Element;\n\t/**\n\t * Unique identifier of the view\n\t */\n\tvalue: string;\n\t/**\n\t * Tooltip of the view\n\t */\n\ttooltip: string;\n};\n\nexport interface SolaceIconTabsProps {\n\t/**\n\t * Array of views (typical is 2 views but could be more)\n\t */\n\tviews: SolaceIconTabsButton[];\n\t/**\n\t * The value of the active view\n\t */\n\tactiveViewValue: string;\n\t/**\n\t * Callback fired when the value changes.\n\t */\n\tonViewClick: (value: string) => void;\n}\n\nexport default function SolaceIconTabs({ views, activeViewValue, onViewClick }: SolaceIconTabsProps): JSX.Element {\n\tconst handleClick = useMemo(\n\t\t() =>\n\t\t\tviews.map<MouseEventHandler<HTMLAnchorElement>>(\n\t\t\t\t({ value }) =>\n\t\t\t\t\t() =>\n\t\t\t\t\t\tonViewClick(value)\n\t\t\t),\n\t\t[onViewClick, views]\n\t);\n\n\treturn (\n\t\t<ViewsContainer role=\"tablist\">\n\t\t\t{views.map(({ icon, tooltip, value }, index) => (\n\t\t\t\t<SolaceTooltip key={`tooltip-${value}`} title={tooltip} placement=\"bottom-start\">\n\t\t\t\t\t<ViewButton\n\t\t\t\t\t\tkey={value}\n\t\t\t\t\t\tactive={value === activeViewValue}\n\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\tonClick={handleClick[index]}\n\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{value === activeViewValue && <ViewActive />}\n\t\t\t\t\t\t<ViewIcon>{icon}</ViewIcon>\n\t\t\t\t\t</ViewButton>\n\t\t\t\t</SolaceTooltip>\n\t\t\t))}\n\t\t</ViewsContainer>\n\t);\n}\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\nimport { styled } from \"@mui/material\";\nimport SolaceFeatureTag from \"../SolaceFeatureTag\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport SolaceBreadcrumb, { SolacePath } from \"../SolaceBreadcrumb\";\nimport SolaceTooltip from \"../SolaceToolTip\";\nimport { TitleLocation } from \"@src/types/solacePageHeader\";\n\n/**\n Structure of this Page Header component:\n 1st row: {environment}{returnTo}|{release}{breadcrumbs {breadcrumb1} > {breadcrumb2} > ...}\n 2nd row: {views}{title}: {sub-title}{tabs}{actions}{action-menu}\n*/\n\nconst translateColor = (color?: string): string => {\n\tif (color?.toUpperCase() === \"#FFFFFF\") {\n\t\treturn \"#000000\";\n\t}\n\treturn color || \"transparent\";\n};\n\nconst Layout = styled(\"header\", { shouldForwardProp: (prop: PropertyKey) => prop !== \"borderTop\" })<{\n\tborderTop?: string;\n}>(\n\t({ theme, borderTop }) => `\n\tbackground-color: ${theme.palette.background.paper};\n\tborder-bottom: 1px solid ${theme.palette.ux.secondary.w40};\n\tborder-top: 2px solid ${translateColor(borderTop)};\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: ${theme.spacing(10)};\n\tpadding: ${theme.spacing(0, 3)};`\n);\n\nconst NavSection = styled(\"div\")(\n\t({ theme }) => `\n\talign-items: center;\n\tcolumn-gap: ${theme.spacing(1)};\n\tdisplay: flex;\n\tflex: 1 0 0%;\n\tflex-direction: row;\n\tfont-size: ${theme.typography.body1.fontSize};\n\tfont-weight: ${theme.typography.body1.fontWeight};\n\tpadding: ${theme.spacing(0.5)} 0`\n);\n\nconst Wrapper = styled(\"div\")(\n\t({ theme }) => `\n\tdisplay: flex;\n\theight: ${theme.spacing(3)};`\n);\n\nconst NavBorder = styled(Wrapper)(\n\t({ theme }) => `\n\tborder-right: 1px solid ${theme.palette.ux.secondary.w40};`\n);\n\nconst HeaderSection = styled(\"div\", {\n\tshouldForwardProp: (propName) => propName !== \"titleLocation\"\n})<{ titleLocation: TitleLocation }>(\n\t({ theme, titleLocation }) => `\n\talign-items: center;\n\tcolor: ${theme.palette.ux.primary.text.wMain};\n\tcolumn-gap: ${theme.spacing(2)};\n\tdisplay: flex;\n\tflex-direction: row;\n\theight: ${titleLocation === TitleLocation.LEFT_OF_TABS ? theme.spacing(5.25) : \"auto\"};\n\tmargin-bottom: ${titleLocation === TitleLocation.TOP_OF_TABS ? \"-1px\" : 0}`\n);\n\nconst IconTabsSection = styled(\"div\", {\n\tshouldForwardProp: (propName) => propName !== \"titleLocation\"\n})<{ titleLocation: TitleLocation }>(\n\t({ titleLocation }) => `\n\talign-self: flex-end;\n\tmargin-bottom: ${titleLocation === TitleLocation.LEFT_OF_TABS ? \"-1px\" : 0}`\n);\n\nconst TitleSection = styled(\"div\", {\n\tshouldForwardProp: (propName) => propName !== \"titleLocation\"\n})<{ titleLocation: TitleLocation }>(\n\t({ theme, titleLocation }) => `\n\tcolumn-gap: ${theme.spacing(1)};\n\tdisplay: flex;\n\tflex-direction: row;\n\tmargin: ${titleLocation === TitleLocation.TOP_OF_TABS ? theme.spacing(1, 0, 1, 0) : 0};`\n);\n\nconst Title = styled(\"div\", {\n\tshouldForwardProp: (propName) => propName !== \"hasTabs\"\n})<{ hasTabs: boolean }>(\n\t({ theme, hasTabs }) => `\n\tfont-family: ${theme.typography.h2.fontFamily};\n\tfont-size: ${theme.typography.h2.fontSize};\n\tfont-weight: ${theme.typography.h2.fontWeight};\n\tmax-width: ${hasTabs ? \"35vw\" : \"50vw\"};\n\ttext-wrap: nowrap;`\n);\n\nconst SubTitle = styled(Title)(\n\t({ theme }) => `\n\tfont-family: ${theme.typography.h1.fontFamily};\n\tfont-size: ${theme.typography.h1.fontSize};\n\tfont-weight: ${theme.typography.h1.fontWeight};`\n);\n\nconst TitleLocationTop = styled(\"div\")(\n\t({ theme }) => `\n\tfont-family: ${theme.typography.h2.fontFamily};\n\tfont-size: ${theme.typography.h2.fontSize};\n\tfont-weight: ${theme.typography.h2.fontWeight};\n\tline-height: ${theme.typography.h2.lineHeight};`\n);\n\nconst SubtitleLocationTop = styled(\"span\")(\n\t({ theme }) => `\n\tfont-family: ${theme.typography.h1.fontFamily};\n\tfont-size: ${theme.typography.h1.fontSize};\n\tfont-weight: ${theme.typography.h1.fontWeight};`\n);\n\nconst TabsSection = styled(\"div\")(\n\t({ theme }) => `\n\t.MuiTabs-root, .MuiTab-root {\n\t\tmin-height: ${theme.spacing(5.25)};\n\t}\n\tflex: 0 0 auto`\n);\n\nconst Actions = styled(\"div\")(\n\t({ theme }) => `\n\talign-items: center;\n\tflex: 1 0 0%;\n\tcolumn-gap: ${theme.spacing(1)};\n\tdisplay: flex;\n\tjustify-content: end;\n\twhite-space: nowrap;`\n);\n\nexport interface SolacePageHeaderProps extends SolaceComponentProps {\n\t/**\n\t * Optional id to be used\n\t */\n\tid?: string;\n\t/**\n\t * The header's title to display\n\t */\n\ttitle: string;\n\t/**\n\t * The sub-title to display next to the title (when used, a\n\t * column \":\" will show up after the title automagically)\n\t */\n\tsubTitle?: string;\n\t/**\n\t * The release string (e.g. \"BETA\")\n\t */\n\trelease?: string;\n\t/**\n\t * The environment's chip (#SolaceEnvironmentChip) or (#SolaceEnvironmentSelectChip)\n\t */\n\tenvironment?: JSX.Element;\n\t/**\n\t * The header's top border color (should match the bgColor used with #SolaceEnvironmentChip)\n\t */\n\tborderTop?: string;\n\t/**\n\t * Breadcrumbs where the last path should be the current one. It can be a #SolaceBreadcrumb component\n\t */\n\tbreadcrumbs?: SolacePath[] | JSX.Element;\n\t/**\n\t * Array of actions (like #SolaceButton) but can be pretty much anything you want\n\t */\n\tactions?: JSX.Element[];\n\t/**\n\t * The action menu (usually with a \"...\" icon) that will appear on 2nd row at the far end\n\t */\n\tactionMenu?: JSX.Element;\n\t/**\n\t * The tabs (#SolaceTabs) to be displayed next to the title/sub-title\n\t */\n\ttabs?: JSX.Element;\n\t/**\n\t * The icon tabs (#SolaceIconTabs) to be displayed before the title/sub-title\n\t */\n\ticonTabs?: JSX.Element;\n\t/**\n\t * Used to add a \"Return to X\" link in front of the breadcrumbs (NOTE: this property may go away in the future)\n\t */\n\treturnTo?: JSX.Element;\n\t/**\n\t * Used to determine the location of the title. Options: TOP_OF_TABS, LEFT_OF_TABS\n\t */\n\ttitleLocation?: TitleLocation;\n}\n\nexport default function SolacePageHeader({\n\tid,\n\ttitle,\n\tsubTitle,\n\trelease,\n\tenvironment,\n\tborderTop,\n\tbreadcrumbs,\n\tactions,\n\tactionMenu,\n\ttabs,\n\ticonTabs,\n\treturnTo,\n\tdataQa,\n\tdataTags,\n\ttitleLocation = TitleLocation.LEFT_OF_TABS\n}: SolacePageHeaderProps): JSX.Element {\n\tconst getId = (suffix?: string) => `${id ?? \"default\"}${suffix ? \"-\".concat(suffix) : \"\"}`;\n\tconst titleSection = (\n\t\t<TitleSection titleLocation={titleLocation}>\n\t\t\t{titleLocation === TitleLocation.LEFT_OF_TABS ? (\n\t\t\t\t<>\n\t\t\t\t\t<Title id={getId(\"title\")} data-qa=\"solace-header-title\" hasTabs={!!tabs}>\n\t\t\t\t\t\t<SolaceTooltip title={title} variant=\"overflow\">\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t{subTitle ? \":\" : \"\"}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t</Title>\n\t\t\t\t\t{subTitle && (\n\t\t\t\t\t\t<SubTitle id={getId(\"subtitle\")} data-qa=\"solace-header-subtitle\" hasTabs={!!tabs}>\n\t\t\t\t\t\t\t<SolaceTooltip title={subTitle} variant=\"overflow\">\n\t\t\t\t\t\t\t\t{subTitle}\n\t\t\t\t\t\t\t</SolaceTooltip>\n\t\t\t\t\t\t</SubTitle>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<TitleLocationTop id={getId(\"title\")} data-qa=\"solace-header-title\">\n\t\t\t\t\t{title}\n\t\t\t\t\t{subTitle && (\n\t\t\t\t\t\t<SubtitleLocationTop id={getId(\"subtitle\")} data-qa=\"solace-header-subtitle\">\n\t\t\t\t\t\t\t: {subTitle}\n\t\t\t\t\t\t</SubtitleLocationTop>\n\t\t\t\t\t)}\n\t\t\t\t</TitleLocationTop>\n\t\t\t)}\n\t\t</TitleSection>\n\t);\n\n\treturn (\n\t\t<Layout id={getId()} data-qa={dataQa} data-tags={dataTags} borderTop={borderTop}>\n\t\t\t<NavSection>\n\t\t\t\t{environment}\n\t\t\t\t{returnTo}\n\t\t\t\t{(environment || returnTo) && (release || breadcrumbs) && <NavBorder />}\n\t\t\t\t{release && <SolaceFeatureTag key=\"releaseTag\" text={release} />}\n\t\t\t\t{Array.isArray(breadcrumbs) ? (\n\t\t\t\t\t<SolaceBreadcrumb id={getId(\"breadcrumbs\")} paths={breadcrumbs} />\n\t\t\t\t) : (\n\t\t\t\t\tReact.isValidElement(breadcrumbs) && breadcrumbs\n\t\t\t\t)}\n\t\t\t</NavSection>\n\t\t\t{titleLocation === TitleLocation.TOP_OF_TABS && titleSection}\n\t\t\t<HeaderSection titleLocation={titleLocation}>\n\t\t\t\t{iconTabs && <IconTabsSection titleLocation={titleLocation}>{iconTabs}</IconTabsSection>}\n\t\t\t\t{titleLocation === TitleLocation.LEFT_OF_TABS && titleSection}\n\t\t\t\t{tabs && <TabsSection>{tabs}</TabsSection>}\n\t\t\t\t{(actions || actionMenu) && (\n\t\t\t\t\t<Actions id={getId(\"actions\")}>\n\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t{actionMenu}\n\t\t\t\t\t</Actions>\n\t\t\t\t)}\n\t\t\t</HeaderSection>\n\t\t</Layout>\n\t);\n}\n","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nexport function extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useRootElementName } from '../utils/useRootElementName';\n/**\n *\n * Demos:\n *\n * - [Button](https://mui.com/base-ui/react-button/#hook)\n *\n * API:\n *\n * - [useButton API](https://mui.com/base-ui/react-button/hooks-api/#use-button)\n */\nexport function useButton(parameters = {}) {\n const {\n disabled = false,\n focusableWhenDisabled,\n href,\n rootRef: externalRef,\n tabIndex,\n to,\n type,\n rootElementName: rootElementNameProp\n } = parameters;\n const buttonRef = React.useRef();\n const [active, setActive] = React.useState(false);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && !focusableWhenDisabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useEffect(() => {\n isFocusVisibleRef.current = focusVisible;\n }, [focusVisible, isFocusVisibleRef]);\n const [rootElementName, updateRootElementName] = useRootElementName({\n rootElementName: rootElementNameProp != null ? rootElementNameProp : href || to ? 'a' : undefined,\n componentName: 'Button'\n });\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous;\n if (focusVisible) {\n event.preventDefault();\n }\n (_otherHandlers$onMous = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous.call(otherHandlers, event);\n };\n const createHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n };\n const createHandleFocus = otherHandlers => event => {\n var _otherHandlers$onFocu2;\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n var _otherHandlers$onFocu;\n setFocusVisible(true);\n (_otherHandlers$onFocu = otherHandlers.onFocusVisible) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n }\n (_otherHandlers$onFocu2 = otherHandlers.onFocus) == null || _otherHandlers$onFocu2.call(otherHandlers, event);\n };\n const isNativeButton = () => {\n const button = buttonRef.current;\n return rootElementName === 'BUTTON' || rootElementName === 'INPUT' && ['button', 'submit', 'reset'].includes(button == null ? void 0 : button.type) || rootElementName === 'A' && (button == null ? void 0 : button.href);\n };\n const createHandleClick = otherHandlers => event => {\n if (!disabled) {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n }\n };\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous2;\n if (!disabled) {\n setActive(true);\n document.addEventListener('mouseup', () => {\n setActive(false);\n }, {\n once: true\n });\n }\n (_otherHandlers$onMous2 = otherHandlers.onMouseDown) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.target === event.currentTarget && !isNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (event.target === event.currentTarget && event.key === ' ' && !disabled) {\n setActive(true);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && !isNativeButton() && event.key === 'Enter' && !disabled) {\n var _otherHandlers$onClic2;\n (_otherHandlers$onClic2 = otherHandlers.onClick) == null || _otherHandlers$onClic2.call(otherHandlers, event);\n event.preventDefault();\n }\n };\n const createHandleKeyUp = otherHandlers => event => {\n var _otherHandlers$onKeyU;\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/p/sandbox/button-keyup-preventdefault-dn7f0\n\n if (event.target === event.currentTarget) {\n setActive(false);\n }\n (_otherHandlers$onKeyU = otherHandlers.onKeyUp) == null || _otherHandlers$onKeyU.call(otherHandlers, event);\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && !isNativeButton() && !disabled && event.key === ' ' && !event.defaultMuiPrevented) {\n var _otherHandlers$onClic3;\n (_otherHandlers$onClic3 = otherHandlers.onClick) == null || _otherHandlers$onClic3.call(otherHandlers, event);\n }\n };\n const handleRef = useForkRef(updateRootElementName, externalRef, focusVisibleRef, buttonRef);\n const buttonProps = {};\n if (tabIndex !== undefined) {\n buttonProps.tabIndex = tabIndex;\n }\n if (rootElementName === 'BUTTON') {\n buttonProps.type = type != null ? type : 'button';\n if (focusableWhenDisabled) {\n buttonProps['aria-disabled'] = disabled;\n } else {\n buttonProps.disabled = disabled;\n }\n } else if (rootElementName === 'INPUT') {\n if (type && ['button', 'submit', 'reset'].includes(type)) {\n if (focusableWhenDisabled) {\n buttonProps['aria-disabled'] = disabled;\n } else {\n buttonProps.disabled = disabled;\n }\n }\n } else if (rootElementName !== '') {\n if (!href && !to) {\n buttonProps.role = 'button';\n buttonProps.tabIndex = tabIndex != null ? tabIndex : 0;\n }\n if (disabled) {\n buttonProps['aria-disabled'] = disabled;\n buttonProps.tabIndex = focusableWhenDisabled ? tabIndex != null ? tabIndex : 0 : -1;\n }\n }\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n const props = _extends({\n type\n }, externalEventHandlers, buttonProps, externalProps, {\n onBlur: createHandleBlur(externalEventHandlers),\n onClick: createHandleClick(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n onKeyUp: createHandleKeyUp(externalEventHandlers),\n onMouseDown: createHandleMouseDown(externalEventHandlers),\n onMouseLeave: createHandleMouseLeave(externalEventHandlers),\n ref: handleRef\n });\n\n // onFocusVisible can be present on the props or parameters,\n // but it's not a valid React event handler so it must not be forwarded to the inner component.\n // If present, it will be handled by the focus handler.\n delete props.onFocusVisible;\n return props;\n };\n return {\n getRootProps,\n focusVisible,\n setFocusVisible,\n active,\n rootRef: handleRef\n };\n}","'use client';\n\nimport * as React from 'react';\n/**\n * @ignore - do not document.\n *\n * Use this function determine the host element correctly on the server (in a SSR context, e.g. Next.js)\n */\nexport function useRootElementName(parameters) {\n const {\n rootElementName: rootElementNameProp = '',\n componentName\n } = parameters;\n const [rootElementName, setRootElementName] = React.useState(rootElementNameProp.toUpperCase());\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (rootElementNameProp && rootElementName !== rootElementNameProp.toUpperCase()) {\n console.error(`useRootElementName: the \\`rootElementName\\` prop of ${componentName ? `the ${componentName} component` : 'a component'} expected the '${rootElementNameProp}' element, but a '${rootElementName.toLowerCase()}' was rendered instead`, 'This may cause hydration issues in an SSR context, e.g. in a Next.js app');\n }\n }, [rootElementNameProp, rootElementName, componentName]);\n }\n const updateRootElementName = React.useCallback(instance => {\n var _instance$tagName;\n setRootElementName((_instance$tagName = instance == null ? void 0 : instance.tagName) != null ? _instance$tagName : '');\n }, []);\n return [rootElementName, updateRootElementName];\n}","export const SelectActionTypes = {\n buttonClick: 'buttonClick',\n browserAutoFill: 'browserAutoFill'\n};","export const ListActionTypes = {\n blur: 'list:blur',\n focus: 'list:focus',\n itemClick: 'list:itemClick',\n itemHover: 'list:itemHover',\n itemsChange: 'list:itemsChange',\n keyDown: 'list:keyDown',\n resetHighlight: 'list:resetHighlight',\n highlightLast: 'list:highlightLast',\n textNavigation: 'list:textNavigation',\n clearSelection: 'list:clearSelection'\n};\n\n/**\n * A union of all standard actions that can be dispatched to the list reducer.\n */","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { ListActionTypes } from './listActions.types';\n/**\n * Looks up the next valid item to highlight within the list.\n *\n * @param currentIndex The index of the start of the search.\n * @param lookupDirection Whether to look for the next or previous item.\n * @param items The array of items to search.\n * @param includeDisabledItems Whether to include disabled items in the search.\n * @param isItemDisabled A function that determines whether an item is disabled.\n * @param wrapAround Whether to wrap around the list when searching.\n * @returns The index of the next valid item to highlight or -1 if no valid item is found.\n */\nfunction findValidItemToHighlight(currentIndex, lookupDirection, items, includeDisabledItems, isItemDisabled, wrapAround) {\n if (items.length === 0 || !includeDisabledItems && items.every((item, itemIndex) => isItemDisabled(item, itemIndex))) {\n return -1;\n }\n let nextFocus = currentIndex;\n for (;;) {\n // No valid items found\n if (!wrapAround && lookupDirection === 'next' && nextFocus === items.length || !wrapAround && lookupDirection === 'previous' && nextFocus === -1) {\n return -1;\n }\n const nextFocusDisabled = includeDisabledItems ? false : isItemDisabled(items[nextFocus], nextFocus);\n if (nextFocusDisabled) {\n nextFocus += lookupDirection === 'next' ? 1 : -1;\n if (wrapAround) {\n nextFocus = (nextFocus + items.length) % items.length;\n }\n } else {\n return nextFocus;\n }\n }\n}\n\n/**\n * Gets the next item to highlight based on the current highlighted item and the search direction.\n *\n * @param previouslyHighlightedValue The item from which to start the search for the next candidate.\n * @param offset The offset from the previously highlighted item to search for the next candidate or a special named value ('reset', 'start', 'end').\n * @param context The list action context.\n *\n * @returns The next item to highlight or null if no item is valid.\n */\nexport function moveHighlight(previouslyHighlightedValue, offset, context) {\n var _items$nextIndex;\n const {\n items,\n isItemDisabled,\n disableListWrap,\n disabledItemsFocusable,\n itemComparer,\n focusManagement\n } = context;\n\n // TODO: make this configurable\n // The always should be an item highlighted when focus is managed by the DOM\n // so that it's accessible by the `tab` key.\n const defaultHighlightedIndex = focusManagement === 'DOM' ? 0 : -1;\n const maxIndex = items.length - 1;\n const previouslyHighlightedIndex = previouslyHighlightedValue == null ? -1 : items.findIndex(item => itemComparer(item, previouslyHighlightedValue));\n let nextIndexCandidate;\n let lookupDirection;\n let wrapAround = !disableListWrap;\n switch (offset) {\n case 'reset':\n if (defaultHighlightedIndex === -1) {\n return null;\n }\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'start':\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'end':\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n wrapAround = false;\n break;\n default:\n {\n const newIndex = previouslyHighlightedIndex + offset;\n if (newIndex < 0) {\n if (!wrapAround && previouslyHighlightedIndex !== -1 || Math.abs(offset) > 1) {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n } else {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n }\n } else if (newIndex > maxIndex) {\n if (!wrapAround || Math.abs(offset) > 1) {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n } else {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n }\n } else {\n nextIndexCandidate = newIndex;\n lookupDirection = offset >= 0 ? 'next' : 'previous';\n }\n }\n }\n const nextIndex = findValidItemToHighlight(nextIndexCandidate, lookupDirection, items, disabledItemsFocusable, isItemDisabled, wrapAround);\n\n // If there are no valid items to highlight, return the previously highlighted item (if it's still valid).\n if (nextIndex === -1 && previouslyHighlightedValue !== null && !isItemDisabled(previouslyHighlightedValue, previouslyHighlightedIndex)) {\n return previouslyHighlightedValue;\n }\n return (_items$nextIndex = items[nextIndex]) != null ? _items$nextIndex : null;\n}\n\n/**\n * Toggles the selection of an item.\n *\n * @param item Item to toggle.\n * @param selectedValues Already selected items.\n * @param selectionMode The number of items that can be simultanously selected.\n * @param itemComparer A custom item comparer function.\n *\n * @returns The new array of selected items.\n */\nexport function toggleSelection(item, selectedValues, selectionMode, itemComparer) {\n if (selectionMode === 'none') {\n return [];\n }\n if (selectionMode === 'single') {\n // if the item to select has already been selected, return the original array\n if (itemComparer(selectedValues[0], item)) {\n return selectedValues;\n }\n return [item];\n }\n\n // The toggled item is selected; remove it from the selection.\n if (selectedValues.some(sv => itemComparer(sv, item))) {\n return selectedValues.filter(sv => !itemComparer(sv, item));\n }\n\n // The toggled item is not selected - add it to the selection.\n return [...selectedValues, item];\n}\n\n/**\n * Handles item selection in a list.\n *\n * @param item - The item to be selected.\n * @param state - The current state of the list.\n * @param context - The context of the list action.\n * @returns The new state of the list after the item has been selected, or the original state if the item is disabled.\n */\nexport function handleItemSelection(item, state, context) {\n const {\n itemComparer,\n isItemDisabled,\n selectionMode,\n items\n } = context;\n const {\n selectedValues\n } = state;\n const itemIndex = items.findIndex(i => itemComparer(item, i));\n if (isItemDisabled(item, itemIndex)) {\n return state;\n }\n\n // if the item is already selected, remove it from the selection, otherwise add it\n const newSelectedValues = toggleSelection(item, selectedValues, selectionMode, itemComparer);\n return _extends({}, state, {\n selectedValues: newSelectedValues,\n highlightedValue: item\n });\n}\nfunction handleKeyDown(key, state, context) {\n const previouslySelectedValue = state.highlightedValue;\n const {\n orientation,\n pageSize\n } = context;\n switch (key) {\n case 'Home':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 'start', context)\n });\n case 'End':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 'end', context)\n });\n case 'PageUp':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, -pageSize, context)\n });\n case 'PageDown':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, pageSize, context)\n });\n case 'ArrowUp':\n if (orientation !== 'vertical') {\n break;\n }\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, -1, context)\n });\n case 'ArrowDown':\n if (orientation !== 'vertical') {\n break;\n }\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 1, context)\n });\n case 'ArrowLeft':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? -1 : 1;\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n });\n }\n case 'ArrowRight':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? 1 : -1;\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n });\n }\n case 'Enter':\n case ' ':\n if (state.highlightedValue === null) {\n return state;\n }\n return handleItemSelection(state.highlightedValue, state, context);\n default:\n break;\n }\n return state;\n}\nfunction handleBlur(state, context) {\n if (context.focusManagement === 'DOM') {\n return state;\n }\n return _extends({}, state, {\n highlightedValue: null\n });\n}\nfunction textCriteriaMatches(nextFocus, searchString, stringifyItem) {\n var _stringifyItem;\n const text = (_stringifyItem = stringifyItem(nextFocus)) == null ? void 0 : _stringifyItem.trim().toLowerCase();\n if (!text || text.length === 0) {\n // Make item not navigable if stringification fails or results in empty string.\n return false;\n }\n return text.indexOf(searchString) === 0;\n}\nfunction handleTextNavigation(state, searchString, context) {\n const {\n items,\n isItemDisabled,\n disabledItemsFocusable,\n getItemAsString\n } = context;\n const startWithCurrentItem = searchString.length > 1;\n let nextItem = startWithCurrentItem ? state.highlightedValue : moveHighlight(state.highlightedValue, 1, context);\n for (let index = 0; index < items.length; index += 1) {\n // Return un-mutated state if looped back to the currently highlighted value\n if (!nextItem || !startWithCurrentItem && state.highlightedValue === nextItem) {\n return state;\n }\n if (textCriteriaMatches(nextItem, searchString, getItemAsString) && (!isItemDisabled(nextItem, items.indexOf(nextItem)) || disabledItemsFocusable)) {\n // The nextItem is the element to be highlighted\n return _extends({}, state, {\n highlightedValue: nextItem\n });\n }\n // Move to the next element.\n nextItem = moveHighlight(nextItem, 1, context);\n }\n\n // No item matches the text search criteria\n return state;\n}\nfunction handleItemsChange(items, previousItems, state, context) {\n var _state$selectedValues;\n const {\n itemComparer,\n focusManagement\n } = context;\n let newHighlightedValue = null;\n if (state.highlightedValue != null) {\n var _items$find;\n newHighlightedValue = (_items$find = items.find(item => itemComparer(item, state.highlightedValue))) != null ? _items$find : null;\n } else if (focusManagement === 'DOM' && previousItems.length === 0) {\n newHighlightedValue = moveHighlight(null, 'reset', context);\n }\n\n // exclude selected values that are no longer in the items list\n const selectedValues = (_state$selectedValues = state.selectedValues) != null ? _state$selectedValues : [];\n const newSelectedValues = selectedValues.filter(selectedValue => items.some(item => itemComparer(item, selectedValue)));\n return _extends({}, state, {\n highlightedValue: newHighlightedValue,\n selectedValues: newSelectedValues\n });\n}\nfunction handleResetHighlight(state, context) {\n return _extends({}, state, {\n highlightedValue: moveHighlight(null, 'reset', context)\n });\n}\nfunction handleHighlightLast(state, context) {\n return _extends({}, state, {\n highlightedValue: moveHighlight(null, 'end', context)\n });\n}\nfunction handleClearSelection(state, context) {\n return _extends({}, state, {\n selectedValues: [],\n highlightedValue: moveHighlight(null, 'reset', context)\n });\n}\nexport function listReducer(state, action) {\n const {\n type,\n context\n } = action;\n switch (type) {\n case ListActionTypes.keyDown:\n return handleKeyDown(action.key, state, context);\n case ListActionTypes.itemClick:\n return handleItemSelection(action.item, state, context);\n case ListActionTypes.blur:\n return handleBlur(state, context);\n case ListActionTypes.textNavigation:\n return handleTextNavigation(state, action.searchString, context);\n case ListActionTypes.itemsChange:\n return handleItemsChange(action.items, action.previousItems, state, context);\n case ListActionTypes.resetHighlight:\n return handleResetHighlight(state, context);\n case ListActionTypes.highlightLast:\n return handleHighlightLast(state, context);\n case ListActionTypes.clearSelection:\n return handleClearSelection(state, context);\n default:\n return state;\n }\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nfunction areEqual(a, b) {\n return a === b;\n}\nconst EMPTY_OBJECT = {};\nconst NOOP = () => {};\n\n/**\n * Gets the current state augmented with controlled values from the outside.\n * If a state item has a corresponding controlled value, it will be used instead of the internal state.\n */\nfunction getControlledState(internalState, controlledProps) {\n const augmentedState = _extends({}, internalState);\n Object.keys(controlledProps).forEach(key => {\n if (controlledProps[key] !== undefined) {\n augmentedState[key] = controlledProps[key];\n }\n });\n return augmentedState;\n}\n/**\n * Defines an effect that compares the next state with the previous state and calls\n * the `onStateChange` callback if the state has changed.\n * The comparison is done based on the `stateComparers` parameter.\n */\nfunction useStateChangeDetection(parameters) {\n const {\n nextState,\n initialState,\n stateComparers,\n onStateChange,\n controlledProps,\n lastActionRef\n } = parameters;\n const internalPreviousStateRef = React.useRef(initialState);\n React.useEffect(() => {\n if (lastActionRef.current === null) {\n // Detect changes only if an action has been dispatched.\n return;\n }\n const previousState = getControlledState(internalPreviousStateRef.current, controlledProps);\n Object.keys(nextState).forEach(key => {\n var _stateComparers$key;\n // go through all state keys and compare them with the previous state\n const stateComparer = (_stateComparers$key = stateComparers[key]) != null ? _stateComparers$key : areEqual;\n const nextStateItem = nextState[key];\n const previousStateItem = previousState[key];\n if (previousStateItem == null && nextStateItem != null || previousStateItem != null && nextStateItem == null || previousStateItem != null && nextStateItem != null && !stateComparer(nextStateItem, previousStateItem)) {\n var _event, _type;\n onStateChange == null || onStateChange((_event = lastActionRef.current.event) != null ? _event : null, key, nextStateItem, (_type = lastActionRef.current.type) != null ? _type : '', nextState);\n }\n });\n internalPreviousStateRef.current = nextState;\n lastActionRef.current = null;\n }, [internalPreviousStateRef, nextState, lastActionRef, onStateChange, stateComparers, controlledProps]);\n}\n\n/**\n * The alternative to `React.useReducer` that lets you control the state from the outside.\n *\n * It can be used in an uncontrolled mode, similar to `React.useReducer`, or in a controlled mode, when the state is controlled by the props.\n * It also supports partially controlled state, when some state items are controlled and some are not.\n *\n * The controlled state items are provided via the `controlledProps` parameter.\n * When a reducer action is dispatched, the internal state is updated with the new values.\n * A change event (`onStateChange`) is then triggered (for each changed state item) if the new state is different from the previous state.\n * This event can be used to update the controlled values.\n *\n * The comparison of the previous and next states is done using the `stateComparers` parameter.\n * If a state item has a corresponding comparer, it will be used to determine if the state has changed.\n * This is useful when the state item is an object and you want to compare only a subset of its properties or if it's an array and you want to compare its contents.\n *\n * An additional feature is the `actionContext` parameter. It allows you to add additional properties to every action object,\n * similarly to how React context is implicitly available to every component.\n *\n * @template State - The type of the state calculated by the reducer.\n * @template Action - The type of the actions that can be dispatched.\n * @template ActionContext - The type of the additional properties that will be added to every action object.\n *\n * @ignore - internal hook.\n */\nexport function useControllableReducer(parameters) {\n const lastActionRef = React.useRef(null);\n const {\n reducer,\n initialState,\n controlledProps = EMPTY_OBJECT,\n stateComparers = EMPTY_OBJECT,\n onStateChange = NOOP,\n actionContext,\n componentName = ''\n } = parameters;\n const controlledPropsRef = React.useRef(controlledProps);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n Object.keys(controlledProps).forEach(key => {\n if (controlledPropsRef.current[key] !== undefined && controlledProps[key] === undefined) {\n console.error(`useControllableReducer: ${componentName ? `The ${componentName} component` : 'A component'} is changing a controlled prop to be uncontrolled: ${key}`);\n }\n if (controlledPropsRef.current[key] === undefined && controlledProps[key] !== undefined) {\n console.error(`useControllableReducer: ${componentName ? `The ${componentName} component` : 'A component'} is changing an uncontrolled prop to be controlled: ${key}`);\n }\n });\n }, [controlledProps, componentName]);\n }\n\n // The reducer that is passed to React.useReducer is wrapped with a function that augments the state with controlled values.\n const reducerWithControlledState = React.useCallback((state, action) => {\n lastActionRef.current = action;\n const controlledState = getControlledState(state, controlledProps);\n const newState = reducer(controlledState, action);\n return newState;\n }, [controlledProps, reducer]);\n const [nextState, dispatch] = React.useReducer(reducerWithControlledState, initialState);\n\n // The action that is passed to dispatch is augmented with the actionContext.\n const dispatchWithContext = React.useCallback(action => {\n dispatch(_extends({}, action, {\n context: actionContext\n }));\n }, [actionContext]);\n useStateChangeDetection({\n nextState,\n initialState,\n stateComparers: stateComparers != null ? stateComparers : EMPTY_OBJECT,\n onStateChange: onStateChange != null ? onStateChange : NOOP,\n controlledProps,\n lastActionRef\n });\n return [getControlledState(nextState, controlledProps), dispatchWithContext];\n}","export function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {\n return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { ListActionTypes } from './listActions.types';\nimport { listReducer as defaultReducer } from './listReducer';\nimport { useControllableReducer } from '../utils/useControllableReducer';\nimport { areArraysEqual } from '../utils/areArraysEqual';\nimport { useTextNavigation } from '../utils/useTextNavigation';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nconst EMPTY_OBJECT = {};\nconst NOOP = () => {};\nconst defaultItemComparer = (optionA, optionB) => optionA === optionB;\nconst defaultIsItemDisabled = () => false;\nconst defaultItemStringifier = item => typeof item === 'string' ? item : String(item);\nconst defaultGetInitialState = () => ({\n highlightedValue: null,\n selectedValues: []\n});\n\n/**\n * The useList is a lower-level utility that is used to build list-like components.\n * It's used to manage the state of the list and its items.\n *\n * Supports highlighting a single item and selecting an arbitrary number of items.\n *\n * The state of the list is managed by a controllable reducer - that is a reducer that can have its state\n * controlled from outside.\n *\n * By default, the state consists of `selectedValues` and `highlightedValue` but can be extended by the caller of the hook.\n * Also the actions that can be dispatched and the reducer function can be defined externally.\n *\n * @template ItemValue The type of the item values.\n * @template State The type of the list state. This should be a subtype of `ListState<ItemValue>`.\n * @template CustomAction The type of the actions that can be dispatched (besides the standard ListAction).\n * @template CustomActionContext The shape of additional properties that will be added to actions when dispatched.\n *\n * @ignore - internal hook.\n */\nfunction useList(params) {\n const {\n controlledProps = EMPTY_OBJECT,\n disabledItemsFocusable = false,\n disableListWrap = false,\n focusManagement = 'activeDescendant',\n getInitialState = defaultGetInitialState,\n getItemDomElement,\n getItemId,\n isItemDisabled = defaultIsItemDisabled,\n rootRef: externalListRef,\n onStateChange = NOOP,\n items,\n itemComparer = defaultItemComparer,\n getItemAsString = defaultItemStringifier,\n onChange,\n onHighlightChange,\n onItemsChange,\n orientation = 'vertical',\n pageSize = 5,\n reducerActionContext = EMPTY_OBJECT,\n selectionMode = 'single',\n stateReducer: externalReducer,\n componentName = 'useList'\n } = params;\n if (process.env.NODE_ENV !== 'production') {\n if (focusManagement === 'DOM' && getItemDomElement == null) {\n throw new Error('useList: The `getItemDomElement` prop is required when using the `DOM` focus management.');\n }\n if (focusManagement === 'activeDescendant' && getItemId == null) {\n throw new Error('useList: The `getItemId` prop is required when using the `activeDescendant` focus management.');\n }\n }\n const listRef = React.useRef(null);\n const handleRef = useForkRef(externalListRef, listRef);\n const handleHighlightChange = React.useCallback((event, value, reason) => {\n onHighlightChange == null || onHighlightChange(event, value, reason);\n if (focusManagement === 'DOM' && value != null && (reason === ListActionTypes.itemClick || reason === ListActionTypes.keyDown || reason === ListActionTypes.textNavigation)) {\n var _getItemDomElement;\n getItemDomElement == null || (_getItemDomElement = getItemDomElement(value)) == null || _getItemDomElement.focus();\n }\n }, [getItemDomElement, onHighlightChange, focusManagement]);\n const stateComparers = React.useMemo(() => ({\n highlightedValue: itemComparer,\n selectedValues: (valuesArray1, valuesArray2) => areArraysEqual(valuesArray1, valuesArray2, itemComparer)\n }), [itemComparer]);\n\n // This gets called whenever a reducer changes the state.\n const handleStateChange = React.useCallback((event, field, value, reason, state) => {\n onStateChange == null || onStateChange(event, field, value, reason, state);\n switch (field) {\n case 'highlightedValue':\n handleHighlightChange(event, value, reason);\n break;\n case 'selectedValues':\n onChange == null || onChange(event, value, reason);\n break;\n default:\n break;\n }\n }, [handleHighlightChange, onChange, onStateChange]);\n\n // The following object is added to each action when it's dispatched.\n // It's accessible in the reducer via the `action.context` field.\n const listActionContext = React.useMemo(() => {\n return {\n disabledItemsFocusable,\n disableListWrap,\n focusManagement,\n isItemDisabled,\n itemComparer,\n items,\n getItemAsString,\n onHighlightChange: handleHighlightChange,\n orientation,\n pageSize,\n selectionMode,\n stateComparers\n };\n }, [disabledItemsFocusable, disableListWrap, focusManagement, isItemDisabled, itemComparer, items, getItemAsString, handleHighlightChange, orientation, pageSize, selectionMode, stateComparers]);\n const initialState = getInitialState();\n const reducer = externalReducer != null ? externalReducer : defaultReducer;\n const actionContext = React.useMemo(() => _extends({}, reducerActionContext, listActionContext), [reducerActionContext, listActionContext]);\n const [state, dispatch] = useControllableReducer({\n reducer,\n actionContext,\n initialState: initialState,\n controlledProps,\n stateComparers,\n onStateChange: handleStateChange,\n componentName\n });\n const {\n highlightedValue,\n selectedValues\n } = state;\n const handleTextNavigation = useTextNavigation((searchString, event) => dispatch({\n type: ListActionTypes.textNavigation,\n event,\n searchString\n }));\n const previousItems = React.useRef([]);\n React.useEffect(() => {\n // Whenever the `items` object changes, we need to determine if the actual items changed.\n // If they did, we need to dispatch an `itemsChange` action, so the selected/highlighted state is updated.\n if (areArraysEqual(previousItems.current, items, itemComparer)) {\n return;\n }\n dispatch({\n type: ListActionTypes.itemsChange,\n event: null,\n items,\n previousItems: previousItems.current\n });\n previousItems.current = items;\n onItemsChange == null || onItemsChange(items);\n }, [items, itemComparer, dispatch, onItemsChange]);\n const createHandleKeyDown = externalHandlers => event => {\n var _externalHandlers$onK;\n (_externalHandlers$onK = externalHandlers.onKeyDown) == null || _externalHandlers$onK.call(externalHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const keysToPreventDefault = ['Home', 'End', 'PageUp', 'PageDown'];\n if (orientation === 'vertical') {\n keysToPreventDefault.push('ArrowUp', 'ArrowDown');\n } else {\n keysToPreventDefault.push('ArrowLeft', 'ArrowRight');\n }\n if (focusManagement === 'activeDescendant') {\n // When the child element is focused using the activeDescendant attribute,\n // the list handles keyboard events on its behalf.\n // We have to `preventDefault()` is this case to prevent the browser from\n // scrolling the view when space is pressed or submitting forms when enter is pressed.\n keysToPreventDefault.push(' ', 'Enter');\n }\n if (keysToPreventDefault.includes(event.key)) {\n event.preventDefault();\n }\n dispatch({\n type: ListActionTypes.keyDown,\n key: event.key,\n event\n });\n handleTextNavigation(event);\n };\n const createHandleBlur = externalHandlers => event => {\n var _externalHandlers$onB, _listRef$current;\n (_externalHandlers$onB = externalHandlers.onBlur) == null || _externalHandlers$onB.call(externalHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_listRef$current = listRef.current) != null && _listRef$current.contains(event.relatedTarget)) {\n // focus remains within the list\n return;\n }\n dispatch({\n type: ListActionTypes.blur,\n event\n });\n };\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, {\n 'aria-activedescendant': focusManagement === 'activeDescendant' && highlightedValue != null ? getItemId(highlightedValue) : undefined,\n tabIndex: focusManagement === 'DOM' ? -1 : 0,\n ref: handleRef\n }, externalEventHandlers, {\n onBlur: createHandleBlur(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers)\n });\n };\n const getItemState = React.useCallback(item => {\n const selected = (selectedValues != null ? selectedValues : []).some(value => value != null && itemComparer(item, value));\n const highlighted = highlightedValue != null && itemComparer(item, highlightedValue);\n const focusable = focusManagement === 'DOM';\n return {\n focusable,\n highlighted,\n selected\n };\n }, [itemComparer, selectedValues, highlightedValue, focusManagement]);\n const contextValue = React.useMemo(() => ({\n dispatch,\n getItemState\n }), [dispatch, getItemState]);\n React.useDebugValue({\n state\n });\n return {\n contextValue,\n dispatch,\n getRootProps,\n rootRef: handleRef,\n state\n };\n}\nexport { useList };","import * as React from 'react';\nexport const ListContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}","const defaultOptionStringifier = option => {\n const {\n label,\n value\n } = option;\n if (typeof label === 'string') {\n return label;\n }\n if (typeof value === 'string') {\n return value;\n }\n\n // Fallback string representation\n return String(option);\n};\nexport { defaultOptionStringifier };","'use client';\n\nimport * as React from 'react';\nexport const CompoundComponentContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n CompoundComponentContext.displayName = 'CompoundComponentContext';\n}\n/**\n * Sorts the subitems by their position in the DOM.\n */\nfunction sortSubitems(subitems) {\n const subitemsArray = Array.from(subitems.keys()).map(key => {\n const subitem = subitems.get(key);\n return {\n key,\n subitem\n };\n });\n subitemsArray.sort((a, b) => {\n const aNode = a.subitem.ref.current;\n const bNode = b.subitem.ref.current;\n if (aNode === null || bNode === null || aNode === bNode) {\n return 0;\n }\n\n // eslint-disable-next-line no-bitwise\n return aNode.compareDocumentPosition(bNode) & Node.DOCUMENT_POSITION_PRECEDING ? 1 : -1;\n });\n return new Map(subitemsArray.map(item => [item.key, item.subitem]));\n}\n\n/**\n * Provides a way for a component to know about its children.\n *\n * Child components register themselves with the `useCompoundItem` hook, passing in arbitrary metadata to the parent.\n *\n * This is a more powerful altervantive to `children` traversal, as child components don't have to be placed\n * directly inside the parent component. They can be anywhere in the tree (and even rendered by other components).\n *\n * The downside is that this doesn't work with SSR as it relies on the useEffect hook.\n *\n * @ignore - internal hook.\n */\nexport function useCompoundParent() {\n const [subitems, setSubitems] = React.useState(new Map());\n const subitemKeys = React.useRef(new Set());\n const deregisterItem = React.useCallback(function deregisterItem(id) {\n subitemKeys.current.delete(id);\n setSubitems(previousState => {\n const newState = new Map(previousState);\n newState.delete(id);\n return newState;\n });\n }, []);\n const registerItem = React.useCallback(function registerItem(id, item) {\n let providedOrGeneratedId;\n if (typeof id === 'function') {\n providedOrGeneratedId = id(subitemKeys.current);\n } else {\n providedOrGeneratedId = id;\n }\n subitemKeys.current.add(providedOrGeneratedId);\n setSubitems(previousState => {\n const newState = new Map(previousState);\n newState.set(providedOrGeneratedId, item);\n return newState;\n });\n return {\n id: providedOrGeneratedId,\n deregister: () => deregisterItem(providedOrGeneratedId)\n };\n }, [deregisterItem]);\n const sortedSubitems = React.useMemo(() => sortSubitems(subitems), [subitems]);\n const getItemIndex = React.useCallback(function getItemIndex(id) {\n return Array.from(sortedSubitems.keys()).indexOf(id);\n }, [sortedSubitems]);\n const contextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount: subitems.size\n }), [getItemIndex, registerItem, subitems.size]);\n return {\n contextValue,\n subitems: sortedSubitems\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { moveHighlight, listReducer, ListActionTypes, handleItemSelection } from '../useList';\nimport { SelectActionTypes } from './useSelect.types';\nexport function selectReducer(state, action) {\n const {\n open\n } = state;\n const {\n context: {\n selectionMode\n }\n } = action;\n if (action.type === SelectActionTypes.buttonClick) {\n var _state$selectedValues;\n const itemToHighlight = (_state$selectedValues = state.selectedValues[0]) != null ? _state$selectedValues : moveHighlight(null, 'start', action.context);\n return _extends({}, state, {\n open: !open,\n highlightedValue: !open ? itemToHighlight : null\n });\n }\n if (action.type === SelectActionTypes.browserAutoFill) {\n return handleItemSelection(action.item, state, action.context);\n }\n const newState = listReducer(state, action);\n switch (action.type) {\n case ListActionTypes.keyDown:\n if (state.open) {\n if (action.event.key === 'Escape') {\n return _extends({}, newState, {\n open: false\n });\n }\n } else {\n if (action.event.key === 'ArrowDown') {\n var _state$selectedValues2;\n return _extends({}, state, {\n open: true,\n highlightedValue: (_state$selectedValues2 = state.selectedValues[0]) != null ? _state$selectedValues2 : moveHighlight(null, 'start', action.context)\n });\n }\n if (action.event.key === 'ArrowUp') {\n var _state$selectedValues3;\n return _extends({}, state, {\n open: true,\n highlightedValue: (_state$selectedValues3 = state.selectedValues[0]) != null ? _state$selectedValues3 : moveHighlight(null, 'end', action.context)\n });\n }\n }\n break;\n case ListActionTypes.itemClick:\n if (selectionMode === 'single') {\n return _extends({}, newState, {\n open: false\n });\n }\n break;\n case ListActionTypes.blur:\n return _extends({}, newState, {\n open: false\n });\n default:\n return newState;\n }\n return newState;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Combines the two get*Props functions from Base UI hooks into one.\n * Useful when a hook uses two other hooks behind the scenes\n * (such as useSelect that depends on useList and useButton for its root slot).\n *\n * The resulting function will return the combined props.\n * They are merged from left to right, similarly to how Object.assign works.\n *\n * The getSecondProps function will receive the result of the getFirstProps function as its argument,\n * so its event handlers can call the previous handlers and act depending on its result.\n *\n * @param getFirstProps - A getter function that returns the props for the first slot. It receives the external event handlers as its argument.\n * @param getSecondProps - A getter function that returns the props for the second slot. It receives the result of the getFirstProps function as its argument.\n */\nexport function combineHooksSlotProps(getFirstProps, getSecondProps) {\n return function getCombinedProps(external = {}) {\n const firstResult = _extends({}, external, getFirstProps(external));\n const result = _extends({}, firstResult, getSecondProps(firstResult));\n return result;\n };\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect, visuallyHidden as visuallyHiddenStyle } from '@mui/utils';\nimport { useButton } from '../useButton';\nimport { SelectActionTypes } from './useSelect.types';\nimport { ListActionTypes, useList } from '../useList';\nimport { defaultOptionStringifier } from './defaultOptionStringifier';\nimport { useCompoundParent } from '../useCompound';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { selectReducer } from './selectReducer';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nfunction defaultFormValueProvider(selectedOption) {\n if (Array.isArray(selectedOption)) {\n if (selectedOption.length === 0) {\n return '';\n }\n return JSON.stringify(selectedOption.map(o => o.value));\n }\n if ((selectedOption == null ? void 0 : selectedOption.value) == null) {\n return '';\n }\n if (typeof selectedOption.value === 'string' || typeof selectedOption.value === 'number') {\n return selectedOption.value;\n }\n return JSON.stringify(selectedOption.value);\n}\n\n/**\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useSelect API](https://mui.com/base-ui/react-select/hooks-api/#use-select)\n */\nfunction useSelect(props) {\n const {\n areOptionsEqual,\n buttonRef: buttonRefProp,\n defaultOpen = false,\n defaultValue: defaultValueProp,\n disabled = false,\n listboxId: listboxIdProp,\n listboxRef: listboxRefProp,\n multiple = false,\n name,\n required,\n onChange,\n onHighlightChange,\n onOpenChange,\n open: openProp,\n options: optionsParam,\n getOptionAsString = defaultOptionStringifier,\n getSerializedValue = defaultFormValueProvider,\n value: valueProp,\n componentName = 'useSelect'\n } = props;\n const buttonRef = React.useRef(null);\n const handleButtonRef = useForkRef(buttonRefProp, buttonRef);\n const listboxRef = React.useRef(null);\n const listboxId = useId(listboxIdProp);\n let defaultValue;\n if (valueProp === undefined && defaultValueProp === undefined) {\n defaultValue = [];\n } else if (defaultValueProp !== undefined) {\n if (multiple) {\n defaultValue = defaultValueProp;\n } else {\n defaultValue = defaultValueProp == null ? [] : [defaultValueProp];\n }\n }\n const value = React.useMemo(() => {\n if (valueProp !== undefined) {\n if (multiple) {\n return valueProp;\n }\n return valueProp == null ? [] : [valueProp];\n }\n return undefined;\n }, [valueProp, multiple]);\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const options = React.useMemo(() => {\n if (optionsParam != null) {\n return new Map(optionsParam.map((option, index) => [option.value, {\n value: option.value,\n label: option.label,\n disabled: option.disabled,\n ref: /*#__PURE__*/React.createRef(),\n id: `${listboxId}_${index}`\n }]));\n }\n return subitems;\n }, [optionsParam, subitems, listboxId]);\n const handleListboxRef = useForkRef(listboxRefProp, listboxRef);\n const {\n getRootProps: getButtonRootProps,\n active: buttonActive,\n focusVisible: buttonFocusVisible,\n rootRef: mergedButtonRef\n } = useButton({\n disabled,\n rootRef: handleButtonRef\n });\n const optionValues = React.useMemo(() => Array.from(options.keys()), [options]);\n const getOptionByValue = React.useCallback(valueToGet => {\n // This can't be simply `options.get(valueToGet)` because of the `areOptionsEqual` prop.\n // If it's provided, we assume that the user wants to compare the options by value.\n if (areOptionsEqual !== undefined) {\n const similarValue = optionValues.find(optionValue => areOptionsEqual(optionValue, valueToGet));\n return options.get(similarValue);\n }\n return options.get(valueToGet);\n }, [options, areOptionsEqual, optionValues]);\n const isItemDisabled = React.useCallback(valueToCheck => {\n var _option$disabled;\n const option = getOptionByValue(valueToCheck);\n return (_option$disabled = option == null ? void 0 : option.disabled) != null ? _option$disabled : false;\n }, [getOptionByValue]);\n const stringifyOption = React.useCallback(valueToCheck => {\n const option = getOptionByValue(valueToCheck);\n if (!option) {\n return '';\n }\n return getOptionAsString(option);\n }, [getOptionByValue, getOptionAsString]);\n const controlledState = React.useMemo(() => ({\n selectedValues: value,\n open: openProp\n }), [value, openProp]);\n const getItemId = React.useCallback(itemValue => {\n var _options$get;\n return (_options$get = options.get(itemValue)) == null ? void 0 : _options$get.id;\n }, [options]);\n const handleSelectionChange = React.useCallback((event, newValues) => {\n if (multiple) {\n onChange == null || onChange(event, newValues);\n } else {\n var _newValues$;\n onChange == null || onChange(event, (_newValues$ = newValues[0]) != null ? _newValues$ : null);\n }\n }, [multiple, onChange]);\n const handleHighlightChange = React.useCallback((event, newValue) => {\n onHighlightChange == null || onHighlightChange(event, newValue != null ? newValue : null);\n }, [onHighlightChange]);\n const handleStateChange = React.useCallback((event, field, fieldValue) => {\n if (field === 'open') {\n onOpenChange == null || onOpenChange(fieldValue);\n if (fieldValue === false && (event == null ? void 0 : event.type) !== 'blur') {\n var _buttonRef$current;\n (_buttonRef$current = buttonRef.current) == null || _buttonRef$current.focus();\n }\n }\n }, [onOpenChange]);\n const getItemDomElement = React.useCallback(itemId => {\n var _subitems$get$ref$cur, _subitems$get;\n if (itemId == null) {\n return null;\n }\n return (_subitems$get$ref$cur = (_subitems$get = subitems.get(itemId)) == null ? void 0 : _subitems$get.ref.current) != null ? _subitems$get$ref$cur : null;\n }, [subitems]);\n const useListParameters = {\n getInitialState: () => {\n var _defaultValue;\n return {\n highlightedValue: null,\n selectedValues: (_defaultValue = defaultValue) != null ? _defaultValue : [],\n open: defaultOpen\n };\n },\n getItemId,\n controlledProps: controlledState,\n focusManagement: 'DOM',\n getItemDomElement,\n itemComparer: areOptionsEqual,\n isItemDisabled,\n rootRef: handleListboxRef,\n onChange: handleSelectionChange,\n onHighlightChange: handleHighlightChange,\n onStateChange: handleStateChange,\n reducerActionContext: React.useMemo(() => ({\n multiple\n }), [multiple]),\n items: optionValues,\n getItemAsString: stringifyOption,\n selectionMode: multiple ? 'multiple' : 'single',\n stateReducer: selectReducer,\n componentName\n };\n const {\n dispatch,\n getRootProps: getListboxRootProps,\n contextValue: listContextValue,\n state: {\n open,\n highlightedValue: highlightedOption,\n selectedValues: selectedOptions\n },\n rootRef: mergedListRootRef\n } = useList(useListParameters);\n\n // store the initial open state to prevent focus stealing\n // (the first option gets focused only when the select is opened by the user)\n const isInitiallyOpen = React.useRef(open);\n useEnhancedEffect(() => {\n if (open && highlightedOption !== null) {\n var _getOptionByValue;\n const optionRef = (_getOptionByValue = getOptionByValue(highlightedOption)) == null ? void 0 : _getOptionByValue.ref;\n if (!listboxRef.current || !(optionRef != null && optionRef.current)) {\n return;\n }\n if (!isInitiallyOpen.current) {\n optionRef.current.focus({\n preventScroll: true\n });\n }\n const listboxClientRect = listboxRef.current.getBoundingClientRect();\n const optionClientRect = optionRef.current.getBoundingClientRect();\n if (optionClientRect.top < listboxClientRect.top) {\n listboxRef.current.scrollTop -= listboxClientRect.top - optionClientRect.top;\n } else if (optionClientRect.bottom > listboxClientRect.bottom) {\n listboxRef.current.scrollTop += optionClientRect.bottom - listboxClientRect.bottom;\n }\n }\n }, [open, highlightedOption, getOptionByValue]);\n const getOptionMetadata = React.useCallback(optionValue => getOptionByValue(optionValue), [getOptionByValue]);\n const createHandleButtonClick = externalEventHandlers => event => {\n var _externalEventHandler;\n externalEventHandlers == null || (_externalEventHandler = externalEventHandlers.onClick) == null || _externalEventHandler.call(externalEventHandlers, event);\n if (!event.defaultMuiPrevented) {\n const action = {\n type: SelectActionTypes.buttonClick,\n event\n };\n dispatch(action);\n }\n };\n const createHandleButtonKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n dispatch({\n type: ListActionTypes.keyDown,\n key: event.key,\n event\n });\n }\n };\n const getButtonOwnRootProps = (otherHandlers = {}) => ({\n onClick: createHandleButtonClick(otherHandlers),\n onKeyDown: createHandleButtonKeyDown(otherHandlers)\n });\n const getSelectTriggerProps = (otherHandlers = {}) => {\n return _extends({}, otherHandlers, getButtonOwnRootProps(otherHandlers), {\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-controls': listboxId\n });\n };\n const getButtonProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const combinedProps = combineHooksSlotProps(getSelectTriggerProps, getButtonRootProps);\n return _extends({}, externalProps, combinedProps(externalEventHandlers));\n };\n const createListboxHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur, _listboxRef$current;\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_listboxRef$current = listboxRef.current) != null && _listboxRef$current.contains(event.relatedTarget) || event.relatedTarget === buttonRef.current) {\n event.defaultMuiPrevented = true;\n }\n };\n const getOwnListboxHandlers = (otherHandlers = {}) => ({\n onBlur: createListboxHandleBlur(otherHandlers)\n });\n const getListboxProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getOwnListboxHandlers, getListboxRootProps);\n return _extends({\n id: listboxId,\n role: 'listbox',\n 'aria-multiselectable': multiple ? 'true' : undefined\n }, externalProps, getCombinedRootProps(externalEventHandlers));\n };\n React.useDebugValue({\n selectedOptions,\n highlightedOption,\n open\n });\n const contextValue = React.useMemo(() => _extends({}, listContextValue, compoundComponentContextValue), [listContextValue, compoundComponentContextValue]);\n let selectValue;\n if (props.multiple) {\n selectValue = selectedOptions;\n } else {\n selectValue = selectedOptions.length > 0 ? selectedOptions[0] : null;\n }\n let selectedOptionsMetadata;\n if (multiple) {\n selectedOptionsMetadata = selectValue.map(v => getOptionMetadata(v)).filter(o => o !== undefined);\n } else {\n var _getOptionMetadata;\n selectedOptionsMetadata = (_getOptionMetadata = getOptionMetadata(selectValue)) != null ? _getOptionMetadata : null;\n }\n const createHandleHiddenInputChange = externalEventHandlers => event => {\n var _externalEventHandler2;\n externalEventHandlers == null || (_externalEventHandler2 = externalEventHandlers.onChange) == null || _externalEventHandler2.call(externalEventHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const option = options.get(event.target.value);\n\n // support autofill\n if (event.target.value === '') {\n dispatch({\n type: ListActionTypes.clearSelection\n });\n } else if (option !== undefined) {\n dispatch({\n type: SelectActionTypes.browserAutoFill,\n item: option.value,\n event\n });\n }\n };\n const getHiddenInputProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({\n name,\n tabIndex: -1,\n 'aria-hidden': true,\n required: required ? true : undefined,\n value: getSerializedValue(selectedOptionsMetadata),\n style: visuallyHiddenStyle\n }, externalProps, {\n onChange: createHandleHiddenInputChange(externalEventHandlers)\n });\n };\n return {\n buttonActive,\n buttonFocusVisible,\n buttonRef: mergedButtonRef,\n contextValue,\n disabled,\n dispatch,\n getButtonProps,\n getHiddenInputProps,\n getListboxProps,\n getOptionMetadata,\n listboxRef: mergedListRootRef,\n open,\n options: optionValues,\n value: selectValue,\n highlightedOption\n };\n}\nexport { useSelect };","'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList/ListContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying Option components.\n *\n * @ignore - do not document.\n */\nexport function SelectProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultContextValue = {\n disableDefaultClasses: false\n};\nconst ClassNameConfiguratorContext = /*#__PURE__*/React.createContext(defaultContextValue);\nif (process.env.NODE_ENV !== 'production') {\n ClassNameConfiguratorContext.displayName = 'ClassNameConfiguratorContext';\n}\n/**\n * @ignore - internal hook.\n *\n * Wraps the `generateUtilityClass` function and controls how the classes are generated.\n * Currently it only affects whether the classes are applied or not.\n *\n * @returns Function to be called with the `generateUtilityClass` function specific to a component to generate the classes.\n */\nexport function useClassNamesOverride(generateUtilityClass) {\n const {\n disableDefaultClasses\n } = React.useContext(ClassNameConfiguratorContext);\n return slot => {\n if (disableDefaultClasses) {\n return '';\n }\n return generateUtilityClass(slot);\n };\n}\n\n/**\n * Allows to configure the components within to not apply any built-in classes.\n */\nexport function ClassNameConfigurator(props) {\n const {\n disableDefaultClasses,\n children\n } = props;\n const contextValue = React.useMemo(() => ({\n disableDefaultClasses: disableDefaultClasses != null ? disableDefaultClasses : false\n }), [disableDefaultClasses]);\n return /*#__PURE__*/_jsx(ClassNameConfiguratorContext.Provider, {\n value: contextValue,\n children: children\n });\n}","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nexport function omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { appendOwnerState } from './appendOwnerState';\nimport { mergeSlotProps } from './mergeSlotProps';\nimport { resolveComponentProps } from './resolveComponentProps';\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nexport function useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = _objectWithoutPropertiesLoose(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps(_extends({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = appendOwnerState(elementType, _extends({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nexport function resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport { extractEventHandlers } from './extractEventHandlers';\nimport { omitEventHandlers } from './omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nexport function mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { isHostComponent } from './isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nexport function appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nexport function isHostComponent(element) {\n return typeof element === 'string';\n}","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { detectOverflow, offset } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(floating) {\n return topLayerSelectors.some(selector => {\n try {\n return floating.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element) || isTopLayer(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(data.floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, flip, hide, inline, limitShift, platform, shift, size };\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction Cg(a,b,c,d){var e=a.updateQueue;wg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=Zc(0);this.expirationTimes=Zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Zc(0);this.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\n","/** @license React v0.20.2\n * scheduler-tracing.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=0;exports.__interactionsRef=null;exports.__subscriberRef=null;exports.unstable_clear=function(a){return a()};exports.unstable_getCurrent=function(){return null};exports.unstable_getThreadID=function(){return++b};exports.unstable_subscribe=function(){};exports.unstable_trace=function(a,d,c){return c()};exports.unstable_unsubscribe=function(){};exports.unstable_wrap=function(a){return a};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler-tracing.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler-tracing.development.js');\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$1({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // biome-ignore lint/suspicious/noSelfCompare: in source\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: `hasWhileElementsMounted` is intentionally included.\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\nexport { arrow, useFloating };\n","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/base-ui/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/base-ui/react-portal/components-api/#portal)\n */\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, forwardedRef);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(forwardedRef, mountNode);\n return () => {\n setRef(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/React.cloneElement(children, newProps);\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: children\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport { Portal };","import { globalStateClasses } from '@mui/utils/generateUtilityClass';\nconst GLOBAL_CLASS_PREFIX = 'base';\nfunction buildStateClass(state) {\n return `${GLOBAL_CLASS_PREFIX}--${state}`;\n}\nfunction buildSlotClass(componentName, slot) {\n return `${GLOBAL_CLASS_PREFIX}-${componentName}-${slot}`;\n}\nexport function generateUtilityClass(componentName, slot) {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? buildStateClass(globalStateClass) : buildSlotClass(componentName, slot);\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import { generateUtilityClass } from '../generateUtilityClass';\nexport function generateUtilityClasses(componentName, slots) {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot);\n });\n return result;\n}","import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Popup';\nexport function getPopupUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const popupClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'open']);","import * as React from 'react';\nexport const TransitionContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n TransitionContext.displayName = 'TransitionContext';\n}","import * as React from 'react';\nexport const PopupContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n PopupContext.displayName = 'PopupContext';\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchor\", \"children\", \"container\", \"disablePortal\", \"keepMounted\", \"middleware\", \"offset\", \"open\", \"placement\", \"slotProps\", \"slots\", \"strategy\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react-dom';\nimport { HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Portal } from '../Portal';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { getPopupUtilityClass } from './popupClasses';\nimport { useTransitionTrigger, TransitionContext } from '../useTransition';\nimport { PopupContext } from './PopupContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n open\n } = ownerState;\n const slots = {\n root: ['root', open && 'open']\n };\n return composeClasses(slots, useClassNamesOverride(getPopupUtilityClass));\n}\nfunction resolveAnchor(anchor) {\n return typeof anchor === 'function' ? anchor() : anchor;\n}\n\n/**\n *\n * Demos:\n *\n * - [Popup](https://mui.com/base-ui/react-popup/)\n *\n * API:\n *\n * - [Popup API](https://mui.com/base-ui/react-popup/components-api/#popup)\n */\nconst Popup = /*#__PURE__*/React.forwardRef(function Popup(props, forwardedRef) {\n var _slots$root;\n const {\n anchor: anchorProp,\n children,\n container,\n disablePortal = false,\n keepMounted = false,\n middleware,\n offset: offsetProp = 0,\n open = false,\n placement = 'bottom',\n slotProps = {},\n slots = {},\n strategy = 'absolute'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n refs,\n elements,\n floatingStyles,\n update,\n placement: finalPlacement\n } = useFloating({\n elements: {\n reference: resolveAnchor(anchorProp)\n },\n open,\n middleware: middleware != null ? middleware : [offset(offsetProp != null ? offsetProp : 0), flip(), shift()],\n placement,\n strategy,\n whileElementsMounted: !keepMounted ? autoUpdate : undefined\n });\n const handleRef = useForkRef(refs.setFloating, forwardedRef);\n useEnhancedEffect(() => {\n if (keepMounted && open && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n return undefined;\n }, [keepMounted, open, elements, update]);\n const ownerState = _extends({}, props, {\n disablePortal,\n keepMounted,\n offset,\n open,\n placement,\n finalPlacement,\n strategy\n });\n const {\n contextValue,\n hasExited: hasTransitionExited\n } = useTransitionTrigger(open);\n const visibility = keepMounted && hasTransitionExited ? 'hidden' : undefined;\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root,\n additionalProps: {\n ref: handleRef,\n role: 'tooltip',\n style: _extends({}, floatingStyles, {\n visibility\n })\n }\n });\n const popupContextValue = React.useMemo(() => ({\n placement: finalPlacement\n }), [finalPlacement]);\n const shouldRender = keepMounted || !hasTransitionExited;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(Portal, {\n disablePortal: disablePortal,\n container: container,\n children: /*#__PURE__*/_jsx(PopupContext.Provider, {\n value: popupContextValue,\n children: /*#__PURE__*/_jsx(TransitionContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }))\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Popup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * An HTML element, [virtual element](https://floating-ui.com/docs/virtual-elements),\n * or a function that returns either.\n * It's used to set the position of the popup.\n */\n anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),\n /**\n * @ignore\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * An HTML element or function that returns one. The container will have the portal children appended to it.\n * By default, it uses the body of the top-level document object, so it's `document.body` in these cases.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true`, the popup will be rendered where it is defined, without the use of portals.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true`, the popup will exist in the DOM even if it's closed.\n * Its visibility will be controlled by the `visibility` CSS property.\n *\n * Otherwise, a closed popup will be removed from the DOM.\n *\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Collection of Floating UI middleware to use when positioning the popup.\n * If not provided, the [`offset`](https://floating-ui.com/docs/offset)\n * and [`flip`](https://floating-ui.com/docs/flip) functions will be used.\n *\n * @see https://floating-ui.com/docs/computePosition#middleware\n */\n middleware: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.shape({\n fn: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.any\n })])),\n /**\n * Distance between a popup and the trigger element.\n * This prop is ignored when custom `middleware` is provided.\n *\n * @default 0\n * @see https://floating-ui.com/docs/offset\n */\n offset: PropTypes.oneOfType([PropTypes.func, PropTypes.number, PropTypes.shape({\n alignmentAxis: PropTypes.number,\n crossAxis: PropTypes.number,\n mainAxis: PropTypes.number\n })]),\n /**\n * If `true`, the popup is visible.\n *\n * @default false\n */\n open: PropTypes.bool,\n /**\n * Determines where to place the popup relative to the trigger element.\n *\n * @default 'bottom'\n * @see https://floating-ui.com/docs/computePosition#placement\n */\n placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * The props used for each slot inside the Popup.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Popup.\n * Either a string to use a HTML element or a component.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The type of CSS position property to use (absolute or fixed).\n *\n * @default 'absolute'\n * @see https://floating-ui.com/docs/computePosition#strategy\n */\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n} : void 0;\nexport { Popup };","'use client';\n\nimport * as React from 'react';\n/**\n * Allows child elements to be transitioned in and out.\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/#hooks)\n *\n * API:\n *\n * - [useTransitionTrigger API](https://mui.com/base-ui/react-transitions/hooks-api/#use-transition-trigger)\n */\nexport function useTransitionTrigger(requestEnter) {\n const [exitTransitionFinished, setExitTransitionFinished] = React.useState(true);\n const hasPendingExitTransition = React.useRef(false);\n const registeredTransitions = React.useRef(0);\n const [hasTransition, setHasTransition] = React.useState(false);\n const previousRequestEnter = React.useRef(requestEnter);\n React.useEffect(() => {\n if (!requestEnter &&\n // checking registeredTransitions.current instead of hasTransition to avoid this effect re-firing whenever hasTransition changes\n registeredTransitions.current > 0 &&\n // prevents waiting for a pending transition right after mounting\n previousRequestEnter.current !== requestEnter) {\n hasPendingExitTransition.current = true;\n setExitTransitionFinished(false);\n }\n previousRequestEnter.current = requestEnter;\n }, [requestEnter]);\n const handleExited = React.useCallback(() => {\n hasPendingExitTransition.current = false;\n setExitTransitionFinished(true);\n }, []);\n const registerTransition = React.useCallback(() => {\n registeredTransitions.current += 1;\n setHasTransition(true);\n return () => {\n registeredTransitions.current -= 1;\n if (registeredTransitions.current === 0) {\n setHasTransition(false);\n }\n };\n }, []);\n let hasExited;\n if (!hasTransition) {\n // If there are no transitions registered, the `exited` state is opposite of `requestEnter` immediately.\n hasExited = !requestEnter;\n } else if (requestEnter) {\n hasExited = false;\n } else {\n hasExited = !hasPendingExitTransition.current && exitTransitionFinished;\n }\n const contextValue = React.useMemo(() => ({\n requestedEnter: requestEnter,\n onExited: handleExited,\n registerTransition,\n hasExited\n }), [handleExited, requestEnter, registerTransition, hasExited]);\n return {\n contextValue,\n hasExited\n };\n}","import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Select';\nexport function getSelectUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const selectClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'button', 'listbox', 'popup', 'active', 'expanded', 'disabled', 'focusVisible']);","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _span;\nconst _excluded = [\"areOptionsEqual\", \"autoComplete\", \"autoFocus\", \"children\", \"defaultValue\", \"defaultListboxOpen\", \"disabled\", \"getSerializedValue\", \"listboxId\", \"listboxOpen\", \"multiple\", \"name\", \"required\", \"onChange\", \"onListboxOpenChange\", \"getOptionAsString\", \"renderValue\", \"placeholder\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useSelect } from '../useSelect';\nimport { useSlotProps } from '../utils';\nimport { Popup } from '../Unstable_Popup/Popup';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSelectUtilityClass } from './selectClasses';\nimport { defaultOptionStringifier } from '../useSelect/defaultOptionStringifier';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { SelectProvider } from '../useSelect/SelectProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction defaultRenderValue(selectedOptions) {\n var _selectedOptions$labe;\n if (Array.isArray(selectedOptions)) {\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: selectedOptions.map(o => o.label).join(', ')\n });\n }\n return (_selectedOptions$labe = selectedOptions == null ? void 0 : selectedOptions.label) != null ? _selectedOptions$labe : null;\n}\nfunction useUtilityClasses(ownerState) {\n const {\n active,\n disabled,\n open,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible', active && 'active', open && 'expanded'],\n listbox: ['listbox', disabled && 'disabled'],\n popup: ['popup']\n };\n return composeClasses(slots, useClassNamesOverride(getSelectUtilityClass));\n}\n\n/**\n * The foundation for building custom-styled select components.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [Select API](https://mui.com/base-ui/react-select/components-api/#select)\n */\nconst Select = /*#__PURE__*/React.forwardRef(function Select(props, forwardedRef) {\n var _slots$root, _slots$listbox, _slots$popup, _ref, _renderValue;\n const {\n areOptionsEqual,\n autoComplete,\n autoFocus,\n children,\n defaultValue,\n defaultListboxOpen = false,\n disabled: disabledProp,\n getSerializedValue,\n listboxId,\n listboxOpen: listboxOpenProp,\n multiple = false,\n name,\n required = false,\n onChange,\n onListboxOpenChange,\n getOptionAsString = defaultOptionStringifier,\n renderValue: renderValueProp,\n placeholder,\n slotProps = {},\n slots = {},\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const renderValue = renderValueProp != null ? renderValueProp : defaultRenderValue;\n const [buttonDefined, setButtonDefined] = React.useState(false);\n const buttonRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const Button = (_slots$root = slots.root) != null ? _slots$root : 'button';\n const ListboxRoot = (_slots$listbox = slots.listbox) != null ? _slots$listbox : 'ul';\n const PopupComponent = (_slots$popup = slots.popup) != null ? _slots$popup : 'div';\n const handleButtonRefChange = React.useCallback(element => {\n setButtonDefined(element != null);\n }, []);\n const handleButtonRef = useForkRef(forwardedRef, buttonRef, handleButtonRefChange);\n React.useEffect(() => {\n if (autoFocus) {\n buttonRef.current.focus();\n }\n }, [autoFocus]);\n const {\n buttonActive,\n buttonFocusVisible,\n contextValue,\n disabled,\n getButtonProps,\n getListboxProps,\n getHiddenInputProps,\n getOptionMetadata,\n value,\n open\n } = useSelect({\n name,\n required,\n getSerializedValue,\n areOptionsEqual,\n buttonRef: handleButtonRef,\n defaultOpen: defaultListboxOpen,\n defaultValue,\n disabled: disabledProp,\n listboxId,\n multiple,\n open: listboxOpenProp,\n onChange,\n onOpenChange: onListboxOpenChange,\n getOptionAsString,\n value: valueProp,\n componentName: 'Select'\n });\n const ownerState = _extends({}, props, {\n active: buttonActive,\n defaultListboxOpen,\n disabled,\n focusVisible: buttonFocusVisible,\n open,\n multiple,\n renderValue,\n value\n });\n const classes = useUtilityClasses(ownerState);\n const buttonProps = useSlotProps({\n elementType: Button,\n getSlotProps: getButtonProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root\n });\n const listboxProps = useSlotProps({\n elementType: ListboxRoot,\n getSlotProps: getListboxProps,\n externalSlotProps: slotProps.listbox,\n additionalProps: {\n ref: listboxRef\n },\n ownerState,\n className: classes.listbox\n });\n const popupProps = useSlotProps({\n elementType: PopupComponent,\n externalSlotProps: slotProps.popup,\n additionalProps: {\n anchor: buttonRef.current,\n keepMounted: true,\n open,\n placement: 'bottom-start',\n role: undefined\n },\n ownerState,\n className: classes.popup\n });\n let selectedOptionsMetadata;\n if (multiple) {\n selectedOptionsMetadata = value.map(v => getOptionMetadata(v)).filter(o => o !== undefined);\n } else {\n var _getOptionMetadata;\n selectedOptionsMetadata = (_getOptionMetadata = getOptionMetadata(value)) != null ? _getOptionMetadata : null;\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Button, _extends({}, buttonProps, {\n children: (_ref = (_renderValue = renderValue(selectedOptionsMetadata)) != null ? _renderValue : placeholder) != null ? _ref : // fall back to a zero-width space to prevent layout shift\n // from https://github.com/mui/material-ui/pull/24563\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n }))\n })), buttonDefined && /*#__PURE__*/_jsx(Popup, _extends({\n slots: {\n root: PopupComponent\n }\n }, popupProps, {\n children: /*#__PURE__*/_jsx(ListboxRoot, _extends({}, listboxProps, {\n children: /*#__PURE__*/_jsx(SelectProvider, {\n value: contextValue,\n children: children\n })\n }))\n })), /*#__PURE__*/_jsx(\"input\", _extends({}, getHiddenInputProps(), {\n autoComplete: autoComplete\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Select.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A function used to determine if two options' values are equal.\n * By default, reference equality is used.\n *\n * There is a performance impact when using the `areOptionsEqual` prop (proportional to the number of options).\n * Therefore, it's recommented to use the default reference equality comparison whenever possible.\n */\n areOptionsEqual: PropTypes.func,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the select element is focused during the first mount\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the select will be initially open.\n * @default false\n */\n defaultListboxOpen: PropTypes.bool,\n /**\n * The default selected value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the select is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * A function used to convert the option label to a string.\n * It's useful when labels are elements and need to be converted to plain text\n * to enable navigation using character keys on a keyboard.\n *\n * @default defaultOptionStringifier\n */\n getOptionAsString: PropTypes.func,\n /**\n * A function to convert the currently selected value to a string.\n * Used to set a value of a hidden input associated with the select,\n * so that the selected value can be posted with a form.\n */\n getSerializedValue: PropTypes.func,\n /**\n * `id` attribute of the listbox element.\n */\n listboxId: PropTypes.string,\n /**\n * Controls the open state of the select's listbox.\n * @default undefined\n */\n listboxOpen: PropTypes.bool,\n /**\n * If `true`, selecting multiple values is allowed.\n * This affects the type of the `value`, `defaultValue`, and `onChange` props.\n *\n * @default false\n */\n multiple: PropTypes.bool,\n /**\n * Name of the element. For example used by the server to identify the fields in form submits.\n */\n name: PropTypes.string,\n /**\n * Callback fired when an option is selected.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the component requests to be opened.\n * Use in controlled mode (see listboxOpen).\n */\n onListboxOpenChange: PropTypes.func,\n /**\n * Text to show when there is no selected value.\n */\n placeholder: PropTypes.node,\n /**\n * Function that customizes the rendering of the selected value.\n */\n renderValue: PropTypes.func,\n /**\n * If `true`, the Select cannot be empty when submitting form.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n slotProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n popup: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Select.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n listbox: PropTypes.elementType,\n popup: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The selected value.\n * Set to `null` to deselect all options.\n */\n value: PropTypes.any\n} : void 0;\nexport { Select };","'use client';\n\nimport * as React from 'react';\nconst TEXT_NAVIGATION_RESET_TIMEOUT = 500; // milliseconds\n\n/**\n * @ignore - internal hook.\n *\n * Provides a handler for text navigation.\n * It's used to navigate a list by typing the first letters of the options.\n *\n * @param callback A function to be called when the navigation should be performed.\n * @returns A function to be used in a keydown event handler.\n */\nexport function useTextNavigation(callback) {\n const textCriteriaRef = React.useRef({\n searchString: '',\n lastTime: null\n });\n return React.useCallback(event => {\n if (event.key.length === 1 && event.key !== ' ') {\n const textCriteria = textCriteriaRef.current;\n const lowerKey = event.key.toLowerCase();\n const currentTime = performance.now();\n if (textCriteria.searchString.length > 0 && textCriteria.lastTime && currentTime - textCriteria.lastTime > TEXT_NAVIGATION_RESET_TIMEOUT) {\n textCriteria.searchString = lowerKey;\n } else if (textCriteria.searchString.length !== 1 || lowerKey !== textCriteria.searchString) {\n // If there is just one character in the buffer and the key is the same, do not append\n textCriteria.searchString += lowerKey;\n }\n textCriteria.lastTime = currentTime;\n callback(textCriteria.searchString, event);\n }\n }, [callback]);\n}","import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Option';\nexport function getOptionUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const optionClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'selected', 'highlighted']);","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"disabled\", \"label\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getOptionUtilityClass } from './optionClasses';\nimport { useSlotProps } from '../utils';\nimport { useOption, useOptionContextStabilizer } from '../useOption';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { ListContext } from '../useList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n disabled,\n highlighted,\n selected\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', highlighted && 'highlighted', selected && 'selected']\n };\n return composeClasses(slots, useClassNamesOverride(getOptionUtilityClass));\n}\nconst InnerOption = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Option(props, forwardedRef) {\n var _slots$root, _optionRef$current;\n const {\n children,\n disabled = false,\n label,\n slotProps = {},\n slots = {},\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'li';\n const optionRef = React.useRef(null);\n const combinedRef = useForkRef(optionRef, forwardedRef);\n\n // If `label` is not explicitly provided, the `children` are used for convenience.\n // This is used to populate the select's trigger with the selected option's label.\n const computedLabel = label != null ? label : typeof children === 'string' ? children : (_optionRef$current = optionRef.current) == null || (_optionRef$current = _optionRef$current.textContent) == null ? void 0 : _optionRef$current.trim();\n const {\n getRootProps,\n selected,\n highlighted,\n index\n } = useOption({\n disabled,\n label: computedLabel,\n rootRef: combinedRef,\n value\n });\n const ownerState = _extends({}, props, {\n disabled,\n highlighted,\n index,\n selected\n });\n const classes = useUtilityClasses(ownerState);\n const rootProps = useSlotProps({\n getSlotProps: getRootProps,\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n className: classes.root,\n ownerState\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n}));\n\n/**\n * An unstyled option to be used within a Select.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [Option API](https://mui.com/base-ui/react-select/components-api/#option)\n */\nconst Option = /*#__PURE__*/React.forwardRef(function Option(props, ref) {\n const {\n value\n } = props;\n\n // This wrapper component is used as a performance optimization.\n // `useOptionContextStabilizer` ensures that the context value\n // is stable across renders, so that the actual Option re-renders\n // only when it needs to.\n const {\n contextValue\n } = useOptionContextStabilizer(value);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(InnerOption, _extends({}, props, {\n ref: ref\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Option.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the option will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * A text representation of the option's content.\n * Used for keyboard text navigation matching.\n */\n label: PropTypes.string,\n /**\n * The props used for each slot inside the Option.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Option.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the option.\n */\n value: PropTypes.any.isRequired\n} : void 0;\nexport { Option };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useListItem } from '../useList';\nimport { useCompoundItem } from '../useCompound';\nimport { useButton } from '../useButton';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\n/**\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useOption API](https://mui.com/base-ui/react-select/hooks-api/#use-option)\n */\nexport function useOption(params) {\n const {\n value,\n label,\n disabled,\n rootRef: optionRefParam,\n id: idParam\n } = params;\n const {\n getRootProps: getListItemProps,\n highlighted,\n selected\n } = useListItem({\n item: value\n });\n const {\n getRootProps: getButtonProps,\n rootRef: buttonRefHandler\n } = useButton({\n disabled,\n focusableWhenDisabled: true\n });\n const id = useId(idParam);\n const optionRef = React.useRef(null);\n const selectOption = React.useMemo(() => ({\n disabled,\n label,\n value,\n ref: optionRef,\n id\n }), [disabled, label, value, id]);\n const {\n index\n } = useCompoundItem(value, selectOption);\n const handleRef = useForkRef(optionRefParam, optionRef, buttonRefHandler);\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ([' ', 'Enter'].includes(event.key)) {\n event.defaultMuiPrevented = true; // prevent listbox onKeyDown\n }\n };\n const getOwnHandlers = (otherHandlers = {}) => ({\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n return {\n getRootProps: (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getListItemProps, combineHooksSlotProps(getButtonProps, getOwnHandlers));\n return _extends({}, externalProps, externalEventHandlers, getCombinedRootProps(externalEventHandlers), {\n id,\n ref: handleRef,\n role: 'option',\n 'aria-selected': selected\n });\n },\n highlighted,\n index,\n selected,\n rootRef: handleRef\n };\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { ListActionTypes } from './listActions.types';\nimport { ListContext } from './ListContext';\n\n/**\n * Contains the logic for an item of a list-like component (e.g. Select, Menu, etc.).\n * It handles the item's mouse events and tab index.\n *\n * @template ItemValue The type of the item's value. This should be consistent with the type of useList's `items` parameter.\n * @ignore - internal hook.\n */\nexport function useListItem(parameters) {\n const {\n handlePointerOverEvents = false,\n item\n } = parameters;\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('useListItem must be used within a ListProvider');\n }\n const {\n dispatch,\n getItemState\n } = listContext;\n const {\n highlighted,\n selected,\n focusable\n } = getItemState(item);\n const createHandleClick = React.useCallback(externalHandlers => event => {\n var _externalHandlers$onC;\n (_externalHandlers$onC = externalHandlers.onClick) == null || _externalHandlers$onC.call(externalHandlers, event);\n if (event.defaultPrevented) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (item === undefined) {\n throw new Error(['MUI: The `item` provided to useListItem() is undefined.', 'This should happen only during server-side rendering under React 17.'].join('\\n'));\n }\n }\n dispatch({\n type: ListActionTypes.itemClick,\n item: item,\n event\n });\n }, [dispatch, item]);\n const createHandlePointerOver = React.useCallback(externalHandlers => event => {\n var _externalHandlers$onM;\n (_externalHandlers$onM = externalHandlers.onMouseOver) == null || _externalHandlers$onM.call(externalHandlers, event);\n if (event.defaultPrevented) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (item === undefined) {\n throw new Error(['MUI: The `item` provided to useListItem() is undefined.', 'This should happen only during server-side rendering under React 17.'].join('\\n'));\n }\n }\n dispatch({\n type: ListActionTypes.itemHover,\n item: item,\n event\n });\n }, [dispatch, item]);\n let tabIndex;\n if (focusable) {\n tabIndex = highlighted ? 0 : -1;\n }\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, {\n onClick: createHandleClick(externalEventHandlers),\n onPointerOver: handlePointerOverEvents ? createHandlePointerOver(externalEventHandlers) : undefined,\n tabIndex\n });\n };\n return {\n getRootProps,\n highlighted,\n selected\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { CompoundComponentContext } from './useCompoundParent';\n/**\n * Registers a child component with the parent component.\n *\n * @param id A unique key for the child component. If the `id` is `undefined`, the registration logic will not run (this can sometimes be the case during SSR).\n * This can be either a value, or a function that generates a value based on already registered siblings' ids.\n * If a function, it's called with the set of the ids of all the items that have already been registered.\n * Return `existingKeys.size` if you want to use the index of the new item as the id.\n * @param itemMetadata Arbitrary metadata to pass to the parent component. This should be a stable reference (e.g. a memoized object), to avoid unnecessary re-registrations.\n *\n * @ignore - internal hook.\n */\nexport function useCompoundItem(id, itemMetadata) {\n const context = React.useContext(CompoundComponentContext);\n if (context === null) {\n throw new Error('useCompoundItem must be used within a useCompoundParent');\n }\n const {\n registerItem\n } = context;\n const [registeredId, setRegisteredId] = React.useState(typeof id === 'function' ? undefined : id);\n useEnhancedEffect(() => {\n const {\n id: returnedId,\n deregister\n } = registerItem(id, itemMetadata);\n setRegisteredId(returnedId);\n return deregister;\n }, [registerItem, itemMetadata, id]);\n return {\n id: registeredId,\n index: registeredId !== undefined ? context.getItemIndex(registeredId) : -1,\n totalItemCount: context.totalSubitemCount\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList';\n\n/**\n * Stabilizes the ListContext value for the Option component, so it doesn't change when sibling Options update.\n *\n * @param value The value of the Option.\n * @returns The stable ListContext value.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useOptionContextStabilizer API](https://mui.com/base-ui/react-select/hooks-api/#use-option-context-stabilizer)\n */\nexport function useOptionContextStabilizer(value) {\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('Option: ListContext was not found.');\n }\n const {\n getItemState,\n dispatch\n } = listContext;\n const {\n highlighted,\n selected,\n focusable\n } = getItemState(value);\n\n // The local version of getItemState can be only called with the current Option's value.\n // It doesn't make much sense to render an Option depending on other Options' state anyway.\n const localGetItemState = React.useCallback(itemValue => {\n if (itemValue !== value) {\n throw new Error(['Base UI Option: Tried to access the state of another Option.', 'This is unsupported when the Option uses the OptionContextStabilizer as a performance optimization.'].join('/n'));\n }\n return {\n highlighted,\n selected,\n focusable\n };\n }, [highlighted, selected, focusable, value]);\n\n // Create a local (per Option) instance of the ListContext that changes only when\n // the getItemState's return value changes.\n // This makes Options re-render only when their state actually change, not when any Option's state changes.\n const localContextValue = React.useMemo(() => ({\n dispatch,\n getItemState: localGetItemState\n }), [dispatch, localGetItemState]);\n return {\n contextValue: localContextValue\n };\n}","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { styled } from \"@mui/material\";\nimport { SelectOption } from \"@mui/base\";\nimport { Select as BaseSelect, SelectProps, selectClasses, SelectRootSlotProps } from \"@mui/base/Select\";\nimport { Option as BaseOption, optionClasses } from \"@mui/base/Option\";\nimport SolaceComponentProps from \"./SolaceComponentProps\";\nimport { SolaceSelectChangeEvent } from \"./form/SolaceSelect\";\nimport { SelectDropdownIcon } from \"../resources/icons/SelectIcons\";\n\nconst shouldForwardProp = (key: string) => key !== \"bgColor\" && key !== \"fgColor\";\n\nconst ColorLayer = styled(\"div\", { shouldForwardProp })<{ bgColor?: string; fgColor?: string }>(\n\t({ theme, bgColor = \"#FFFFFF\", fgColor = \"#000000\" }) => `\n\tbackground-color: ${bgColor};\n\tborder-color: ${bgColor?.toUpperCase() === \"#FFFFFF\" ? theme.palette.ux.secondary.w100 : \"transparent\"};\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-radius: ${theme.spacing(0.5)};\n\tbox-sizing: border-box;\n\tcolor: ${fgColor};\n\tfill: ${fgColor};`\n);\n\nconst IconWrapper = styled(ColorLayer)(\n\t({ theme }) => `\n\tdisplay: flex;\n\tpadding: ${theme.spacing(0.5)};`\n);\n\nconst StateLayer = styled(\"div\")(\n\t({ theme }) => `\n\talign-items: center;\n\tcolumn-gap: ${theme.spacing(1)};\n\tdisplay: flex;\n\tflex-direction: row;\n\tfont-weight: ${theme.typography.body1.fontWeight};\n\tjustify-content: space-between;\n\tpadding: ${theme.spacing(0, 0, 0, 0.5)};\n\t&:hover {\n\t\tbackground-color: ${theme.palette.ux.stateLayer.w10};\n\t}\n\t& > svg {\n\t\tvertical-align: middle;\n\t}`\n);\n\nconst ContentLayer = React.forwardRef(function EnvironmentButton(\n\tprops: SelectRootSlotProps<string, false> & SelectOptionsProps,\n\tref: React.ForwardedRef<HTMLButtonElement>\n) {\n\tconst { ownerState, options, children, ...other } = props;\n\tconst details = (options ?? []).find((o) => o.value === ownerState.value);\n\n\treturn (\n\t\t<button type=\"button\" {...other} ref={ref}>\n\t\t\t<ColorLayer bgColor={details?.bgColor} fgColor={details?.fgColor}>\n\t\t\t\t<StateLayer className=\"state-layer\">\n\t\t\t\t\t{children}\n\t\t\t\t\t<SelectDropdownIcon />\n\t\t\t\t</StateLayer>\n\t\t\t</ColorLayer>\n\t\t</button>\n\t);\n});\n\nconst ContainerLayer = styled(ContentLayer, { shouldForwardProp: () => true })(\n\t({ theme }) => `\n\tborder: none;\n\tborder-radius: ${theme.spacing(0.5)};\n\tcursor: pointer;\n\tfont-size: ${theme.typography.body1.fontSize};\n\tfont-weight: ${theme.typography.body1.fontWeight};\n\tpadding: 0;\n\ttext-align: left;\n\t&.${selectClasses.expanded} .state-layer {\n\t\tbackground-color: ${theme.palette.ux.stateLayer.w20};\n\t}\n\t&.${selectClasses.focusVisible} {\n\t\toutline: 0;\n\t}`\n);\n\n// NOTE: due to a Safari bug with \"sticky\" and \"overflow\",\n// we are using the `will-change` CSS property here.\nconst Listbox = styled(\"ul\")(\n\t({ theme }) => `\n\tbackground-color: ${theme.palette.ux.background.w10};\n\tborder-radius: ${theme.spacing(0.5)};\n\tbox-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.2);\n\tbox-sizing: border-box;\n\tmargin: 0;\n\tmin-width: ${theme.spacing(40)};\n\toutline: 0;\n\toverflow-y: auto;\n\tmax-height: min(${theme.spacing(52)}, calc(100vh - ${theme.spacing(10)}));\n\tmin-height: ${theme.spacing(10)};\n\tpadding: ${theme.spacing(1, 0, 0, 0)};\n\twill-change: transform;`\n);\n\nconst Option = styled(BaseOption)(\n\t({ theme }) => `\n\talign-items: center;\n\tcolumn-gap: ${theme.spacing(2)};\n\tcursor: default;\n\tdisplay: flex;\n\tflex-direction: row;\n\tlist-style: none;\n\tpadding: ${theme.spacing(1, 2)};\n\t&:last-of-type {\n\t\tborder-bottom: none;\n\t}\n\t&.${optionClasses.selected},\n\t&.${optionClasses.highlighted},\n\t&.${optionClasses.highlighted}.${optionClasses.selected} {\n\t\tbackground-color: ${theme.palette.ux.brand.w10};\n\t}\n\t&.${optionClasses.disabled} {\n\t\tcolor: ${theme.palette.ux.secondary.w40};\n\t}\n\t&:hover:not(.${optionClasses.disabled}) {\n\t\tbackground-color: ${theme.palette.ux.deprecated.secondary.w10};\n\t}`\n);\n\nconst Popup = styled(\"div\")`\n\tz-index: 1;\n`;\n\nconst Icon = styled(\"span\")`\n\tdisplay: flex;\n`;\n\nconst Text = styled(\"span\")`\n\tmax-width: 134px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n`;\n\nconst StickyChildren = styled(\"div\")(\n\t({ theme }) => `\n\tbackground-color: ${theme.palette.ux.background.w10};\n\tbottom: 0;\n\tdisplay: block;\n\tpadding-top: ${theme.spacing(1)};\n\tposition: sticky;`\n);\n\nexport interface SolaceEnvironmentSelectChipOption {\n\t/**\n\t * Environment's label\n\t */\n\tlabel: string;\n\t/**\n\t * Environment's value (or unique ID)\n\t */\n\tvalue: string;\n\t/**\n\t * Background color\n\t */\n\tbgColor: string;\n\t/**\n\t * Text color\n\t */\n\tfgColor: string;\n\t/**\n\t * Icon from maas-icons (16x16)\n\t */\n\ticon: JSX.Element;\n}\n\ninterface SelectOptionsProps {\n\toptions: SolaceEnvironmentSelectChipOption[];\n}\n\nfunction Select(props: SelectProps<string, false> & SelectOptionsProps) {\n\tconst slots: SelectProps<string, false>[\"slots\"] = {\n\t\troot: ContainerLayer,\n\t\tlistbox: Listbox,\n\t\tpopup: Popup,\n\t\t...props.slots\n\t};\n\n\tconst { children, ...other } = props;\n\tconst options = other.options;\n\n\tconst renderValue = useCallback(\n\t\t(option: SelectOption<string> | null) => {\n\t\t\tconst details = (options ?? []).find((o) => o.value === option?.value);\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{details?.icon && <Icon>{details.icon}</Icon>}\n\t\t\t\t\t<Text>{details?.label}</Text>\n\t\t\t\t</>\n\t\t\t);\n\t\t},\n\t\t[options]\n\t);\n\n\treturn (\n\t\t<BaseSelect renderValue={renderValue} {...other} slots={slots}>\n\t\t\t{options.map(({ label, value, fgColor, bgColor, icon }) => (\n\t\t\t\t<Option key={value} value={value}>\n\t\t\t\t\t{icon && (\n\t\t\t\t\t\t<IconWrapper fgColor={fgColor} bgColor={bgColor}>\n\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t</IconWrapper>\n\t\t\t\t\t)}\n\t\t\t\t\t<span>{label}</span>\n\t\t\t\t</Option>\n\t\t\t))}\n\t\t\t{children}\n\t\t</BaseSelect>\n\t);\n}\n\nexport interface SolaceEnvironmentSelectChipProps extends SolaceComponentProps, SelectOptionsProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname: string;\n\t/**\n\t * Array of environment options\n\t */\n\toptions: SolaceEnvironmentSelectChipOption[];\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tvalue?: string;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed, required for controlled component\n\t */\n\tonChange?: (event: SolaceSelectChangeEvent) => void;\n\t/**\n\t * Additional elements to render below the environments\n\t */\n\tchildren?: JSX.Element | Array<JSX.Element>;\n}\n\nfunction SolaceEnvironmentSelectChip({\n\tid,\n\tname,\n\toptions,\n\tvalue = \"\",\n\tonChange,\n\tdataQa,\n\tdataTags,\n\tchildren\n}: SolaceEnvironmentSelectChipProps): JSX.Element {\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\tconst handleChange = (_: unknown, value: string | null) => {\n\t\tsetSelectedValue(value ?? \"\");\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: value ?? \"\"\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getId = () => {\n\t\treturn id ? id : name;\n\t};\n\n\treturn (\n\t\t<Select\n\t\t\tid={getId()}\n\t\t\tname={name}\n\t\t\toptions={options}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t\tvalue={selectedValue}\n\t\t\tonChange={handleChange}\n\t\t>\n\t\t\t<StickyChildren>{children}</StickyChildren>\n\t\t</Select>\n\t);\n}\n\nexport default SolaceEnvironmentSelectChip;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n\tListSubheader,\n\tMenuItem,\n\tMenuProps,\n\tPopoverOrigin,\n\tSelect,\n\tSelectChangeEvent,\n\tstyled,\n\tuseTheme\n} from \"@mui/material\";\nimport { ReactNode, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { SelectDropdownIcon } from \"../../resources/icons/SelectIcons\";\nimport SolaceComponentProps from \"../SolaceComponentProps\";\nimport FormChildBase from \"./FormChildBase\";\n\nexport interface SolaceColors {\n\tbgColor: string;\n\tfgColor: string;\n}\n\nexport const SolacePickerIconWrapper = styled(\"div\")(\n\t({ theme }) => `\n\talign-items: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: ${theme.spacing(3)};\n\tjustify-content: center;\n\twidth: ${theme.spacing(3)};`\n);\n\nconst Color = styled(SolacePickerIconWrapper, {\n\tshouldForwardProp: (key: string) => key !== \"bgColor\" && key !== \"fgColor\"\n})<{\n\tbgColor: string;\n\tfgColor: string;\n}>(\n\t({ theme, bgColor, fgColor }) => `\n\tbackground-color: ${bgColor};\n\tborder: ${bgColor === \"#FFFFFF\" ? \"1px solid #000\" : \"none\"};\n\tborder-radius: ${theme.spacing(0.5)};\n\tbox-sizing: border-box;\n\tcolor: ${fgColor};\n\tfont-size: ${theme.typography.caption.fontSize};\n\tfont-weight: ${theme.typography.caption.fontWeight};\n\theight: ${theme.spacing(3)};\n\twidth: ${theme.spacing(3)};`\n);\n\nexport const EmptyMessageContainer = styled(\"div\")(\n\t({ theme }) => `\n\twidth: 100%;\n\tcolor: ${theme.palette.ux.deprecated.secondary.text.wMain};\n\ttext-align: center;`\n);\n\nexport type SolacePickerTypes = \"colors\" | \"icons\";\n\nconst sizes: { [key in SolacePickerTypes]: number } = {\n\tcolors: 5,\n\ticons: 4\n};\n\n/**\n * Utility function to convert a color object to a value\n * @param param {object}\n * @returns string\n */\nexport const color2value = ({ fgColor, bgColor }: SolaceColors): string => `${fgColor},${bgColor}`;\n\n/**\n *\n * @param value Utility function to convert a string value to object\n * @returns object with fgColor and bgColor\n */\nexport const value2color = (value: string): SolaceColors => {\n\tconst [fgColor, bgColor] = value.split(\",\");\n\treturn { fgColor, bgColor };\n};\n\n/**\n * Icons are not provided by MRC but maas-icons repo.\n * These are the ones that shoud be used.\n */\nexport type SolaceEnvironmentIcons =\n\t| \"MAINTENANCE\"\n\t| \"CONSTRUCTION\"\n\t| \"TOOLKIT\"\n\t| \"TERMINAL\"\n\t| \"BUG\"\n\t| \"TEST_TUBE\"\n\t| \"NEW_RELEASE\"\n\t| \"CONTENT_SEARCH\"\n\t| \"BROKER\"\n\t| \"ROCKET_LAUNCH\"\n\t| \"VERIFIED\"\n\t| \"DEPLOYED_CODE\";\n\nexport interface SolacePickerChangeEvent {\n\tname: string;\n\tvalue: string;\n}\n\nexport interface SolacePickerProps<T extends string> extends SolaceComponentProps {\n\t/**\n\t * Unique identifier ... if `id` is not specified, `name` value will be used in order to make `label` and `helperText` accessible for screen readers\n\t */\n\tid?: string;\n\t/**\n\t * Type of picker: \"colors\" or \"icons\"\n\t */\n\tvariant: SolacePickerTypes;\n\t/**\n\t * Name attribute to assign to the `input` element\n\t */\n\tname: string;\n\t/**\n\t * When #variant is \"icons\", you must provide the icons from maas-icons (24px). Also see #SolaceEnvironmentIcons\n\t */\n\ticons?: { [key in T]: JSX.Element };\n\t/**\n\t * When #variant is \"icons\", you can specify the order of the icons to be displayed\n\t */\n\ticonKeyOrderedList?: T[];\n\t/**\n\t * the label content to display on the screen\n\t */\n\tlabel?: string | JSX.Element;\n\t/**\n\t * The value of the `input` element, required for controlled component\n\t */\n\tvalue?: string;\n\t/**\n\t * Content to display as supportive/explanitory text\n\t */\n\thelperText?: string | JSX.Element;\n\t/**\n\t * The text to display as the tooltip hint\n\t */\n\ttitle?: string;\n\t/**\n\t * Boolean flag to mark the `input` in error state\n\t */\n\thasErrors?: boolean;\n\t/**\n\t * Boolean flag used to display an indicator of whether or not this `input` is mandatory\n\t */\n\trequired?: boolean;\n\t/**\n\t * Boolean flag to control whether to stack the label on top of the `input` element (false) or place them inline to one another (true)\n\t */\n\tinlineLabel?: boolean;\n\t/**\n\t * Boolean flag to disable the `input`\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Boolean flag to set the `input` in a read-only state\n\t */\n\treadOnly?: boolean;\n\t/**\n\t * Callback function to trigger whenever the value of the `input` is changed\n\t */\n\tonChange?: (event: SolacePickerChangeEvent) => void;\n\t/**\n\t * Boolean flag to show the select option that has empty value\n\t */\n\tdisplayEmpty?: boolean;\n\t/**\n\t * Boolean flag to show the select options\n\t */\n\topen?: boolean;\n\t/**\n\t * Callback function to trigger whenever the dropdown opens\n\t */\n\tonOpen?: () => void;\n\t/**\n\t * Callback function to trigger whenever the dropdown closes\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Custom anchorOrigin of the menu\n\t */\n\tmenuAnchorOrigin?: PopoverOrigin;\n\t/**\n\t * Custom transformOrigin of the menu\n\t */\n\tmenuTransformOrigin?: PopoverOrigin;\n\t/**\n\t * Number of colors or icons to display per row\n\t */\n\tnumOfItemsPerRow?: number;\n\t/**\n\t * Optional flag to specify the number of rows to be displayed, default to 5.\n\t */\n\tnumOfRowsDisplayed?: number;\n\t/**\n\t * Content control panel to be displayed on top of the menu items. Only applicable when variant is \"icons\".\n\t * This is useful when you want to provide additional controls to the user, such as search, filter, etc.\n\t */\n\tcontentControlPanel?: JSX.Element;\n\t/**\n\t * Callback function to return option display value based on selected option value\n\t */\n\tgetOptionDisplayValue?: (value: unknown) => ReactNode;\n\t/**\n\t * If true, will focus on the first menuitem\n\t */\n\tautoFocusItem?: boolean;\n\t/**\n\t * Empty state message\n\t */\n\temptyStateMessage?: string;\n}\n\nconst ITEM_HEIGHT = 32;\nconst ITEM_WIDTH = 32;\nconst ITEM_GAP = 8;\nconst DEFAULT_NUM_OF_ROWS = 5;\n// Padding defined in SolaceGrid for MUI Paper component where menu items are rendered\nconst MUI_PAPER_PADDING = 16;\nconst DEFAULT_EMPTY_MESSAGE = \"No Results Found\";\n\nfunction SolacePicker<T extends string>({\n\tid,\n\tname,\n\tvariant = \"colors\",\n\ticons,\n\ticonKeyOrderedList,\n\tlabel,\n\tvalue,\n\thelperText,\n\ttitle,\n\thasErrors = false,\n\trequired = false,\n\tdisabled = false,\n\treadOnly = false,\n\tinlineLabel = false,\n\tdisplayEmpty = false,\n\tonChange,\n\tdataQa,\n\tdataTags,\n\topen,\n\tonOpen,\n\tonClose,\n\tmenuAnchorOrigin,\n\tmenuTransformOrigin,\n\tnumOfItemsPerRow,\n\tnumOfRowsDisplayed = DEFAULT_NUM_OF_ROWS,\n\tcontentControlPanel,\n\tgetOptionDisplayValue,\n\tautoFocusItem = true,\n\temptyStateMessage = DEFAULT_EMPTY_MESSAGE\n}: SolacePickerProps<T>): JSX.Element {\n\tconst theme = useTheme();\n\tconst ux = theme.palette.ux;\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\tconst [contentControlElement, setContentControlElement] = useState<null | HTMLElement>(null);\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\tconst numOfMenuItemsPerRow = numOfItemsPerRow ? numOfItemsPerRow : sizes[variant];\n\n\tconst contentWidth = useMemo(() => {\n\t\treturn ITEM_WIDTH * numOfMenuItemsPerRow + ITEM_GAP * (numOfMenuItemsPerRow - 1);\n\t}, [numOfMenuItemsPerRow]);\n\n\tconst contentMaxHeight = useMemo(() => {\n\t\treturn ITEM_HEIGHT * numOfRowsDisplayed + ITEM_GAP * (numOfRowsDisplayed - 1) + ITEM_HEIGHT / 2;\n\t}, [numOfRowsDisplayed]);\n\n\tconst colors = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t{ fgColor: ux.primary.text.w100, bgColor: ux.background.w10 },\n\t\t\t\t{ fgColor: ux.primary.text.w100, bgColor: ux.accent.n2.w20 },\n\t\t\t\t{ fgColor: ux.primary.text.w100, bgColor: ux.accent.n1.w20 },\n\t\t\t\t{ fgColor: ux.primary.text.w100, bgColor: ux.accent.n6.w30 },\n\t\t\t\t{ fgColor: ux.primary.text.w100, bgColor: ux.accent.n5.w60 },\n\t\t\t\t{ fgColor: ux.primary.text.w100, bgColor: ux.accent.n7.wMain },\n\t\t\t\t{ fgColor: ux.primary.text.w10, bgColor: ux.accent.n0.wMain },\n\t\t\t\t{ fgColor: ux.primary.text.w10, bgColor: ux.accent.n3.wMain },\n\t\t\t\t{ fgColor: ux.primary.text.w10, bgColor: ux.accent.n4.wMain },\n\t\t\t\t{ fgColor: ux.primary.text.w10, bgColor: ux.accent.n9.wMain }\n\t\t\t] as SolaceColors[],\n\t\t[ux]\n\t);\n\n\tconst shallRenderContentControl = useMemo(() => {\n\t\treturn variant === \"icons\" && contentControlPanel;\n\t}, [contentControlPanel, variant]);\n\n\tconst handleChange = (event: SelectChangeEvent) => {\n\t\tsetSelectedValue(event.target.value);\n\t\tif (onChange) {\n\t\t\tonChange({\n\t\t\t\tname: name,\n\t\t\t\tvalue: event.target.value\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getId = () => {\n\t\treturn id ? id : name;\n\t};\n\n\tconst getMenuProps = () => {\n\t\tlet maxHeight = contentMaxHeight;\n\n\t\tif (shallRenderContentControl) {\n\t\t\tmaxHeight = maxHeight + (contentControlElement?.clientHeight || 0);\n\t\t} else {\n\t\t\tmaxHeight = maxHeight - MUI_PAPER_PADDING / 2;\n\t\t}\n\n\t\tconst paperOverrrides = {\n\t\t\t// For Select's Paper component, the default maxHeight is `calc(100% - 96px)` which depending on view size.\n\t\t\t// Adding custom maxHeight to override the default value if it is smaller than `calc(100% - 96px)`.\n\t\t\tmaxHeight: `min(${maxHeight}px, calc(100% - 96px))`,\n\t\t\t// When rendering content control panel inside the sticky ListSubheader, we want the ListSubheader to define paddingTop\n\t\t\t// instead of the parent Paper component so that when user scrolls, the content inside the ListSubheader stays at the same location.\n\t\t\tpadding: shallRenderContentControl ? theme.spacing(0, 2, 2, 2) : theme.spacing(2)\n\t\t};\n\n\t\tconst menuProps: Partial<MenuProps> = {\n\t\t\tanchorOrigin: { vertical: \"bottom\", horizontal: \"left\" },\n\t\t\ttransformOrigin: { vertical: \"top\", horizontal: \"left\" },\n\t\t\tMenuListProps: {\n\t\t\t\tautoFocusItem: autoFocusItem,\n\t\t\t\tclassName: \"SolacePickerGrid\",\n\t\t\t\tstyle: {\n\t\t\t\t\tgridTemplateColumns: `repeat(${numOfMenuItemsPerRow}, 1fr)`\n\t\t\t\t}\n\t\t\t},\n\t\t\tslotProps: {\n\t\t\t\tpaper: {\n\t\t\t\t\tsx: paperOverrrides\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif (menuAnchorOrigin) {\n\t\t\tmenuProps.anchorOrigin = menuAnchorOrigin;\n\t\t}\n\t\tif (menuTransformOrigin) {\n\t\t\tmenuProps.transformOrigin = menuTransformOrigin;\n\t\t}\n\t\treturn menuProps;\n\t};\n\n\tconst renderContentControl = useCallback(() => {\n\t\tif (contentControlPanel) {\n\t\t\treturn (\n\t\t\t\t<ListSubheader\n\t\t\t\t\tref={setContentControlElement}\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tgridColumnStart: 1,\n\t\t\t\t\t\tgridColumnEnd: numOfMenuItemsPerRow + 1,\n\t\t\t\t\t\tpadding: theme.spacing(2, 0, 1, 0),\n\t\t\t\t\t\twidth: contentWidth, // width is determined by the number of items per row\n\t\t\t\t\t\theight: \"fit-content !important\"\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{contentControlPanel}\n\t\t\t\t</ListSubheader>\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}, [contentControlPanel, contentWidth, numOfMenuItemsPerRow, theme]);\n\n\tconst renderEmptyMessage = useCallback(() => {\n\t\treturn (\n\t\t\t<ListSubheader\n\t\t\t\tsx={{\n\t\t\t\t\tgridColumnStart: 1,\n\t\t\t\t\tgridColumnEnd: numOfMenuItemsPerRow + 1,\n\t\t\t\t\tpadding: theme.spacing(0),\n\t\t\t\t\twidth: contentWidth, // width is determined by the number of items per row\n\t\t\t\t\theight: \"fit-content !important\"\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<EmptyMessageContainer>{emptyStateMessage}</EmptyMessageContainer>\n\t\t\t</ListSubheader>\n\t\t);\n\t}, [contentWidth, emptyStateMessage, numOfMenuItemsPerRow, theme]);\n\n\tconst renderColorMenuItems = useCallback(() => {\n\t\tif (variant === \"colors\") {\n\t\t\treturn colors.map((color) => {\n\t\t\t\tconst value = color2value(color);\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem key={value} value={value} disableGutters>\n\t\t\t\t\t\t<Color bgColor={color.bgColor} fgColor={color.fgColor}>\n\t\t\t\t\t\t\tAa\n\t\t\t\t\t\t</Color>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\treturn null;\n\t}, [colors, variant]);\n\n\tconst renderIconMenuItems = useCallback(() => {\n\t\tif (variant === \"icons\") {\n\t\t\tlet iconMenuItems = null;\n\n\t\t\tif (icons) {\n\t\t\t\tif (iconKeyOrderedList) {\n\t\t\t\t\ticonMenuItems = iconKeyOrderedList\n\t\t\t\t\t\t.map((key) => {\n\t\t\t\t\t\t\tconst icon = icons[key];\n\t\t\t\t\t\t\treturn icon ? (\n\t\t\t\t\t\t\t\t<MenuItem key={key} value={key} disableGutters>\n\t\t\t\t\t\t\t\t\t<SolacePickerIconWrapper>{icon}</SolacePickerIconWrapper>\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) : null;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter((item) => item !== null);\n\t\t\t\t} else {\n\t\t\t\t\ticonMenuItems = Object.entries<JSX.Element>(icons).map(([key, icon]) => (\n\t\t\t\t\t\t<MenuItem key={key} value={key} disableGutters>\n\t\t\t\t\t\t\t<SolacePickerIconWrapper>{icon}</SolacePickerIconWrapper>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (iconMenuItems?.length) {\n\t\t\t\treturn iconMenuItems;\n\t\t\t} else {\n\t\t\t\treturn renderEmptyMessage();\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}, [variant, icons, iconKeyOrderedList, renderEmptyMessage]);\n\n\tconst select = () => (\n\t\t<Select\n\t\t\tid={getId()}\n\t\t\tname={name}\n\t\t\tdata-qa={dataQa}\n\t\t\tdata-tags={dataTags}\n\t\t\taria-describedby={helperText ? `${getId()}-select-helper-text` : \"\"}\n\t\t\taria-labelledby={label ? `${getId()}-label` : \"\"}\n\t\t\taria-readonly={readOnly}\n\t\t\tclassName=\"SolacePickerGrid\"\n\t\t\ttitle={title}\n\t\t\tdisabled={disabled && !readOnly}\n\t\t\treadOnly={readOnly}\n\t\t\trequired={required}\n\t\t\terror={hasErrors}\n\t\t\tvalue={selectedValue}\n\t\t\tonChange={handleChange}\n\t\t\tIconComponent={SelectDropdownIcon}\n\t\t\tMenuProps={getMenuProps()}\n\t\t\tSelectDisplayProps={{ style: { padding: \"4px 40px 4px 4px\" } }}\n\t\t\tstyle={{ width: \"fit-content\" }}\n\t\t\tdisplayEmpty={displayEmpty}\n\t\t\tonOpen={onOpen}\n\t\t\tonClose={onClose}\n\t\t\topen={open}\n\t\t\trenderValue={getOptionDisplayValue ? getOptionDisplayValue : undefined}\n\t\t>\n\t\t\t{shallRenderContentControl && renderContentControl()}\n\t\t\t{renderColorMenuItems()}\n\t\t\t{renderIconMenuItems()}\n\t\t</Select>\n\t);\n\n\treturn (\n\t\t<FormChildBase\n\t\t\tid={getId()}\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terrorText={hasErrors ? helperText : undefined}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\trequired={required}\n\t\t\tinlineLabel={inlineLabel}\n\t\t\tcenterInlineLabel={inlineLabel}\n\t\t>\n\t\t\t{select()}\n\t\t</FormChildBase>\n\t);\n}\n\nexport default SolacePicker;\n","/*\n * Copyright 2023-2025 Solace Systems. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport SolaceToggleButtonGroup from \"./form/SolaceToggleButtonGroup\";\n\nimport { styled } from \"@mui/material\";\nimport SolaceSearchAndFilter from \"./SolaceSearchAndFilter\";\nimport { FIELD_TYPES, SolaceCategorizedSearchLayout, SolaceCategorizedSearchProps } from \"../types\";\n\nconst VerticalLayoutContainer = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"equalButtonWidth\" })<{\n\tequalButtonWidth?: boolean;\n}>(({ theme, equalButtonWidth = false }) => ({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\tjustifyContent: \"stretch\",\n\trowGap: theme.spacing(1),\n\t\".MuiToggleButtonGroup-root\": {\n\t\tboxSizing: \"border-box\",\n\t\tdisplay: \"grid\",\n\t\tgridAutoFlow: \"column\",\n\t\tgridAutoColumns: equalButtonWidth ? \"1fr\" : \"minmax(0, auto)\"\n\t}\n}));\n\nconst HorizontalLayoutContainer = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"equalButtonWidth\" })<{\n\tequalButtonWidth?: boolean;\n}>(({ theme, equalButtonWidth = false }) => ({\n\tdisplay: \"flex\",\n\tflexDirection: \"row\",\n\talignItems: \"flex-start\",\n\tcolumnGap: theme.spacing(3),\n\trowGap: theme.spacing(1),\n\tflexWrap: \"wrap\",\n\t\".MuiToggleButtonGroup-root\": {\n\t\tboxSizing: \"border-box\",\n\t\tdisplay: \"grid\",\n\t\tgridAutoFlow: \"column\",\n\t\tgridAutoColumns: equalButtonWidth ? \"1fr\" : \"minmax(0, auto)\"\n\t}\n}));\n\nconst SolaceCategorizedSearch = ({\n\tid,\n\tname,\n\tcategoryOptions,\n\tselectedCategoryValue,\n\tcategoryOptionsWidth,\n\tonCategoryChange,\n\thelperText,\n\tsearchValue,\n\tplaceholder,\n\tsearchInputWidth,\n\tdisabled = false,\n\tautoFocus = false,\n\thasErrors = false,\n\tonSearchValueChange,\n\tonSearchInputFocus,\n\tonSearchInputBlur,\n\tonClearAll,\n\tlayout = SolaceCategorizedSearchLayout.vertical,\n\tequalButtonWidth = false,\n\tdataQa\n}: SolaceCategorizedSearchProps): JSX.Element => {\n\tconst renderContent = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{categoryOptions && categoryOptions.length > 0 && (\n\t\t\t\t\t<div style={{ width: categoryOptionsWidth ? categoryOptionsWidth : \"fit-content\" }}>\n\t\t\t\t\t\t<SolaceToggleButtonGroup\n\t\t\t\t\t\t\toptions={categoryOptions}\n\t\t\t\t\t\t\tactiveValue={selectedCategoryValue}\n\t\t\t\t\t\t\tonChange={onCategoryChange}\n\t\t\t\t\t\t\tisDisabled={disabled}\n\t\t\t\t\t\t\tdataQa={dataQa ? `${dataQa}-` : \"\" + \"solaceCategorizedButtons\"}\n\t\t\t\t\t\t></SolaceToggleButtonGroup>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<SolaceSearchAndFilter\n\t\t\t\t\tid={id}\n\t\t\t\t\tname={name}\n\t\t\t\t\tvalue={searchValue}\n\t\t\t\t\tonChange={onSearchValueChange}\n\t\t\t\t\ttype={FIELD_TYPES.SEARCH}\n\t\t\t\t\tonFocus={onSearchInputFocus}\n\t\t\t\t\tonBlur={onSearchInputBlur}\n\t\t\t\t\tonClearAll={onClearAll}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\twidth={searchInputWidth}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tautoFocus={autoFocus}\n\t\t\t\t\thasErrors={hasErrors}\n\t\t\t\t\thelperText={helperText}\n\t\t\t\t\tdataQa={dataQa ? `${dataQa}-` : \"\" + \"solaceCategorizedSearchInput\"}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t};\n\n\treturn layout === SolaceCategorizedSearchLayout.horizontal ? (\n\t\t<HorizontalLayoutContainer\n\t\t\tequalButtonWidth={equalButtonWidth}\n\t\t\tclassName=\"solaceCategorizedSearch horizontalLayoutContainer\"\n\t\t\tdata-qa={dataQa}\n\t\t>\n\t\t\t{renderContent()}\n\t\t</HorizontalLayoutContainer>\n\t) : (\n\t\t<VerticalLayoutContainer\n\t\t\tequalButtonWidth={equalButtonWidth}\n\t\t\tclassName=\"solaceCategorizedSearch verticalLayoutContainer\"\n\t\t\tdata-qa={dataQa}\n\t\t>\n\t\t\t{renderContent()}\n\t\t</VerticalLayoutContainer>\n\t);\n};\n\nexport default SolaceCategorizedSearch;\n"],"names":["SelectDropdownIcon","createSvgIcon","_jsx","d","SolaceToasts","props","theme","useTheme","iconMapping","success","CheckCircleOutlineIcon","sx","color","palette","ux","brand","wMain","error","CancelOutlinedIcon","w100","fontSize","info","InfoOutlinedIcon","warning","ReportProblemOutlinedIcon","message","severity","open","action","autoDismiss","onClose","Snackbar","className","undefined","autoHideDuration","resumeHideDuration","_event","reason","role","anchorOrigin","vertical","horizontal","children","Alert","style","padding","icon","StyledGrid","styled","Grid","minHeight","NoAccess","_jsxs","container","direction","justifyContent","alignItems","spacing","item","Box","display","flexDirection","BlockIcon","Typography","variant","pageName","StyledBackDrop","Backdrop","zIndex","drawer","primary","text","w10","SolaceBackDrop","_extends","CircularProgress","formatMuiErrorMessage","code","url","i","arguments","length","encodeURIComponent","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","s","key","call","bind","e","t","r","apply","_objectWithoutPropertiesLoose","indexOf","isPlainObject","getPrototypeOf","Symbol","toStringTag","iterator","deepClone","output","deepmerge","options","clone","_excluded","shape$1","borderRadius","merge","acc","values","xs","sm","md","lg","xl","defaultBreakpoints","up","handleBreakpoints","propValue","styleFromPropValue","Array","isArray","themeBreakpoints","breakpoints","reduce","index","breakpoint","capitalize","string","Error","_formatMuiErrorMessage","charAt","toUpperCase","slice","getPath","obj","path","checkVars","vars","getStyleValue","themeMapping","transform","propValueFinal","userValue","value","prop","cssProperty","themeKey","fn","propTypes","filterProps","properties","m","p","directions","b","l","x","y","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","cache","arg","a","property","dir","memoize","marginKeys","paddingKeys","createUnaryUnit","defaultValue","propName","_getPath","themeSpacing","abs","createUnarySpacing","getValue","transformer","transformed","Math","cssProperties","getStyleFromPropValue","resolveCssProperty","margin","compose","styles","handlers","concat","borderTransform","createBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outline","outlineColor","gap","columnGap","rowGap","paletteTransform","sizingTransform","width","maxWidth","_props$theme","_props$theme2","breakpointsValues","unit","minWidth","height","maxHeight","defaultSxConfig$1","bgcolor","backgroundColor","pt","pr","pb","pl","px","py","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd","mt","mr","mb","ml","mx","my","marginTop","marginRight","marginBottom","marginLeft","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","displayPrint","overflow","textOverflow","visibility","whiteSpace","flexBasis","flexWrap","alignContent","order","flex","flexGrow","flexShrink","alignSelf","justifyItems","justifySelf","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","position","top","right","bottom","left","boxShadow","boxSizing","fontFamily","fontStyle","fontWeight","letterSpacing","textTransform","lineHeight","textAlign","typography","styleFunctionSx","getThemeValue","config","_theme$unstable_sxCon","unstable_sxConfig","defaultSxConfig","traverse","sxInput","sxObject","emptyBreakpoints","breakpointsInput","_breakpointsInput$key","createEmptyBreakpointObject","breakpointsKeys","css","styleKey","maybeFn","objects","allKeys","object","union","Set","every","size","objectsHaveSameKeys","breakpointKeys","breakpointOutput","removeUnusedBreakpoints","unstable_createStyleFunctionSx","styleFunctionSx$1","applyStyles","this","getColorSchemeSelector","selector","replace","mode","systemDefaultTheme","args","paletteInput","spacingInput","shape","shapeInput","other","step","sortedValues","breakpointsAsArray","sort","breakpoint1","breakpoint2","sortBreakpointsValues","down","between","start","end","endIndex","only","not","keyIndex","createBreakpoints","mui","argsInput","argument","createSpacing","muiTheme","components","unstable_sx","createTheme","defaultGenerator","componentName","ClassNameGenerator$1","createClassNameGenerator","generate","configure","generator","reset","f","o","clsx","globalStateClasses","active","checked","completed","disabled","expanded","focused","focusVisible","readOnly","required","selected","themeId","defaultTheme","defaultClassName","generateClassName","BoxRoot","emStyled","shouldForwardProp","React","forwardRef","inProps","ref","contextTheme","useContext","ThemeContext","useThemeWithoutDefault","_extendSxProp","inSx","systemProps","otherProps","_props$theme$unstable","result","splitProps","finalSx","extendSxProp","component","as","createBox","slots","globalStatePrefix","slot","globalStateClass","ClassNameGenerator","generateUtilityClass","generateUtilityClasses","root","Box$1","useEnhancedEffect$1","window","useLayoutEffect","useEffect","decomposeColor","type","re","RegExp","colors","match","parseInt","round","hexToRgb","marker","substring","colorSpace","shift","parseFloat","alpha","min","max","Number","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","clamp","clampWrapper","recomposeColor","setRef","current","globalId","maybeReactUseId","toString","useId","idOverride","reactId","defaultId","setDefaultId","useState","id","useGlobalId","useForkRef","refs","useMemo","instance","Timeout","constructor","currentId","clear","clearTimeout","disposeEffect","create","delay","setTimeout","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","visuallyHiddenStyle","clip","composeClasses","getUtilityClass","classes","utilityClass","push","Container","fillRule","clipRule","OpenExternalIcon","viewBox","TooltipVariant","rich","html","OverflowDiv","content","SolaceTooltip","title","placement","disableFocusListener","disableHoverListener","enterDelay","enterNextDelay","leaveDelay","onOpen","dataQa","dataTags","internalOpen","setInternalOpen","textElementRef","useRef","handleOpen","useCallback","isEmpty","shouldOpen","scrollWidth","clientWidth","handleClose","Tooltip","tooltip","TransitionComponent","Fade","TransitionProps","timeout","enter","exit","dataCollectionApi","initializeDataTrackingApi","api","SolaceButton","ariaLabel","ariaLabelledby","isDisabled","underline","href","startIcon","endIcon","onClick","dense","openLinkInNewTab","eventName","disabledFocusState","handleClick","IconButton","accent","n2","outlineOffset","verticalAlign","Link","MATERIAL_VARIANTS","BUTTON_VARIANT_MAP","contained","outlined","Button","StyledAutoCompleteTextField","TextField","deprecated","secondary","SolaceAutoCompleteTextField","InputProps","label","helperText","rest","InputLabel","FormHelperText","ErrorOutlineOutlinedIcon","CheckBoxLabel","htmlForId","bold","large","FormLabel","htmlFor","subtitle1","body1","defaultProps","fullWidth","SolaceCheckBox","name","hasErrors","indeterminate","boldLabel","largeLabel","subTextProps","light","onChange","setSelected","getId","Fragment","Checkbox","inputProps","disableRipple","checkedIcon","CheckIcon","indeterminateIcon","Remove","LabelElement","w50","SolaceRadio","subText","lightSubText","radioGroup","useRadioGroup","Radio","cursor","SolaceLabel","noWrap","SolaceStackLabel","HelperText","caption","ErrorIcon","fill","SvgIcon","DEFAULT_BASE_SIZE","BASE_FONT_PX_SIZES","xxs","xxl","huge","ErrorTextContainer","mixins","formComponent_ErrorText","ErrorTextLabel","ErrorText","_theme$typography$sub","WarnIcon","WarningTextContainer","formComponent_WarningText","WarningTextLabel","WarningText","ChildrenContainer","inlineLabel","FormChildBase","stackLabel","centerInlineLabel","errorText","warningText","keyMapping","ArrowDown","ArrowRight","ArrowUp","ArrowLeft","SolaceRadioGroup","inline","radioGroupRef","handleChange","_group$querySelector","group","focusTarget","querySelector","HTMLElement","focus","radioOptions","Children","toArray","filter","isValidElement","child","option","_keyMapping$event$key","delta","preventDefault","currentIndex","newIndex","newValue","getRadioGroup","childItems","RadioGroup","onKeyDown","CHIP_PX_HEIGHTS","CHIP_PX_BORDER_RADIUS","SolaceAttribute","dashedBorder","labelColor","fillColor","compressed","clickable","onDelete","CHIP_COLOR_MAP","chip","Chip","borderStyle","deleteIcon","CloseIcon","Diff","diff","oldStr","newStr","callback","oldString","castInput","newString","oldTokens","removeEmpty","tokenize","newTokens","diffWithOptionsObj","_a","done","postProcess","newLen","oldLen","editLength","maxEditLength","maxExecutionTime","Infinity","abortAfterTimestamp","Date","now","bestPath","oldPos","lastComponent","newPos","extractCommon","buildValues","minDiagonalToConsider","maxDiagonalToConsider","execEditLength","diagonalPath","basePath","removePath","addPath","canAdd","addPathNewPos","canRemove","addToPath","exec","ret","added","removed","oldPosInc","last","oneChangePerToken","count","previousComponent","commonCount","equals","comparator","ignoreCase","toLowerCase","array","chars","changeObjects","useLongestToken","nextComponent","reverse","componentLen","componentPos","oldValue","lineDiff","super","ignoreWhitespace","newlineIsToken","includes","trim","ignoreNewlineAtEof","endsWith","stripTrailingCr","retLines","linesAndNewlines","pop","line","DiffContainer","HeaderContainer","HeaderPane","CodeDiffContainer","w40","DiffSplitView","DiffPane","DiffLine","lineType","mixBlendMode","opacity","DiffGutter","background","w20","userSelect","DiffContent","wordWrap","NoDifferencesContainer","createChangesArray","change","lines","oldStart","newStart","diffChange","isInsert","newLineNumber","lineNumber","isDelete","oldLineNumber","isNormal","getChangeLines","SolaceTextDiff","text1","text2","text1Header","text2Header","noContentText","noDifferencesText","hideWhenNoDifferences","hunks","changes","changesArr","oldLines","newLines","allChanges","flatMap","hunk","renderLine","side","idx","MODES","CHIP_COLORS","CHIP_VARIANT","STATUSES","STATES","SolaceChip","FILLED","LIGHT_MODE","status","NO_STATUS","state","NOT_SELECTED","_Fragment","ERROR_STATUS","SolaceTag","MessageSection","SolaceErrorBox","showErrorIcon","showCloseButton","setOpen","InfoIcon","SuccessIcon","InfoBoxContainer","component_MessageBox","InfoBoxMessageContainer","messageContainer","DetailsContainer","detailsContainer","MessageTextContainer","messageTextContainer","IconContainer","iconContainer","InfoBoxMessage","renderIcons","variantMap","Icon","warn","SolaceMessageBox","showIcon","details","getColor","colorOverride","BannerContainer","hasTitle","TitleRow","TitleSection","fontWeightMedium","SolaceLearningBanner","AnchorTab","onTabClick","Tab","tabStyles","SolaceTabs","tabs","activeTabValue","focusedTabIndex","setFocusedTabIndex","findIndex","tab","activeIndex","Tabs","_e","_createElement","tabIndex","SolaceTypography","colorMap","PANEL_POSITION","Main","showSidePanel","sidePanelPosition","overlayContent","transition","transitions","easing","easeIn","duration","leavingScreen","RIGHT","easeOut","enteringScreen","LEFT","SolaceSidePanelLayout","sidePanelContent","sidePanelWidth","showClosingButton","onPanelClose","sidePanelTitle","showStandardPadding","internalPanelOpen","setInternalPanelOpen","Drawer","PaperProps","BackdropProps","ModalProps","document","getElementById","anchor","CustomAction","Footer","SolaceConfirmationDialog","contentText","actions","customAction","disableDefaultPadding","isOpen","contentLayout","linearProgressIndicator","footer","Dialog","DialogTitle","wordBreak","DialogContent","DialogContentText","DialogActions","_action$variant","ArrowRightIcon","SolaceMenuItem","supplementalText","secondaryAction","onMenuItemClick","onMenuClose","divider","subMenuItems","closeOnSelect","itemHeight","subMenuMaxWidth","subMenuDirection","anchorEl","setAnchorEl","subMenuRef","setSubMenuRef","subMenuVisible","setSubMenuVisible","finalDirection","setFinalDirection","isSubMenuOpen","Boolean","handleMenuClose","stopPropagation","subMenuWidth","offsetWidth","rect","getBoundingClientRect","spaceOnRight","innerWidth","spaceOnLeft","shouldOpenToLeft","MenuItem","onMouseEnter","currentTarget","onMouseLeave","multiline","wideMenu","selectedItem","ListItemIcon","Menu","transformOrigin","pointerEvents","renderGroupedSubMenuItems","groupedSubMenuItems","groupBy","categoryHeading","subMenuItemsList","list","categoryheader","ListSubheader","itemsList","_item$subMenuMaxWidth","flatten","Divider","useScrollIndicator","scrollTop","setScrollTop","scrollHeight","setScrollHeight","offsetHeight","setOffsetHeight","scrollReset","setScrollReset","onScrollHandler","resetScrollPosition","getScrollPosition","scrollPosition","maskImage","getMaskImage","DEFAULT_NUM_OF_MENUITEM_DISPLAYED","DEFAULT_MENU_POPOVER_MAX_WIDTH","SolaceMenu","buttonProps","items","header","numOfMenuItemDisplayed","propagateMenuClick","menuPopoverRef","setMenuPopoverRef","pressedButton","setPressedButton","remove","groupedItems","groupCount","hasMoreItems","menuItemsList","menuItemContent","disabledMenuItemWithTooltip","disabledMenuItemTooltipContent","menuElement","addEventListener","removeEventListener","classList","toggle","Popover","transitionDuration","slotProps","paper","WebkitMaskImage","SolaceTextField","placeholder","maxLength","autoFocus","hasWarnings","customIcon","onBlur","onKeyUp","onFocus","endAdornment","inputRef","endIconProps","inputEndAdornment","InputAdornment","inputStartAdornment","startAdornment","defaultInputProps","TooltipContainer","formComponent_ReadOnlyToolTipContainer","autoComplete","SolaceSelect","displayEmpty","getOptionDisplayValue","menuAnchorOrigin","menuTransformOrigin","selectedValue","setSelectedValue","select","readOnlySelect","emptySelect","SelectProps","IconComponent","MenuProps","Collapse","getMenuProps","menuProps","renderValue","CustomHeightTextField","textEllipsisPosition","hideInputText","GroupItems","MenuItemIcon","DEFAULT_DATA_QA","ErrorChipToolTipContent","SolaceSelectAutocomplete","multiple","itemComponent","itemMappingCallback","optionsLabelCallback","getShowOptionDividerCallback","shouldClearSearchOnSelectCallback","groupByCallback","showGroupDivider","renderTags","limitTags","getLimitTagsText","fetchOptionsCallback","onCloseCallback","isOptionEqualToValueCallback","getOptionDisabledCallback","getOptionKeyCallback","getOptionValidationErrorCallback","validateInputCallback","openOnFocus","disableCloseOnSelect","clearSearchOnSelect","tagMaxWidth","showSupplementalTextOrSecondaryAction","showLeftIcon","inputValue","setInputValue","inputValidationError","setInputValidationError","filteredOptions","setFilteredOptions","loading","setLoading","isFetching","setIsFetching","hasFocus","setHasFocus","resetOptions","setResetOptions","currentInputValue","dropdownRef","dropdownRefState","setDropdownRefState","textFieldRootRef","inputElementRef","canvasRef","overlayLeft","setOverlayLeft","overlayRight","setOverlayRight","middleEllipsisText","setMiddleEllipsisText","persistInputValueOnSelect","setDropdownRef","node","calculateItemHeight","shouldBreakLoop","dropdownHeight","updateGroupCount","prevCategoryGroup","updatePrevCategoryGroup","maxDropdownHeight","prevItemHeight","lastElementDifference","maxHeightInPixels","units","currentDropdownRef","num","isNaN","getComputedStyle","documentElement","clientHeight","innerHeight","convertToPixels","setCombinedInputRef","el","recomputeOverlayBounds","input","rootRect","inputRect","computeMiddleEllipsis","font","fontVariant","createElement","ctx","getContext","available","ellipsis","measureText","nextLeft","nextRight","wLeftOnly","wRightOnly","refreshMiddleEllipsis","selectedOption","RO","ResizeObserver","ro","observe","disconnect","getErrorMessage","getMessage","Autocomplete","ListboxProps","filterOptions","onInputChange","handleInputChange","newInputValue","validationError","autoHighlight","getOptionLabel","mappedOption","renderOption","_getShowOptionDivider","_getOptionKeyCallback","showDivider","defaultKey","optionKey","_value","some","handleBlur","popupIcon","renderInput","params","leftIcon","isActive","isOptionEqualToValue","getOptionDisabled","tagValue","_getOptionValidationE","splice","handleDeleteChip","ChipProps","renderGroup","clearText","_option$name","getShowOptionDivider","_option$divider","isOptionEqual","getGroupBy","_option$categoryHeadi","SolaceSelectAutocompleteItem","isNew","sizeOfColumn","middlePadding","zeroMinWidth","ImgContainer","TitleText","ButtonGroup","SolaceDetailMessage","msgImg","buildActionButtons","buttons","ItemsContainer","show","PopoverContainer","overflowY","getOverflowIndicatorLabel","itemCount","labelSingular","memo","showAll","containerWidth","componentToShowOverflowItems","overflowItemsPlacement","overflowIndicatorLabel","overflowIndicatorLabelSingular","overflowIndicatorLabelWidth","numOfRowsToShow","numOfMenuItemsToDisplay","onItemsRendered","onItemsOverflow","onItemsOverflowIndicatorClick","visibleItemIds","setVisibleItemIds","setShow","readyForCalculation","setReadyForCalculation","itemsWidthRef","itemHeightRef","hiddenItemsCount","_items$length","_visibleItemIds$lengt","popoverContents","itemIds","calculateItemsToShow","availableWidth","newVisibleIds","totalWidth","lastWidth","lastNumOfRows","hasHidden","_itemsWidthRef$curren","itemWidth","indicatorWidth","_itemsWidthRef$curren2","difference","SolaceSelectAutocompleteResponsiveTags$1","tags","handleDelete","tagChips","tag","SolaceResponsiveItemList","SolaceTextArea","minRows","maxRows","resizable","generatedId","ChipInputContainer","borderWidth","ChipItem","InputWrapper","StyledInputBase","InputBase","SolaceChipTextArea","validateChip","chips","setChips","errorMessage","setErrorMessage","showCursor","setShowCursor","containerRef","newChips","tokenizeInput","token","errorMsg","generateUniqueId","isValid","random","getChipValuesString","chipsList","addChip","trimmedText","inputString","validateInput","newChip","prevChips","updatedChips","allValues","removeChip","chipId","finalValue","test","tokens","lastChip","handlePaste","pastedText","clipboardData","getData","handleChipClick","blur","handleContainerClick","closest","displayHelperText","hasChipErrors","displayHasErrors","onPaste","caretColor","rows","SolaceToggleLabel","SolaceToggle","isOn","stateText","Switch","getStateText","ContentControlMenu","columns","customContentDefinitions","displayedCustomContent","displayedColumnsChangedCallback","customContentDisplayChangeCallback","customMenuActions","_customContentDefinit","oneColumnIsVisible","setOneColumnIsVisible","col","isHidden","hasNoCell","customItems","column","disableHiding","field","headerName","columnIndex","newColumns","handleColumnControlChange","customContentItems","customContent","customMenuActionsItems","TuneIcon","wMain30","w30","w60","w90","w80","w70","w8040","stateLayer","n0","n1","n3","n4","n5","n6","n7","n8","n9","learning","royalBlue","darkBlue","opaqueBlue","infoBlue","infoBgBlue","warnYellow","warnBgYellow","lightGrey","smokeGrey","darkGrey","white","hover","infoLightBgBlue","errorBgRed","successBgGreen","infoLightLabelBlue","errorLabel","successLabel","sapThemeMapping","pallete","greyBackgroundLight","labelText","textSecondary","toastText","toastBackground","lighten","toastSuccessIcon","nonadminPill","adminPill","buttonTextHoverBG","buttonOutlinedHoverBG","buttonLinkDisabled","buttonIconBG","baseThemeMapping","solaceNewThemeMapping","SupportedThemes","boomiThemeMapping","appTheme","getThemeMappings","sap","newSolace","boomi","SELECTION_TYPE","SORT_DIRECTION","StyledTableRow","borderCollapse","solace","StyledTableData","StyledTableNumberData","StyledExpandedTableRow","StyledExpandedTableData","StyledTableHeader","addEmptyRowCell","row","addActionMenuIcon","actionMenuItems","menuItems","disabledRowActionMenu","MoreHorizIcon","addColumnHidingControl","useTableBodyRenderHelper","selectionType","selectedRowIds","disabledRowIds","independentRowHighlight","highlightedRowId","renderCustomRowCells","rowActionMenuItems","renderCustomRowActionItem","rowHoverCallback","hasColumnHiding","displayedColumns","expandableRowOptions","internalDisplayedColumns","handleDisplayColumnsChanged","handleRowSelectionChange","handleRowClick","addCheckBoxToRows","renderRowActionItems","hasRowActionItems","renderConfiguredRowCells","displayedColumnsParam","internalDisplayedColumnsParam","_ref","createRowNodes","MULTI","SINGLE","expandableRows","useExpandableRows","enabled","allowToggle","selectRowWhenClickOnChildren","renderChildren","expandedRowIds","setExpandedRowIds","displayedColumnsCount","setDisplayedColumnsCount","addChevronToRows","rowExpanded","foundIndex","newState","renderChildrenSection","colSpan","numberOfDisplayedDataCols","columnsToDisplay","numberOfNonDataCols","find","AscendingSortIcon","defaultFill","fillOpacity","DescendingSortIcon","UnsortedIcon","DEFAULT_TOOLTIP_PLACEMENT","getTooltip","selectAll","crossPageSelectionEnabled","PROGRESS_SIZES","SolaceCircularProgress","disableShrink","TableWrapper","StyledTable","tableLayout","EmptyState","TableHeaderLoadingOverlay","TableBodyLoadingOverlay","EmptyStateLoadingOverlay","LoadingIndicatorWrapper","LoadingMessage","fontWeightRegular","SolaceTable","selectionChangedCallback","rowHighlightChangedCallback","sortedColumn","sortCallback","emptyStateMessage","renderCustomEmptyState","showEmptyState","headerHoverCallback","loadingMessage","crossPageRowSelectionSupported","totalObjectCount","allPagesSelectedByDefault","deselectedRowIds","crossPageSelectionChangedCallback","selectedIds","uniq","sanitizeSelectedRowIds","disabledIds","sanitizeDisabledRowIds","deselectedIds","sanitizeDeselectedRowIds","columnNodes","rowNodes","useSolaceTable","setSelectAll","setIndeterminate","internalSortedColumn","setInternalSortedColumn","setInternalDisplayedColumns","columnsRef","internalColumns","cloneDeep","sortable","newSelectedRowIds","selectedRowsInCurrentPage","isEqual","clickedRow","NONE","newSelectedRows","newDeselectedRowIds","selectedRows","handleSort","newColumn","columnInfo","sortDirection","DCS","ASC","cols","_columnsRef$current","handleSelectAllChange","selectedObj","useTableHeaderRenderHelper","addCheckBoxToHeader","addChevronToHeader","addConfigureColumnHeader","columnToSort","isNumerical","class","createHeaderNodes","ArrowLeftIcon","PaginationContainer","isSmall","PageListContainer","MessageContainer","LoadingOverlay","SolacePagination","activePage","pageSize","displayText","totalResults","onPageSelection","totalPages","ceil","firstItemIndex","lastItemIndex","setIsSmall","handleResize","Pagination","page","boundaryCount","handlePageSelection","renderItem","PaginationItem","previous","next","ExpandIcon","CollapseIcon","xmlns","StyledOuterWrapper","formComponent_CodeEditor","OuterWrapper","StyledInnerWrapper","InnerWrapper","StyledEditorWrapper","EditorWrapper","IconWrapper","renderHelperText","SolaceCodeEditor","fullScreen","expandable","setVal","editorExpanded","setEditorExpanded","_editor","_data","toggleExpandedMode","codeMirrorMode","CodeMirror","onBeforeChange","styleActiveLine","keyMap","lint","matchClosing","matchBrackets","autoCloseBrackets","autoCloseTags","lineWrapping","lineNumbers","foldGutter","gutters","SolacePopover","anchorElement","anchorPosition","marginThreshold","activateOnHover","additionalProps","anchorReference","displayName","DeleteIcon","MoveIcon","displayDropLine","dropFromTop","dropOverIndex","dropLine","SolaceAVPContainer","isDragging","disableReorder","formComponent_AVPItem","SolaceAVPInputForKey","inputWrapperForKey","SolaceAVPInputForValue","inputWrapperForValue","SolaceAVPMoveButton","ghostItem","moveButton","SolaceAVPDeleteButton","deleteButton","svg","ValueWrapper","valueInputTypes","SolaceAttributeValuePair","avpKey","avpValue","keyErrorText","valueErrorText","emptyFieldDisplayValue","Draggable","draggableId","isDragDisabled","provided","snapshot","innerRef","draggableProps","dragHandleProps","SolaceAVPFormContainer","formComponent_AVPForm","SolaceAVPFormLabel","hasScrollBar","labelWrapper","SolaceAVPListContainer","listWrapper","ghostItemAtIndex","AVPNavigationKeys","handleNavigateAVPList","enumList","Up","Down","NextLine","List","_props$context","_props$context2","headerRef","virtualizedAvpListOption","SolaceAttributeValuePairForm","labelForKeys","labelForValues","avpList","onAVPListUpdate","avpKeyValidationCallback","avpValueValidationCallback","enableRequiredKeyFieldIndicator","enableRequiredValueFieldIndicator","keyRequired","keyIsRequiredMessage","avpListMaxHeight","currentAVPList","setCurrentAVPList","setDropOverIndex","setDropFromTop","handleListUpdate","handleDeleteItem","handleKeyUp","inputEleList","querySelectorAll","focusedEle","activeElement","getAttribute","handleInputOnBlur","DragDropContext","onDragEnd","destination","reorderedList","reorderList","startIndex","onDragUpdate","update","_update$destination$i","_update$destination","sourceIndex","destinationIndex","Droppable","droppableId","_virtualizedAvpListOp","droppableProps","Virtuoso","context","useWindowScroll","useWindowScrolling","increaseViewportBy","initialTopMostItemIndex","data","itemContent","VerticalDotsIcon","_useTheme$palette$ux","ANCHOR","Dragger","SolaceDrawer","onResizeDone","offset","initialClientX","drawerWidth","setDrawerWidth","widthRef","handleMouseMove","clientX","newWidth","handleMouseUp","handleMouseDown","getStyle","onMouseDown","Row","layoutComponent_ImageList","VirtualRow","virtualRow","VirtualRowContainer","virtualRowContainer","Border","SolaceGridListRow","gridTemplate","indicatorVariant","emphasized","isLoading","contentPlaceholder","handleKeyPress","onKeyPress","SolaceGridList","objectIdentifier","indicatorVariantIdentifier","emphasizedIdentifier","headers","selectedItemId","onSelection","rowMapping","numOfGridListItemDisplayed","virtualizedListOption","_virtualizedListOptio","_virtualizedListOptio2","headerBGC","setHeaderBGC","getBackgroundColour","element","parentElement","currentBase","bkColor","getListHeader","selectedRow","maskImageEffect","gridListRef","setGridListRef","gridElement","virtualListRef","scrollToItem","_item$objectIdentifie","_item$objectIdentifie2","VirtualizedList","itemSize","overscanCount","useIsScrolling","isScrolling","_items$index$objectId","_items$index$objectId2","ImageListHeader","SolaceGridListMultiSelect","onRowHighlight","selectAllLabel","showCount","itemsType","allSelected","setAllSelected","getGridTemplate","handleRowSelection","handleSelectAll","getRowMapping","checkboxList","rowItems","isHeaderDisplayed","Badge","component_NotificationCounter","Value","SolaceNotificationCounter","animationDuration","animationRepeatsInitialCount","animationRepeatsUpdateCount","lastValue","setLastValue","showState","setShowState","showing","setShowing","pulsing","setPulsing","showTimer","changeTimer","pulse","keyframes","_t","_","animation","c","q","u","z","B","aa","ba","D","ca","da","ea","fa","ha","ia","ja","ka","for","E","F","$$typeof","_context","render","_render","_payload","_init","la","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ma","I","_threadCount","_currentValue2","J","Uint16Array","K","oa","pa","qa","ra","sa","M","h","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","N","va","wa","xlinkHref","xa","O","charCodeAt","ya","ta","ua","Aa","is","P","Q","R","S","T","U","V","W","Ba","memoizedState","queue","Ca","Da","Ea","Fa","Ga","dispatch","get","delete","Ha","Ia","Map","set","Ja","X","Ka","readContext","threadID","useReducer","useImperativeHandle","useDebugValue","useDeferredValue","useTransition","useOpaqueIdentifier","identifierPrefix","uniqueID","useMutableSource","_source","Na","area","base","br","embed","hr","img","keygen","link","meta","param","track","wbr","Oa","menuitem","Y","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexPositive","flexNegative","flexOrder","gridRowEnd","gridRowSpan","gridRowStart","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Pa","Qa","Ra","Z","Sa","ReactCurrentDispatcher","Ta","listing","pre","textarea","Ua","Va","Wa","Ya","Za","dangerouslySetInnerHTML","suppressContentEditableWarning","suppressHydrationWarning","$a","bb","domNamespace","childIndex","g","stack","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","destroy","clearProviders","pushProvider","popProvider","read","L","G","C","fallbackFrame","k","v","then","isReactComponent","contextType","contextTypes","na","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","getDerivedStateFromProps","updater","UNSAFE_componentWillMount","componentWillMount","H","getChildContext","childContextTypes","A","ab","renderDOM","defaultChecked","Xa","w","cb","__html","Ma","module","exports","require$$0","EllipsisIcon","cx","cy","SolaceSplitPane","minSize","defaultSize","maxSize","allowedResize","onDragFinished","dotsColor","getWidth","getHeight","getCursor","getVerticalSplitBorder","getHorizontalSplitBorder","getBackgroundImage","btoa","ReactDOMServer","renderToStaticMarkup","SplitPane","allowResize","newSize","resizerStyle","backgroundImage","backgroundPosition","backgroundRepeat","Pane","parseBorderColor","SolaceAccordion","summary","square","disablePadding","Accordion","disableGutters","getBorderColor","AccordionSummary","expandIcon","hasHoverEffect","AccordionDetails","SolaceStack","Stack","SolaceGrid","SolaceLink","RouteContainer","SolaceBreadcrumb","paths","maxItems","onRouteClick","handleRouteClick","Breadcrumbs","separator","NavigateNextIcon","progress","progressTooltip","RouterLink","OutlineSolaceToggleButtonGroup","ToggleButtonGroup","sharedStyles","button","SolaceToggleButtonGroup","activeValue","exclusive","_option$disabled","ToggleButton","disableFocusRipple","PROGRESS_HEIGHT","SolaceLinearProgress","LinearProgress","FIELD_TYPES","FilterIcon","SearchIcon","SvgContainer","SolaceSearchAndFilter","DEFAULT","onClearAll","getAdornment","icons","handleClearInput","_inputRef$current","FILTER","SEARCH","getFieldIcon","SolaceList","SolaceListItem","ListItem","SolaceListItemButton","ListItemButton","SolaceLearningButton","Error16Icon","clipPath","CheckFilled16Icon","shapeStyles","shapeCircleStyles","SolaceStepIcon","circle","badgeContent","overlap","StyledButtonGroupBox","StyledButtonBox","onLastStep","ButtonContent","SolaceStepperFooter","_steps$nextStepAllowe","steps","onSubmit","onSecondarySubmit","setActiveStep","activeStep","submitLabel","secondarySubmitLabel","disableSubmit","shouldDisableSecondarySubmit","onFirstStep","nextStepAllowed","nextEnabledStep","previousStepAllowed","previousEnabledStep","handleBack","ArrowLeft24Icon","handleSecondarySubmit","handleNext","ArrowRight24Icon","SolaceStepper","stepContentOverflow","handleStep","Stepper","nonLinear","_step$subText","stepButton","StepButton","optional","hideOptionalLabel","StepLabel","StepIconComponent","getSolaceIconComponent","Step","disabledReason","popper","modifiers","ImageContainer","SolaceEmptyStateBanner","_primaryButton$dataQa","_secondaryButton$data","bannerImage","subtitle","description","primaryButton","secondaryButton","invertTextColor","onPrimaryButtonClick","CardHeader","CardHeaderContent","CardHeaderText","CardHeaderActions","SolaceCardHeader","subTitle","actionElements","SolaceCard","cardHeaderProps","cardContent","cardActions","isSelected","showBorderOnSelect","handleCardClick","Card","CardContent","CardActions","MoreHorizOutlinedIcon","CheckCircleIcon","SolaceDatePickerVariant","variantConfig","FORMAT_YEAR_MONTH_DAY","views","openTo","format","FORMAT_MONTH_YEAR","StepContentOverflow","SolaceCategorizedSearchLayout","TitleLocation","noneImportant","deprecatedBoxShadows","w12","w15","verticalIndicatorHeight","verticalIndicatorStyle","gridListRowCommonStyle","gridColumnGap","placeItems","getThemeOptions","themeName","baseTypographySize","isCurrentSolace","isSap","toAdjustedRem","pxSize","getBoxShadow","currentKey","dialogMd","MuiSnackbar","styleOverrides","MuiAppBar","colorPrimary","MuiButtonBase","MuiButton","disableElevation","containedPrimary","outlinedPrimary","textPrimary","MuiFormControl","MuiFormGroup","MuiLinearProgress","MuiFormHelperText","MuiIconButton","MuiInputLabel","asterisk","MuiFormLabel","textDecoration","MuiLink","MuiInputBase","ownerState","resize","MuiTextField","WebkitTextFillColor","MuiCheckbox","MuiRadio","stroke","MuiSelect","iconOpen","MuiPopover","MuiMenu","MuiList","MuiAutocomplete","popupIndicator","popupIndicatorOpen","MuiSwitch","switchBase","MuiDialog","overflowX","MuiChip","MuiBreadcrumbs","MuiTab","MuiTabs","MuiPagination","li","MuiTooltip","MuiAccordion","MuiAccordionSummary","expandIconWrapper","MuiAccordionDetails","MuiCard","MuiListItemButton","MuiStep","MuiStepper","MuiStepConnector","default","main","contrastText","dark","h1","h2","h3","h4","h5","createMomentWithTimezone","timezone","moment","tz","SolaceDatePicker","onClear","disableFuture","setDate","LocalizationProvider","dateAdapter","AdapterMoment","dateLibInstance","DatePicker","momentValue","toISOString","clearable","textField","validateFiles","maxFiles","files","acceptedFiles","file","readableFileSize","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","accepts","bytes","sizeInKb","toFixed","UploadIcon","VisuallyHiddenInput","SolaceFileUploader","fileNames","onFileChange","accept","dragEvent","setDragEvent","filesData","setFilesData","setValidationError","curr","isMIMEType","isExt","getDivider","onDragEvent","onDragEnter","onDragOver","onDrop","filesAdded","dataTransfer","kind","getAsFile","validationResult","onDragLeave","_event$target","renderFileNameDisplay","newFiles","SIZES","chartWidth","chartHeight","TooltipLabel","SquaredIcon","bgColor","ChartContainer","CustomTooltip","payload","_payload$","SolaceDonutChart","iconWidth","iconHeight","showTooltip","tooltipPosition","setTooltipPosition","tooltipRef","outerRadius","PieChart","Pie","nameKey","dataKey","innerRadius","isAnimationActive","animationBegin","paddingAngle","startAngle","endAngle","onMouseMove","_tooltipElement$offse","_tooltipElement$offse2","tooltipElement","tooltipWidth","tooltipHeight","calculateTooltipPosition","mouse","isTopHalf","isRightHalf","entry","_entry$color","Cell","allowEscapeViewBox","VisibilityShowIcon","VisibilityHideIcon","CustomProperty","onChangeTrigger","CustomTextWidget","widgetProps","transformWidgetProps","shouldShowEmptyValueForSensitiveField","_props$CustomProperty","_schema$placeholder","_schema$placeholder2","readonly","schema","helperMessage","isSensitiveField","_schema$options","isPasswordField","showSensitiveField","setShowSensitiveField","shouldShowEmptyValue","fieldValue","const","sensitiveFieldToggle","getMaxLength","getWidgets","CheckboxWidget","_props$CustomProperty3","CustomCheckboxWidget","SelectWidget","_props$CustomProperty2","enumOptions","CustomSelectWidget","TextWidget","PasswordWidget","FormFieldType","CustomForm","Form","hideProperties","uiSchema","hidden","SolaceJsonSchemaForm","formItem","formData","formOptions","formRef","liveValidate","transformDescription","transformError","transformWidget","transformTitle","ajvClass","tagName","customValidator","customizeValidator","AjvClass","Ajv2020","uiOrder","getOrder","submitButton","norender","idPrefix","validator","widgets","_transformWidget","newProps","rawErrors","templates","transformDescriptionProps","transformTitleProps","DescriptionFieldTemplate","templateProps","transformTemplateProps","CustomDescriptionFieldTemplate","TitleFieldTemplate","CustomTitleFieldTemplate","errors","showErrorList","transformErrors","_transformError","getTemplates","TextWrapper","SolaceButtonWrapper","span","SolaceTruncatableLink","ColoredBase","fgColor","ColoredContainer","iconOnly","removable","Text","_t2","SolaceEnvironmentChip","ColoredIcon","Label","SolaceEnvironmentLabel","FeatureTag","SolaceFeatureTag","ViewsContainer","ViewButton","ViewActive","ViewIcon","SolaceIconTabs","activeViewValue","onViewClick","Layout","NavSection","Wrapper","NavBorder","HeaderSection","titleLocation","LEFT_OF_TABS","TOP_OF_TABS","IconTabsSection","Title","hasTabs","SubTitle","TitleLocationTop","SubtitleLocationTop","TabsSection","Actions","SolacePageHeader","release","environment","breadcrumbs","actionMenu","iconTabs","returnTo","suffix","titleSection","extractEventHandlers","excludeKeys","useButton","parameters","focusableWhenDisabled","rootRef","externalRef","rootElementName","rootElementNameProp","buttonRef","setActive","isFocusVisibleRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","doc","ownerDocument","matches","isContentEditable","focusTriggersKeyboardModality","isFocusVisible","useIsFocusVisible","setFocusVisible","updateRootElementName","setRootElementName","_instance$tagName","useRootElementName","createHandleMouseLeave","otherHandlers","_otherHandlers$onMous","createHandleFocus","_otherHandlers$onFocu2","_otherHandlers$onFocu","onFocusVisible","isNativeButton","createHandleClick","_otherHandlers$onClic","createHandleMouseDown","_otherHandlers$onMous2","once","createHandleKeyDown","_otherHandlers$onKeyD","_otherHandlers$onClic2","defaultMuiPrevented","createHandleKeyUp","_otherHandlers$onKeyU","_otherHandlers$onClic3","handleRef","getRootProps","externalProps","externalEventHandlers","_otherHandlers$onBlur","SelectActionTypes","ListActionTypes","moveHighlight","previouslyHighlightedValue","_items$nextIndex","isItemDisabled","disableListWrap","disabledItemsFocusable","itemComparer","focusManagement","defaultHighlightedIndex","maxIndex","previouslyHighlightedIndex","nextIndexCandidate","lookupDirection","wrapAround","nextIndex","includeDisabledItems","itemIndex","nextFocus","findValidItemToHighlight","handleItemSelection","selectionMode","selectedValues","newSelectedValues","sv","toggleSelection","highlightedValue","textCriteriaMatches","searchString","stringifyItem","_stringifyItem","listReducer","previouslySelectedValue","orientation","getItemAsString","startWithCurrentItem","nextItem","handleTextNavigation","previousItems","_state$selectedValues","newHighlightedValue","_items$find","handleItemsChange","handleResetHighlight","handleHighlightLast","handleClearSelection","areEqual","EMPTY_OBJECT","NOOP","getControlledState","internalState","controlledProps","augmentedState","areArraysEqual","array1","array2","defaultItemComparer","optionA","optionB","defaultIsItemDisabled","defaultItemStringifier","defaultGetInitialState","ListContext","createContext","defaultOptionStringifier","CompoundComponentContext","selectReducer","itemToHighlight","_state$selectedValues2","_state$selectedValues3","combineHooksSlotProps","getFirstProps","getSecondProps","external","firstResult","defaultFormValueProvider","JSON","stringify","SelectProvider","getItemIndex","getItemState","registerItem","totalSubitemCount","listContextValue","compoundComponentContextValue","Provider","ClassNameConfiguratorContext","disableDefaultClasses","useClassNamesOverride","omitEventHandlers","useSlotProps","_parameters$additiona","elementType","externalSlotProps","skipResolvingSlotProps","resolvedComponentsProps","componentProps","resolveComponentProps","mergedProps","internalRef","getSlotProps","externalForwardedProps","joinedClasses","mergedStyle","eventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","mergeSlotProps","appendOwnerState","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","evaluate","getSide","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getOppositeAlignmentPlacement","alignment","getOppositePlacement","rectToClientRect","computeCoordsFromPlacement","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","async","detectOverflow","_await$platform$isEle","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","expandPaddingObject","getPaddingObject","clippingClientRect","getClippingRect","isElement","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","_middlewareData$offse","_middlewareData$arrow","middlewareData","diffCoords","isRTL","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","convertValueToCoords","arrow","alignmentOffset","getNodeName","isNode","nodeName","getWindow","_node$ownerDocument","defaultView","Node","Element","isHTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","isTableElement","isContainingBlock","webkit","isWebKit","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollLeft","pageXOffset","pageYOffset","getParentNode","assignedSlot","parentNode","host","getNearestOverflowAncestor","body","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","visualViewport","frameElement","getCssDimensions","hasOffset","shouldFallback","$","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","clientTop","topLayerSelectors","isTopLayer","getWindowScrollBarX","getClientRectFromClippingAncestor","clippingAncestor","visualViewportBased","getViewportRect","scroll","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","getTrueOffsetParent","polyfill","currentNode","getContainingBlock","topLayer","clippingAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","_c","clippingRect","accRect","getElementRects","getOffsetParentFn","getDimensionsFn","getDimensions","getClientRects","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","passive","cleanupIo","onMove","timeoutId","io","cleanup","_io","refresh","skip","threshold","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","checkMainAxis","checkCrossAxis","limiter","detectOverflowOptions","mainAxisCoord","crossAxisCoord","limitedCoords","computePosition","mergedOptions","platformWithCache","middleware","validMiddleware","statefulPlacement","resetCount","nextX","nextY","initialPlacement","computePosition$1","performance","unstable_now","MessageChannel","unstable_shouldYield","unstable_forceFrameRate","console","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","unstable_wrapCallback","add","removeAttribute","setAttribute","setAttributeNS","za","La","prepareStackTrace","defineProperty","Reflect","construct","_valueTracker","getOwnPropertyDescriptor","configurable","enumerable","setValue","stopTracking","_wrapperState","initialChecked","initialValue","controlled","eb","db","fb","defaultSelected","gb","hb","ib","jb","textContent","kb","lb","nb","ob","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","qb","rb","sb","tb","setProperty","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","dehydrated","ac","cc","sibling","bc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","ed","fd","gd","hd","uc","jd","kd","ld","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientY","pageX","pageY","shiftKey","getModifierState","zd","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Right","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","location","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","range","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","listener","$e","has","af","bf","cf","df","capture","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","unshift","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Component","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","isPureReactComponent","Mg","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","componentDidMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ii","ji","compare","ki","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","createTextNode","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","kk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","version","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","supportsFiber","inject","checkDCE","deepEqual","getDPR","devicePixelRatio","roundByDPR","dpr","useLatestRef","Portal","forwardedRef","disablePortal","mountNode","setMountNode","useEnhancedEffect","getContainer","cloneElement","ReactDOM","GLOBAL_CLASS_PREFIX","buildSlotClass","COMPONENT_NAME","getPopupUtilityClass","TransitionContext","PopupContext","Popup","_slots$root","anchorProp","keepMounted","offsetProp","floatingStyles","finalPlacement","externalReference","externalFloating","whileElementsMounted","setData","isPositioned","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","fullData","isMountedRef","initialStyles","useFloating","_middlewareData$flip","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","isBasePlacement","oppositePlacement","getExpandedPlacements","isStart","lr","rl","bt","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","flip","sides","mainAlignmentSide","getAlignmentSides","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$map$so","contextValue","hasExited","hasTransitionExited","requestEnter","exitTransitionFinished","setExitTransitionFinished","hasPendingExitTransition","registeredTransitions","hasTransition","setHasTransition","previousRequestEnter","handleExited","registerTransition","requestedEnter","onExited","useTransitionTrigger","useUtilityClasses","Root","rootProps","popupContextValue","getSelectUtilityClass","selectClasses","_span","defaultRenderValue","selectedOptions","_selectedOptions$labe","Select","_slots$listbox","_slots$popup","_renderValue","areOptionsEqual","defaultListboxOpen","disabledProp","getSerializedValue","listboxId","listboxOpen","listboxOpenProp","onListboxOpenChange","getOptionAsString","renderValueProp","valueProp","buttonDefined","setButtonDefined","listboxRef","ListboxRoot","listbox","PopupComponent","popup","handleButtonRefChange","handleButtonRef","buttonActive","buttonFocusVisible","getButtonProps","getListboxProps","getHiddenInputProps","getOptionMetadata","buttonRefProp","defaultOpen","defaultValueProp","listboxIdProp","listboxRefProp","onHighlightChange","onOpenChange","openProp","optionsParam","subitems","setSubitems","subitemKeys","deregisterItem","previousState","providedOrGeneratedId","deregister","sortedSubitems","subitemsArray","subitem","aNode","bNode","DOCUMENT_POSITION_PRECEDING","sortSubitems","useCompoundParent","createRef","handleListboxRef","getButtonRootProps","mergedButtonRef","optionValues","getOptionByValue","valueToGet","similarValue","optionValue","valueToCheck","stringifyOption","controlledState","getItemId","itemValue","_options$get","handleSelectionChange","newValues","_newValues$","handleHighlightChange","handleStateChange","_buttonRef$current","useListParameters","getInitialState","_defaultValue","getItemDomElement","itemId","_subitems$get$ref$cur","_subitems$get","onStateChange","reducerActionContext","stateReducer","getListboxRootProps","highlightedOption","mergedListRootRef","externalListRef","onItemsChange","externalReducer","listRef","_getItemDomElement","stateComparers","valuesArray1","valuesArray2","listActionContext","initialState","reducer","defaultReducer","actionContext","lastActionRef","reducerWithControlledState","nextState","dispatchWithContext","internalPreviousStateRef","_stateComparers$key","stateComparer","nextStateItem","previousStateItem","_type","useStateChangeDetection","useControllableReducer","textCriteriaRef","lastTime","textCriteria","lowerKey","currentTime","useTextNavigation","externalHandlers","_externalHandlers$onK","keysToPreventDefault","highlighted","focusable","_externalHandlers$onB","_listRef$current","useList","isInitiallyOpen","_getOptionByValue","optionRef","preventScroll","listboxClientRect","optionClientRect","createHandleButtonKeyDown","getSelectTriggerProps","getButtonOwnRootProps","_externalEventHandler","createListboxHandleBlur","_listboxRef$current","getOwnListboxHandlers","selectValue","selectedOptionsMetadata","_getOptionMetadata","createHandleHiddenInputChange","_externalEventHandler2","combinedProps","getCombinedRootProps","useSelect","listboxProps","popupProps","getOptionUtilityClass","optionClasses","InnerOption","_optionRef$current","combinedRef","computedLabel","optionRefParam","idParam","getListItemProps","handlePointerOverEvents","listContext","_externalHandlers$onC","createHandlePointerOver","_externalHandlers$onM","onMouseOver","onPointerOver","useListItem","buttonRefHandler","selectOption","itemMetadata","registeredId","setRegisteredId","returnedId","totalItemCount","useCompoundItem","getOwnHandlers","useOption","Option","localGetItemState","useOptionContextStabilizer","ColorLayer","StateLayer","ContentLayer","ContainerLayer","Listbox","BaseOption","_2","_t3","StickyChildren","_excluded2","BaseSelect","SolaceEnvironmentSelectChip","SolacePickerIconWrapper","Color","EmptyMessageContainer","sizes","color2value","value2color","SolacePicker","iconKeyOrderedList","numOfItemsPerRow","numOfRowsDisplayed","contentControlPanel","autoFocusItem","contentControlElement","setContentControlElement","numOfMenuItemsPerRow","contentWidth","contentMaxHeight","ITEM_HEIGHT","shallRenderContentControl","renderContentControl","renderEmptyMessage","renderColorMenuItems","renderIconMenuItems","_iconMenuItems","iconMenuItems","MUI_PAPER_PADDING","paperOverrrides","MenuListProps","SelectDisplayProps","VerticalLayoutContainer","equalButtonWidth","HorizontalLayoutContainer","SolaceCategorizedSearch","categoryOptions","selectedCategoryValue","categoryOptionsWidth","onCategoryChange","searchValue","searchInputWidth","onSearchValueChange","onSearchInputFocus","onSearchInputBlur","layout","renderContent"],"mappings":"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"}