v0.2.0-dev-22 #47
@ -28,7 +28,7 @@ rootProject.name = "visionforge"
|
||||
include(
|
||||
// ":ui",
|
||||
":ui:react",
|
||||
// ":ui:ring",
|
||||
":ui:ring",
|
||||
// ":ui:material",
|
||||
":ui:bootstrap",
|
||||
":visionforge-core",
|
||||
|
@ -13,7 +13,6 @@ kotlin{
|
||||
dependencies{
|
||||
api(project(":ui:react"))
|
||||
|
||||
implementation(npm("@jetbrains/logos", "1.1.6"))
|
||||
implementation(npm("@jetbrains/ring-ui", "3.0.13"))
|
||||
implementation(npm("svg-inline-loader", "0.8.0"))
|
||||
implementation(npm("@jetbrains/icons", "3.14.1"))
|
||||
implementation(npm("@jetbrains/ring-ui", "4.0.7"))
|
||||
}
|
@ -5,29 +5,29 @@ import react.RHandler
|
||||
import react.dom.WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/alert/alert.js
|
||||
external interface AlertProps : WithClassName {
|
||||
var timeout: Number
|
||||
var onCloseRequest: () -> Unit
|
||||
var onClose: () -> Unit
|
||||
var isShaking: Boolean
|
||||
var isClosing: Boolean
|
||||
var inline: Boolean
|
||||
var showWithAnimation: Boolean
|
||||
var closeable: Boolean
|
||||
var type: AlertType
|
||||
public external interface AlertProps : WithClassName {
|
||||
public var timeout: Number
|
||||
public var onCloseRequest: () -> Unit
|
||||
public var onClose: () -> Unit
|
||||
public var isShaking: Boolean
|
||||
public var isClosing: Boolean
|
||||
public var inline: Boolean
|
||||
public var showWithAnimation: Boolean
|
||||
public var closeable: Boolean
|
||||
public var type: AlertType
|
||||
}
|
||||
|
||||
typealias AlertType = String
|
||||
public typealias AlertType = String
|
||||
|
||||
object AlertTypes {
|
||||
var ERROR = "error"
|
||||
var MESSAGE = "message"
|
||||
var SUCCESS = "success"
|
||||
var WARNING = "warning"
|
||||
var LOADING = "loading"
|
||||
public object AlertTypes {
|
||||
public var ERROR = "error"
|
||||
public var MESSAGE = "message"
|
||||
public var SUCCESS = "success"
|
||||
public var WARNING = "warning"
|
||||
public var LOADING = "loading"
|
||||
}
|
||||
|
||||
fun RBuilder.ringAlert(handler: RHandler<AlertProps>) {
|
||||
public fun RBuilder.ringAlert(handler: RHandler<AlertProps>) {
|
||||
RingUI.Alert {
|
||||
handler()
|
||||
}
|
||||
|
@ -6,29 +6,29 @@ import react.RHandler
|
||||
import react.dom.WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/button/button.js
|
||||
external interface ButtonProps : WithClassName {
|
||||
var theme: String
|
||||
var active: Boolean
|
||||
var danger: Boolean
|
||||
var delayed: Boolean
|
||||
var loader: Boolean
|
||||
var primary: Boolean
|
||||
public external interface ButtonProps : WithClassName {
|
||||
public var theme: String
|
||||
public var active: Boolean
|
||||
public var danger: Boolean
|
||||
public var delayed: Boolean
|
||||
public var loader: Boolean
|
||||
public var primary: Boolean
|
||||
|
||||
var short: Boolean
|
||||
var text: Boolean
|
||||
var inline: Boolean
|
||||
var dropdown: Boolean
|
||||
public var short: Boolean
|
||||
public var text: Boolean
|
||||
public var inline: Boolean
|
||||
public var dropdown: Boolean
|
||||
|
||||
var href: String
|
||||
public var href: String
|
||||
|
||||
var icon: dynamic /* string | func */
|
||||
var iconSize: Number
|
||||
var iconClassName: String
|
||||
public var icon: dynamic /* string | func */
|
||||
public var iconSize: Number
|
||||
public var iconClassName: String
|
||||
|
||||
var onMouseDown: (MouseEvent) -> Unit
|
||||
public var onMouseDown: (MouseEvent) -> Unit
|
||||
}
|
||||
|
||||
fun RBuilder.ringButton(handler: RHandler<ButtonProps>) {
|
||||
public fun RBuilder.ringButton(handler: RHandler<ButtonProps>) {
|
||||
RingUI.Button {
|
||||
handler()
|
||||
}
|
||||
|
@ -5,22 +5,22 @@ import react.RHandler
|
||||
import react.dom.WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/dialog/dialog.js
|
||||
external interface DialogProps : WithClassName {
|
||||
var contentClassName: String
|
||||
var show: Boolean
|
||||
var showCloseButton: Boolean
|
||||
var onOverlayClick: () -> Unit
|
||||
var onEscPress: () -> Unit
|
||||
var onCloseClick: () -> Unit
|
||||
public external interface DialogProps : WithClassName {
|
||||
public var contentClassName: String
|
||||
public var show: Boolean
|
||||
public var showCloseButton: Boolean
|
||||
public var onOverlayClick: () -> Unit
|
||||
public var onEscPress: () -> Unit
|
||||
public var onCloseClick: () -> Unit
|
||||
// onCloseAttempt is a common callback for ESC pressing and overlay clicking.
|
||||
// Use it if you don't need different behaviors for this cases.
|
||||
var onCloseAttempt: () -> Unit
|
||||
public var onCloseAttempt: () -> Unit
|
||||
// focusTrap may break popups inside dialog, so use it carefully
|
||||
var trapFocus: Boolean
|
||||
var autoFocusFirst: Boolean
|
||||
public var trapFocus: Boolean
|
||||
public var autoFocusFirst: Boolean
|
||||
}
|
||||
|
||||
fun RBuilder.ringDialog(show: Boolean, handler: RHandler<DialogProps>) {
|
||||
public fun RBuilder.ringDialog(show: Boolean, handler: RHandler<DialogProps>) {
|
||||
RingUI.Dialog {
|
||||
attrs.show = show
|
||||
handler()
|
||||
|
@ -5,16 +5,16 @@ import react.RHandler
|
||||
import react.dom.WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/icon/icon.js
|
||||
external interface IconProps : WithClassName {
|
||||
var color: String
|
||||
var glyph: dynamic /* string | func */
|
||||
var height: Number
|
||||
var size: Number
|
||||
var width: Number
|
||||
var loading: Boolean
|
||||
public external interface IconProps : WithClassName {
|
||||
public var color: String
|
||||
public var glyph: dynamic /* string | func */
|
||||
public var height: Number
|
||||
public var size: Number
|
||||
public var width: Number
|
||||
public var loading: Boolean
|
||||
}
|
||||
|
||||
fun RBuilder.ringIcon(handler: RHandler<IconProps>) {
|
||||
public fun RBuilder.ringIcon(handler: RHandler<IconProps>) {
|
||||
RingUI.Icon {
|
||||
handler()
|
||||
}
|
||||
|
@ -6,9 +6,9 @@ import react.RHandler
|
||||
import react.dom.WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/link/link.js
|
||||
external interface LinkProps : WithClassName {
|
||||
var innerClassName: String
|
||||
var active: Boolean
|
||||
public external interface LinkProps : WithClassName {
|
||||
public var innerClassName: String
|
||||
public var active: Boolean
|
||||
var inherit: Boolean
|
||||
var pseudo: Boolean
|
||||
var hover: Boolean
|
||||
|
@ -4,11 +4,11 @@ import react.RClass
|
||||
import ringui.header.HeaderProps
|
||||
|
||||
@JsModule("@jetbrains/ring-ui")
|
||||
external object RingUI {
|
||||
val Alert: RClass<AlertProps>
|
||||
val Button: RClass<ButtonProps>
|
||||
val Dialog: RClass<DialogProps>
|
||||
val Header: RClass<HeaderProps>
|
||||
val Link: RClass<LinkProps>
|
||||
val Icon: RClass<IconProps>
|
||||
public external object RingUI {
|
||||
public val Alert: RClass<AlertProps>
|
||||
public val Button: RClass<ButtonProps>
|
||||
public val Dialog: RClass<DialogProps>
|
||||
public val Header: RClass<HeaderProps>
|
||||
public val Link: RClass<LinkProps>
|
||||
public val Icon: RClass<IconProps>
|
||||
}
|
||||
|
@ -11,12 +11,12 @@ private external object UserCardModule {
|
||||
}
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/user-card/card.js
|
||||
external interface UserCardProps : RProps {
|
||||
var user: UserCardModel
|
||||
var wording: UserCardWording
|
||||
public external interface UserCardProps : RProps {
|
||||
public var user: UserCardModel
|
||||
public var wording: UserCardWording
|
||||
}
|
||||
|
||||
data class UserCardModel(
|
||||
public data class UserCardModel(
|
||||
val name: String,
|
||||
val login: String,
|
||||
val avatarUrl: String,
|
||||
@ -24,13 +24,13 @@ data class UserCardModel(
|
||||
val href: String? = null
|
||||
)
|
||||
|
||||
data class UserCardWording(
|
||||
public data class UserCardWording(
|
||||
val banned: String,
|
||||
val online: String,
|
||||
val offline: String
|
||||
)
|
||||
|
||||
fun RBuilder.ringUserCard(user: UserCardModel, handler: RHandler<UserCardProps> = {}) {
|
||||
public fun RBuilder.ringUserCard(user: UserCardModel, handler: RHandler<UserCardProps> = {}) {
|
||||
UserCardModule.UserCard {
|
||||
attrs.user = user
|
||||
handler()
|
||||
|
@ -19,12 +19,12 @@ internal external object HeaderModule {
|
||||
}
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/header/header.js
|
||||
external interface HeaderProps : WithClassName {
|
||||
var spaced: Boolean
|
||||
var theme: String
|
||||
public external interface HeaderProps : WithClassName {
|
||||
public var spaced: Boolean
|
||||
public var theme: String
|
||||
}
|
||||
|
||||
fun RBuilder.ringHeader(handler: RHandler<HeaderProps>) {
|
||||
public fun RBuilder.ringHeader(handler: RHandler<HeaderProps>) {
|
||||
RingUI.Header {
|
||||
handler()
|
||||
}
|
||||
|
@ -6,15 +6,15 @@ import react.RHandler
|
||||
import ringui.IconProps
|
||||
import styled.StyledDOMBuilder
|
||||
|
||||
external interface HeaderLogoProps : IconProps
|
||||
public external interface HeaderLogoProps : IconProps
|
||||
|
||||
fun StyledDOMBuilder<A>.ringLogo(handler: RHandler<HeaderLogoProps>) {
|
||||
public fun StyledDOMBuilder<A>.ringLogo(handler: RHandler<HeaderLogoProps>) {
|
||||
HeaderModule.Logo {
|
||||
handler()
|
||||
}
|
||||
}
|
||||
|
||||
fun RElementBuilder<HeaderProps>.ringLogo(handler: RHandler<HeaderLogoProps>) {
|
||||
public fun RElementBuilder<HeaderProps>.ringLogo(handler: RHandler<HeaderLogoProps>) {
|
||||
HeaderModule.Logo {
|
||||
handler()
|
||||
}
|
||||
|
@ -6,20 +6,20 @@ import react.dom.WithClassName
|
||||
import ringui.ButtonProps
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/header/tray.js
|
||||
external interface HeaderTrayProps : WithClassName
|
||||
public external interface HeaderTrayProps : WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/header/tray-icon.js
|
||||
external interface HeaderTrayIconProps : ButtonProps {
|
||||
var rotatable: Boolean
|
||||
public external interface HeaderTrayIconProps : ButtonProps {
|
||||
public var rotatable: Boolean
|
||||
}
|
||||
|
||||
fun RElementBuilder<HeaderProps>.ringTray(handler: RHandler<HeaderTrayProps>) {
|
||||
public fun RElementBuilder<HeaderProps>.ringTray(handler: RHandler<HeaderTrayProps>) {
|
||||
HeaderModule.Tray {
|
||||
handler()
|
||||
}
|
||||
}
|
||||
|
||||
fun RElementBuilder<HeaderTrayProps>.ringTrayIcon(handler: RHandler<WithClassName>) {
|
||||
public fun RElementBuilder<HeaderTrayProps>.ringTrayIcon(handler: RHandler<WithClassName>) {
|
||||
HeaderModule.TrayIcon {
|
||||
handler()
|
||||
}
|
||||
|
@ -5,15 +5,15 @@ import react.RHandler
|
||||
import react.dom.WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/island/content.js
|
||||
external interface IslandContentProps : WithClassName {
|
||||
var scrollableWrapperClassName: String
|
||||
var fade: Boolean
|
||||
var bottomBorder: Boolean
|
||||
var onScroll: () -> Unit
|
||||
var onScrollToBottom: () -> Unit
|
||||
public external interface IslandContentProps : WithClassName {
|
||||
public var scrollableWrapperClassName: String
|
||||
public var fade: Boolean
|
||||
public var bottomBorder: Boolean
|
||||
public var onScroll: () -> Unit
|
||||
public var onScrollToBottom: () -> Unit
|
||||
}
|
||||
|
||||
fun RElementBuilder<IslandProps>.ringIslandContent(handler: RHandler<IslandContentProps>) {
|
||||
public fun RElementBuilder<IslandProps>.ringIslandContent(handler: RHandler<IslandContentProps>) {
|
||||
IslandModule.Content {
|
||||
handler()
|
||||
}
|
||||
|
@ -5,13 +5,13 @@ import react.RHandler
|
||||
import react.dom.WithClassName
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/island/header.js
|
||||
external interface IslandHeaderProps : WithClassName {
|
||||
var border: Boolean
|
||||
var wrapWithTitle: Boolean
|
||||
var phase: Number
|
||||
public external interface IslandHeaderProps : WithClassName {
|
||||
public var border: Boolean
|
||||
public var wrapWithTitle: Boolean
|
||||
public var phase: Number
|
||||
}
|
||||
|
||||
fun RElementBuilder<IslandProps>.ringIslandHeader(handler: RHandler<IslandHeaderProps>) {
|
||||
public fun RElementBuilder<IslandProps>.ringIslandHeader(handler: RHandler<IslandHeaderProps>) {
|
||||
IslandModule.Header {
|
||||
handler()
|
||||
}
|
||||
|
@ -14,18 +14,18 @@ internal external object IslandModule {
|
||||
}
|
||||
|
||||
// https://github.com/JetBrains/ring-ui/blob/master/components/island/island.js
|
||||
external interface IslandProps : WithClassName {
|
||||
val narrow: Boolean
|
||||
val withoutPaddings: Boolean
|
||||
public external interface IslandProps : WithClassName {
|
||||
public val narrow: Boolean
|
||||
public val withoutPaddings: Boolean
|
||||
}
|
||||
|
||||
fun RBuilder.ringIsland(handler: RHandler<IslandProps>) {
|
||||
public fun RBuilder.ringIsland(handler: RHandler<IslandProps>) {
|
||||
IslandModule.default {
|
||||
handler()
|
||||
}
|
||||
}
|
||||
|
||||
fun RBuilder.ringAdaptiveIsland(handler: RHandler<IslandProps>) {
|
||||
public fun RBuilder.ringAdaptiveIsland(handler: RHandler<IslandProps>) {
|
||||
IslandModule.AdaptiveIsland {
|
||||
handler()
|
||||
}
|
||||
|
3
ui/ring/webpack.config.d/01.ring.js
vendored
3
ui/ring/webpack.config.d/01.ring.js
vendored
@ -1,7 +1,6 @@
|
||||
// wrap is useful, because declaring variables in module can be already declared
|
||||
// module creates own lexical environment
|
||||
;(function (config) {
|
||||
(function (config) {
|
||||
const ringConfig = require('@jetbrains/ring-ui/webpack.config').config;
|
||||
|
||||
config.module.rules.push(...ringConfig.module.rules);
|
||||
})(config);
|
15
ui/ring/webpack.config.d/02.svg.js
vendored
15
ui/ring/webpack.config.d/02.svg.js
vendored
@ -1,15 +0,0 @@
|
||||
// wrap is useful, because declaring variables in module can be already declared
|
||||
// module creates own lexical environment
|
||||
;(function (config) {
|
||||
const path = require("path");
|
||||
config.module.rules.push(
|
||||
{
|
||||
test: /\.svg$/,
|
||||
loader: "svg-inline-loader",
|
||||
options: {removeSVGTagAttrs: false},
|
||||
include: [
|
||||
path.resolve(require.resolve("@jetbrains/logos"), "..", "..")
|
||||
]
|
||||
}
|
||||
);
|
||||
})(config);
|
Loading…
Reference in New Issue
Block a user