@budibase/bbui 1.0.105-alpha.41 → 1.0.105-alpha.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bbui.es.js +35 -35
- package/dist/bbui.es.js.map +1 -1
- package/package.json +3 -3
- package/src/ActionMenu/ActionMenu.svelte +2 -1
- package/src/Icon/Icon.svelte +49 -13
- package/src/Modal/ModalContent.svelte +9 -3
- package/src/Popover/Popover.svelte +26 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/bbui",
|
|
3
3
|
"description": "A UI solution used in the different Budibase projects.",
|
|
4
|
-
"version": "1.0.105-alpha.
|
|
4
|
+
"version": "1.0.105-alpha.44",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"svelte": "src/index.js",
|
|
7
7
|
"module": "dist/bbui.es.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@adobe/spectrum-css-workflow-icons": "^1.2.1",
|
|
41
|
-
"@budibase/string-templates": "^1.0.105-alpha.
|
|
41
|
+
"@budibase/string-templates": "^1.0.105-alpha.44",
|
|
42
42
|
"@spectrum-css/actionbutton": "^1.0.1",
|
|
43
43
|
"@spectrum-css/actiongroup": "^1.0.1",
|
|
44
44
|
"@spectrum-css/avatar": "^3.0.2",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"svelte-flatpickr": "^3.2.3",
|
|
85
85
|
"svelte-portal": "^1.0.0"
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "ca260b68cc32135d03a3cc994d456bf5df95e414"
|
|
88
88
|
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
export let disabled = false
|
|
7
7
|
export let align = "left"
|
|
8
8
|
export let portalTarget
|
|
9
|
+
export let dataCy
|
|
9
10
|
|
|
10
11
|
let anchor
|
|
11
12
|
let dropdown
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
<div use:getAnchor on:click={openMenu}>
|
|
37
38
|
<slot name="control" />
|
|
38
39
|
</div>
|
|
39
|
-
<Popover bind:this={dropdown} {anchor} {align} {portalTarget}>
|
|
40
|
+
<Popover bind:this={dropdown} {anchor} {align} {portalTarget} {dataCy}>
|
|
40
41
|
<Menu>
|
|
41
42
|
<slot />
|
|
42
43
|
</Menu>
|
package/src/Icon/Icon.svelte
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
5
|
<script>
|
|
6
|
+
import Tooltip from "../Tooltip/Tooltip.svelte"
|
|
7
|
+
import { fade } from "svelte/transition"
|
|
8
|
+
|
|
6
9
|
export let direction = "n"
|
|
7
10
|
export let name = "Add"
|
|
8
11
|
export let hidden = false
|
|
@@ -10,30 +13,52 @@
|
|
|
10
13
|
export let hoverable = false
|
|
11
14
|
export let disabled = false
|
|
12
15
|
export let color
|
|
16
|
+
export let tooltip
|
|
13
17
|
|
|
14
18
|
$: rotation = getRotation(direction)
|
|
15
19
|
|
|
20
|
+
let showTooltip = false
|
|
21
|
+
|
|
16
22
|
const getRotation = direction => {
|
|
17
23
|
return directions.indexOf(direction) * 45
|
|
18
24
|
}
|
|
19
25
|
</script>
|
|
20
26
|
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
aria-hidden={hidden}
|
|
28
|
-
aria-label={name}
|
|
29
|
-
style={`transform: rotate(${rotation}deg); ${
|
|
30
|
-
color ? `color: ${color};` : ""
|
|
31
|
-
}`}
|
|
27
|
+
<div
|
|
28
|
+
class="icon"
|
|
29
|
+
on:mouseover={() => (showTooltip = true)}
|
|
30
|
+
on:focus={() => (showTooltip = true)}
|
|
31
|
+
on:mouseleave={() => (showTooltip = false)}
|
|
32
|
+
on:click={() => (showTooltip = false)}
|
|
32
33
|
>
|
|
33
|
-
<
|
|
34
|
-
|
|
34
|
+
<svg
|
|
35
|
+
on:click
|
|
36
|
+
class:hoverable
|
|
37
|
+
class:disabled
|
|
38
|
+
class="spectrum-Icon spectrum-Icon--size{size}"
|
|
39
|
+
focusable="false"
|
|
40
|
+
aria-hidden={hidden}
|
|
41
|
+
aria-label={name}
|
|
42
|
+
style={`transform: rotate(${rotation}deg); ${
|
|
43
|
+
color ? `color: ${color};` : ""
|
|
44
|
+
}`}
|
|
45
|
+
>
|
|
46
|
+
<use style="pointer-events: none;" xlink:href="#spectrum-icon-18-{name}" />
|
|
47
|
+
</svg>
|
|
48
|
+
{#if tooltip && showTooltip}
|
|
49
|
+
<div class="tooltip" in:fade={{ duration: 130, delay: 250 }}>
|
|
50
|
+
<Tooltip textWrapping direction={"bottom"} text={tooltip} />
|
|
51
|
+
</div>
|
|
52
|
+
{/if}
|
|
53
|
+
</div>
|
|
35
54
|
|
|
36
55
|
<style>
|
|
56
|
+
.icon {
|
|
57
|
+
position: relative;
|
|
58
|
+
display: grid;
|
|
59
|
+
place-items: center;
|
|
60
|
+
}
|
|
61
|
+
|
|
37
62
|
svg.hoverable {
|
|
38
63
|
pointer-events: all;
|
|
39
64
|
transition: color var(--spectrum-global-animation-duration-100, 130ms);
|
|
@@ -47,4 +72,15 @@
|
|
|
47
72
|
color: var(--spectrum-global-color-gray-500) !important;
|
|
48
73
|
pointer-events: none !important;
|
|
49
74
|
}
|
|
75
|
+
|
|
76
|
+
.tooltip {
|
|
77
|
+
position: absolute;
|
|
78
|
+
pointer-events: none;
|
|
79
|
+
left: 50%;
|
|
80
|
+
top: calc(100% + 4px);
|
|
81
|
+
width: 100vw;
|
|
82
|
+
max-width: 150px;
|
|
83
|
+
transform: translateX(-50%);
|
|
84
|
+
text-align: center;
|
|
85
|
+
}
|
|
50
86
|
</style>
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
export let secondaryButtonText = undefined
|
|
24
24
|
export let secondaryAction = undefined
|
|
25
25
|
export let secondaryButtonWarning = false
|
|
26
|
+
export let dataCy = null
|
|
26
27
|
|
|
27
28
|
const { hide, cancel } = getContext(Context.Modal)
|
|
28
29
|
let loading = false
|
|
@@ -63,21 +64,26 @@
|
|
|
63
64
|
role="dialog"
|
|
64
65
|
tabindex="-1"
|
|
65
66
|
aria-modal="true"
|
|
67
|
+
data-cy={dataCy}
|
|
66
68
|
>
|
|
67
69
|
<div class="spectrum-Dialog-grid">
|
|
68
|
-
{#if title}
|
|
70
|
+
{#if title || $$slots.header}
|
|
69
71
|
<h1
|
|
70
72
|
class="spectrum-Dialog-heading spectrum-Dialog-heading--noHeader"
|
|
71
73
|
class:noDivider={!showDivider}
|
|
72
74
|
class:header-spacing={$$slots.header}
|
|
73
75
|
>
|
|
74
|
-
{title}
|
|
75
|
-
|
|
76
|
+
{#if title}
|
|
77
|
+
{title}
|
|
78
|
+
{:else if $$slots.header}
|
|
79
|
+
<slot name="header" />
|
|
80
|
+
{/if}
|
|
76
81
|
</h1>
|
|
77
82
|
{#if showDivider}
|
|
78
83
|
<Divider size="M" />
|
|
79
84
|
{/if}
|
|
80
85
|
{/if}
|
|
86
|
+
|
|
81
87
|
<!-- TODO: Remove content-grid class once Layout components are in bbui -->
|
|
82
88
|
<section class="spectrum-Dialog-content content-grid">
|
|
83
89
|
<slot />
|
|
@@ -10,6 +10,17 @@
|
|
|
10
10
|
export let anchor
|
|
11
11
|
export let align = "right"
|
|
12
12
|
export let portalTarget
|
|
13
|
+
export let dataCy
|
|
14
|
+
|
|
15
|
+
export let direction = "bottom"
|
|
16
|
+
export let showTip = false
|
|
17
|
+
|
|
18
|
+
let tipSvg =
|
|
19
|
+
'<svg xmlns="http://www.w3.org/svg/2000" width="23" height="12" class="spectrum-Popover-tip" > <path class="spectrum-Popover-tip-triangle" d="M 0.7071067811865476 0 L 11.414213562373096 10.707106781186548 L 22.121320343559645 0" /> </svg>'
|
|
20
|
+
|
|
21
|
+
$: tooltipClasses = showTip
|
|
22
|
+
? `spectrum-Popover--withTip spectrum-Popover--${direction}`
|
|
23
|
+
: ""
|
|
13
24
|
|
|
14
25
|
export const show = () => {
|
|
15
26
|
dispatch("open")
|
|
@@ -37,9 +48,14 @@
|
|
|
37
48
|
use:positionDropdown={{ anchor, align }}
|
|
38
49
|
use:clickOutside={hide}
|
|
39
50
|
on:keydown={handleEscape}
|
|
40
|
-
class="spectrum-Popover is-open"
|
|
51
|
+
class={"spectrum-Popover is-open " + (tooltipClasses || "")}
|
|
41
52
|
role="presentation"
|
|
53
|
+
data-cy={dataCy}
|
|
42
54
|
>
|
|
55
|
+
{#if showTip}
|
|
56
|
+
{@html tipSvg}
|
|
57
|
+
{/if}
|
|
58
|
+
|
|
43
59
|
<slot />
|
|
44
60
|
</div>
|
|
45
61
|
</Portal>
|
|
@@ -49,4 +65,13 @@
|
|
|
49
65
|
.spectrum-Popover {
|
|
50
66
|
min-width: var(--spectrum-global-dimension-size-2000) !important;
|
|
51
67
|
}
|
|
68
|
+
.spectrum-Popover.is-open.spectrum-Popover--withTip {
|
|
69
|
+
margin-top: var(--spacing-xs);
|
|
70
|
+
margin-left: var(--spacing-xl);
|
|
71
|
+
}
|
|
72
|
+
:global(.spectrum-Popover--bottom .spectrum-Popover-tip),
|
|
73
|
+
:global(.spectrum-Popover--top .spectrum-Popover-tip) {
|
|
74
|
+
left: 90%;
|
|
75
|
+
margin-left: calc(var(--spectrum-global-dimension-size-150) * -1);
|
|
76
|
+
}
|
|
52
77
|
</style>
|