@quaffui/quaff 0.1.0-prealpha8 → 0.1.0-prealpha9

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 (46) hide show
  1. package/dist/components/button/QBtn.svelte +16 -6
  2. package/dist/components/button/QBtn.svelte.d.ts +0 -1
  3. package/dist/components/button/index.scss +18 -1
  4. package/dist/components/dialog/QDialog.svelte +28 -13
  5. package/dist/components/dialog/QDialog.svelte.d.ts +0 -1
  6. package/dist/components/drawer/QDrawer.svelte +48 -37
  7. package/dist/components/drawer/index.scss +11 -8
  8. package/dist/components/footer/QFooter.svelte +9 -5
  9. package/dist/components/footer/QFooter.svelte.d.ts +2 -2
  10. package/dist/components/footer/index.scss +23 -0
  11. package/dist/components/footer/props.d.ts +2 -2
  12. package/dist/components/header/QHeader.svelte +28 -0
  13. package/dist/components/header/QHeader.svelte.d.ts +24 -0
  14. package/dist/components/header/props.d.ts +15 -0
  15. package/dist/components/header/props.js +1 -0
  16. package/dist/components/index.d.ts +2 -1
  17. package/dist/components/index.js +2 -1
  18. package/dist/components/layout/index.scss +89 -75
  19. package/dist/components/list/index.scss +1 -0
  20. package/dist/components/private/QApi.svelte +3 -1
  21. package/dist/components/railbar/QRailbar.svelte +47 -29
  22. package/dist/components/railbar/index.scss +39 -0
  23. package/dist/components/tabs/QTab.svelte +44 -16
  24. package/dist/components/tabs/QTab.svelte.d.ts +1 -3
  25. package/dist/components/tabs/QTabs.svelte +3 -7
  26. package/dist/components/tabs/index.scss +40 -9
  27. package/dist/components/toolbar/QToolbar.svelte +5 -22
  28. package/dist/components/toolbar/QToolbar.svelte.d.ts +2 -0
  29. package/dist/components/toolbar/index.scss +8 -0
  30. package/dist/components/toolbar/props.d.ts +8 -0
  31. package/dist/css/index.css +1 -1
  32. package/dist/css/index.scss +2 -1
  33. package/dist/css/mixins.scss +1 -3
  34. package/dist/css/ripple.scss +42 -0
  35. package/dist/css/states.scss +6 -2
  36. package/dist/helpers/ripple.d.ts +10 -0
  37. package/dist/helpers/ripple.js +75 -0
  38. package/dist/helpers/version.d.ts +1 -1
  39. package/dist/helpers/version.js +1 -1
  40. package/dist/utils/dom.d.ts +8 -0
  41. package/dist/utils/dom.js +71 -0
  42. package/dist/utils/events.d.ts +13 -0
  43. package/dist/utils/events.js +13 -0
  44. package/dist/utils/props.d.ts +1 -1
  45. package/dist/utils/props.js +1 -1
  46. package/package.json +1 -1
@@ -1,15 +1,16 @@
1
1
  <script>import { createClasses } from "../../utils/props";
2
- import { createEventDispatcher } from "svelte";
2
+ import { createEventDispatcher, onMount } from "svelte";
3
3
  import QIcon from "../icon/QIcon.svelte";
4
4
  import QCircularProgress from "../progress/QCircularProgress.svelte";
5
- import { activationHandler } from "../../helpers/activationHandler";
6
5
  import { useSize } from "../../composables/use-size";
6
+ import { isActivationKey } from "../../utils/events";
7
+ import { ripple } from "../../helpers/ripple";
7
8
  export let icon = void 0, label = void 0, disable = false, loading = false, unelevated = false, outline = false, round = false, rectangle = false, flat = false, to = void 0, size = void 0, userClasses = void 0;
8
9
  export { userClasses as class };
9
- const emit = createEventDispatcher();
10
+ let qBtn;
10
11
  let tag;
11
12
  $:
12
- tag = to !== void 0 ? "a" : "div";
13
+ tag = to !== void 0 ? "a" : "button";
13
14
  $:
14
15
  sizeObj = useSize(size);
15
16
  $:
@@ -27,17 +28,26 @@ $:
27
28
  userClasses
28
29
  }
29
30
  );
31
+ function onKeyDown(e) {
32
+ if (!isActivationKey(e))
33
+ return;
34
+ e.preventDefault();
35
+ let click = new MouseEvent("click");
36
+ qBtn.dispatchEvent(click);
37
+ }
30
38
  </script>
31
39
 
32
40
  <svelte:element
33
41
  this={tag}
34
- use:activationHandler={{ disable, callback: (e) => emit("activated", e) }}
35
- role="button"
42
+ bind:this={qBtn}
43
+ use:ripple
44
+ role={tag === "a" ? "button" : undefined}
36
45
  href={to}
37
46
  class={classes}
38
47
  aria-disabled={disable || undefined}
39
48
  tabindex={disable ? -1 : 0}
40
49
  on:click
50
+ on:keydown={onKeyDown}
41
51
  {...$$restProps}
42
52
  >
43
53
  {#if icon && !loading}
@@ -18,7 +18,6 @@ declare const __propDef: {
18
18
  };
19
19
  events: {
20
20
  click: MouseEvent;
21
- activated: CustomEvent<any>;
22
21
  } & {
23
22
  [evt: string]: CustomEvent<any>;
24
23
  };
@@ -26,7 +26,6 @@
26
26
  gap: 1rem;
27
27
  line-height: normal;
28
28
  @extend .elevate-sm-bottom;
29
- @extend .ripple;
30
29
 
31
30
  $sizeMap: (
32
31
  "sm": -1,
@@ -77,5 +76,23 @@
77
76
  margin: 0 -0.5rem;
78
77
  }
79
78
 
79
+ &:is(:hover, :focus):not([aria-disabled])::after {
80
+ content: "";
81
+ position: absolute;
82
+ top: 0;
83
+ left: 0;
84
+ width: 100%;
85
+ height: 100%;
86
+ background-color: var(--on-primary);
87
+ }
88
+
89
+ &:hover:not([aria-disabled])::after {
90
+ opacity: 0.08;
91
+ }
92
+
93
+ &:focus:not([aria-disabled])::after {
94
+ opacity: 0.16;
95
+ }
96
+
80
97
  @include btn-image;
81
98
  }
@@ -1,41 +1,57 @@
1
1
  <script>import { createClasses } from "../../utils/props";
2
- import { createEventDispatcher } from "svelte";
2
+ import { createEventDispatcher, onMount } from "svelte";
3
3
  import QBtn from "../button/QBtn.svelte";
4
4
  import { clickOutsideDialog } from "../../helpers";
5
- export let value = true, noBtn = false, btnContent = void 0, btnAttrs = {}, position = "default", modal = false, fullscreen = false, persistent = false, userClasses = void 0;
5
+ export let noBtn = false, btnContent = void 0, btnAttrs = {}, position = "default", modal = false, fullscreen = false, persistent = false, userClasses = void 0;
6
6
  export { userClasses as class };
7
7
  const emit = createEventDispatcher();
8
8
  let dialogElement;
9
+ let opened = false;
10
+ onMount(() => {
11
+ opened = dialogElement.open;
12
+ dialogElement.style.display = opened ? "block" : "none";
13
+ });
9
14
  $:
10
- canHideOnClickOutside = value === true && persistent !== true;
15
+ canHideOnClickOutside = opened && persistent !== true;
11
16
  $:
12
17
  positionClass = ["top", "right", "bottom", "left"].includes(position) ? position : void 0;
13
18
  $:
14
19
  classes = createClasses(
15
- [value && "active", positionClass, modal && "modal", fullscreen && "max"],
20
+ [opened && "active", positionClass, modal && "modal", fullscreen && "max"],
16
21
  {
17
22
  component: "q-dialog",
18
23
  userClasses
19
24
  }
20
25
  );
21
- $:
22
- value === true ? modal ? dialogElement?.showModal() : dialogElement?.show() : dialogElement?.close();
23
26
  export function hide() {
24
- if (value === true) {
25
- value = false;
27
+ if (dialogElement && dialogElement.open) {
28
+ dialogElement.close();
29
+ opened = false;
30
+ setTimeout(() => {
31
+ dialogElement.style.display = "none";
32
+ }, 250);
26
33
  }
27
34
  }
28
35
  export function show() {
29
- if (value === false) {
30
- value = true;
36
+ if (dialogElement && !dialogElement.open) {
37
+ modal ? dialogElement.showModal() : dialogElement.show();
38
+ opened = true;
39
+ dialogElement.style.display = "block";
31
40
  }
32
41
  }
33
42
  export function toggle(e) {
34
- value = !value;
43
+ if (dialogElement) {
44
+ opened = !opened;
45
+ if (dialogElement.open) {
46
+ hide();
47
+ } else {
48
+ show();
49
+ }
50
+ }
35
51
  e.stopPropagation();
36
52
  }
37
53
  function addAnimation() {
38
- if (persistent && value === true) {
54
+ if (persistent && opened) {
39
55
  dialogElement?.classList.add("animating");
40
56
  setTimeout(() => {
41
57
  dialogElement?.classList.remove("animating");
@@ -70,7 +86,6 @@ function handleClickHide() {
70
86
  <dialog
71
87
  use:clickOutsideDialog={handleClickHide}
72
88
  class={classes}
73
- open={value}
74
89
  {...$$restProps}
75
90
  bind:this={dialogElement}
76
91
  on:cancel={handleKeyboardHide}
@@ -3,7 +3,6 @@ import type { QDialogProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  [x: string]: any;
6
- value?: boolean | undefined;
7
6
  noBtn?: QDialogProps["noBtn"];
8
7
  btnContent?: QDialogProps["btnContent"];
9
8
  btnAttrs?: QDialogProps["btnAttrs"];
@@ -3,6 +3,7 @@ import { createClasses, createStyles } from "../../utils/props";
3
3
  import { getContext } from "svelte";
4
4
  import { clickOutside } from "../../helpers";
5
5
  import { useSize } from "../../composables/use-size";
6
+ import { derived } from "svelte/store";
6
7
  export let value = true, side = "left", width = 300, breakpoint = 1023, showIfAbove = false, behavior = "default", bordered = false, elevated = false, overlay = false, persistent = false, noSwipeOpen = false, noSwipeClose = false, noSwipeBackdrop = false, userClasses = void 0, userStyles = void 0;
7
8
  export { userClasses as class, userStyles as style };
8
9
  $:
@@ -11,7 +12,7 @@ $:
11
12
  belowBreakpoint = behavior === "mobile" === true || behavior !== "desktop" && /** TODO: Get Layout width */
12
13
  1300 <= breakpoint;
13
14
  $:
14
- widthStyle = $ctx && useSize(width).style;
15
+ widthStyle = !$ctx && useSize(width).style;
15
16
  $:
16
17
  hideOnRouteChange = persistent !== true || overlay === true;
17
18
  export const show = (e) => {
@@ -34,34 +35,27 @@ $:
34
35
  hide();
35
36
  }
36
37
  let ctx = getContext("layout");
37
- function prepareZIndexClass(context, overlayProp, sideProp) {
38
- let drawer = sideProp === "left" ? context.drawerLeft : context.drawerRight;
39
- let pos;
40
- for (pos of ["top", "bottom"]) {
41
- if (!drawer.offset[pos] && overlayProp) {
42
- drawer.overlay = true;
43
- return "above";
44
- }
45
- }
46
- }
47
38
  let drawerType;
48
39
  $:
49
40
  drawerType = side === "left" ? "drawerLeft" : "drawerRight";
50
41
  $:
51
- classes = createClasses([
52
- "q-drawer",
53
- "surface",
54
- side,
55
- value && "active",
56
- overlay && "overlay",
57
- bordered && "bordered",
58
- $ctx && $ctx[drawerType].offset.top && "offset-top",
59
- $ctx && $ctx[drawerType].offset.bottom && "offset-bottom",
60
- $ctx && $ctx[drawerType].fixed && "fixed",
61
- getBorderRadiusClasses(side, overlay, $ctx),
62
- $ctx && prepareZIndexClass($ctx, overlay, side),
63
- userClasses
64
- ]);
42
+ classes = createClasses(
43
+ [
44
+ side,
45
+ value && "active",
46
+ overlay && "overlay",
47
+ bordered && "bordered",
48
+ $ctx && $ctx[drawerType].offset.top && "offset-top",
49
+ $ctx && $ctx[drawerType].offset.bottom && "offset-bottom",
50
+ $ctx && $ctx[drawerType].fixed && "fixed",
51
+ $borderRadiusClasses,
52
+ $zIndexClass
53
+ ],
54
+ {
55
+ component: "q-drawer",
56
+ userClasses
57
+ }
58
+ );
65
59
  $:
66
60
  style = createStyles(
67
61
  {
@@ -69,18 +63,35 @@ $:
69
63
  },
70
64
  userStyles
71
65
  );
72
- function getBorderRadiusClasses(sideProp, overlayProp, context) {
73
- let prefix = "border-radius" + (sideProp === "left" ? "__right" : "__left");
74
- const shouldHaveRadius = (pos) => {
75
- if (!context)
76
- return void 0;
77
- let appbarEl = pos === "top" ? context["header"] : context["footer"];
78
- if (appbarEl && appbarEl.display && !context[drawerType].offset[pos] && !overlayProp)
79
- return void 0;
80
- return `${prefix}--${pos}`;
81
- };
82
- return createClasses([shouldHaveRadius("top"), shouldHaveRadius("bottom")]);
83
- }
66
+ $:
67
+ borderRadiusClasses = ctx && // No border radius if this isn't a layout drawer
68
+ derived(ctx, (context) => {
69
+ const borderSide = side === "left" ? "right" : "left";
70
+ const shouldHaveRadius = (pos) => {
71
+ let appBarEl = pos === "top" ? context["header"] : context["footer"];
72
+ return overlay || !appBarEl?.display || context[drawerType].offset[pos];
73
+ };
74
+ return createClasses(
75
+ [
76
+ shouldHaveRadius("top") && `top-${borderSide}-radius`,
77
+ shouldHaveRadius("bottom") && `bottom-${borderSide}-radius`
78
+ ],
79
+ {
80
+ component: "q-drawer"
81
+ }
82
+ );
83
+ });
84
+ $:
85
+ zIndexClass = ctx && derived(ctx, (context) => {
86
+ const drawer = side === "left" ? context.drawerLeft : context.drawerRight;
87
+ let pos;
88
+ for (pos of ["top", "bottom"]) {
89
+ if (!drawer.offset[pos] && overlay) {
90
+ drawer.overlay = true;
91
+ return "above";
92
+ }
93
+ }
94
+ });
84
95
  </script>
85
96
 
86
97
  <div use:clickOutside={hide} class={classes} {style} {...$$restProps}>
@@ -6,48 +6,51 @@
6
6
  bottom: 0;
7
7
  left: auto;
8
8
  height: 100%;
9
+ background-color: var(--surface);
10
+ color: var(--on-surface);
9
11
  transition:
10
12
  all var(--speed3),
11
13
  background-color 0s;
12
14
  overflow: auto;
13
15
  padding: 8px;
14
16
 
15
- &.fixed {
17
+ &.q-drawer--fixed {
16
18
  position: fixed;
17
19
  }
18
20
 
19
- &.left {
21
+ &.q-drawer--left {
20
22
  left: 0px;
21
23
  transform: translate(-100%);
22
24
  width: var(--left-drawer-width);
23
- &.bordered {
25
+ &.q-drawer--bordered {
24
26
  border-right: 0.0625rem solid var(--outline);
25
27
  }
26
28
  }
27
29
 
28
- &.right {
30
+ &.q-drawer--right {
29
31
  right: 0px;
30
32
  transform: translate(100%);
31
33
  width: var(--right-drawer-width);
32
34
 
33
- &.bordered {
35
+ &.q-drawer--bordered {
34
36
  border-left: 0.0625rem solid var(--outline);
35
37
  }
36
38
  }
37
39
 
38
- &.active {
40
+ &.q-drawer--active {
39
41
  transform: translate(0);
40
42
  }
41
43
 
42
- &.offset {
44
+ &.q-drawer--offset {
43
45
  &-top {
44
46
  top: var(--header-height);
45
47
  height: calc(100% - var(--header-height));
46
48
 
47
- &.offset-bottom {
49
+ &.q-drawer--offset-bottom {
48
50
  height: calc(100% - var(--header-height) - var(--footer-height));
49
51
  }
50
52
  }
53
+
51
54
  &-bottom {
52
55
  bottom: var(--footer-height);
53
56
  height: calc(100% - var(--footer-height));
@@ -1,17 +1,21 @@
1
1
  <script>import { getContext } from "svelte";
2
2
  import { createClasses, createStyles } from "../../utils/props";
3
3
  import { useSize } from "../../composables/use-size";
4
- export let value = true, bordered = false, elevated = false, height = void 0, userClasses = void 0, userStyles = void 0;
4
+ export let value = true, border = false, elevate = false, height = void 0, userClasses = void 0, userStyles = void 0;
5
5
  export { userClasses as class, userStyles as style };
6
6
  let ctx = getContext("layout");
7
7
  $:
8
- heightStyle = $ctx && useSize(height).style;
9
- $:
10
- classes = createClasses(["q-footer", $ctx && $ctx.footer?.fixed && "fixed", userClasses]);
8
+ classes = createClasses(
9
+ [border && "bordered", elevate && "elevated", $ctx?.footer?.fixed && "fixed"],
10
+ {
11
+ component: "q-footer",
12
+ userClasses
13
+ }
14
+ );
11
15
  $:
12
16
  style = createStyles(
13
17
  {
14
- "--footer-height": heightStyle
18
+ height: !ctx && useSize(height).style
15
19
  },
16
20
  userStyles
17
21
  );
@@ -3,8 +3,8 @@ import type { QFooterProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  value?: QFooterProps["value"];
6
- bordered?: QFooterProps["bordered"];
7
- elevated?: QFooterProps["elevated"];
6
+ border?: QFooterProps["border"];
7
+ elevate?: QFooterProps["elevate"];
8
8
  height?: QFooterProps["height"];
9
9
  class?: string | undefined;
10
10
  style?: string | undefined;
@@ -2,4 +2,27 @@
2
2
  width: 100%;
3
3
  height: var(--footer-height);
4
4
  transition: all var(--speed3);
5
+ background-color: var(--surface);
6
+ color: var(--on-surface);
7
+ padding: 0 1rem;
8
+
9
+ nav {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: flex-start;
13
+ white-space: nowrap;
14
+ gap: 1rem;
15
+
16
+ > * {
17
+ margin: 0;
18
+ }
19
+ }
20
+
21
+ &--bordered {
22
+ border-top: solid 0.0625rem var(--outline);
23
+ }
24
+
25
+ &--elevated {
26
+ @include elevate(1, "top");
27
+ }
5
28
  }
@@ -9,12 +9,12 @@ export interface QFooterProps extends NativeProps {
9
9
  * Determines whether the footer has a border around it. (not supported yet)
10
10
  * @default false
11
11
  */
12
- bordered?: boolean;
12
+ border?: boolean;
13
13
  /**
14
14
  * Determines whether the footer has an elevated effect. (not supported yet)
15
15
  * @default false
16
16
  */
17
- elevated?: boolean;
17
+ elevate?: boolean;
18
18
  /**
19
19
  * The height of the footer. Can be specified with a CSS unit. If not specified, "px" will be used. (not supported yet)
20
20
  * @default undefined
@@ -0,0 +1,28 @@
1
+ <script>import { createClasses } from "../../utils/props";
2
+ import { getContext } from "svelte";
3
+ import QToolbar from "../toolbar/QToolbar.svelte";
4
+ export let inset = false, elevate = false, border = false, userClasses = void 0, userStyles = void 0;
5
+ export { userClasses as class, userStyles as style };
6
+ let ctx = getContext("layout");
7
+ $:
8
+ if ($ctx === void 0) {
9
+ console.warn("QHeader should be used inside QLayout");
10
+ }
11
+ $:
12
+ classes = createClasses([$ctx?.header?.fixed && "fixed"], {
13
+ component: "q-header",
14
+ userClasses
15
+ });
16
+ $:
17
+ if ($ctx?.header !== void 0) {
18
+ if (userStyles?.includes("display: none")) {
19
+ $ctx.header.display = false;
20
+ } else {
21
+ $ctx.header.display = true;
22
+ }
23
+ }
24
+ </script>
25
+
26
+ <QToolbar {inset} {elevate} {border} class={classes} role="header" {...$$restProps}>
27
+ <slot />
28
+ </QToolbar>
@@ -0,0 +1,24 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { QHeaderProps } from "./props";
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ inset?: QHeaderProps["inset"];
7
+ elevate?: QHeaderProps["elevate"];
8
+ border?: QHeaderProps["border"];
9
+ class?: string | undefined;
10
+ style?: string | undefined;
11
+ };
12
+ events: {
13
+ [evt: string]: CustomEvent<any>;
14
+ };
15
+ slots: {
16
+ default: {};
17
+ };
18
+ };
19
+ type QHeaderProps_ = typeof __propDef.props;
20
+ export { QHeaderProps_ as QHeaderProps };
21
+ export type QHeaderEvents = typeof __propDef.events;
22
+ export type QHeaderSlots = typeof __propDef.slots;
23
+ export default class QHeader extends SvelteComponent<QHeaderProps, QHeaderEvents, QHeaderSlots> {
24
+ }
@@ -0,0 +1,15 @@
1
+ import type { NativeProps } from "../../utils/types";
2
+ export interface QHeaderProps extends NativeProps {
3
+ /**
4
+ * @default false
5
+ */
6
+ inset?: boolean;
7
+ /**
8
+ * @default false
9
+ */
10
+ elevate?: boolean;
11
+ /**
12
+ * @default false
13
+ */
14
+ border?: boolean;
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -9,6 +9,7 @@ import QCodeBlock from "./codeBlock/QCodeBlock.svelte";
9
9
  import QDialog from "./dialog/QDialog.svelte";
10
10
  import QDrawer from "./drawer/QDrawer.svelte";
11
11
  import QFooter from "./footer/QFooter.svelte";
12
+ import QHeader from "./header/QHeader.svelte";
12
13
  import QIcon from "./icon/QIcon.svelte";
13
14
  import QInput from "./input/QInput.svelte";
14
15
  import QSelect from "./select/QSelect.svelte";
@@ -27,4 +28,4 @@ import QToggle from "./toggle/QToggle.svelte";
27
28
  import QToolbar from "./toolbar/QToolbar.svelte";
28
29
  import QToolbarTitle from "./toolbar/QToolbarTitle.svelte";
29
30
  import QTooltip from "./tooltip/QTooltip.svelte";
30
- export { QAvatar, QBtn, QCard, QCardSection, QCardActions, QCheckbox, QChip, QCodeBlock, QDialog, QDrawer, QFooter, QIcon, QInput, QSelect, QLayout, QList, QItem, QItemSection, QLinearProgress, QRadio, QRailbar, QSeparator, QTabs, QTab, QTable, QToggle, QToolbar, QToolbarTitle, QTooltip, };
31
+ export { QAvatar, QBtn, QCard, QCardSection, QCardActions, QCheckbox, QChip, QCodeBlock, QDialog, QDrawer, QFooter, QHeader, QIcon, QInput, QSelect, QLayout, QList, QItem, QItemSection, QLinearProgress, QRadio, QRailbar, QSeparator, QTabs, QTab, QTable, QToggle, QToolbar, QToolbarTitle, QTooltip, };
@@ -9,6 +9,7 @@ import QCodeBlock from "./codeBlock/QCodeBlock.svelte";
9
9
  import QDialog from "./dialog/QDialog.svelte";
10
10
  import QDrawer from "./drawer/QDrawer.svelte";
11
11
  import QFooter from "./footer/QFooter.svelte";
12
+ import QHeader from "./header/QHeader.svelte";
12
13
  import QIcon from "./icon/QIcon.svelte";
13
14
  import QInput from "./input/QInput.svelte";
14
15
  import QSelect from "./select/QSelect.svelte";
@@ -27,4 +28,4 @@ import QToggle from "./toggle/QToggle.svelte";
27
28
  import QToolbar from "./toolbar/QToolbar.svelte";
28
29
  import QToolbarTitle from "./toolbar/QToolbarTitle.svelte";
29
30
  import QTooltip from "./tooltip/QTooltip.svelte";
30
- export { QAvatar, QBtn, QCard, QCardSection, QCardActions, QCheckbox, QChip, QCodeBlock, QDialog, QDrawer, QFooter, QIcon, QInput, QSelect, QLayout, QList, QItem, QItemSection, QLinearProgress, QRadio, QRailbar, QSeparator, QTabs, QTab, QTable, QToggle, QToolbar, QToolbarTitle, QTooltip, };
31
+ export { QAvatar, QBtn, QCard, QCardSection, QCardActions, QCheckbox, QChip, QCodeBlock, QDialog, QDrawer, QFooter, QHeader, QIcon, QInput, QSelect, QLayout, QList, QItem, QItemSection, QLinearProgress, QRadio, QRailbar, QSeparator, QTabs, QTab, QTable, QToggle, QToolbar, QToolbarTitle, QTooltip, };