@budibase/bbui 1.58.13 → 2.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 (181) hide show
  1. package/LICENSE +375 -0
  2. package/dist/bbui.es.js +14 -0
  3. package/dist/bbui.es.js.map +1 -0
  4. package/package.json +68 -32
  5. package/src/ActionButton/ActionButton.svelte +102 -0
  6. package/src/ActionGroup/ActionGroup.svelte +26 -0
  7. package/src/ActionMenu/ActionMenu.svelte +44 -0
  8. package/src/Actions/autoresize_textarea.js +9 -9
  9. package/src/Actions/click_outside.js +5 -5
  10. package/src/Actions/position_dropdown.js +46 -37
  11. package/src/Avatar/Avatar.svelte +62 -0
  12. package/src/Badge/Badge.svelte +29 -0
  13. package/src/Banner/Banner.svelte +72 -0
  14. package/src/Banner/BannerDisplay.svelte +41 -0
  15. package/src/Button/Button.svelte +102 -200
  16. package/src/ButtonGroup/ButtonGroup.svelte +30 -0
  17. package/src/ClearButton/ClearButton.svelte +19 -0
  18. package/src/ColorPicker/ColorPicker.svelte +297 -0
  19. package/src/DetailSummary/DetailSummary.svelte +83 -0
  20. package/src/Divider/Divider.svelte +28 -0
  21. package/src/Drawer/Drawer.svelte +76 -51
  22. package/src/Drawer/DrawerContent.svelte +46 -0
  23. package/src/Form/Checkbox.svelte +21 -132
  24. package/src/Form/Combobox.svelte +45 -0
  25. package/src/Form/Core/Checkbox.svelte +69 -0
  26. package/src/Form/Core/CheckboxGroup.svelte +68 -0
  27. package/src/Form/Core/Combobox.svelte +142 -0
  28. package/src/Form/Core/DatePicker.svelte +257 -0
  29. package/src/Form/Core/Dropzone.svelte +453 -0
  30. package/src/Form/Core/InputDropdown.svelte +228 -0
  31. package/src/Form/Core/Multiselect.svelte +90 -0
  32. package/src/Form/Core/Picker.svelte +259 -0
  33. package/src/Form/Core/PickerDropdown.svelte +415 -0
  34. package/src/Form/Core/RadioGroup.svelte +48 -0
  35. package/src/Form/Core/RichTextField.svelte +42 -0
  36. package/src/Form/Core/Search.svelte +105 -0
  37. package/src/Form/Core/Select.svelte +75 -0
  38. package/src/Form/Core/Slider.svelte +86 -0
  39. package/src/Form/Core/Stepper.svelte +172 -0
  40. package/src/Form/Core/Switch.svelte +37 -0
  41. package/src/Form/Core/TextArea.svelte +78 -0
  42. package/src/Form/Core/TextField.svelte +119 -0
  43. package/src/Form/Core/index.js +15 -0
  44. package/src/Form/DatePicker.svelte +39 -0
  45. package/src/Form/Dropzone.svelte +42 -0
  46. package/src/Form/Field.svelte +42 -0
  47. package/src/Form/FieldLabel.svelte +32 -0
  48. package/src/Form/Input.svelte +41 -187
  49. package/src/Form/InputDropdown.svelte +55 -0
  50. package/src/Form/Multiselect.svelte +36 -320
  51. package/src/Form/PickerDropdown.svelte +132 -0
  52. package/src/Form/RadioGroup.svelte +42 -0
  53. package/src/Form/RichTextField.svelte +36 -0
  54. package/src/Form/Search.svelte +36 -0
  55. package/src/Form/Select.svelte +48 -88
  56. package/src/Form/Slider.svelte +16 -91
  57. package/src/Form/Stepper.svelte +45 -0
  58. package/src/Form/TextArea.svelte +30 -128
  59. package/src/Form/Toggle.svelte +20 -110
  60. package/src/Icon/Icon.svelte +91 -0
  61. package/src/Icon/IconAvatar.svelte +58 -0
  62. package/src/IconPicker/IconPicker.svelte +177 -0
  63. package/src/IconSideNav/IconSideNav.svelte +14 -0
  64. package/src/IconSideNav/IconSideNavItem.svelte +56 -0
  65. package/src/InlineAlert/InlineAlert.svelte +60 -0
  66. package/src/Label/Label.svelte +29 -0
  67. package/src/Layout/Layout.svelte +94 -0
  68. package/src/Layout/Page.svelte +32 -0
  69. package/src/Link/Link.svelte +24 -0
  70. package/src/List/List.svelte +28 -0
  71. package/src/List/ListItem.svelte +90 -0
  72. package/src/Markdown/MarkdownEditor.svelte +60 -0
  73. package/src/Markdown/MarkdownViewer.svelte +70 -0
  74. package/src/Markdown/SpectrumMDE.svelte +184 -0
  75. package/src/Menu/Item.svelte +96 -0
  76. package/src/Menu/Menu.svelte +7 -0
  77. package/src/Menu/Menu.svench +19 -0
  78. package/src/Menu/Section.svelte +10 -0
  79. package/src/Menu/Separator.svelte +1 -0
  80. package/src/Modal/Content.svelte +0 -11
  81. package/src/Modal/CustomContent.svelte +9 -6
  82. package/src/Modal/Modal.svelte +104 -51
  83. package/src/Modal/ModalContent.svelte +131 -73
  84. package/src/Modal/QuizModal.svelte +16 -17
  85. package/src/Notification/Notification.svelte +70 -0
  86. package/src/Notification/NotificationDisplay.svelte +43 -0
  87. package/src/Pagination/Pagination.svelte +57 -0
  88. package/src/Popover/Popover.svelte +43 -33
  89. package/src/ProgressBar/ProgressBar.svelte +67 -0
  90. package/src/ProgressCircle/ProgressCircle.svelte +62 -0
  91. package/src/SideNavigation/Item.svelte +61 -0
  92. package/src/SideNavigation/Navigation.svelte +12 -0
  93. package/src/StatusLight/StatusLight.svelte +80 -0
  94. package/src/Stores/Notifications.svench.svx +1 -1
  95. package/src/Stores/banner.js +65 -0
  96. package/src/Stores/notifications.js +75 -38
  97. package/src/Table/ArrayRenderer.svelte +17 -0
  98. package/src/Table/AttachmentRenderer.svelte +73 -0
  99. package/src/Table/BoldRenderer.svelte +15 -0
  100. package/src/Table/BooleanRenderer.svelte +42 -0
  101. package/src/Table/CellRenderer.svelte +69 -0
  102. package/src/Table/CodeRenderer.svelte +14 -0
  103. package/src/Table/DateTimeRenderer.svelte +29 -0
  104. package/src/Table/InternalRenderer.svelte +24 -0
  105. package/src/Table/RelationshipRenderer.svelte +40 -0
  106. package/src/Table/SelectEditRenderer.svelte +28 -0
  107. package/src/Table/StringRenderer.svelte +14 -0
  108. package/src/Table/Table.svelte +635 -0
  109. package/src/Table/index.js +1 -0
  110. package/src/Tabs/Tab.svelte +88 -0
  111. package/src/Tabs/Tabs.svelte +130 -0
  112. package/src/Tags/Tag.svelte +43 -0
  113. package/src/Tags/Tags.svelte +7 -0
  114. package/src/Tooltip/Tooltip.svelte +34 -0
  115. package/src/Tooltip/TooltipWrapper.svelte +60 -0
  116. package/src/TreeView/Item.svelte +41 -0
  117. package/src/TreeView/Tree.svelte +16 -0
  118. package/src/Typography/Body.svelte +21 -0
  119. package/src/Typography/Code.svelte +10 -0
  120. package/src/Typography/Detail.svelte +19 -0
  121. package/src/Typography/Heading.svelte +17 -0
  122. package/{dist → src}/bbui.css +2 -99
  123. package/src/context.js +1 -1
  124. package/src/helpers.js +134 -0
  125. package/src/index.js +95 -40
  126. package/src/spectrum-icons-rollup.js +31 -0
  127. package/src/spectrum-icons-vite.js +31 -0
  128. package/dist/dist/bundle.css +0 -42
  129. package/dist/dist/bundle.css.map +0 -64
  130. package/dist/index.js +0 -36193
  131. package/dist/index.mjs +0 -36147
  132. package/src/Button/Close.svelte +0 -59
  133. package/src/Button/Close.svench +0 -36
  134. package/src/Button/TextButton.svelte +0 -128
  135. package/src/Button/TextButton.svench +0 -69
  136. package/src/DatePicker/DatePicker.svelte +0 -45
  137. package/src/DatePicker/DatePicker.svench +0 -17
  138. package/src/DropdownMenu/DropdownMenu.svelte +0 -77
  139. package/src/DropdownMenu/DropdownMenu.svench +0 -161
  140. package/src/Dropzone/Dropzone.svelte +0 -294
  141. package/src/Dropzone/Dropzone.svench +0 -17
  142. package/src/Dropzone/fileTypes.js +0 -5
  143. package/src/Form/Checkbox.svench.svx +0 -67
  144. package/src/Form/DataList.svelte +0 -158
  145. package/src/Form/DataList.svench +0 -57
  146. package/src/Form/Input.svench +0 -62
  147. package/src/Form/Multiselect.svench +0 -63
  148. package/src/Form/Radio.svelte +0 -133
  149. package/src/Form/Radio.svench.svx +0 -64
  150. package/src/Form/RichText.svelte +0 -61
  151. package/src/Form/RichText.svench.svx +0 -40
  152. package/src/Form/Select.svench +0 -62
  153. package/src/Form/Slider.svench +0 -26
  154. package/src/Form/TextArea.svench +0 -30
  155. package/src/Form/Toggle.svench +0 -21
  156. package/src/Icons/Contribution.svelte +0 -14
  157. package/src/Icons/Icon.svelte +0 -36
  158. package/src/Icons/Icon.svench +0 -109
  159. package/src/Icons/icon-paths.js +0 -136
  160. package/src/Links/Home.svelte +0 -51
  161. package/src/Links/Home.svench +0 -19
  162. package/src/List/Items/DetailSummary.svelte +0 -85
  163. package/src/List/Items/DetailSummary.svench +0 -53
  164. package/src/List/Search.svelte +0 -34
  165. package/src/List/Search.svench +0 -8
  166. package/src/Spacer/Spacer.svelte +0 -50
  167. package/src/Spacer/Spacer.svench +0 -51
  168. package/src/Styleguide/Body.svelte +0 -72
  169. package/src/Styleguide/Borders.svench +0 -175
  170. package/src/Styleguide/Budibase-logo.svelte +0 -68
  171. package/src/Styleguide/Color.svench +0 -201
  172. package/src/Styleguide/Heading.svelte +0 -74
  173. package/src/Styleguide/Label.svelte +0 -70
  174. package/src/Styleguide/Logo.svelte +0 -16
  175. package/src/Styleguide/Logo.svench +0 -8
  176. package/src/Styleguide/Spacing.svench +0 -191
  177. package/src/Styleguide/Typography.svench +0 -227
  178. package/src/Switcher/Switcher.svelte +0 -47
  179. package/src/Switcher/Switcher.svench +0 -27
  180. package/src/index.svench.svx +0 -35
  181. package/src/utils/buildStyle.js +0 -14
@@ -0,0 +1,142 @@
1
+ <script>
2
+ import "@spectrum-css/inputgroup/dist/index-vars.css"
3
+ import "@spectrum-css/popover/dist/index-vars.css"
4
+ import "@spectrum-css/menu/dist/index-vars.css"
5
+ import { fly } from "svelte/transition"
6
+ import { createEventDispatcher } from "svelte"
7
+
8
+ export let value = null
9
+ export let id = null
10
+ export let placeholder = "Choose an option or type"
11
+ export let disabled = false
12
+ export let readonly = false
13
+ export let error = null
14
+ export let options = []
15
+ export let getOptionLabel = option => option
16
+ export let getOptionValue = option => option
17
+
18
+ const dispatch = createEventDispatcher()
19
+ let open = false
20
+ let focus = false
21
+
22
+ const selectOption = value => {
23
+ dispatch("change", value)
24
+ open = false
25
+ }
26
+
27
+ const onType = e => {
28
+ const value = e.target.value
29
+ dispatch("type", value)
30
+ selectOption(value)
31
+ }
32
+
33
+ const onPick = value => {
34
+ dispatch("pick", value)
35
+ selectOption(value)
36
+ }
37
+ </script>
38
+
39
+ <div
40
+ class="spectrum-InputGroup"
41
+ class:is-focused={open || focus}
42
+ class:is-invalid={!!error}
43
+ class:is-disabled={disabled}
44
+ >
45
+ <div
46
+ class="spectrum-Textfield spectrum-InputGroup-textfield"
47
+ class:is-invalid={!!error}
48
+ class:is-disabled={disabled}
49
+ class:is-focused={open || focus}
50
+ >
51
+ <input
52
+ {id}
53
+ type="text"
54
+ on:focus={() => (focus = true)}
55
+ on:blur={() => {
56
+ focus = false
57
+ dispatch("blur")
58
+ }}
59
+ on:change={onType}
60
+ value={value || ""}
61
+ placeholder={placeholder || ""}
62
+ {disabled}
63
+ {readonly}
64
+ class="spectrum-Textfield-input spectrum-InputGroup-input"
65
+ />
66
+ </div>
67
+ <button
68
+ class="spectrum-Picker spectrum-Picker--sizeM spectrum-InputGroup-button"
69
+ tabindex="-1"
70
+ aria-haspopup="true"
71
+ {disabled}
72
+ on:click={() => (open = true)}
73
+ >
74
+ <svg
75
+ class="spectrum-Icon spectrum-UIIcon-ChevronDown100 spectrum-Picker-menuIcon spectrum-InputGroup-icon"
76
+ focusable="false"
77
+ aria-hidden="true"
78
+ >
79
+ <use xlink:href="#spectrum-css-icon-Chevron100" />
80
+ </svg>
81
+ </button>
82
+ {#if open}
83
+ <div class="overlay" on:mousedown|self={() => (open = false)} />
84
+ <div
85
+ transition:fly={{ y: -20, duration: 200 }}
86
+ class="spectrum-Popover spectrum-Popover--bottom is-open"
87
+ >
88
+ <ul class="spectrum-Menu" role="listbox">
89
+ {#if options && Array.isArray(options)}
90
+ {#each options as option}
91
+ <li
92
+ class="spectrum-Menu-item"
93
+ class:is-selected={getOptionValue(option) === value}
94
+ role="option"
95
+ aria-selected="true"
96
+ tabindex="0"
97
+ on:click={() => onPick(getOptionValue(option))}
98
+ >
99
+ <span class="spectrum-Menu-itemLabel"
100
+ >{getOptionLabel(option)}</span
101
+ >
102
+ <svg
103
+ class="spectrum-Icon spectrum-UIIcon-Checkmark100 spectrum-Menu-checkmark spectrum-Menu-itemIcon"
104
+ focusable="false"
105
+ aria-hidden="true"
106
+ >
107
+ <use xlink:href="#spectrum-css-icon-Checkmark100" />
108
+ </svg>
109
+ </li>
110
+ {/each}
111
+ {/if}
112
+ </ul>
113
+ </div>
114
+ {/if}
115
+ </div>
116
+
117
+ <style>
118
+ .spectrum-InputGroup {
119
+ min-width: 0;
120
+ width: 100%;
121
+ }
122
+ .spectrum-Textfield {
123
+ width: 100%;
124
+ }
125
+ .spectrum-Textfield-input {
126
+ width: 0;
127
+ }
128
+ .overlay {
129
+ position: fixed;
130
+ top: 0;
131
+ left: 0;
132
+ width: 100vw;
133
+ height: 100vh;
134
+ z-index: 999;
135
+ }
136
+ .spectrum-Popover {
137
+ max-height: 240px;
138
+ width: 100%;
139
+ z-index: 999;
140
+ top: 100%;
141
+ }
142
+ </style>
@@ -0,0 +1,257 @@
1
+ <script>
2
+ import Flatpickr from "svelte-flatpickr"
3
+ import "flatpickr/dist/flatpickr.css"
4
+ import "@spectrum-css/inputgroup/dist/index-vars.css"
5
+ import "@spectrum-css/textfield/dist/index-vars.css"
6
+ import "@spectrum-css/picker/dist/index-vars.css"
7
+ import { createEventDispatcher } from "svelte"
8
+ import { uuid } from "../../helpers"
9
+
10
+ export let id = null
11
+ export let disabled = false
12
+ export let error = null
13
+ export let enableTime = true
14
+ export let value = null
15
+ export let placeholder = null
16
+ export let appendTo = undefined
17
+ export let timeOnly = false
18
+ export let ignoreTimezones = false
19
+ export let time24hr = false
20
+
21
+ const dispatch = createEventDispatcher()
22
+ const flatpickrId = `${uuid()}-wrapper`
23
+ let open = false
24
+ let flatpickr, flatpickrOptions
25
+
26
+ const resolveTimeStamp = timestamp => {
27
+ let maskedDate = new Date(`0-${timestamp}`)
28
+
29
+ if (maskedDate instanceof Date && !isNaN(maskedDate.getTime())) {
30
+ return maskedDate
31
+ } else {
32
+ return null
33
+ }
34
+ }
35
+
36
+ $: flatpickrOptions = {
37
+ element: `#${flatpickrId}`,
38
+ enableTime: timeOnly || enableTime || false,
39
+ noCalendar: timeOnly || false,
40
+ altInput: true,
41
+ time_24hr: time24hr || false,
42
+ altFormat: timeOnly ? "H:i" : enableTime ? "F j Y, H:i" : "F j, Y",
43
+ wrap: true,
44
+ appendTo,
45
+ disableMobile: "true",
46
+ onReady: () => {
47
+ let timestamp = resolveTimeStamp(value)
48
+ if (timeOnly && timestamp) {
49
+ dispatch("change", timestamp.toISOString())
50
+ }
51
+ },
52
+ }
53
+
54
+ $: redrawOptions = {
55
+ timeOnly,
56
+ enableTime,
57
+ time24hr,
58
+ }
59
+
60
+ const handleChange = event => {
61
+ const [dates] = event.detail
62
+ const noTimezone = enableTime && !timeOnly && ignoreTimezones
63
+ let newValue = dates[0]
64
+ if (newValue) {
65
+ newValue = newValue.toISOString()
66
+ }
67
+
68
+ // If time only set date component to 2000-01-01
69
+ if (timeOnly) {
70
+ // Classic flackpickr causing issues.
71
+ // When selecting a value for the first time for a "time only" field,
72
+ // the time is always offset by 1 hour for some reason (regardless of time
73
+ // zone) so we need to correct it.
74
+ if (!value && newValue) {
75
+ newValue = new Date(dates[0].getTime() + 60 * 60 * 1000).toISOString()
76
+ }
77
+ newValue = `2000-01-01T${newValue.split("T")[1]}`
78
+ }
79
+
80
+ // For date-only fields, construct a manual timestamp string without a time
81
+ // or time zone
82
+ else if (!enableTime) {
83
+ const year = dates[0].getFullYear()
84
+ const month = `${dates[0].getMonth() + 1}`.padStart(2, "0")
85
+ const day = `${dates[0].getDate()}`.padStart(2, "0")
86
+ newValue = `${year}-${month}-${day}T00:00:00.000`
87
+ }
88
+
89
+ // For non-timezone-aware fields, create an ISO 8601 timestamp of the exact
90
+ // time picked, without timezone
91
+ else if (noTimezone) {
92
+ const offset = dates[0].getTimezoneOffset() * 60000
93
+ newValue = new Date(dates[0].getTime() - offset)
94
+ .toISOString()
95
+ .slice(0, -1)
96
+ }
97
+
98
+ dispatch("change", newValue)
99
+ }
100
+
101
+ const clearDateOnBackspace = event => {
102
+ if (["Backspace", "Clear", "Delete"].includes(event.key)) {
103
+ dispatch("change", null)
104
+ flatpickr.close()
105
+ }
106
+ }
107
+
108
+ const onOpen = () => {
109
+ open = true
110
+ document.addEventListener("keyup", clearDateOnBackspace)
111
+ }
112
+
113
+ const onClose = () => {
114
+ open = false
115
+ document.removeEventListener("keyup", clearDateOnBackspace)
116
+
117
+ // Manually blur all input fields since flatpickr creates a second
118
+ // duplicate input field.
119
+ // We need to blur both because the focus styling does not get properly
120
+ // applied.
121
+ const els = document.querySelectorAll(`#${flatpickrId} input`)
122
+ els.forEach(el => el.blur())
123
+ }
124
+
125
+ const parseDate = val => {
126
+ if (!val) {
127
+ return null
128
+ }
129
+ let date
130
+ let time
131
+
132
+ // it is a string like 00:00:00, just time
133
+ let ts = resolveTimeStamp(val)
134
+
135
+ if (timeOnly && ts) {
136
+ date = ts
137
+ } else if (val instanceof Date) {
138
+ // Use real date obj if already parsed
139
+ date = val
140
+ } else if (isNaN(val)) {
141
+ // Treat as date string of some sort
142
+ date = new Date(val)
143
+ } else {
144
+ // Treat as numerical timestamp
145
+ date = new Date(parseInt(val))
146
+ }
147
+
148
+ time = date.getTime()
149
+ if (isNaN(time)) {
150
+ return null
151
+ }
152
+
153
+ // By rounding to the nearest second we avoid locking up in an endless
154
+ // loop in the builder, caused by potentially enriching {{ now }} to every
155
+ // millisecond.
156
+ return new Date(Math.floor(time / 1000) * 1000)
157
+ }
158
+ </script>
159
+
160
+ {#key redrawOptions}
161
+ <Flatpickr
162
+ bind:flatpickr
163
+ value={parseDate(value)}
164
+ on:open={onOpen}
165
+ on:close={onClose}
166
+ options={flatpickrOptions}
167
+ on:change={handleChange}
168
+ element={`#${flatpickrId}`}
169
+ >
170
+ <div
171
+ id={flatpickrId}
172
+ class:is-disabled={disabled}
173
+ class:is-invalid={!!error}
174
+ class="flatpickr spectrum-InputGroup spectrum-Datepicker"
175
+ class:is-focused={open}
176
+ aria-readonly="false"
177
+ aria-required="false"
178
+ aria-haspopup="true"
179
+ >
180
+ <div
181
+ on:click={flatpickr?.open}
182
+ class="spectrum-Textfield spectrum-InputGroup-textfield"
183
+ class:is-disabled={disabled}
184
+ class:is-invalid={!!error}
185
+ >
186
+ {#if !!error}
187
+ <svg
188
+ class="spectrum-Icon spectrum-Icon--sizeM spectrum-Textfield-validationIcon"
189
+ focusable="false"
190
+ aria-hidden="true"
191
+ >
192
+ <use xlink:href="#spectrum-icon-18-Alert" />
193
+ </svg>
194
+ {/if}
195
+ <input
196
+ data-input
197
+ type="text"
198
+ class="spectrum-Textfield-input spectrum-InputGroup-input"
199
+ class:is-disabled={disabled}
200
+ {placeholder}
201
+ {id}
202
+ {value}
203
+ />
204
+ </div>
205
+ <button
206
+ type="button"
207
+ class="spectrum-Picker spectrum-Picker--sizeM spectrum-InputGroup-button"
208
+ tabindex="-1"
209
+ class:is-disabled={disabled}
210
+ class:is-invalid={!!error}
211
+ on:click={flatpickr?.open}
212
+ >
213
+ <svg
214
+ class="spectrum-Icon spectrum-Icon--sizeM"
215
+ focusable="false"
216
+ aria-hidden="true"
217
+ aria-label="Calendar"
218
+ >
219
+ <use xlink:href="#spectrum-icon-18-Calendar" />
220
+ </svg>
221
+ </button>
222
+ </div>
223
+ </Flatpickr>
224
+ {/key}
225
+ {#if open}
226
+ <div class="overlay" on:mousedown|self={flatpickr?.close} />
227
+ {/if}
228
+
229
+ <style>
230
+ .spectrum-Textfield-input {
231
+ pointer-events: none;
232
+ }
233
+ .spectrum-Textfield:not(.is-disabled):hover {
234
+ cursor: pointer;
235
+ }
236
+ .flatpickr {
237
+ width: 100%;
238
+ overflow: hidden;
239
+ }
240
+ .flatpickr .spectrum-Textfield {
241
+ width: 100%;
242
+ }
243
+ .overlay {
244
+ position: fixed;
245
+ top: 0;
246
+ left: 0;
247
+ width: 100vw;
248
+ height: 100vh;
249
+ z-index: 999;
250
+ }
251
+ :global(.flatpickr-calendar) {
252
+ font-family: "Source Sans Pro", sans-serif;
253
+ }
254
+ .is-disabled {
255
+ pointer-events: none !important;
256
+ }
257
+ </style>