@budibase/bbui 2.2.26 → 2.2.27

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 (57) hide show
  1. package/dist/bbui.es.js +3 -3
  2. package/dist/bbui.es.js.map +1 -1
  3. package/package.json +4 -3
  4. package/src/Accordion/Accordion.svelte +58 -0
  5. package/src/ActionButton/ActionButton.svelte +2 -3
  6. package/src/ActionMenu/ActionMenu.svelte +1 -2
  7. package/src/Actions/click_outside.js +28 -9
  8. package/src/Actions/position_dropdown.js +85 -53
  9. package/src/Avatar/Avatar.svelte +1 -0
  10. package/src/Badge/Badge.svelte +13 -0
  11. package/src/Button/Button.svelte +8 -4
  12. package/src/Drawer/DrawerContent.svelte +0 -1
  13. package/src/FancyForm/FancyButton.svelte +30 -0
  14. package/src/FancyForm/FancyButtonRadio.svelte +70 -0
  15. package/src/FancyForm/FancyCheckbox.svelte +53 -0
  16. package/src/FancyForm/FancyField.svelte +126 -0
  17. package/src/FancyForm/FancyFieldLabel.svelte +25 -0
  18. package/src/FancyForm/FancyForm.svelte +40 -0
  19. package/src/FancyForm/FancyInput.svelte +77 -0
  20. package/src/FancyForm/FancySelect.svelte +147 -0
  21. package/src/FancyForm/index.js +6 -0
  22. package/src/Form/Core/DatePicker.svelte +1 -1
  23. package/src/Form/Core/Dropzone.svelte +71 -66
  24. package/src/Form/Core/EnvDropdown.svelte +276 -0
  25. package/src/Form/Core/Picker.svelte +141 -124
  26. package/src/Form/Core/Select.svelte +3 -0
  27. package/src/Form/Core/Switch.svelte +0 -2
  28. package/src/Form/Core/TextField.svelte +0 -6
  29. package/src/Form/EnvDropdown.svelte +50 -0
  30. package/src/Form/Input.svelte +0 -2
  31. package/src/Form/InputDropdown.svelte +0 -2
  32. package/src/Form/PickerDropdown.svelte +0 -2
  33. package/src/Form/Toggle.svelte +1 -2
  34. package/src/Icon/IconAvatar.svelte +3 -0
  35. package/src/InlineAlert/InlineAlert.svelte +1 -0
  36. package/src/Label/Label.svelte +1 -0
  37. package/src/Layout/Page.svelte +82 -13
  38. package/src/Link/Link.svelte +4 -1
  39. package/src/List/ListItem.svelte +6 -3
  40. package/src/Menu/Item.svelte +0 -2
  41. package/src/Modal/CustomContent.svelte +0 -1
  42. package/src/Modal/Modal.svench +0 -1
  43. package/src/Modal/ModalContent.svelte +4 -4
  44. package/src/Modal/QuizModal.svelte +0 -1
  45. package/src/Popover/Popover.svelte +35 -31
  46. package/src/Popover/Popover.svench +0 -1
  47. package/src/SideNavigation/Item.svelte +0 -2
  48. package/src/Table/RelationshipRenderer.svelte +3 -8
  49. package/src/Table/StringRenderer.svelte +9 -1
  50. package/src/Table/Table.svelte +30 -19
  51. package/src/Tabs/Tab.svelte +5 -5
  52. package/src/Tags/Tag.svelte +1 -1
  53. package/src/Tags/Tags.svelte +10 -0
  54. package/src/Typography/Heading.svelte +6 -0
  55. package/src/bbui.css +7 -3
  56. package/src/context.js +1 -0
  57. package/src/index.js +5 -0
@@ -21,6 +21,8 @@
21
21
  * template: a HBS or JS binding to use as the value
22
22
  * background: the background color
23
23
  * color: the text color
24
+ * borderLeft: show a left border
25
+ * borderRight: show a right border
24
26
  */
25
27
  export let data = []
26
28
  export let schema = {}
@@ -31,6 +33,7 @@
31
33
  export let allowSelectRows
32
34
  export let allowEditRows = true
33
35
  export let allowEditColumns = true
36
+ export let allowClickRows = true
34
37
  export let selectedRows = []
35
38
  export let customRenderers = []
36
39
  export let disableSorting = false
@@ -270,6 +273,17 @@
270
273
  if (schema[field].align === "Right") {
271
274
  styles[field] += "justify-content: flex-end; text-align: right;"
272
275
  }
276
+ if (schema[field].borderLeft) {
277
+ styles[field] +=
278
+ "border-left: 1px solid var(--spectrum-global-color-gray-200);"
279
+ }
280
+ if (schema[field].borderLeft) {
281
+ styles[field] +=
282
+ "border-right: 1px solid var(--spectrum-global-color-gray-200);"
283
+ }
284
+ if (schema[field].minWidth) {
285
+ styles[field] += `min-width: ${schema[field].minWidth};`
286
+ }
273
287
  })
274
288
  return styles
275
289
  }
@@ -290,7 +304,11 @@
290
304
  </slot>
291
305
  </div>
292
306
  {:else}
293
- <div class="spectrum-Table" style={`${heightStyle}${gridStyle}`}>
307
+ <div
308
+ class="spectrum-Table"
309
+ class:no-scroll={!rowCount}
310
+ style={`${heightStyle}${gridStyle}`}
311
+ >
294
312
  {#if fields.length}
295
313
  <div class="spectrum-Table-head">
296
314
  {#if showEditColumn}
@@ -356,7 +374,7 @@
356
374
  {/if}
357
375
  {#if sortedRows?.length}
358
376
  {#each sortedRows as row, idx}
359
- <div class="spectrum-Table-row">
377
+ <div class="spectrum-Table-row" class:clickable={allowClickRows}>
360
378
  {#if showEditColumn}
361
379
  <div
362
380
  class:noBorderCheckbox={!showHeaderBorder}
@@ -433,10 +451,10 @@
433
451
  /* Wrapper */
434
452
  .wrapper {
435
453
  position: relative;
436
- z-index: 0;
437
454
  --table-bg: var(--spectrum-global-color-gray-50);
438
455
  --table-border: 1px solid var(--spectrum-alias-border-color-mid);
439
456
  --cell-padding: var(--spectrum-global-dimension-size-250);
457
+ overflow: auto;
440
458
  }
441
459
  .wrapper--quiet {
442
460
  --table-bg: var(--spectrum-alias-background-color-transparent);
@@ -460,6 +478,9 @@
460
478
  display: grid;
461
479
  overflow: auto;
462
480
  }
481
+ .spectrum-Table.no-scroll {
482
+ overflow: visible;
483
+ }
463
484
 
464
485
  /* Header */
465
486
  .spectrum-Table-head {
@@ -546,12 +567,13 @@
546
567
  /* Table rows */
547
568
  .spectrum-Table-row {
548
569
  display: contents;
570
+ cursor: auto;
549
571
  }
550
- .spectrum-Table-row:hover .spectrum-Table-cell {
551
- /*background-color: var(--hover-bg) !important;*/
572
+ .spectrum-Table-row.clickable {
573
+ cursor: pointer;
552
574
  }
553
- .spectrum-Table-row:hover .spectrum-Table-cell:after {
554
- background-color: var(--spectrum-alias-highlight-hover);
575
+ .spectrum-Table-row.clickable:hover .spectrum-Table-cell {
576
+ background-color: var(--spectrum-global-color-gray-100);
555
577
  }
556
578
  .wrapper--quiet .spectrum-Table-row {
557
579
  border-left: none;
@@ -584,24 +606,13 @@
584
606
  border-bottom: 1px solid var(--spectrum-alias-border-color-mid);
585
607
  background-color: var(--table-bg);
586
608
  z-index: auto;
609
+ transition: background-color 130ms ease-out;
587
610
  }
588
611
  .spectrum-Table-cell--edit {
589
612
  position: sticky;
590
613
  left: 0;
591
614
  z-index: 2;
592
615
  }
593
- .spectrum-Table-cell:after {
594
- content: "";
595
- position: absolute;
596
- width: 100%;
597
- height: 100%;
598
- background-color: transparent;
599
- top: 0;
600
- left: 0;
601
- pointer-events: none;
602
- transition: background-color
603
- var(--spectrum-global-animation-duration-100, 0.13s) ease-in-out;
604
- }
605
616
 
606
617
  /* Placeholder */
607
618
  .placeholder {
@@ -3,6 +3,7 @@
3
3
  import Portal from "svelte-portal"
4
4
  export let title
5
5
  export let icon = ""
6
+ export let id
6
7
 
7
8
  const dispatch = createEventDispatcher()
8
9
  let selected = getContext("tab")
@@ -31,10 +32,7 @@
31
32
  $: {
32
33
  if ($selected.title === title && tab_internal) {
33
34
  if ($selected.info?.left !== tab_internal.getBoundingClientRect().left) {
34
- $selected = {
35
- ...$selected,
36
- info: tab_internal.getBoundingClientRect(),
37
- }
35
+ setTabInfo()
38
36
  }
39
37
  }
40
38
  }
@@ -50,6 +48,7 @@
50
48
  </script>
51
49
 
52
50
  <div
51
+ {id}
53
52
  bind:this={tab_internal}
54
53
  on:click={onClick}
55
54
  class:is-selected={$selected.title === title}
@@ -82,7 +81,8 @@
82
81
  .spectrum-Tabs-item {
83
82
  color: var(--spectrum-global-color-gray-600);
84
83
  }
85
- .spectrum-Tabs-item.is-selected {
84
+ .spectrum-Tabs-item.is-selected,
85
+ .spectrum-Tabs-item:hover {
86
86
  color: var(--spectrum-global-color-gray-900);
87
87
  }
88
88
  </style>
@@ -37,7 +37,7 @@
37
37
 
38
38
  <style>
39
39
  .spectrum-Tags-item {
40
- margin-top: 0;
41
40
  margin-bottom: 0;
41
+ margin-top: 0;
42
42
  }
43
43
  </style>
@@ -5,3 +5,13 @@
5
5
  <div class="spectrum-Tags" role="list" aria-label="list">
6
6
  <slot />
7
7
  </div>
8
+
9
+ <style>
10
+ .spectrum-Tags {
11
+ margin-top: -8px;
12
+ margin-left: -4px;
13
+ }
14
+ .spectrum-Tags :global(.spectrum-Tags-item) {
15
+ margin: 8px 0 0 4px !important;
16
+ }
17
+ </style>
@@ -15,3 +15,9 @@
15
15
  >
16
16
  <slot />
17
17
  </h1>
18
+
19
+ <style>
20
+ h1 {
21
+ font-family: var(--font-accent);
22
+ }
23
+ </style>
package/src/bbui.css CHANGED
@@ -40,12 +40,14 @@
40
40
  --rounded-medium: 8px;
41
41
  --rounded-large: 16px;
42
42
 
43
- --font-sans: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, "Inter",
44
- "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
45
- "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
43
+ --font-sans: "Source Sans Pro", -apple-system, BlinkMacSystemFont, Segoe UI, "Inter",
44
+ "Helvetica Neue", Arial, "Noto Sans", sans-serif;
45
+ --font-accent: "Source Sans Pro", -apple-system, BlinkMacSystemFont, Segoe UI, "Inter",
46
+ "Helvetica Neue", Arial, "Noto Sans", sans-serif;
46
47
  --font-serif: "Georgia", Cambria, Times New Roman, Times, serif;
47
48
  --font-mono: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
48
49
  monospace;
50
+ --spectrum-alias-body-text-font-family: var(--font-sans);
49
51
 
50
52
  font-size: 16px;
51
53
  --font-size-xs: 0.75rem;
@@ -89,6 +91,8 @@
89
91
  --border-light-2: 2px var(--grey-3) solid;
90
92
  --border-blue: 2px var(--blue) solid;
91
93
  --border-transparent: 2px transparent solid;
94
+
95
+ --spectrum-alias-text-color-disabled: var(--spectrum-global-color-gray-600);
92
96
  }
93
97
 
94
98
  a {
package/src/context.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export default {
2
2
  Modal: "bbui-modal",
3
+ PopoverRoot: "bbui-popover-root",
3
4
  }
package/src/index.js CHANGED
@@ -27,6 +27,7 @@ export { default as RadioGroup } from "./Form/RadioGroup.svelte"
27
27
  export { default as Checkbox } from "./Form/Checkbox.svelte"
28
28
  export { default as InputDropdown } from "./Form/InputDropdown.svelte"
29
29
  export { default as PickerDropdown } from "./Form/PickerDropdown.svelte"
30
+ export { default as EnvDropdown } from "./Form/EnvDropdown.svelte"
30
31
  export { default as DetailSummary } from "./DetailSummary/DetailSummary.svelte"
31
32
  export { default as Popover } from "./Popover/Popover.svelte"
32
33
  export { default as ProgressBar } from "./ProgressBar/ProgressBar.svelte"
@@ -75,6 +76,7 @@ export { default as ListItem } from "./List/ListItem.svelte"
75
76
  export { default as IconSideNav } from "./IconSideNav/IconSideNav.svelte"
76
77
  export { default as IconSideNavItem } from "./IconSideNav/IconSideNavItem.svelte"
77
78
  export { default as Slider } from "./Form/Slider.svelte"
79
+ export { default as Accordion } from "./Accordion/Accordion.svelte"
78
80
 
79
81
  // Renderers
80
82
  export { default as BoldRenderer } from "./Table/BoldRenderer.svelte"
@@ -101,3 +103,6 @@ export { banner, BANNER_TYPES } from "./Stores/banner"
101
103
 
102
104
  // Helpers
103
105
  export * as Helpers from "./helpers"
106
+
107
+ // Fancy form components
108
+ export * from "./FancyForm"