new_contents: import discord
  from discord import app_commands
  
  import traceback
  
  # Just default intents and a `discord.Client` instance
  # We don't need a `commands.Bot` instance because we are not
  # creating text-based commands.
  intents = discord.Intents.default()
  client = discord.Client(intents=intents)
  
  # We need an `discord.app_commands.CommandTree` instance 
  # to register application commands (slash commands in this case)
  tree = app_commands.CommandTree(client)
  
  # The guild in which this slash command will be registered.
  # As global commands can take up to an hour to propagate, it is ideal
  # to test it in a guild.
  TEST_GUILD = discord.Object(ID)
  
  @client.event
  async def on_ready():
      print(f'Logged in as {client.user} (ID: {client.user.id})')
      print('------')
  
      # Sync the application command with Discord.
      await tree.sync(guild=TEST_GUILD)
  
  class Feedback(discord.ui.Modal, title='Feedback'):
      # Our modal classes MUST subclass `discord.ui.Modal`,
      # but the title can be whatever you want.
  
      # This will be a short input, where the user can enter their name
      # It will also have a placeholder, as denoted by the `placeholder` kwarg.
      # By default, it is required and is a short-style input which is exactly
      # what we want.
      name = discord.ui.TextInput(
          label='Name', 
          placeholder='Your name here...',
      )
  
      # This is a longer, paragraph style input, where user can submit feedback
      # Unlike the name, it is not required. If filled out, however, it will
      # only accept a maximum of 300 characters, as denoted by the
      # `max_length=300` kwarg.
      feedback = discord.ui.TextInput(
          label='What do you think of this new feature?',
          style=discord.TextStyle.long,
          placeholder='Type your feedback here...',
          required=False,
          max_length=300,
      )
  
      async def on_submit(self, interaction: discord.Interaction):
          await interaction.response.send_message(f'Thanks for your feedback, {self.name.value}!', ephemeral=True)
  
      async def on_error(self, error: Exception, interaction: discord.Interaction) -> None:
          await interaction.response.send_message('Oops! Something went wrong.', ephemeral=True) 
  
          # Make sure we know what the error actually is
          traceback.print_tb(error.__traceback__)
  
  
  @tree.command(guild=TEST_GUILD, description="Submit feedback")
  async def feedback(interaction: discord.Interaction):
      # Send the modal with an instance of our `Feedback` class
      await interaction.response.send_modal(Feedback())
  
  client.run('token')
  
subject: Add an example for the new modals