@budibase/bbui 0.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.
Files changed (149) hide show
  1. package/LICENSE +375 -0
  2. package/README.md +42 -0
  3. package/dist/bbui.es.js +8 -0
  4. package/dist/bbui.es.js.map +1 -0
  5. package/package.json +94 -0
  6. package/src/Accordion/Accordion.svelte +58 -0
  7. package/src/ActionButton/ActionButton.svelte +132 -0
  8. package/src/ActionGroup/ActionGroup.svelte +26 -0
  9. package/src/ActionMenu/ActionMenu.svelte +43 -0
  10. package/src/Actions/ClickOutside.svench.svx +30 -0
  11. package/src/Actions/PositionDropdown.svench.svx +81 -0
  12. package/src/Actions/autoresize_textarea.js +14 -0
  13. package/src/Actions/click_outside.js +76 -0
  14. package/src/Actions/position_dropdown.js +116 -0
  15. package/src/Avatar/Avatar.svelte +63 -0
  16. package/src/Badge/Badge.svelte +42 -0
  17. package/src/Banner/Banner.svelte +72 -0
  18. package/src/Banner/BannerDisplay.svelte +41 -0
  19. package/src/Button/Button.svelte +118 -0
  20. package/src/Button/Button.svench +138 -0
  21. package/src/ButtonGroup/ButtonGroup.svelte +30 -0
  22. package/src/ClearButton/ClearButton.svelte +19 -0
  23. package/src/ColorPicker/ColorPicker.svelte +304 -0
  24. package/src/DetailSummary/DetailSummary.svelte +92 -0
  25. package/src/Divider/Divider.svelte +28 -0
  26. package/src/Drawer/Drawer.svelte +113 -0
  27. package/src/Drawer/Drawer.svench +42 -0
  28. package/src/Drawer/DrawerContent.svelte +45 -0
  29. package/src/FancyForm/FancyButton.svelte +30 -0
  30. package/src/FancyForm/FancyButtonRadio.svelte +70 -0
  31. package/src/FancyForm/FancyCheckbox.svelte +53 -0
  32. package/src/FancyForm/FancyField.svelte +126 -0
  33. package/src/FancyForm/FancyFieldLabel.svelte +25 -0
  34. package/src/FancyForm/FancyForm.svelte +40 -0
  35. package/src/FancyForm/FancyInput.svelte +109 -0
  36. package/src/FancyForm/FancySelect.svelte +147 -0
  37. package/src/FancyForm/index.js +6 -0
  38. package/src/Form/Checkbox.svelte +23 -0
  39. package/src/Form/Combobox.svelte +45 -0
  40. package/src/Form/Core/Checkbox.svelte +69 -0
  41. package/src/Form/Core/CheckboxGroup.svelte +68 -0
  42. package/src/Form/Core/Combobox.svelte +142 -0
  43. package/src/Form/Core/DatePicker.svelte +265 -0
  44. package/src/Form/Core/Dropzone.svelte +482 -0
  45. package/src/Form/Core/EnvDropdown.svelte +276 -0
  46. package/src/Form/Core/File.svelte +115 -0
  47. package/src/Form/Core/InputDropdown.svelte +235 -0
  48. package/src/Form/Core/Multiselect.svelte +99 -0
  49. package/src/Form/Core/Picker.svelte +314 -0
  50. package/src/Form/Core/PickerDropdown.svelte +431 -0
  51. package/src/Form/Core/RadioGroup.svelte +65 -0
  52. package/src/Form/Core/RichTextField.svelte +42 -0
  53. package/src/Form/Core/Search.svelte +105 -0
  54. package/src/Form/Core/Select.svelte +90 -0
  55. package/src/Form/Core/Slider.svelte +86 -0
  56. package/src/Form/Core/Stepper.svelte +172 -0
  57. package/src/Form/Core/Switch.svelte +35 -0
  58. package/src/Form/Core/TextArea.svelte +78 -0
  59. package/src/Form/Core/TextField.svelte +115 -0
  60. package/src/Form/Core/index.js +16 -0
  61. package/src/Form/DatePicker.svelte +46 -0
  62. package/src/Form/Dropzone.svelte +44 -0
  63. package/src/Form/EnvDropdown.svelte +50 -0
  64. package/src/Form/Field.svelte +42 -0
  65. package/src/Form/FieldLabel.svelte +32 -0
  66. package/src/Form/File.svelte +37 -0
  67. package/src/Form/Input.svelte +45 -0
  68. package/src/Form/InputDropdown.svelte +53 -0
  69. package/src/Form/Multiselect.svelte +49 -0
  70. package/src/Form/PickerDropdown.svelte +131 -0
  71. package/src/Form/RadioGroup.svelte +42 -0
  72. package/src/Form/RichTextField.svelte +36 -0
  73. package/src/Form/Search.svelte +36 -0
  74. package/src/Form/Select.svelte +67 -0
  75. package/src/Form/Slider.svelte +24 -0
  76. package/src/Form/Stepper.svelte +45 -0
  77. package/src/Form/TextArea.svelte +34 -0
  78. package/src/Form/Toggle.svelte +22 -0
  79. package/src/Icon/Icon.svelte +94 -0
  80. package/src/Icon/IconAvatar.svelte +61 -0
  81. package/src/IconPicker/IconPicker.svelte +184 -0
  82. package/src/IconSideNav/IconSideNav.svelte +14 -0
  83. package/src/IconSideNav/IconSideNavItem.svelte +56 -0
  84. package/src/InlineAlert/InlineAlert.svelte +63 -0
  85. package/src/Input/CopyInput.svelte +59 -0
  86. package/src/Label/Label.svelte +31 -0
  87. package/src/Layout/Layout.svelte +94 -0
  88. package/src/Layout/Page.svelte +101 -0
  89. package/src/Link/Link.svelte +27 -0
  90. package/src/List/List.svelte +28 -0
  91. package/src/List/ListItem.svelte +93 -0
  92. package/src/Markdown/MarkdownEditor.svelte +60 -0
  93. package/src/Markdown/MarkdownViewer.svelte +70 -0
  94. package/src/Markdown/SpectrumMDE.svelte +184 -0
  95. package/src/Menu/Item.svelte +94 -0
  96. package/src/Menu/Menu.svelte +7 -0
  97. package/src/Menu/Menu.svench +19 -0
  98. package/src/Menu/Section.svelte +10 -0
  99. package/src/Menu/Separator.svelte +1 -0
  100. package/src/Modal/Content.svelte +6 -0
  101. package/src/Modal/CustomContent.svelte +37 -0
  102. package/src/Modal/Modal.svelte +178 -0
  103. package/src/Modal/Modal.svench +116 -0
  104. package/src/Modal/ModalContent.svelte +190 -0
  105. package/src/Modal/QuizModal.svelte +53 -0
  106. package/src/Notification/Notification.svelte +74 -0
  107. package/src/Notification/NotificationDisplay.svelte +43 -0
  108. package/src/Pagination/Pagination.svelte +57 -0
  109. package/src/Popover/Popover.svelte +95 -0
  110. package/src/Popover/Popover.svench +120 -0
  111. package/src/ProgressBar/ProgressBar.svelte +67 -0
  112. package/src/ProgressCircle/ProgressCircle.svelte +62 -0
  113. package/src/SideNavigation/Item.svelte +59 -0
  114. package/src/SideNavigation/Navigation.svelte +12 -0
  115. package/src/StatusLight/StatusLight.svelte +80 -0
  116. package/src/Stores/Notifications.svench.svx +78 -0
  117. package/src/Stores/banner.js +65 -0
  118. package/src/Stores/notifications.js +84 -0
  119. package/src/Table/ArrayRenderer.svelte +18 -0
  120. package/src/Table/AttachmentRenderer.svelte +73 -0
  121. package/src/Table/BoldRenderer.svelte +15 -0
  122. package/src/Table/BooleanRenderer.svelte +42 -0
  123. package/src/Table/CellRenderer.svelte +70 -0
  124. package/src/Table/CodeRenderer.svelte +14 -0
  125. package/src/Table/DateTimeRenderer.svelte +29 -0
  126. package/src/Table/InternalRenderer.svelte +24 -0
  127. package/src/Table/RelationshipRenderer.svelte +35 -0
  128. package/src/Table/SelectEditRenderer.svelte +28 -0
  129. package/src/Table/StringRenderer.svelte +22 -0
  130. package/src/Table/Table.svelte +657 -0
  131. package/src/Table/index.js +1 -0
  132. package/src/Tabs/Tab.svelte +88 -0
  133. package/src/Tabs/Tabs.svelte +130 -0
  134. package/src/Tags/Tag.svelte +43 -0
  135. package/src/Tags/Tags.svelte +17 -0
  136. package/src/Tooltip/Tooltip.svelte +34 -0
  137. package/src/Tooltip/TooltipWrapper.svelte +60 -0
  138. package/src/TreeView/Item.svelte +41 -0
  139. package/src/TreeView/Tree.svelte +16 -0
  140. package/src/Typography/Body.svelte +22 -0
  141. package/src/Typography/Code.svelte +10 -0
  142. package/src/Typography/Detail.svelte +19 -0
  143. package/src/Typography/Heading.svelte +24 -0
  144. package/src/bbui.css +118 -0
  145. package/src/context.js +4 -0
  146. package/src/helpers.js +116 -0
  147. package/src/index.js +109 -0
  148. package/src/spectrum-icons-rollup.js +31 -0
  149. package/src/spectrum-icons-vite.js +31 -0
@@ -0,0 +1,50 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import EnvDropdown from "./Core/EnvDropdown.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = null
8
+ export let labelPosition = "above"
9
+ export let placeholder = null
10
+ export let type = "text"
11
+ export let disabled = false
12
+ export let readonly = false
13
+ export let error = null
14
+ export let updateOnChange = true
15
+ export let quiet = false
16
+ export let autofocus
17
+ export let variables
18
+ export let showModal
19
+ export let environmentVariablesEnabled
20
+ export let handleUpgradePanel
21
+ const dispatch = createEventDispatcher()
22
+ const onChange = e => {
23
+ value = e.detail
24
+ dispatch("change", e.detail)
25
+ }
26
+ </script>
27
+
28
+ <Field {label} {labelPosition} {error}>
29
+ <EnvDropdown
30
+ {updateOnChange}
31
+ {error}
32
+ {disabled}
33
+ {readonly}
34
+ {value}
35
+ {placeholder}
36
+ {type}
37
+ {quiet}
38
+ {autofocus}
39
+ {variables}
40
+ {showModal}
41
+ {environmentVariablesEnabled}
42
+ {handleUpgradePanel}
43
+ on:change={onChange}
44
+ on:click
45
+ on:input
46
+ on:blur
47
+ on:focus
48
+ on:keyup
49
+ />
50
+ </Field>
@@ -0,0 +1,42 @@
1
+ <script>
2
+ import "@spectrum-css/fieldlabel/dist/index-vars.css"
3
+ import FieldLabel from "./FieldLabel.svelte"
4
+
5
+ export let id = null
6
+ export let label = null
7
+ export let labelPosition = "above"
8
+ export let error = null
9
+ export let tooltip = ""
10
+ </script>
11
+
12
+ <div class="spectrum-Form-item" class:above={labelPosition === "above"}>
13
+ {#if label}
14
+ <FieldLabel forId={id} {label} position={labelPosition} {tooltip} />
15
+ {/if}
16
+ <div class="spectrum-Form-itemField">
17
+ <slot />
18
+ {#if error}
19
+ <div class="error">{error}</div>
20
+ {/if}
21
+ </div>
22
+ </div>
23
+
24
+ <style>
25
+ .spectrum-Form-item.above {
26
+ display: flex;
27
+ flex-direction: column;
28
+ }
29
+ .spectrum-Form-itemField {
30
+ position: relative;
31
+ width: 100%;
32
+ }
33
+
34
+ .error {
35
+ color: var(
36
+ --spectrum-semantic-negative-color-default,
37
+ var(--spectrum-global-color-red-500)
38
+ );
39
+ font-size: var(--spectrum-global-dimension-font-size-75);
40
+ margin-top: var(--spectrum-global-dimension-size-75);
41
+ }
42
+ </style>
@@ -0,0 +1,32 @@
1
+ <script>
2
+ import TooltipWrapper from "../Tooltip/TooltipWrapper.svelte"
3
+
4
+ import "@spectrum-css/fieldlabel/dist/index-vars.css"
5
+
6
+ export let forId
7
+ export let label
8
+ export let position = "above"
9
+ export let tooltip = ""
10
+
11
+ $: className = position === "above" ? "" : `spectrum-FieldLabel--${position}`
12
+ </script>
13
+
14
+ <TooltipWrapper {tooltip} size="S">
15
+ <label
16
+ for={forId}
17
+ class={`spectrum-FieldLabel spectrum-FieldLabel--sizeM spectrum-Form-itemLabel ${className}`}
18
+ >
19
+ {label || ""}
20
+ </label>
21
+ </TooltipWrapper>
22
+
23
+ <style>
24
+ label {
25
+ white-space: nowrap;
26
+ }
27
+
28
+ .spectrum-FieldLabel--right,
29
+ .spectrum-FieldLabel--left {
30
+ padding-right: var(--spectrum-global-dimension-size-200);
31
+ }
32
+ </style>
@@ -0,0 +1,37 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import { CoreFile } from "./Core"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let label = null
7
+ export let labelPosition = "above"
8
+ export let disabled = false
9
+ export let allowClear = null
10
+ export let handleFileTooLarge = () => {}
11
+ export let previewUrl = null
12
+ export let extensions = null
13
+ export let error = null
14
+ export let title = null
15
+ export let value = null
16
+ export let tooltip = null
17
+
18
+ const dispatch = createEventDispatcher()
19
+ const onChange = e => {
20
+ value = e.detail
21
+ dispatch("change", e.detail)
22
+ }
23
+ </script>
24
+
25
+ <Field {label} {labelPosition} {error} {tooltip}>
26
+ <CoreFile
27
+ {error}
28
+ {disabled}
29
+ {allowClear}
30
+ {title}
31
+ {value}
32
+ {previewUrl}
33
+ {handleFileTooLarge}
34
+ {extensions}
35
+ on:change={onChange}
36
+ />
37
+ </Field>
@@ -0,0 +1,45 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import TextField from "./Core/TextField.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = null
8
+ export let labelPosition = "above"
9
+ export let placeholder = null
10
+ export let type = "text"
11
+ export let disabled = false
12
+ export let readonly = false
13
+ export let error = null
14
+ export let updateOnChange = true
15
+ export let quiet = false
16
+ export let autofocus
17
+ export let autocomplete
18
+
19
+ const dispatch = createEventDispatcher()
20
+ const onChange = e => {
21
+ value = e.detail
22
+ dispatch("change", e.detail)
23
+ }
24
+ </script>
25
+
26
+ <Field {label} {labelPosition} {error}>
27
+ <TextField
28
+ {updateOnChange}
29
+ {error}
30
+ {disabled}
31
+ {readonly}
32
+ {value}
33
+ {placeholder}
34
+ {type}
35
+ {quiet}
36
+ {autofocus}
37
+ {autocomplete}
38
+ on:change={onChange}
39
+ on:click
40
+ on:input
41
+ on:blur
42
+ on:focus
43
+ on:keyup
44
+ />
45
+ </Field>
@@ -0,0 +1,53 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import InputDropdown from "./Core/InputDropdown.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let inputValue = null
7
+ export let dropdownValue = null
8
+ export let inputType = "text"
9
+ export let label = null
10
+ export let labelPosition = "above"
11
+ export let placeholder = null
12
+ export let disabled = false
13
+ export let readonly = false
14
+ export let error = null
15
+ export let updateOnChange = true
16
+ export let quiet = false
17
+ export let autofocus
18
+ export let options = []
19
+
20
+ const dispatch = createEventDispatcher()
21
+
22
+ const onPick = e => {
23
+ dropdownValue = e.detail
24
+ dispatch("pick", e.detail)
25
+ }
26
+ const onChange = e => {
27
+ inputValue = e.detail
28
+ dispatch("change", e.detail)
29
+ }
30
+ </script>
31
+
32
+ <Field {label} {labelPosition} {error}>
33
+ <InputDropdown
34
+ {updateOnChange}
35
+ {error}
36
+ {disabled}
37
+ {readonly}
38
+ {inputValue}
39
+ {dropdownValue}
40
+ {placeholder}
41
+ {inputType}
42
+ {quiet}
43
+ {autofocus}
44
+ {options}
45
+ on:change={onChange}
46
+ on:pick={onPick}
47
+ on:click
48
+ on:input
49
+ on:blur
50
+ on:focus
51
+ on:keyup
52
+ />
53
+ </Field>
@@ -0,0 +1,49 @@
1
+ <script>
2
+ import { createEventDispatcher } from "svelte"
3
+ import Multiselect from "./Core/Multiselect.svelte"
4
+ import Field from "./Field.svelte"
5
+
6
+ export let value = []
7
+ export let label = null
8
+ export let disabled = false
9
+ export let readonly = false
10
+ export let labelPosition = "above"
11
+ export let error = null
12
+ export let placeholder = null
13
+ export let options = []
14
+ export let getOptionLabel = option => option
15
+ export let getOptionValue = option => option
16
+ export let sort = false
17
+ export let autoWidth = false
18
+ export let autocomplete = false
19
+ export let fetchTerm = null
20
+ export let useFetch = false
21
+ export let customPopoverHeight
22
+
23
+ const dispatch = createEventDispatcher()
24
+ const onChange = e => {
25
+ value = e.detail
26
+ dispatch("change", e.detail)
27
+ }
28
+ </script>
29
+
30
+ <Field {label} {labelPosition} {error}>
31
+ <Multiselect
32
+ {error}
33
+ {disabled}
34
+ {readonly}
35
+ {value}
36
+ {options}
37
+ {placeholder}
38
+ {sort}
39
+ {getOptionLabel}
40
+ {getOptionValue}
41
+ {autoWidth}
42
+ {autocomplete}
43
+ {customPopoverHeight}
44
+ bind:fetchTerm
45
+ {useFetch}
46
+ on:change={onChange}
47
+ on:click
48
+ />
49
+ </Field>
@@ -0,0 +1,131 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import PickerDropdown from "./Core/PickerDropdown.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let primaryValue = null
7
+ export let secondaryValue = null
8
+ export let inputType = "text"
9
+ export let label = null
10
+ export let labelPosition = "above"
11
+ export let secondaryPlaceholder = null
12
+ export let autocomplete
13
+ export let placeholder = null
14
+ export let disabled = false
15
+ export let readonly = false
16
+ export let error = null
17
+ export let getSecondaryOptionLabel = option =>
18
+ extractProperty(option, "label")
19
+ export let getSecondaryOptionValue = option =>
20
+ extractProperty(option, "value")
21
+ export let getSecondaryOptionColour = () => {}
22
+ export let getSecondaryOptionIcon = () => {}
23
+ export let quiet = false
24
+ export let autofocus
25
+ export let primaryOptions = []
26
+ export let secondaryOptions = []
27
+ export let searchTerm
28
+ export let showClearIcon = true
29
+
30
+ let primaryLabel
31
+ let secondaryLabel
32
+ const dispatch = createEventDispatcher()
33
+
34
+ $: secondaryFieldText = getSecondaryFieldText(
35
+ secondaryValue,
36
+ secondaryOptions,
37
+ secondaryPlaceholder
38
+ )
39
+ $: secondaryFieldIcon = getSecondaryFieldAttribute(
40
+ getSecondaryOptionIcon,
41
+ secondaryValue,
42
+ secondaryOptions
43
+ )
44
+ $: secondaryFieldColour = getSecondaryFieldAttribute(
45
+ getSecondaryOptionColour,
46
+ secondaryValue,
47
+ secondaryOptions
48
+ )
49
+
50
+ const getSecondaryFieldAttribute = (getAttribute, value, options) => {
51
+ // Wait for options to load if there is a value but no options
52
+
53
+ if (!options?.length) {
54
+ return ""
55
+ }
56
+
57
+ const index = options.findIndex(
58
+ (option, idx) => getSecondaryOptionValue(option, idx) === value
59
+ )
60
+
61
+ return index !== -1 ? getAttribute(options[index], index) : null
62
+ }
63
+
64
+ const getSecondaryFieldText = (value, options, placeholder) => {
65
+ // Always use placeholder if no value
66
+ if (value == null || value === "") {
67
+ return placeholder || "Choose an option"
68
+ }
69
+
70
+ return getSecondaryFieldAttribute(getSecondaryOptionLabel, value, options)
71
+ }
72
+
73
+ const onPickPrimary = e => {
74
+ primaryLabel = e?.detail?.label || null
75
+ primaryValue = e?.detail?.value || null
76
+ dispatch("pickprimary", e?.detail?.value || {})
77
+ }
78
+
79
+ const onPickSecondary = e => {
80
+ secondaryValue = e.detail
81
+ dispatch("picksecondary", e.detail)
82
+ }
83
+
84
+ const extractProperty = (value, property) => {
85
+ if (value && typeof value === "object") {
86
+ return value[property]
87
+ }
88
+ return value
89
+ }
90
+
91
+ const updateSearchTerm = e => {
92
+ searchTerm = e.detail
93
+ }
94
+ </script>
95
+
96
+ <Field {label} {labelPosition} {error}>
97
+ <PickerDropdown
98
+ {searchTerm}
99
+ {autocomplete}
100
+ {error}
101
+ {disabled}
102
+ {readonly}
103
+ {placeholder}
104
+ {inputType}
105
+ {quiet}
106
+ {autofocus}
107
+ {primaryOptions}
108
+ {secondaryOptions}
109
+ {getSecondaryOptionLabel}
110
+ {getSecondaryOptionValue}
111
+ {getSecondaryOptionIcon}
112
+ {getSecondaryOptionColour}
113
+ {secondaryFieldText}
114
+ {secondaryFieldIcon}
115
+ {secondaryFieldColour}
116
+ {primaryValue}
117
+ {secondaryValue}
118
+ {primaryLabel}
119
+ {secondaryLabel}
120
+ {showClearIcon}
121
+ on:pickprimary={onPickPrimary}
122
+ on:picksecondary={onPickSecondary}
123
+ on:search={updateSearchTerm}
124
+ on:click
125
+ on:input
126
+ on:blur
127
+ on:focus
128
+ on:keyup
129
+ on:closed
130
+ />
131
+ </Field>
@@ -0,0 +1,42 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import RadioGroup from "./Core/RadioGroup.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = null
8
+ export let disabled = false
9
+ export let labelPosition = "above"
10
+ export let error = null
11
+ export let options = []
12
+ export let direction = "vertical"
13
+ export let getOptionLabel = option => extractProperty(option, "label")
14
+ export let getOptionValue = option => extractProperty(option, "value")
15
+ export let getOptionTitle = option => extractProperty(option, "label")
16
+
17
+ const dispatch = createEventDispatcher()
18
+ const onChange = e => {
19
+ value = e.detail
20
+ dispatch("change", e.detail)
21
+ }
22
+ const extractProperty = (value, property) => {
23
+ if (value && typeof value === "object") {
24
+ return value[property]
25
+ }
26
+ return value
27
+ }
28
+ </script>
29
+
30
+ <Field {label} {labelPosition} {error}>
31
+ <RadioGroup
32
+ {error}
33
+ {disabled}
34
+ {value}
35
+ {options}
36
+ {direction}
37
+ {getOptionLabel}
38
+ {getOptionValue}
39
+ {getOptionTitle}
40
+ on:change={onChange}
41
+ />
42
+ </Field>
@@ -0,0 +1,36 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import RichTextField from "./Core/RichTextField.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = null
8
+ export let labelPosition = "above"
9
+ export let placeholder = null
10
+ export let disabled = false
11
+ export let error = null
12
+ export let height = null
13
+ export let id = null
14
+ export let fullScreenOffset = null
15
+ export let easyMDEOptions = null
16
+
17
+ const dispatch = createEventDispatcher()
18
+ const onChange = e => {
19
+ value = e.detail
20
+ dispatch("change", e.detail)
21
+ }
22
+ </script>
23
+
24
+ <Field {label} {labelPosition} {error}>
25
+ <RichTextField
26
+ {error}
27
+ {disabled}
28
+ {value}
29
+ {placeholder}
30
+ {height}
31
+ {id}
32
+ {fullScreenOffset}
33
+ {easyMDEOptions}
34
+ on:change={onChange}
35
+ />
36
+ </Field>
@@ -0,0 +1,36 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import Search from "./Core/Search.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = null
8
+ export let labelPosition = "above"
9
+ export let placeholder = null
10
+ export let disabled = false
11
+ export let updateOnChange = true
12
+ export let quiet = false
13
+ export let inputRef
14
+
15
+ const dispatch = createEventDispatcher()
16
+ const onChange = e => {
17
+ value = e.detail
18
+ dispatch("change", e.detail)
19
+ }
20
+ </script>
21
+
22
+ <Field {label} {labelPosition}>
23
+ <Search
24
+ {updateOnChange}
25
+ {disabled}
26
+ {value}
27
+ {placeholder}
28
+ {quiet}
29
+ bind:inputRef
30
+ on:change={onChange}
31
+ on:click
32
+ on:input
33
+ on:focus
34
+ on:blur
35
+ />
36
+ </Field>
@@ -0,0 +1,67 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import Select from "./Core/Select.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = undefined
8
+ export let disabled = false
9
+ export let readonly = false
10
+ export let labelPosition = "above"
11
+ export let error = null
12
+ export let placeholder = "Choose an option"
13
+ export let options = []
14
+ export let getOptionLabel = option => extractProperty(option, "label")
15
+ export let getOptionValue = option => extractProperty(option, "value")
16
+ export let getOptionIcon = option => option?.icon
17
+ export let useOptionIconImage = false
18
+ export let getOptionColour = option => option?.colour
19
+ export let isOptionEnabled
20
+ export let quiet = false
21
+ export let autoWidth = false
22
+ export let sort = false
23
+ export let tooltip = ""
24
+ export let autocomplete = false
25
+ export let customPopoverHeight
26
+ export let align
27
+ export let footer = null
28
+
29
+ const dispatch = createEventDispatcher()
30
+ const onChange = e => {
31
+ value = e.detail
32
+ dispatch("change", e.detail)
33
+ }
34
+
35
+ const extractProperty = (value, property) => {
36
+ if (value && typeof value === "object") {
37
+ return value[property]
38
+ }
39
+ return value
40
+ }
41
+ </script>
42
+
43
+ <Field {label} {labelPosition} {error} {tooltip}>
44
+ <Select
45
+ {quiet}
46
+ {error}
47
+ {disabled}
48
+ {readonly}
49
+ {value}
50
+ {options}
51
+ {placeholder}
52
+ {autoWidth}
53
+ {sort}
54
+ {align}
55
+ {footer}
56
+ {getOptionLabel}
57
+ {getOptionValue}
58
+ {getOptionIcon}
59
+ {getOptionColour}
60
+ {useOptionIconImage}
61
+ {isOptionEnabled}
62
+ {autocomplete}
63
+ {customPopoverHeight}
64
+ on:change={onChange}
65
+ on:click
66
+ />
67
+ </Field>
@@ -0,0 +1,24 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import Slider from "./Core/Slider.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = null
8
+ export let labelPosition = "above"
9
+ export let min = 0
10
+ export let max = 100
11
+ export let step = 1
12
+ export let disabled = false
13
+ export let error = null
14
+
15
+ const dispatch = createEventDispatcher()
16
+ const onChange = e => {
17
+ value = e.detail
18
+ dispatch("change", e.detail)
19
+ }
20
+ </script>
21
+
22
+ <Field {label} {labelPosition} {error}>
23
+ <Slider {disabled} {value} {min} {max} {step} on:change={onChange} />
24
+ </Field>
@@ -0,0 +1,45 @@
1
+ <script>
2
+ import Field from "./Field.svelte"
3
+ import Stepper from "./Core/Stepper.svelte"
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+ export let value = null
7
+ export let label = null
8
+ export let labelPosition = "above"
9
+ export let placeholder = null
10
+ export let disabled = false
11
+ export let readonly = false
12
+ export let error = null
13
+ export let updateOnChange = true
14
+ export let quiet = false
15
+ export let min = null
16
+ export let max = null
17
+ export let step = 1
18
+
19
+ const dispatch = createEventDispatcher()
20
+ const onChange = e => {
21
+ value = e.detail
22
+ dispatch("change", e.detail)
23
+ }
24
+ </script>
25
+
26
+ <Field {label} {labelPosition} {error}>
27
+ <Stepper
28
+ {updateOnChange}
29
+ {error}
30
+ {disabled}
31
+ {readonly}
32
+ {value}
33
+ {placeholder}
34
+ {quiet}
35
+ {min}
36
+ {max}
37
+ {step}
38
+ on:change={onChange}
39
+ on:click
40
+ on:input
41
+ on:blur
42
+ on:focus
43
+ on:keyup
44
+ />
45
+ </Field>