@codecademy/gamut

68.2.268.2.3-alpha.d44ad5.0
dist/Tip/shared/popoverAlignmentUtils.js
+dist/Tip/shared/popoverAlignmentUtils.jsNew file
+49
Index: package/dist/Tip/shared/popoverAlignmentUtils.js
===================================================================
--- package/dist/Tip/shared/popoverAlignmentUtils.js
+++ package/dist/Tip/shared/popoverAlignmentUtils.js
@@ -0,0 +1,49 @@
+import { CheckerDense } from '@codecademy/gamut-patterns';
+export const getAlignmentStyles = ({
+  alignment,
+  avatar,
+  type
+}) => {
+  if (avatar) return 'avatarAligned';
+  if (type === 'preview') return 'previewAligned';
+  if (alignment.startsWith('left') || alignment.startsWith('right')) return 'horizontalCenter';
+  return alignment.includes('center') ? 'vertCenter' : 'aligned';
+};
+export const getPopoverAlignmentAndPattern = ({
+  alignment = 'top-left',
+  type
+}) => {
+  const popoverAlignment = {
+    align: 'right',
+    beak: 'right',
+    position: 'above',
+    pattern: undefined
+  };
+  if (type === 'tool') {
+    popoverAlignment.align = 'center';
+  }
+  if (type === 'preview') {
+    popoverAlignment.pattern = CheckerDense;
+  }
+  if (alignment.includes('center')) {
+    popoverAlignment.beak = 'center';
+  }
+  if (alignment.includes('right-') || alignment.includes('left-')) {
+    if (alignment.includes('left-')) {
+      popoverAlignment.align = 'left';
+    } else {
+      popoverAlignment.align = 'right';
+    }
+    return {
+      beak: 'center',
+      position: 'center',
+      align: popoverAlignment.align
+    };
+  }
+  if (alignment.includes('bottom')) popoverAlignment.position = 'below';
+  if (alignment.includes('-right')) {
+    popoverAlignment.align = 'left';
+    popoverAlignment.beak = 'left';
+  }
+  return popoverAlignment;
+};
\ No newline at end of file