diff --git a/src/components/layout/AppSidebar.vue b/src/components/layout/AppSidebar.vue index 3268557..2b2e379 100644 --- a/src/components/layout/AppSidebar.vue +++ b/src/components/layout/AppSidebar.vue @@ -14,7 +14,8 @@ const showProDots = computed(() => !entitlementStore.isLocalUltimate) const menuItems = [ { id: 'connections', label: 'Connections', icon: 'dns', path: '/connections' }, - { id: 'queries', label: 'Queries', icon: 'code', path: '/queries', gated: true }, + // free page — only the ER-diagram action inside it is Ultimate-gated + { id: 'queries', label: 'Queries', icon: 'code', path: '/queries' }, { id: 'data-studio', label: 'Data Studio', icon: 'smart_toy', path: '/data-studio', gated: true }, { id: 'history', label: 'History', icon: 'history', path: '/history' }, { id: 'github', label: 'GitHub', icon: 'github', path: '' }, diff --git a/src/components/upgrade/FeaturePoster/McpPoster.vue b/src/components/upgrade/FeaturePoster/McpPoster.vue index 0de6f23..ab53045 100644 --- a/src/components/upgrade/FeaturePoster/McpPoster.vue +++ b/src/components/upgrade/FeaturePoster/McpPoster.vue @@ -324,4 +324,27 @@ const tools = [ justify-content: center; padding: 18px 0 20px; } + +.poster__lock { + position: absolute; + left: 24px; + bottom: 24px; + z-index: 2; + display: inline-flex; + align-items: center; + gap: 6px; + padding: 5px 13px; + border-radius: 999px; + border: 1px solid hsl(var(--primary) / 0.4); + background-color: hsl(var(--background) / 0.75); + backdrop-filter: blur(8px); + font-size: 11.5px; + font-weight: 600; + color: hsl(var(--primary)); +} + +.poster__lock-icon { + width: 12px; + height: 12px; +}