UI.Selectable
| Name | Mandatory | Description | Default | Type | 
| ⬅️ Input |  | The input of the shard, if any |  | Any | 
| Output ➡️ |  | The resulting output of the shard |  | Bool | 
| Contents | No | The UI contents to wrap, contain, and detect for selection. | none | NoneShard[Shard] | 
| IsSelected | No | Callback function for checking if the contents are currently selected. | none | NoneShard[Shard] | 
| Clicked | No | Callback function for the contents of this shard is clicked. | none | NoneShard[Shard] | 
| DoubleClicked | No | Callback function for the contents of this shard is clicked. | none | NoneShard[Shard] | 
| ContextMenu | No | Callback function for the right-click context menu. | none | NoneShard[Shard] | 
| DragData | No | Enables dragging and sets the data for drag operations | none | Any | 
| ID | No | An optional ID value in case of ID conflicts. | none | StringVar(String)None | 
 
A wrapper that detects selection over the provided contents.
Examples
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 | @template(is-selected [idx] {
  currently-selected | Is(idx)
})
@template(select [idx] {
  idx > currently-selected | Log
})
@wire(ui-wire {
  UI.Window(
    Position: @f2(0 0)
    Anchor: Anchor::Center
    Width: 200
    Height: 200
    Flags: [WindowFlags::NoResize]
    Contents: {
      Once({
        1 >= currently-selected
        "" >= currently-selected-str
      })
      UI.CentralPanel(
        Contents: {
          UI.Selectable(
            Contents: {UI.Button("Select Button 1" {"Select Button 1 Clicked" | Log})}
            IsSelected: {@is-selected(1)}
            Clicked: {@select(1)}
          )
          UI.Selectable(
            Contents: {
              UI.Button("Select Button 2" {"Select Button 2 Clicked" | Log})
              "Another part of the same selectable as Select Button 2" | UI.Label(Wrap: true)
            }
            IsSelected: {@is-selected(2)}
            Clicked: {@select(2)}
          )
          currently-selected | ToString > currently-selected-str
          [
            "Currently selected: "
            currently-selected-str
          ] | String.Join | UI.Label
        }
      )
    }
  )
} Looped: true)
{ui-behavior: ui-wire}
 |