@budibase/bbui 1.0.0 → 1.0.1
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/README.md +19 -17
- package/dist/bbui.es.js +2 -0
- package/dist/bbui.es.js.map +1 -0
- package/package.json +68 -26
- package/src/ActionButton/ActionButton.svelte +83 -0
- package/src/ActionGroup/ActionGroup.svelte +26 -0
- package/src/ActionMenu/ActionMenu.svelte +43 -0
- package/src/Actions/ClickOutside.svench.svx +30 -0
- package/src/Actions/PositionDropdown.svench.svx +81 -0
- package/src/Actions/autoresize_textarea.js +14 -0
- package/src/Actions/click_outside.js +18 -0
- package/src/Actions/position_dropdown.js +66 -0
- package/src/Avatar/Avatar.svelte +49 -0
- package/src/Badge/Badge.svelte +29 -0
- package/src/Button/Button.svelte +52 -0
- package/src/Button/Button.svench +138 -0
- package/src/ButtonGroup/ButtonGroup.svelte +19 -0
- package/src/ClearButton/ClearButton.svelte +19 -0
- package/src/ColorPicker/ColorPicker.svelte +292 -0
- package/src/DetailSummary/DetailSummary.svelte +83 -0
- package/src/Divider/Divider.svelte +25 -0
- package/src/Drawer/Drawer.svelte +85 -0
- package/src/Drawer/Drawer.svench +42 -0
- package/src/Drawer/DrawerContent.svelte +46 -0
- package/src/Form/Checkbox.svelte +23 -0
- package/src/Form/Combobox.svelte +44 -0
- package/src/Form/Core/Checkbox.svelte +67 -0
- package/src/Form/Core/Combobox.svelte +156 -0
- package/src/Form/Core/DatePicker.svelte +183 -0
- package/src/Form/Core/Dropzone.svelte +393 -0
- package/src/Form/Core/Multiselect.svelte +88 -0
- package/src/Form/Core/Picker.svelte +241 -0
- package/src/Form/Core/RadioGroup.svelte +47 -0
- package/src/Form/Core/Search.svelte +101 -0
- package/src/Form/Core/Select.svelte +81 -0
- package/src/Form/Core/Stepper.svelte +172 -0
- package/src/Form/Core/Switch.svelte +35 -0
- package/src/Form/Core/TextArea.svelte +60 -0
- package/src/Form/Core/TextField.svelte +104 -0
- package/src/Form/Core/index.js +12 -0
- package/src/Form/DatePicker.svelte +33 -0
- package/src/Form/Dropzone.svelte +34 -0
- package/src/Form/Field.svelte +41 -0
- package/src/Form/FieldLabel.svelte +27 -0
- package/src/Form/Input.svelte +38 -45
- package/src/Form/Multiselect.svelte +39 -0
- package/src/Form/RadioGroup.svelte +38 -0
- package/src/Form/Search.svelte +32 -0
- package/src/Form/Select.svelte +45 -43
- package/src/Form/Stepper.svelte +45 -0
- package/src/Form/TextArea.svelte +25 -44
- package/src/Form/Toggle.svelte +23 -0
- package/src/Icon/Icon.svelte +47 -0
- package/src/InlineAlert/InlineAlert.svelte +56 -0
- package/src/Label/Label.svelte +67 -0
- package/src/Layout/Layout.svelte +75 -0
- package/src/Layout/Page.svelte +25 -0
- package/src/Link/Link.svelte +22 -0
- package/src/List/Items/DetailSummary.svench +53 -0
- package/src/Menu/Item.svelte +45 -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 +6 -0
- package/src/Modal/CustomContent.svelte +38 -0
- package/src/Modal/Modal.svelte +133 -0
- package/src/Modal/Modal.svench +117 -0
- package/src/Modal/ModalContent.svelte +139 -0
- package/src/Modal/QuizModal.svelte +54 -0
- package/src/Notification/Notification.svelte +20 -0
- package/src/Notification/NotificationDisplay.svelte +36 -0
- package/src/Pagination/Pagination.svelte +57 -0
- package/src/Popover/Popover.svelte +52 -0
- package/src/Popover/Popover.svench +121 -0
- package/src/ProgressBar/ProgressBar.svelte +54 -0
- package/src/ProgressCircle/ProgressCircle.svelte +62 -0
- package/src/SideNavigation/Item.svelte +45 -0
- package/src/SideNavigation/Navigation.svelte +12 -0
- package/src/StatusLight/StatusLight.svelte +41 -0
- package/src/Stores/Notifications.svench.svx +78 -0
- package/src/Stores/notifications.js +56 -0
- package/src/Table/ArrayRenderer.svelte +17 -0
- package/src/Table/AttachmentRenderer.svelte +55 -0
- package/src/Table/BooleanRenderer.svelte +42 -0
- package/src/Table/CellRenderer.svelte +37 -0
- package/src/Table/DateTimeRenderer.svelte +13 -0
- package/src/Table/InternalRenderer.svelte +28 -0
- package/src/Table/RelationshipRenderer.svelte +40 -0
- package/src/Table/SelectEditRenderer.svelte +16 -0
- package/src/Table/StringRenderer.svelte +13 -0
- package/src/Table/Table.svelte +506 -0
- package/src/Table/index.js +1 -0
- package/src/Tabs/Tab.svelte +66 -0
- package/src/Tabs/Tabs.svelte +105 -0
- package/src/Tags/Tag.svelte +43 -0
- package/src/Tags/Tags.svelte +7 -0
- package/src/Tooltip/Tooltip.svelte +24 -0
- package/src/TreeView/Item.svelte +41 -0
- package/src/TreeView/Tree.svelte +16 -0
- package/src/Typography/Body.svelte +19 -0
- package/src/Typography/Code.svelte +10 -0
- package/src/Typography/Detail.svelte +15 -0
- package/src/Typography/Heading.svelte +16 -0
- package/src/bbui.css +96 -0
- package/src/context.js +3 -0
- package/src/index.js +75 -10
- package/src/spectrum-icons-rollup.js +31 -0
- package/src/spectrum-icons-vite.js +31 -0
- package/src/utils/helpers.js +8 -0
- package/dist/bundle.css +0 -6
- package/dist/bundle.css.map +0 -18
- package/dist/index.js +0 -919
- package/dist/index.mjs +0 -906
- package/src/Branding/Budibase-logo.svelte +0 -68
- package/src/Branding/Logo.svelte +0 -16
- package/src/Branding/Logo.svench +0 -8
- package/src/Form/Button.svelte +0 -52
- package/src/Form/Button.svench +0 -26
- package/src/Form/Input.svench +0 -8
- package/src/Form/Select.svench +0 -8
- package/src/Form/TextArea.svench +0 -8
- package/src/Links/Home.svelte +0 -49
- package/src/Links/Home.svench +0 -19
- package/src/actions/autoresize_textarea.js +0 -14
- package/src/icons/Contribution.svelte +0 -14
- package/src/index.svench.svx +0 -35
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/label/dist/index-vars.css"
|
|
3
|
+
import Badge from "../Badge/Badge.svelte"
|
|
4
|
+
export let value
|
|
5
|
+
|
|
6
|
+
const displayLimit = 5
|
|
7
|
+
|
|
8
|
+
$: badges = value?.slice(0, displayLimit) ?? []
|
|
9
|
+
$: leftover = (value?.length ?? 0) - badges.length
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
{#each badges as badge}
|
|
13
|
+
<Badge size="S" grey>{badge}</Badge>
|
|
14
|
+
{/each}
|
|
15
|
+
{#if leftover}
|
|
16
|
+
<div>+{leftover} more</div>
|
|
17
|
+
{/if}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Tooltip from "../Tooltip/Tooltip.svelte"
|
|
3
|
+
import Link from "../Link/Link.svelte"
|
|
4
|
+
|
|
5
|
+
export let value
|
|
6
|
+
|
|
7
|
+
const displayLimit = 5
|
|
8
|
+
$: attachments = value?.slice(0, displayLimit) ?? []
|
|
9
|
+
$: leftover = (value?.length ?? 0) - attachments.length
|
|
10
|
+
|
|
11
|
+
const imageExtensions = ["png", "tiff", "gif", "raw", "jpg", "jpeg"]
|
|
12
|
+
const isImage = extension => {
|
|
13
|
+
return imageExtensions.includes(extension?.toLowerCase())
|
|
14
|
+
}
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#each attachments as attachment}
|
|
18
|
+
{#if isImage(attachment.extension)}
|
|
19
|
+
<Link quiet target="_blank" href={attachment.url}>
|
|
20
|
+
<img src={attachment.url} alt={attachment.extension} />
|
|
21
|
+
</Link>
|
|
22
|
+
{:else}
|
|
23
|
+
<Tooltip text={attachment.name} direction="right">
|
|
24
|
+
<div class="file">
|
|
25
|
+
<Link quiet target="_blank" href={attachment.url}
|
|
26
|
+
>{attachment.extension}</Link
|
|
27
|
+
>
|
|
28
|
+
</div>
|
|
29
|
+
</Tooltip>
|
|
30
|
+
{/if}
|
|
31
|
+
{/each}
|
|
32
|
+
{#if leftover}
|
|
33
|
+
<div>+{leftover} more</div>
|
|
34
|
+
{/if}
|
|
35
|
+
|
|
36
|
+
<style>
|
|
37
|
+
img {
|
|
38
|
+
height: 32px;
|
|
39
|
+
max-width: 64px;
|
|
40
|
+
}
|
|
41
|
+
.file {
|
|
42
|
+
height: 32px;
|
|
43
|
+
display: flex;
|
|
44
|
+
flex-direction: row;
|
|
45
|
+
justify-content: flex-start;
|
|
46
|
+
align-items: center;
|
|
47
|
+
padding: 0 8px;
|
|
48
|
+
color: var(--spectrum-global-color-gray-800);
|
|
49
|
+
border: 1px solid var(--spectrum-global-color-gray-300);
|
|
50
|
+
border-radius: 2px;
|
|
51
|
+
text-transform: uppercase;
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
font-size: 11px;
|
|
54
|
+
}
|
|
55
|
+
</style>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/checkbox/dist/index-vars.css"
|
|
3
|
+
|
|
4
|
+
export let value
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<label
|
|
8
|
+
class="spectrum-Checkbox spectrum-Checkbox--sizeM spectrum-Checkbox--emphasized"
|
|
9
|
+
>
|
|
10
|
+
<input
|
|
11
|
+
type="checkbox"
|
|
12
|
+
class="spectrum-Checkbox-input"
|
|
13
|
+
id="checkbox-1"
|
|
14
|
+
disabled
|
|
15
|
+
checked={!!value}
|
|
16
|
+
/>
|
|
17
|
+
<span class="spectrum-Checkbox-box">
|
|
18
|
+
<svg
|
|
19
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark100 spectrum-Checkbox-checkmark"
|
|
20
|
+
focusable="false"
|
|
21
|
+
aria-hidden="true"
|
|
22
|
+
>
|
|
23
|
+
<use xlink:href="#spectrum-css-icon-Checkmark100" />
|
|
24
|
+
</svg>
|
|
25
|
+
<svg
|
|
26
|
+
class="spectrum-Icon spectrum-UIIcon-Dash100 spectrum-Checkbox-partialCheckmark"
|
|
27
|
+
focusable="false"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
>
|
|
30
|
+
<use xlink:href="#spectrum-css-icon-Dash100" />
|
|
31
|
+
</svg>
|
|
32
|
+
</span>
|
|
33
|
+
</label>
|
|
34
|
+
|
|
35
|
+
<style>
|
|
36
|
+
.spectrum-Checkbox {
|
|
37
|
+
min-height: 0;
|
|
38
|
+
}
|
|
39
|
+
.spectrum-Checkbox-box {
|
|
40
|
+
margin: 0;
|
|
41
|
+
}
|
|
42
|
+
</style>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import StringRenderer from "./StringRenderer.svelte"
|
|
3
|
+
import BooleanRenderer from "./BooleanRenderer.svelte"
|
|
4
|
+
import DateTimeRenderer from "./DateTimeRenderer.svelte"
|
|
5
|
+
import RelationshipRenderer from "./RelationshipRenderer.svelte"
|
|
6
|
+
import AttachmentRenderer from "./AttachmentRenderer.svelte"
|
|
7
|
+
import ArrayRenderer from "./ArrayRenderer.svelte"
|
|
8
|
+
import InternalRenderer from "./InternalRenderer.svelte"
|
|
9
|
+
|
|
10
|
+
export let row
|
|
11
|
+
export let schema
|
|
12
|
+
export let value
|
|
13
|
+
export let customRenderers = []
|
|
14
|
+
|
|
15
|
+
let renderer
|
|
16
|
+
const typeMap = {
|
|
17
|
+
boolean: BooleanRenderer,
|
|
18
|
+
datetime: DateTimeRenderer,
|
|
19
|
+
link: RelationshipRenderer,
|
|
20
|
+
attachment: AttachmentRenderer,
|
|
21
|
+
string: StringRenderer,
|
|
22
|
+
options: StringRenderer,
|
|
23
|
+
number: StringRenderer,
|
|
24
|
+
longform: StringRenderer,
|
|
25
|
+
array: ArrayRenderer,
|
|
26
|
+
internal: InternalRenderer,
|
|
27
|
+
}
|
|
28
|
+
$: type = schema?.type ?? "string"
|
|
29
|
+
$: customRenderer = customRenderers?.find(x => x.column === schema?.name)
|
|
30
|
+
$: renderer = customRenderer?.component ?? typeMap[type] ?? StringRenderer
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
{#if renderer && (customRenderer || (value != null && value !== ""))}
|
|
34
|
+
<svelte:component this={renderer} {row} {schema} {value} on:clickrelationship>
|
|
35
|
+
<slot />
|
|
36
|
+
</svelte:component>
|
|
37
|
+
{/if}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Icon from "../Icon/Icon.svelte"
|
|
3
|
+
import { notifications } from "../Stores/notifications"
|
|
4
|
+
export let value
|
|
5
|
+
|
|
6
|
+
const onClick = e => {
|
|
7
|
+
e.stopPropagation()
|
|
8
|
+
copyToClipboard(value)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function copyToClipboard(value) {
|
|
12
|
+
navigator.clipboard.writeText(value).then(() => {
|
|
13
|
+
notifications.success("Copied")
|
|
14
|
+
})
|
|
15
|
+
}
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<div on:click|stopPropagation={onClick}>
|
|
19
|
+
<Icon size="S" name="Copy" />
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<style>
|
|
23
|
+
div {
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
text-overflow: ellipsis;
|
|
26
|
+
width: 150px;
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import "@spectrum-css/label/dist/index-vars.css"
|
|
3
|
+
import { createEventDispatcher } from "svelte"
|
|
4
|
+
|
|
5
|
+
export let row
|
|
6
|
+
export let value
|
|
7
|
+
export let schema
|
|
8
|
+
|
|
9
|
+
const dispatch = createEventDispatcher()
|
|
10
|
+
const displayLimit = 5
|
|
11
|
+
|
|
12
|
+
$: relationships = value?.slice(0, displayLimit) ?? []
|
|
13
|
+
$: leftover = (value?.length ?? 0) - relationships.length
|
|
14
|
+
|
|
15
|
+
const onClick = e => {
|
|
16
|
+
e.stopPropagation()
|
|
17
|
+
dispatch("clickrelationship", {
|
|
18
|
+
tableId: row.tableId,
|
|
19
|
+
rowId: row._id,
|
|
20
|
+
fieldName: schema?.name,
|
|
21
|
+
})
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
{#each relationships as relationship}
|
|
26
|
+
{#if relationship?.primaryDisplay}
|
|
27
|
+
<span class="spectrum-Label spectrum-Label--grey" on:click={onClick}>
|
|
28
|
+
{relationship.primaryDisplay}
|
|
29
|
+
</span>
|
|
30
|
+
{/if}
|
|
31
|
+
{/each}
|
|
32
|
+
{#if leftover}
|
|
33
|
+
<div>+{leftover} more</div>
|
|
34
|
+
{/if}
|
|
35
|
+
|
|
36
|
+
<style>
|
|
37
|
+
span:hover {
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
}
|
|
40
|
+
</style>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Checkbox from "../Form/Checkbox.svelte"
|
|
3
|
+
import ActionButton from "../ActionButton/ActionButton.svelte"
|
|
4
|
+
|
|
5
|
+
export let selected
|
|
6
|
+
export let onEdit
|
|
7
|
+
export let allowSelectRows = false
|
|
8
|
+
export let allowEditRows = false
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
{#if allowSelectRows}
|
|
12
|
+
<Checkbox value={selected} />
|
|
13
|
+
{/if}
|
|
14
|
+
{#if allowEditRows}
|
|
15
|
+
<ActionButton size="S" on:click={onEdit}>Edit</ActionButton>
|
|
16
|
+
{/if}
|