docs: def run(self):
          """ Parse a tabs directive """
          self.assert_has_content()
          env = self.state.document.settings.env
  
          node = nodes.container()
          node['classes'] = ['sphinx-tabs']
  
          if 'next_tabs_id' not in env.temp_data:
              env.temp_data['next_tabs_id'] = 0
          if 'tabs_stack' not in env.temp_data:
              env.temp_data['tabs_stack'] = []
  
          tabs_id = env.temp_data['next_tabs_id']
          tabs_key = 'tabs_%d' % tabs_id
          env.temp_data['next_tabs_id'] += 1
          env.temp_data['tabs_stack'].append(tabs_id)
  
          env.temp_data[tabs_key] = {}
          env.temp_data[tabs_key]['tab_ids'] = []
          env.temp_data[tabs_key]['tab_titles'] = []
          env.temp_data[tabs_key]['is_first_tab'] = True
  
          self.state.nested_parse(self.content, self.content_offset, node)
  
          if env.app.builder.name in get_compatible_builders(env.app):
              tabs_node = nodes.container()
              tabs_node.tagname = 'div'
  
              classes = 'ui top attached tabular menu sphinx-menu'
              tabs_node['classes'] = classes.split(' ')
  
              tab_titles = env.temp_data[tabs_key]['tab_titles']
              for idx, [data_tab, tab_name] in enumerate(tab_titles):
                  tab = nodes.container()
                  tab.tagname = 'a'
                  tab['classes'] = ['item'] if idx > 0 else ['active', 'item']
                  tab['classes'].append(data_tab)
                  tab += tab_name
                  tabs_node += tab
  
              node.children.insert(0, tabs_node)
  
          env.temp_data['tabs_stack'].pop()
          return [node]