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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
package com.palantir.blueprintjs
import org.w3c.dom.events.Event
import org.w3c.dom.events.MouseEvent
import react.RBuilder
import react.RHandler
import react.ReactElement
typealias IconName = String
fun RBuilder.bpIcon(
name: IconName,
size: Int = Icon.SIZE_STANDARD,
intent: Intent = Intent.NONE,
title: String? = null,
alt: String? = null,
className: String? = null,
block: RHandler<IIconProps> = {}
): ReactElement = child(Icon::class) {
attrs {
this.icon = name
this.iconSize = size
this.htmlTitle = title
this.intent = intent
this.title = alt
this.className = className
}
block()
}
fun RBuilder.bpButton(
minimal: Boolean = false,
small: Boolean = false,
large: Boolean = false,
disabled: Boolean = false,
title: String? = null,
icon: IconName? = null,
rightIcon: IconName? = null,
intent: Intent = Intent.NONE,
onClick: ((event: MouseEvent) -> Unit)? = {},
block: RHandler<IButtonProps> = {}
): ReactElement = child(Button::class) {
attrs {
this.title = title
this.minimal = minimal
this.small = small
this.large = large
this.disabled = disabled
this.icon = icon
this.rightIcon = rightIcon
this.intent = intent
this.onClick = onClick
}
block()
}
fun RBuilder.bpButtonGroup(
large: Boolean = false,
minimal: Boolean = false,
block: RHandler<IButtonGroupProps> = {}
): ReactElement = child(ButtonGroup::class) {
attrs {
this.large = large
this.minimal = minimal
}
block()
}
fun RBuilder.bpInputGroup(
large: Boolean = false,
placeholder: String = "",
rightElement: ReactElement? = null,
onChange: (Event) -> Unit
): ReactElement = child(InputGroup::class) {
attrs {
this.large = large
this.placeholder = placeholder
this.rightElement = rightElement
this.onChange = onChange
}
}
fun RBuilder.bpTag(
intent: Intent? = null,
minimal: Boolean? = null,
active: Boolean? = null,
block: RHandler<ITagProps> = {}
): ReactElement = child(Tag::class) {
attrs {
this.intent = intent
this.minimal = minimal
this.active = active
}
block()
}
fun RBuilder.bpNonIdealState(
icon: IconName? = null,
title: ReactElement? = null,
description: ReactElement? = null,
action: ReactElement? = null,
children: ReactElement? = null,
block: RHandler<INonIdealStateProps> = {}
): ReactElement = child(NonIdealState::class) {
attrs {
this.icon = icon
this.title = title
this.description = description
this.action = action
this.children = children
}
block()
}
fun RBuilder.bpOverlay(
isOpen: Boolean,
autoFocus: Boolean = true,
enforceFocus: Boolean = true,
usePortal: Boolean = true,
hasBackdrop: Boolean = true,
canEscapeKeyClose: Boolean = true,
canOutsideClickClose: Boolean = true,
onClose: () -> Unit = {},
block: RHandler<IOverlayProps> = {}
): ReactElement = child(Overlay::class) {
attrs {
this.isOpen = isOpen
this.autoFocus = autoFocus
this.enforceFocus = enforceFocus
this.usePortal = usePortal
this.hasBackdrop = hasBackdrop
this.canEscapeKeyClose = canEscapeKeyClose
this.canOutsideClickClose = canOutsideClickClose
this.onClose = { onClose() }
}
block()
}
|