tile.ask

Show a set of tile cards that the user can scroll horizontally or
vertically. Tiles are a great way to present rich data to the user and
optionally get button click responses.

Here is a basic example:

- tiles:
  - title: Super Nintendo Entertainment System
    description: 100,000 points
    image:
      url: https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/SNES-Mod1-Console-Set.jpg/800px-SNES-Mod1-Console-Set.jpg
    buttons:
      - text: Order
        result: nintendo
  - title: Sega Genesis
    description: 75,000 points
    image:
      url: https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Sega-Genesis-Mk2-6button.jpg/800px-Sega-Genesis-Mk2-6button.jpg
    buttons:
      - text: Order
        result: sega

Which produces the following in the Meya Orb Web SDK client:

The ask tiles component is also an interactive component which allows you to set
quick replies, configure the input composer
and set context data.

Here is a more advanced example:

- tiles:
    - image:
        url: https://cataas.com/cat/says/Tile%200
      title: Title 0
      rows:
        -   - cell: How
              value: harvesting
            - cell: A
              value: clouds
        -   - cell: Away
              value: far
            - cell: Harvesting
              value: ship
      buttons:
        - url: https://cataas.com/cat/says/Link%20button%203
          text: Link button 3
        - url: https://cataas.com/cat/says/Link%20button%204
          text: Link button 4
        - text: Button 5
          result: 5
        - text: Button 6
          result: 6
      description: |
        Circumnavigated how far away ship of the imagination star stuff
        harvesting **star light** great turbulent clouds a billion trillion
    - image:
        url: https://cataas.com/cat/says/Tile%201
      title: Title 1
      rows:
        -   - cell: Stuff
              value: trillion
            - cell: Light
              value: circumnavigated
        -   - cell: How
              value: of
            - cell: Harvesting
              value: billion
      buttons:
        - url: https://cataas.com/cat/says/Link%20button%207
          text: Link button 7
        - url: https://cataas.com/cat/says/Link%20button%208
          text: Link button 8
        - text: Button 9
          result: 9
        - text: Button 10
          result: 10
      description: |
        Circumnavigated how far away ship of the imagination star stuff
        harvesting **star light** great turbulent clouds a billion trillion
    - image:
        url: https://cataas.com/cat/says/Tile%202
      title: Title 2
      rows:
        -   - cell: Circumnavigated
              value: great
            - cell: Imagination
              value: ship
        -   - cell: Turbulent
              value: of
            - cell: Turbulent
              value: light
      buttons:
        - url: https://cataas.com/cat/says/Link%20button%2011
          text: Link button 11
          context: {}
        - url: https://cataas.com/cat/says/Link%20button%2012
          text: Link button 12
        - text: Button 13
          result: 13
        - text: Button 14
          result: 14
      description: |
        Circumnavigated how far away ship of the imagination star stuff
        harvesting **star light** great turbulent clouds a billion trillion

Which produces the following output:

Column layout

The tiles can also be displayed as a column of tiles instead of a row of
tiles.

Here is an example:

- layout: column
  tiles:
  - title: Super Nintendo Entertainment System
    description: 100,000 points
    image:
      url: https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/SNES-Mod1-Console-Set.jpg/800px-SNES-Mod1-Console-Set.jpg
    buttons:
      - text: Order
        result: nintendo
      - text: More into
  - title: Sega Genesis
    description: 75,000 points
    buttons:
      - text: Order
        result: sega
      - text: More into
  - title: Sony Playstation
    description: 200,000 points
    buttons:
      - text: Order
        result: sega
      - text: More into

Button tiles

The TileElementSpec also inherits from the
AbstractButtonElementSpec which means that each
file can also become a button in itself.

A tile will become a button when one of the AbstractButtonElementSpec fields
are set.

This can be useful if you would like the user to simply select the entire
tile instead of a button with in the tile. Here is an example of three tiles that behave as buttons:

- tiles:
  - title: Super Nintendo Entertainment System
    description: 100,000 points
    result: nintendo
  - title: Sega Genesis
    description: 75,000 points
    result: sega
  - title: Sony Playstation
    description: 200,000 points
    result: sony

These tile buttons can also be displayed as a set of radio buttons:

- button_style: radio
  tiles:
  - title: Super Nintendo Entertainment System
    description: 100,000 points
    result: nintendo
  - title: Sega Genesis
    description: 75,000 points
    result: sega
  - title: Sony Playstation
    description: 200,000 points
    result: sony

Element details

type: meya.tile.component.ask
class: TileAskComponent
path: /meya/tile/component/ask.py
signature: tiles

Fields

fielddescription               requiredsignaturedefaulttype
specOverride the original spec for this element.○○nullSpec
contextSend context data with this component's event.○○{}dict
sensitiveMark this component's event as sensitive. This will encrypt the event if the Sensitive Data integration has been enabled.○○falsebool
triggersActivate these dynamic triggers when the component runs. Check the component triggers guide for more info.○○[]list
quick_repliesList of buttons that the user can select for replies.○○[]list
composerThe composer spec that allows you to control the Orb's input composer. Check the Composer guide for more info.○○focus: blur
placeholder:
collapse_placeholder:
visibility:
character_limit:
ComposerElementSpec
headerOverride the header for this component.○○buttons:
title:
progress:
milestones:
extra_buttons:
HeaderElementSpec
markdownOverride the bot Markdown mode for this component. Check the Markdown guide for more info.○○nulllist
bool
NoneType
askQuestion to send to the user.○○nullstr
tilesThe tile spec that allows you to control the how each tile shouldpresent data. Check the TileElementSpec Python class to see what each field does.◉◉list
button_styleDefine how the tile's buttons should work. It can be one of action, radio, or text. The default is action.○○nullTileButtonStyle
layoutDefine how the tiles should be rendered, either column or row. The default is column.○○nullTileLayout

Usage reference

Basic

triggers:
  - keyword: meya.tile.component.ask
steps:
  - tiles:
      - value: ANY
        result: ANY

Full

triggers:
  - keyword: meya.tile.component.ask
steps:
  - spec:
      type: STRING
      data:
        STRING: ANY
      timeout: 123
      trigger_when: ANY
    context:
      STRING: ANY
    sensitive: false
    triggers:
      - type: STRING
        data:
          STRING: ANY
        timeout: 123
        trigger_when: ANY
    quick_replies:
      - url: STRING
        javascript: STRING
        button_id: STRING
        context:
          STRING: ANY
        default: false
        disabled: false
        divider: false
        icon:
          url: STRING
          color: STRING
          path: STRING
        action: COMPONENT
        value: ANY
        result: ANY
        data:
          STRING: ANY
        magic: false
        type: text|url|static|menu|divider|action|flow_next|component_next
        menu:
          - BUTTONELEMENTSPEC
        text: STRING
    composer:
      focus: file|image|text|blur
      placeholder: STRING
      collapse_placeholder: STRING
      visibility: collapse|hide|show
      character_limit:
        length: 123
        error_text: STRING
    header:
      buttons:
        - url: STRING
          javascript: STRING
          button_id: STRING
          context:
            STRING: ANY
          default: false
          disabled: false
          divider: false
          icon:
            url: STRING
            color: STRING
            path: STRING
          action: COMPONENT
          value: ANY
          result: ANY
          data:
            STRING: ANY
          magic: false
          type: text|url|static|menu|divider|action|flow_next|component_next
          menu:
            - BUTTONELEMENTSPEC
          text: STRING
      title:
        text: STRING
        icon:
          url: STRING
          color: STRING
          path: STRING
      progress:
        value: 123
        show_percent: false
      milestones:
        - text: STRING
          current: false
      extra_buttons:
        - url: STRING
          javascript: STRING
          button_id: STRING
          context:
            STRING: ANY
          default: false
          disabled: false
          divider: false
          icon:
            url: STRING
            color: STRING
            path: STRING
          action: COMPONENT
          value: ANY
          result: ANY
          data:
            STRING: ANY
          magic: false
          type: text|url|static|menu|divider|action|flow_next|component_next
          menu:
            - BUTTONELEMENTSPEC
          text: STRING
    markdown:
      - format|linkify|breaks|typographer
    ask: STRING
    tiles:
      - title: STRING
        description: STRING
        image:
          url: STRING
          alt: STRING
        rows:
          -   - cell: STRING
                value: ANY
        url: STRING
        javascript: STRING
        button_id: STRING
        context:
          STRING: ANY
        default: false
        disabled: false
        divider: false
        icon:
          url: STRING
          color: STRING
          path: STRING
        action: COMPONENT
        value: ANY
        result: ANY
        data:
          STRING: ANY
        magic: false
        type: text|url|static|menu|divider|action|flow_next|component_next
        menu:
          - url: STRING
            javascript: STRING
            button_id: STRING
            context:
              STRING: ANY
            default: false
            disabled: false
            divider: false
            icon:
              url: STRING
              color: STRING
              path: STRING
            action: COMPONENT
            value: ANY
            result: ANY
            data:
              STRING: ANY
            magic: false
            type: text|url|static|menu|divider|action|flow_next|component_next
            menu:
              - BUTTONELEMENTSPEC
            text: STRING
        buttons:
          - url: STRING
            javascript: STRING
            button_id: STRING
            context:
              STRING: ANY
            default: false
            disabled: false
            divider: false
            icon:
              url: STRING
              color: STRING
              path: STRING
            action: COMPONENT
            value: ANY
            result: ANY
            data:
              STRING: ANY
            magic: false
            type: text|url|static|menu|divider|action|flow_next|component_next
            menu:
              - BUTTONELEMENTSPEC
            text: STRING
    button_style: action|radio|text
    layout: column|row