@budibase/bbui 1.58.13 → 2.0.0
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/LICENSE +375 -0
- package/dist/bbui.es.js +14 -0
- package/dist/bbui.es.js.map +1 -0
- package/package.json +68 -32
- package/src/ActionButton/ActionButton.svelte +102 -0
- package/src/ActionGroup/ActionGroup.svelte +26 -0
- package/src/ActionMenu/ActionMenu.svelte +44 -0
- package/src/Actions/autoresize_textarea.js +9 -9
- package/src/Actions/click_outside.js +5 -5
- package/src/Actions/position_dropdown.js +46 -37
- package/src/Avatar/Avatar.svelte +62 -0
- package/src/Badge/Badge.svelte +29 -0
- package/src/Banner/Banner.svelte +72 -0
- package/src/Banner/BannerDisplay.svelte +41 -0
- package/src/Button/Button.svelte +102 -200
- package/src/ButtonGroup/ButtonGroup.svelte +30 -0
- package/src/ClearButton/ClearButton.svelte +19 -0
- package/src/ColorPicker/ColorPicker.svelte +297 -0
- package/src/DetailSummary/DetailSummary.svelte +83 -0
- package/src/Divider/Divider.svelte +28 -0
- package/src/Drawer/Drawer.svelte +76 -51
- package/src/Drawer/DrawerContent.svelte +46 -0
- package/src/Form/Checkbox.svelte +21 -132
- package/src/Form/Combobox.svelte +45 -0
- package/src/Form/Core/Checkbox.svelte +69 -0
- package/src/Form/Core/CheckboxGroup.svelte +68 -0
- package/src/Form/Core/Combobox.svelte +142 -0
- package/src/Form/Core/DatePicker.svelte +257 -0
- package/src/Form/Core/Dropzone.svelte +453 -0
- package/src/Form/Core/InputDropdown.svelte +228 -0
- package/src/Form/Core/Multiselect.svelte +90 -0
- package/src/Form/Core/Picker.svelte +259 -0
- package/src/Form/Core/PickerDropdown.svelte +415 -0
- package/src/Form/Core/RadioGroup.svelte +48 -0
- package/src/Form/Core/RichTextField.svelte +42 -0
- package/src/Form/Core/Search.svelte +105 -0
- package/src/Form/Core/Select.svelte +75 -0
- package/src/Form/Core/Slider.svelte +86 -0
- package/src/Form/Core/Stepper.svelte +172 -0
- package/src/Form/Core/Switch.svelte +37 -0
- package/src/Form/Core/TextArea.svelte +78 -0
- package/src/Form/Core/TextField.svelte +119 -0
- package/src/Form/Core/index.js +15 -0
- package/src/Form/DatePicker.svelte +39 -0
- package/src/Form/Dropzone.svelte +42 -0
- package/src/Form/Field.svelte +42 -0
- package/src/Form/FieldLabel.svelte +32 -0
- package/src/Form/Input.svelte +41 -187
- package/src/Form/InputDropdown.svelte +55 -0
- package/src/Form/Multiselect.svelte +36 -320
- package/src/Form/PickerDropdown.svelte +132 -0
- package/src/Form/RadioGroup.svelte +42 -0
- package/src/Form/RichTextField.svelte +36 -0
- package/src/Form/Search.svelte +36 -0
- package/src/Form/Select.svelte +48 -88
- package/src/Form/Slider.svelte +16 -91
- package/src/Form/Stepper.svelte +45 -0
- package/src/Form/TextArea.svelte +30 -128
- package/src/Form/Toggle.svelte +20 -110
- package/src/Icon/Icon.svelte +91 -0
- package/src/Icon/IconAvatar.svelte +58 -0
- package/src/IconPicker/IconPicker.svelte +177 -0
- package/src/IconSideNav/IconSideNav.svelte +14 -0
- package/src/IconSideNav/IconSideNavItem.svelte +56 -0
- package/src/InlineAlert/InlineAlert.svelte +60 -0
- package/src/Label/Label.svelte +29 -0
- package/src/Layout/Layout.svelte +94 -0
- package/src/Layout/Page.svelte +32 -0
- package/src/Link/Link.svelte +24 -0
- package/src/List/List.svelte +28 -0
- package/src/List/ListItem.svelte +90 -0
- package/src/Markdown/MarkdownEditor.svelte +60 -0
- package/src/Markdown/MarkdownViewer.svelte +70 -0
- package/src/Markdown/SpectrumMDE.svelte +184 -0
- package/src/Menu/Item.svelte +96 -0
- package/src/Menu/Menu.svelte +7 -0
- package/src/Menu/Menu.svench +19 -0
- package/src/Menu/Section.svelte +10 -0
- package/src/Menu/Separator.svelte +1 -0
- package/src/Modal/Content.svelte +0 -11
- package/src/Modal/CustomContent.svelte +9 -6
- package/src/Modal/Modal.svelte +104 -51
- package/src/Modal/ModalContent.svelte +131 -73
- package/src/Modal/QuizModal.svelte +16 -17
- package/src/Notification/Notification.svelte +70 -0
- package/src/Notification/NotificationDisplay.svelte +43 -0
- package/src/Pagination/Pagination.svelte +57 -0
- package/src/Popover/Popover.svelte +43 -33
- package/src/ProgressBar/ProgressBar.svelte +67 -0
- package/src/ProgressCircle/ProgressCircle.svelte +62 -0
- package/src/SideNavigation/Item.svelte +61 -0
- package/src/SideNavigation/Navigation.svelte +12 -0
- package/src/StatusLight/StatusLight.svelte +80 -0
- package/src/Stores/Notifications.svench.svx +1 -1
- package/src/Stores/banner.js +65 -0
- package/src/Stores/notifications.js +75 -38
- package/src/Table/ArrayRenderer.svelte +17 -0
- package/src/Table/AttachmentRenderer.svelte +73 -0
- package/src/Table/BoldRenderer.svelte +15 -0
- package/src/Table/BooleanRenderer.svelte +42 -0
- package/src/Table/CellRenderer.svelte +69 -0
- package/src/Table/CodeRenderer.svelte +14 -0
- package/src/Table/DateTimeRenderer.svelte +29 -0
- package/src/Table/InternalRenderer.svelte +24 -0
- package/src/Table/RelationshipRenderer.svelte +40 -0
- package/src/Table/SelectEditRenderer.svelte +28 -0
- package/src/Table/StringRenderer.svelte +14 -0
- package/src/Table/Table.svelte +635 -0
- package/src/Table/index.js +1 -0
- package/src/Tabs/Tab.svelte +88 -0
- package/src/Tabs/Tabs.svelte +130 -0
- package/src/Tags/Tag.svelte +43 -0
- package/src/Tags/Tags.svelte +7 -0
- package/src/Tooltip/Tooltip.svelte +34 -0
- package/src/Tooltip/TooltipWrapper.svelte +60 -0
- package/src/TreeView/Item.svelte +41 -0
- package/src/TreeView/Tree.svelte +16 -0
- package/src/Typography/Body.svelte +21 -0
- package/src/Typography/Code.svelte +10 -0
- package/src/Typography/Detail.svelte +19 -0
- package/src/Typography/Heading.svelte +17 -0
- package/{dist → src}/bbui.css +2 -99
- package/src/context.js +1 -1
- package/src/helpers.js +134 -0
- package/src/index.js +95 -40
- package/src/spectrum-icons-rollup.js +31 -0
- package/src/spectrum-icons-vite.js +31 -0
- package/dist/dist/bundle.css +0 -42
- package/dist/dist/bundle.css.map +0 -64
- package/dist/index.js +0 -36193
- package/dist/index.mjs +0 -36147
- package/src/Button/Close.svelte +0 -59
- package/src/Button/Close.svench +0 -36
- package/src/Button/TextButton.svelte +0 -128
- package/src/Button/TextButton.svench +0 -69
- package/src/DatePicker/DatePicker.svelte +0 -45
- package/src/DatePicker/DatePicker.svench +0 -17
- package/src/DropdownMenu/DropdownMenu.svelte +0 -77
- package/src/DropdownMenu/DropdownMenu.svench +0 -161
- package/src/Dropzone/Dropzone.svelte +0 -294
- package/src/Dropzone/Dropzone.svench +0 -17
- package/src/Dropzone/fileTypes.js +0 -5
- package/src/Form/Checkbox.svench.svx +0 -67
- package/src/Form/DataList.svelte +0 -158
- package/src/Form/DataList.svench +0 -57
- package/src/Form/Input.svench +0 -62
- package/src/Form/Multiselect.svench +0 -63
- package/src/Form/Radio.svelte +0 -133
- package/src/Form/Radio.svench.svx +0 -64
- package/src/Form/RichText.svelte +0 -61
- package/src/Form/RichText.svench.svx +0 -40
- package/src/Form/Select.svench +0 -62
- package/src/Form/Slider.svench +0 -26
- package/src/Form/TextArea.svench +0 -30
- package/src/Form/Toggle.svench +0 -21
- package/src/Icons/Contribution.svelte +0 -14
- package/src/Icons/Icon.svelte +0 -36
- package/src/Icons/Icon.svench +0 -109
- package/src/Icons/icon-paths.js +0 -136
- package/src/Links/Home.svelte +0 -51
- package/src/Links/Home.svench +0 -19
- package/src/List/Items/DetailSummary.svelte +0 -85
- package/src/List/Items/DetailSummary.svench +0 -53
- package/src/List/Search.svelte +0 -34
- package/src/List/Search.svench +0 -8
- package/src/Spacer/Spacer.svelte +0 -50
- package/src/Spacer/Spacer.svench +0 -51
- package/src/Styleguide/Body.svelte +0 -72
- package/src/Styleguide/Borders.svench +0 -175
- package/src/Styleguide/Budibase-logo.svelte +0 -68
- package/src/Styleguide/Color.svench +0 -201
- package/src/Styleguide/Heading.svelte +0 -74
- package/src/Styleguide/Label.svelte +0 -70
- package/src/Styleguide/Logo.svelte +0 -16
- package/src/Styleguide/Logo.svench +0 -8
- package/src/Styleguide/Spacing.svench +0 -191
- package/src/Styleguide/Typography.svench +0 -227
- package/src/Switcher/Switcher.svelte +0 -47
- package/src/Switcher/Switcher.svench +0 -27
- package/src/index.svench.svx +0 -35
- package/src/utils/buildStyle.js +0 -14
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { getContext, onMount, createEventDispatcher } from "svelte"
|
|
3
|
+
import Portal from "svelte-portal"
|
|
4
|
+
export let title
|
|
5
|
+
export let icon = ""
|
|
6
|
+
|
|
7
|
+
const dispatch = createEventDispatcher()
|
|
8
|
+
let selected = getContext("tab")
|
|
9
|
+
let tab_internal
|
|
10
|
+
let tabInfo
|
|
11
|
+
|
|
12
|
+
const setTabInfo = () => {
|
|
13
|
+
// If the tabs are being rendered inside a component which uses
|
|
14
|
+
// a svelte transition to enter, then this initial getBoundingClientRect
|
|
15
|
+
// will return an incorrect position.
|
|
16
|
+
// We just need to get this off the main thread to fix this, by using
|
|
17
|
+
// a 0ms timeout.
|
|
18
|
+
setTimeout(() => {
|
|
19
|
+
tabInfo = tab_internal?.getBoundingClientRect()
|
|
20
|
+
if (tabInfo && $selected.title === title) {
|
|
21
|
+
$selected.info = tabInfo
|
|
22
|
+
}
|
|
23
|
+
}, 0)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
onMount(() => {
|
|
27
|
+
setTabInfo()
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
//Ensure that the underline is in the correct location
|
|
31
|
+
$: {
|
|
32
|
+
if ($selected.title === title && tab_internal) {
|
|
33
|
+
if ($selected.info?.left !== tab_internal.getBoundingClientRect().left) {
|
|
34
|
+
$selected = {
|
|
35
|
+
...$selected,
|
|
36
|
+
info: tab_internal.getBoundingClientRect(),
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const onClick = () => {
|
|
43
|
+
$selected = {
|
|
44
|
+
...$selected,
|
|
45
|
+
title,
|
|
46
|
+
info: tab_internal.getBoundingClientRect(),
|
|
47
|
+
}
|
|
48
|
+
dispatch("click")
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<div
|
|
53
|
+
bind:this={tab_internal}
|
|
54
|
+
on:click={onClick}
|
|
55
|
+
class:is-selected={$selected.title === title}
|
|
56
|
+
class="spectrum-Tabs-item"
|
|
57
|
+
class:emphasized={$selected.title === title && $selected.emphasized}
|
|
58
|
+
tabindex="0"
|
|
59
|
+
>
|
|
60
|
+
{#if icon}
|
|
61
|
+
<svg
|
|
62
|
+
class="spectrum-Icon spectrum-Icon--sizeM"
|
|
63
|
+
focusable="false"
|
|
64
|
+
aria-hidden="true"
|
|
65
|
+
aria-label="Folder"
|
|
66
|
+
>
|
|
67
|
+
<use xlink:href="#spectrum-icon-18-{icon}" />
|
|
68
|
+
</svg>
|
|
69
|
+
{/if}
|
|
70
|
+
<span class="spectrum-Tabs-itemLabel">{title}</span>
|
|
71
|
+
</div>
|
|
72
|
+
{#if $selected.title === title}
|
|
73
|
+
<Portal target=".spectrum-Tabs-content-{$selected.id}">
|
|
74
|
+
<slot />
|
|
75
|
+
</Portal>
|
|
76
|
+
{/if}
|
|
77
|
+
|
|
78
|
+
<style>
|
|
79
|
+
.emphasized {
|
|
80
|
+
color: var(--spectrum-global-color-blue-600);
|
|
81
|
+
}
|
|
82
|
+
.spectrum-Tabs-item {
|
|
83
|
+
color: var(--spectrum-global-color-gray-600);
|
|
84
|
+
}
|
|
85
|
+
.spectrum-Tabs-item.is-selected {
|
|
86
|
+
color: var(--spectrum-global-color-gray-900);
|
|
87
|
+
}
|
|
88
|
+
</style>
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/tabs/dist/index-vars.css"
|
|
3
|
+
import { writable } from "svelte/store"
|
|
4
|
+
import { onMount, setContext, createEventDispatcher } from "svelte"
|
|
5
|
+
|
|
6
|
+
export let selected
|
|
7
|
+
export let vertical = false
|
|
8
|
+
export let noPadding = false
|
|
9
|
+
// added as a separate option as noPadding is used for vertical padding
|
|
10
|
+
export let noHorizPadding = false
|
|
11
|
+
export let quiet = false
|
|
12
|
+
export let emphasized = false
|
|
13
|
+
export let onTop = false
|
|
14
|
+
export let size = "M"
|
|
15
|
+
|
|
16
|
+
let thisSelected = undefined
|
|
17
|
+
|
|
18
|
+
let _id = id()
|
|
19
|
+
const tab = writable({ title: selected, id: _id, emphasized })
|
|
20
|
+
setContext("tab", tab)
|
|
21
|
+
|
|
22
|
+
let container
|
|
23
|
+
|
|
24
|
+
const dispatch = createEventDispatcher()
|
|
25
|
+
|
|
26
|
+
$: {
|
|
27
|
+
if (thisSelected !== selected) {
|
|
28
|
+
thisSelected = selected
|
|
29
|
+
dispatch("select", thisSelected)
|
|
30
|
+
} else if ($tab.title !== thisSelected) {
|
|
31
|
+
thisSelected = $tab.title
|
|
32
|
+
selected = $tab.title
|
|
33
|
+
dispatch("select", thisSelected)
|
|
34
|
+
}
|
|
35
|
+
if ($tab.title !== thisSelected) {
|
|
36
|
+
tab.update(state => {
|
|
37
|
+
state.title = thisSelected
|
|
38
|
+
return state
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
let top, left, width, height
|
|
44
|
+
$: calculateIndicatorLength($tab)
|
|
45
|
+
$: calculateIndicatorOffset($tab)
|
|
46
|
+
|
|
47
|
+
function calculateIndicatorLength() {
|
|
48
|
+
if (!vertical) {
|
|
49
|
+
width = $tab.info?.width + "px"
|
|
50
|
+
height = $tab.info?.height
|
|
51
|
+
} else {
|
|
52
|
+
height = $tab.info?.height + 4 + "px"
|
|
53
|
+
width = $tab.info?.width
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function calculateIndicatorOffset() {
|
|
58
|
+
if (!vertical) {
|
|
59
|
+
left = $tab.info?.left - container?.getBoundingClientRect().left + "px"
|
|
60
|
+
} else {
|
|
61
|
+
top = $tab.info?.top - container?.getBoundingClientRect().top + "px"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
onMount(() => {
|
|
66
|
+
calculateIndicatorLength()
|
|
67
|
+
calculateIndicatorOffset()
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
function id() {
|
|
71
|
+
return "_" + Math.random().toString(36).slice(2, 9)
|
|
72
|
+
}
|
|
73
|
+
</script>
|
|
74
|
+
|
|
75
|
+
<div
|
|
76
|
+
bind:this={container}
|
|
77
|
+
class:spectrum-Tabs--quiet={quiet}
|
|
78
|
+
class:noHorizPadding
|
|
79
|
+
class:onTop
|
|
80
|
+
class:spectrum-Tabs--vertical={vertical}
|
|
81
|
+
class:spectrum-Tabs--horizontal={!vertical}
|
|
82
|
+
class="spectrum-Tabs spectrum-Tabs--size{size}"
|
|
83
|
+
>
|
|
84
|
+
<slot />
|
|
85
|
+
{#if $tab.info}
|
|
86
|
+
<div
|
|
87
|
+
class="spectrum-Tabs-selectionIndicator"
|
|
88
|
+
class:emphasized
|
|
89
|
+
style="width: {width}; height: {height}; left: {left}; top: {top};"
|
|
90
|
+
/>
|
|
91
|
+
{/if}
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
<div
|
|
95
|
+
class="spectrum-Tabs-content spectrum-Tabs-content-{_id}"
|
|
96
|
+
class:noPadding
|
|
97
|
+
/>
|
|
98
|
+
|
|
99
|
+
<style>
|
|
100
|
+
.spectrum-Tabs--quiet {
|
|
101
|
+
border-bottom: none !important;
|
|
102
|
+
}
|
|
103
|
+
.spectrum-Tabs {
|
|
104
|
+
padding-left: var(--spacing-xl);
|
|
105
|
+
padding-right: var(--spacing-xl);
|
|
106
|
+
position: relative;
|
|
107
|
+
border-bottom-color: var(--spectrum-global-color-gray-200);
|
|
108
|
+
}
|
|
109
|
+
.spectrum-Tabs-content {
|
|
110
|
+
margin-top: var(--spectrum-global-dimension-static-size-150);
|
|
111
|
+
}
|
|
112
|
+
.spectrum-Tabs-selectionIndicator {
|
|
113
|
+
transition: all 200ms;
|
|
114
|
+
background-color: var(--spectrum-global-color-gray-900);
|
|
115
|
+
}
|
|
116
|
+
.spectrum-Tabs-selectionIndicator.emphasized {
|
|
117
|
+
background-color: var(--spectrum-global-color-blue-400);
|
|
118
|
+
}
|
|
119
|
+
.spectrum-Tabs--horizontal .spectrum-Tabs-selectionIndicator {
|
|
120
|
+
}
|
|
121
|
+
.noHorizPadding {
|
|
122
|
+
padding: 0;
|
|
123
|
+
}
|
|
124
|
+
.noPadding {
|
|
125
|
+
margin: 0;
|
|
126
|
+
}
|
|
127
|
+
.onTop {
|
|
128
|
+
z-index: 100;
|
|
129
|
+
}
|
|
130
|
+
</style>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/tags/dist/index-vars.css"
|
|
3
|
+
import Avatar from "../Avatar/Avatar.svelte"
|
|
4
|
+
import ClearButton from "../ClearButton/ClearButton.svelte"
|
|
5
|
+
|
|
6
|
+
export let icon = ""
|
|
7
|
+
export let avatar = ""
|
|
8
|
+
export let invalid = false
|
|
9
|
+
export let disabled = false
|
|
10
|
+
export let closable = false
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<div
|
|
14
|
+
class:is-invalid={invalid}
|
|
15
|
+
class:is-disabled={disabled}
|
|
16
|
+
class="spectrum-Tags-item"
|
|
17
|
+
role="listitem"
|
|
18
|
+
>
|
|
19
|
+
{#if avatar}
|
|
20
|
+
<Avatar url={avatar} />
|
|
21
|
+
{/if}
|
|
22
|
+
{#if icon}
|
|
23
|
+
<svg
|
|
24
|
+
class="spectrum-Icon spectrum-Icon--sizeS"
|
|
25
|
+
focusable="false"
|
|
26
|
+
aria-hidden="true"
|
|
27
|
+
aria-label="Tag"
|
|
28
|
+
>
|
|
29
|
+
<use xlink:href="#spectrum-icon-24-{icon}" />
|
|
30
|
+
</svg>
|
|
31
|
+
{/if}
|
|
32
|
+
<span class="spectrum-Tags-itemLabel"><slot /></span>
|
|
33
|
+
{#if closable}
|
|
34
|
+
<ClearButton on:click />
|
|
35
|
+
{/if}
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<style>
|
|
39
|
+
.spectrum-Tags-item {
|
|
40
|
+
margin-top: 0;
|
|
41
|
+
margin-bottom: 0;
|
|
42
|
+
}
|
|
43
|
+
</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/tooltip/dist/index-vars.css"
|
|
3
|
+
|
|
4
|
+
export let direction = "top"
|
|
5
|
+
export let text = ""
|
|
6
|
+
export let textWrapping = false
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<!-- Showing / Hiding a text wrapped tooltip should be handled outside the component -->
|
|
10
|
+
{#if textWrapping}
|
|
11
|
+
<span class="spectrum-Tooltip spectrum-Tooltip--{direction} is-open tooltip">
|
|
12
|
+
<span class="spectrum-Tooltip-label">{text}</span>
|
|
13
|
+
<span class="spectrum-Tooltip-tip" />
|
|
14
|
+
</span>
|
|
15
|
+
{:else}
|
|
16
|
+
<!-- The default show on hover tooltip does not support text wrapping -->
|
|
17
|
+
<span class="u-tooltip-showOnHover tooltip">
|
|
18
|
+
<slot />
|
|
19
|
+
<div class={`spectrum-Tooltip spectrum-Tooltip--${direction}`}>
|
|
20
|
+
<span class="spectrum-Tooltip-label">{text}</span>
|
|
21
|
+
<span class="spectrum-Tooltip-tip" />
|
|
22
|
+
</div>
|
|
23
|
+
</span>
|
|
24
|
+
{/if}
|
|
25
|
+
|
|
26
|
+
<style>
|
|
27
|
+
.tooltip {
|
|
28
|
+
pointer-events: none;
|
|
29
|
+
background: var(--spectrum-global-color-gray-500);
|
|
30
|
+
}
|
|
31
|
+
.spectrum-Tooltip-tip {
|
|
32
|
+
border-top-color: var(--spectrum-global-color-gray-500);
|
|
33
|
+
}
|
|
34
|
+
</style>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Tooltip from "./Tooltip.svelte"
|
|
3
|
+
import Icon from "../Icon/Icon.svelte"
|
|
4
|
+
|
|
5
|
+
export let tooltip = ""
|
|
6
|
+
export let size = "M"
|
|
7
|
+
export let disabled = true
|
|
8
|
+
|
|
9
|
+
let showTooltip = false
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<div class:container={!!tooltip}>
|
|
13
|
+
<slot />
|
|
14
|
+
{#if tooltip}
|
|
15
|
+
<div class="icon-container">
|
|
16
|
+
<div
|
|
17
|
+
class="icon"
|
|
18
|
+
class:icon-small={size === "M" || size === "S"}
|
|
19
|
+
on:mouseover={() => (showTooltip = true)}
|
|
20
|
+
on:mouseleave={() => (showTooltip = false)}
|
|
21
|
+
on:focus
|
|
22
|
+
>
|
|
23
|
+
<Icon name="InfoOutline" size="S" {disabled} />
|
|
24
|
+
</div>
|
|
25
|
+
{#if showTooltip}
|
|
26
|
+
<div class="tooltip">
|
|
27
|
+
<Tooltip textWrapping={true} direction={"bottom"} text={tooltip} />
|
|
28
|
+
</div>
|
|
29
|
+
{/if}
|
|
30
|
+
</div>
|
|
31
|
+
{/if}
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<style>
|
|
35
|
+
.container {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
}
|
|
39
|
+
.icon-container {
|
|
40
|
+
position: relative;
|
|
41
|
+
display: flex;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
margin-left: 5px;
|
|
44
|
+
margin-right: 5px;
|
|
45
|
+
}
|
|
46
|
+
.tooltip {
|
|
47
|
+
position: absolute;
|
|
48
|
+
display: flex;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
top: 15px;
|
|
51
|
+
z-index: 200;
|
|
52
|
+
width: 160px;
|
|
53
|
+
}
|
|
54
|
+
.icon {
|
|
55
|
+
transform: scale(0.75);
|
|
56
|
+
}
|
|
57
|
+
.icon-small {
|
|
58
|
+
margin-bottom: -2px;
|
|
59
|
+
}
|
|
60
|
+
</style>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export let selected = false
|
|
3
|
+
export let open = false
|
|
4
|
+
export let href = false
|
|
5
|
+
export let title
|
|
6
|
+
export let icon
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<li
|
|
10
|
+
class:is-selected={selected}
|
|
11
|
+
class:is-open={open}
|
|
12
|
+
class="spectrum-TreeView-item"
|
|
13
|
+
>
|
|
14
|
+
<a on:click class="spectrum-TreeView-itemLink" {href}>
|
|
15
|
+
{#if $$slots.default}
|
|
16
|
+
<svg
|
|
17
|
+
class="spectrum-Icon spectrum-UIIcon-ChevronRight100 spectrum-TreeView-itemIndicator"
|
|
18
|
+
focusable="false"
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
>
|
|
21
|
+
<use xlink:href="#spectrum-css-icon-Chevron100" />
|
|
22
|
+
</svg>
|
|
23
|
+
{/if}
|
|
24
|
+
{#if icon}
|
|
25
|
+
<svg
|
|
26
|
+
class="spectrum-TreeView-itemIcon spectrum-Icon spectrum-Icon--sizeM"
|
|
27
|
+
focusable="false"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
aria-label="Layers"
|
|
30
|
+
>
|
|
31
|
+
<use xlink:href="#spectrum-icon-18-{icon}" />
|
|
32
|
+
</svg>
|
|
33
|
+
{/if}
|
|
34
|
+
<span class="spectrum-TreeView-itemLabel">{title}</span>
|
|
35
|
+
</a>
|
|
36
|
+
{#if $$slots.default}
|
|
37
|
+
<ul class="spectrum-TreeView">
|
|
38
|
+
<slot />
|
|
39
|
+
</ul>
|
|
40
|
+
{/if}
|
|
41
|
+
</li>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/treeview/dist/index-vars.css"
|
|
3
|
+
|
|
4
|
+
export let quiet = false
|
|
5
|
+
export let standalone = true
|
|
6
|
+
export let width = "250px"
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<ul
|
|
10
|
+
class:spectrum-TreeView--standalone={standalone}
|
|
11
|
+
class:spectrum-TreeView--quiet={quiet}
|
|
12
|
+
class="spectrum-TreeView"
|
|
13
|
+
style="width: {width}"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</ul>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/typography/dist/index-vars.css"
|
|
3
|
+
|
|
4
|
+
export let size = "M"
|
|
5
|
+
export let serif = false
|
|
6
|
+
export let weight = null
|
|
7
|
+
export let textAlign = null
|
|
8
|
+
export let color = null
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<p
|
|
12
|
+
style={`
|
|
13
|
+
${weight ? `font-weight:${weight};` : ""}
|
|
14
|
+
${textAlign ? `text-align:${textAlign};` : ""}
|
|
15
|
+
${color ? `color:${color};` : ""}
|
|
16
|
+
`}
|
|
17
|
+
class="spectrum-Body spectrum-Body--size{size}"
|
|
18
|
+
class:spectrum-Body--serif={serif}
|
|
19
|
+
>
|
|
20
|
+
<slot />
|
|
21
|
+
</p>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/typography/dist/index-vars.css"
|
|
3
|
+
|
|
4
|
+
export let size = "M"
|
|
5
|
+
export let serif = false
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<p
|
|
9
|
+
class="spectrum-Detail spectrum-Detail--size{size}"
|
|
10
|
+
class:spectrum-Detail--serif={serif}
|
|
11
|
+
>
|
|
12
|
+
<slot />
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<style>
|
|
16
|
+
p {
|
|
17
|
+
font-weight: 600;
|
|
18
|
+
}
|
|
19
|
+
</style>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/typography/dist/index-vars.css"
|
|
3
|
+
|
|
4
|
+
// Sizes
|
|
5
|
+
export let size = "M"
|
|
6
|
+
export let textAlign
|
|
7
|
+
export let noPadding = false
|
|
8
|
+
export let weight = "default" // light, heavy, default
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<h1
|
|
12
|
+
style={textAlign ? `text-align:${textAlign}` : ``}
|
|
13
|
+
class:noPadding
|
|
14
|
+
class="spectrum-Heading spectrum-Heading--size{size} spectrum-Heading--{weight}"
|
|
15
|
+
>
|
|
16
|
+
<slot />
|
|
17
|
+
</h1>
|
package/{dist → src}/bbui.css
RENAMED
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
.svench-content {
|
|
2
|
-
color: #666;
|
|
3
|
-
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, "Roboto",
|
|
4
|
-
Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
h1.svench-content {
|
|
8
|
-
font-size: 2em;
|
|
9
|
-
}
|
|
10
|
-
h2.svench-content {
|
|
11
|
-
font-size: 1.66em;
|
|
12
|
-
}
|
|
13
|
-
h3.svench-content {
|
|
14
|
-
font-size: 1.33em;
|
|
15
|
-
}
|
|
16
|
-
h4.svench-content {
|
|
17
|
-
font-size: 1.33em;
|
|
18
|
-
font-weight: normal;
|
|
19
|
-
}
|
|
20
|
-
h5.svench-content {
|
|
21
|
-
font-size: 1em;
|
|
22
|
-
font-weight: bold;
|
|
23
|
-
}
|
|
24
|
-
h6.svench-content {
|
|
25
|
-
font-size: 1em;
|
|
26
|
-
font-weight: normal;
|
|
27
|
-
font-style: italic;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
1
|
:root {
|
|
31
2
|
--background: #ffffff;
|
|
32
3
|
--ink: #000000;
|
|
@@ -69,12 +40,7 @@ h6.svench-content {
|
|
|
69
40
|
--rounded-medium: 8px;
|
|
70
41
|
--rounded-large: 16px;
|
|
71
42
|
|
|
72
|
-
--font-
|
|
73
|
-
--font-black: "Inter Black";
|
|
74
|
-
--font-bold: "Inter Bold";
|
|
75
|
-
--font-medium: "Inter Medium";
|
|
76
|
-
--font-light: "Inter Light";
|
|
77
|
-
--font-sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, "Inter",
|
|
43
|
+
--font-sans: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, "Inter",
|
|
78
44
|
"Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
|
|
79
45
|
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
80
46
|
--font-serif: "Georgia", Cambria, Times New Roman, Times, serif;
|
|
@@ -125,69 +91,6 @@ h6.svench-content {
|
|
|
125
91
|
--border-transparent: 2px transparent solid;
|
|
126
92
|
}
|
|
127
93
|
|
|
128
|
-
h1 {
|
|
129
|
-
font-size: 3rem;
|
|
130
|
-
font-family: var(--font-sans);
|
|
131
|
-
font-weight: 700;
|
|
132
|
-
text-rendering: var(--text-render);
|
|
133
|
-
-webkit-font-smoothing: var(--text-smooth);
|
|
134
|
-
color: var(--ink);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
h2 {
|
|
138
|
-
font-size: 2.25rem;
|
|
139
|
-
font-family: var(--font-sans);
|
|
140
|
-
font-weight: 600;
|
|
141
|
-
text-rendering: var(--text-render);
|
|
142
|
-
-webkit-font-smoothing: var(--text-smooth);
|
|
143
|
-
color: var(--ink);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
h3 {
|
|
147
|
-
font-size: 1.7rem;
|
|
148
|
-
font-family: var(--font-sans);
|
|
149
|
-
font-weight: 600;
|
|
150
|
-
text-rendering: var(--text-render);
|
|
151
|
-
-webkit-font-smoothing: var(--text-smooth);
|
|
152
|
-
color: var(--ink);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
h4 {
|
|
156
|
-
font-size: var(--font-size-xl);
|
|
157
|
-
font-family: var(--font-sans);
|
|
158
|
-
font-weight: 500;
|
|
159
|
-
text-rendering: var(--text-render);
|
|
160
|
-
-webkit-font-smoothing: var(--text-smooth);
|
|
161
|
-
color: var(--ink);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
h5 {
|
|
165
|
-
font-size: var(--font-size-l);
|
|
166
|
-
font-family: var(--font-sans);
|
|
167
|
-
font-weight: 500;
|
|
168
|
-
text-rendering: var(--text-render);
|
|
169
|
-
-webkit-font-smoothing: var(--text-smooth);
|
|
170
|
-
color: var(--ink);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
h6 {
|
|
174
|
-
font-size: var(--font-size-m);
|
|
175
|
-
font-family: var(--font-sans);
|
|
176
|
-
font-weight: 500;
|
|
177
|
-
text-rendering: var(--text-render);
|
|
178
|
-
-webkit-font-smoothing: var(--text-smooth);
|
|
179
|
-
color: var(--ink);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
p {
|
|
183
|
-
font-size: var(--font-size);
|
|
184
|
-
font-family: var(--font-sans);
|
|
185
|
-
font-weight: 400;
|
|
186
|
-
text-rendering: var(--text-render);
|
|
187
|
-
-webkit-font-smoothing: var(--text-smooth);
|
|
188
|
-
color: var(--ink);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
94
|
a {
|
|
192
95
|
text-decoration: none;
|
|
193
|
-
}
|
|
96
|
+
}
|
package/src/context.js
CHANGED