diff --git a/src/components/modelAlias/ModelMappingDiagram.module.scss b/src/components/modelAlias/ModelMappingDiagram.module.scss index 69f1db1..c850f9e 100644 --- a/src/components/modelAlias/ModelMappingDiagram.module.scss +++ b/src/components/modelAlias/ModelMappingDiagram.module.scss @@ -1,13 +1,26 @@ @use '../../styles/variables' as *; -.container { - display: flex; - position: relative; +.scrollContainer { width: 100%; + overflow-x: auto; + overscroll-behavior-x: contain; + -webkit-overflow-scrolling: touch; +} + +.container { + display: inline-flex; + position: relative; + min-width: 100%; min-height: 300px; justify-content: space-between; padding: 20px 0; user-select: none; + + @media (max-width: 768px) { + justify-content: flex-start; + gap: 16px; + padding: 12px 0; + } } // SVG layer for connection lines (behind columns so links are visible) @@ -320,4 +333,4 @@ &:hover { background: var(--bg-error-light); } -} \ No newline at end of file +} diff --git a/src/components/modelAlias/ModelMappingDiagram.tsx b/src/components/modelAlias/ModelMappingDiagram.tsx index d179b0c..2fdd84c 100644 --- a/src/components/modelAlias/ModelMappingDiagram.tsx +++ b/src/components/modelAlias/ModelMappingDiagram.tsx @@ -430,73 +430,75 @@ export const ModelMappingDiagram = forwardRef { - e.preventDefault(); - e.stopPropagation(); - handleContextMenu(e, 'background'); - }} - > - - {lines.map((line) => ( - - ))} - +
+
{ + e.preventDefault(); + e.stopPropagation(); + handleContextMenu(e, 'background'); + }} + > + + {lines.map((line) => ( + + ))} + - handleContextMenu(e, type, data)} - label={t('oauth_model_alias.diagram_providers')} - expandLabel={t('oauth_model_alias.diagram_expand')} - collapseLabel={t('oauth_model_alias.diagram_collapse')} - /> - { - setDraggedSource(null); - setDropTargetAlias(null); - }} - onDragOver={handleDragOverSource} - onDragLeave={handleDragLeaveSource} - onDrop={handleDropOnSource} - onContextMenu={(e, type, data) => handleContextMenu(e, type, data)} - label={t('oauth_model_alias.diagram_source_models')} - /> - { - setDraggedAlias(null); - setDropTargetSource(null); - }} - onDragOver={handleDragOver} - onDragLeave={handleDragLeave} - onDrop={handleDrop} - onContextMenu={(e, type, data) => handleContextMenu(e, type, data)} - label={t('oauth_model_alias.diagram_aliases')} - /> + handleContextMenu(e, type, data)} + label={t('oauth_model_alias.diagram_providers')} + expandLabel={t('oauth_model_alias.diagram_expand')} + collapseLabel={t('oauth_model_alias.diagram_collapse')} + /> + { + setDraggedSource(null); + setDropTargetAlias(null); + }} + onDragOver={handleDragOverSource} + onDragLeave={handleDragLeaveSource} + onDrop={handleDropOnSource} + onContextMenu={(e, type, data) => handleContextMenu(e, type, data)} + label={t('oauth_model_alias.diagram_source_models')} + /> + { + setDraggedAlias(null); + setDropTargetSource(null); + }} + onDragOver={handleDragOver} + onDragLeave={handleDragLeave} + onDrop={handleDrop} + onContextMenu={(e, type, data) => handleContextMenu(e, type, data)} + label={t('oauth_model_alias.diagram_aliases')} + /> +