@quaffui/quaff 0.1.0-prealpha14 → 0.1.0-prealpha16

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 (155) hide show
  1. package/dist/components/avatar/QAvatar.svelte +46 -28
  2. package/dist/components/avatar/QAvatar.svelte.d.ts +0 -1
  3. package/dist/components/avatar/docs.d.ts +1 -1
  4. package/dist/components/avatar/docs.js +1 -1
  5. package/dist/components/avatar/docs.props.js +2 -0
  6. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +3 -9
  7. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +8 -18
  8. package/dist/components/breadcrumbs/docs.d.ts +1 -1
  9. package/dist/components/breadcrumbs/docs.js +1 -1
  10. package/dist/components/breadcrumbs/docs.props.js +2 -0
  11. package/dist/components/button/QBtn.svelte +15 -20
  12. package/dist/components/button/docs.d.ts +1 -1
  13. package/dist/components/button/docs.js +1 -1
  14. package/dist/components/button/docs.props.js +2 -0
  15. package/dist/components/button/index.scss +6 -1
  16. package/dist/components/card/QCard.svelte +8 -9
  17. package/dist/components/card/QCardActions.svelte +6 -10
  18. package/dist/components/card/QCardSection.svelte +7 -9
  19. package/dist/components/card/docs.d.ts +3 -3
  20. package/dist/components/card/docs.js +3 -3
  21. package/dist/components/card/docs.props.js +2 -0
  22. package/dist/components/checkbox/QCheckbox.svelte +2 -8
  23. package/dist/components/checkbox/docs.d.ts +1 -1
  24. package/dist/components/checkbox/docs.js +1 -1
  25. package/dist/components/checkbox/docs.props.js +2 -0
  26. package/dist/components/chip/QChip.svelte +20 -24
  27. package/dist/components/chip/docs.d.ts +1 -1
  28. package/dist/components/chip/docs.js +1 -1
  29. package/dist/components/chip/docs.props.js +2 -0
  30. package/dist/components/codeBlock/QCodeBlock.svelte +8 -12
  31. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +1 -0
  32. package/dist/components/codeBlock/docs.props.js +3 -1
  33. package/dist/components/codeBlock/props.d.ts +1 -1
  34. package/dist/components/dialog/QDialog.svelte +38 -47
  35. package/dist/components/dialog/QDialog.svelte.d.ts +6 -5
  36. package/dist/components/dialog/docs.d.ts +1 -1
  37. package/dist/components/dialog/docs.js +1 -1
  38. package/dist/components/dialog/docs.props.js +6 -4
  39. package/dist/components/dialog/index.scss +5 -4
  40. package/dist/components/dialog/props.d.ts +4 -4
  41. package/dist/components/drawer/QDrawer.svelte +1 -4
  42. package/dist/components/drawer/QDrawer.svelte.d.ts +0 -7
  43. package/dist/components/drawer/docs.d.ts +1 -1
  44. package/dist/components/drawer/docs.js +1 -1
  45. package/dist/components/drawer/docs.props.js +2 -0
  46. package/dist/components/footer/QFooter.svelte +7 -5
  47. package/dist/components/footer/docs.d.ts +1 -1
  48. package/dist/components/footer/docs.js +1 -1
  49. package/dist/components/footer/docs.props.js +2 -0
  50. package/dist/components/header/docs.props.js +2 -0
  51. package/dist/components/icon/QIcon.svelte +9 -16
  52. package/dist/components/icon/QIcon.svelte.d.ts +0 -1
  53. package/dist/components/icon/docs.d.ts +1 -1
  54. package/dist/components/icon/docs.js +1 -1
  55. package/dist/components/icon/docs.props.js +4 -2
  56. package/dist/components/icon/props.d.ts +2 -2
  57. package/dist/components/input/docs.d.ts +1 -1
  58. package/dist/components/input/docs.js +1 -1
  59. package/dist/components/input/docs.props.js +2 -0
  60. package/dist/components/layout/docs.d.ts +1 -1
  61. package/dist/components/layout/docs.js +1 -1
  62. package/dist/components/layout/docs.props.js +2 -0
  63. package/dist/components/list/QItem.svelte +25 -25
  64. package/dist/components/list/QItemSection.svelte +3 -9
  65. package/dist/components/list/QList.svelte +13 -13
  66. package/dist/components/list/docs.d.ts +1 -1
  67. package/dist/components/list/docs.js +1 -1
  68. package/dist/components/list/docs.props.js +2 -0
  69. package/dist/components/list/props.d.ts +1 -1
  70. package/dist/components/list/props.js +1 -1
  71. package/dist/components/private/QApi.svelte +14 -7
  72. package/dist/components/private/QApi.svelte.d.ts +1 -1
  73. package/dist/components/private/QDocs.svelte +3 -13
  74. package/dist/components/private/QDocs.svelte.d.ts +1 -1
  75. package/dist/components/private/QDocsSection.svelte +6 -14
  76. package/dist/components/private/QDocsSection.svelte.d.ts +7 -17
  77. package/dist/components/progress/QCircularProgress.svelte +13 -9
  78. package/dist/components/progress/QLinearProgress.svelte +17 -23
  79. package/dist/components/progress/QLinearProgress.svelte.d.ts +0 -1
  80. package/dist/components/progress/docs.d.ts +1 -1
  81. package/dist/components/progress/docs.js +1 -1
  82. package/dist/components/progress/docs.props.js +2 -0
  83. package/dist/components/progress/index.scss +20 -3
  84. package/dist/components/radio/QRadio.svelte +2 -8
  85. package/dist/components/radio/docs.d.ts +1 -1
  86. package/dist/components/radio/docs.js +1 -1
  87. package/dist/components/radio/docs.props.js +3 -1
  88. package/dist/components/radio/props.d.ts +1 -1
  89. package/dist/components/railbar/docs.d.ts +1 -1
  90. package/dist/components/railbar/docs.js +1 -1
  91. package/dist/components/railbar/docs.props.js +2 -0
  92. package/dist/components/select/docs.d.ts +1 -1
  93. package/dist/components/select/docs.js +1 -1
  94. package/dist/components/select/docs.props.js +2 -0
  95. package/dist/components/separator/QSeparator.svelte +38 -44
  96. package/dist/components/separator/docs.d.ts +1 -1
  97. package/dist/components/separator/docs.js +1 -1
  98. package/dist/components/separator/docs.props.js +2 -0
  99. package/dist/components/table/QTable.svelte +8 -15
  100. package/dist/components/table/docs.d.ts +1 -1
  101. package/dist/components/table/docs.js +1 -1
  102. package/dist/components/table/docs.props.js +2 -0
  103. package/dist/components/tabs/QTab.svelte +2 -7
  104. package/dist/components/tabs/QTabs.svelte +2 -6
  105. package/dist/components/tabs/docs.d.ts +1 -1
  106. package/dist/components/tabs/docs.js +1 -1
  107. package/dist/components/tabs/docs.props.js +3 -1
  108. package/dist/components/tabs/props.js +1 -1
  109. package/dist/components/toggle/QToggle.svelte +7 -15
  110. package/dist/components/toggle/docs.d.ts +1 -1
  111. package/dist/components/toggle/docs.js +1 -1
  112. package/dist/components/toggle/docs.props.js +2 -0
  113. package/dist/components/toolbar/QToolbar.svelte +12 -16
  114. package/dist/components/toolbar/QToolbar.svelte.d.ts +0 -1
  115. package/dist/components/toolbar/docs.d.ts +1 -1
  116. package/dist/components/toolbar/docs.js +1 -1
  117. package/dist/components/toolbar/docs.props.js +2 -0
  118. package/dist/components/tooltip/QTooltip.svelte +10 -8
  119. package/dist/components/tooltip/docs.d.ts +1 -1
  120. package/dist/components/tooltip/docs.js +1 -1
  121. package/dist/components/tooltip/docs.props.js +2 -0
  122. package/dist/components/tooltip/index.scss +1 -0
  123. package/dist/composables/index.d.ts +3 -3
  124. package/dist/composables/index.js +3 -3
  125. package/dist/composables/{use-size.d.ts → useSize.d.ts} +1 -1
  126. package/dist/composables/{use-size.js → useSize.js} +1 -1
  127. package/dist/css/fonts.scss +16 -3
  128. package/dist/css/index.css +1 -1
  129. package/dist/css/mixins/field-mixins.scss +9 -8
  130. package/dist/css/mixins.scss +3 -1
  131. package/dist/css/ripple.scss +9 -2
  132. package/dist/css/shared/q-field.scss +62 -49
  133. package/dist/css/theme/colors.module.scss +12 -12
  134. package/dist/global.d.ts +1 -1
  135. package/dist/helpers/clickOutside.d.ts +2 -2
  136. package/dist/helpers/clickOutside.js +3 -3
  137. package/dist/helpers/ripple.js +13 -11
  138. package/dist/helpers/version.d.ts +1 -1
  139. package/dist/helpers/version.js +1 -1
  140. package/dist/stores/QTheme.js +5 -6
  141. package/dist/stores/Quaff.js +1 -1
  142. package/dist/utils/clipboard.js +2 -2
  143. package/dist/utils/colors.js +2 -1
  144. package/dist/utils/dom.js +4 -4
  145. package/dist/utils/props.d.ts +2 -2
  146. package/dist/utils/props.js +5 -5
  147. package/dist/utils/string.js +1 -1
  148. package/dist/utils/types.d.ts +2 -2
  149. package/dist/utils/types.json +24 -1
  150. package/dist/utils/watchable.js +1 -1
  151. package/package.json +7 -7
  152. /package/dist/composables/{use-align.d.ts → useAlign.d.ts} +0 -0
  153. /package/dist/composables/{use-align.js → useAlign.js} +0 -0
  154. /package/dist/composables/{use-router-link.d.ts → useRouterLink.d.ts} +0 -0
  155. /package/dist/composables/{use-router-link.js → useRouterLink.js} +0 -0
@@ -1,61 +1,41 @@
1
1
  <script>import { clickOutsideDialog } from "../../helpers";
2
- import { createClasses } from "../../utils";
3
- import { createEventDispatcher, onMount } from "svelte";
2
+ import { createEventDispatcher } from "svelte";
4
3
  import { QBtn } from "../..";
5
- export let noBtn = false, btnContent = void 0, btnAttrs = {}, position = "default", modal = false, fullscreen = false, persistent = false, userClasses = void 0;
4
+ export let button = false, buttonLabel = void 0, buttonProps = {}, position = "default", modal = false, fullscreen = false, persistent = false, userClasses = "", value = false;
6
5
  export { userClasses as class };
7
6
  const emit = createEventDispatcher();
8
7
  let dialogElement;
9
- let opened = false;
10
- onMount(() => {
11
- opened = dialogElement.open;
12
- dialogElement.style.display = opened ? "block" : "none";
13
- });
8
+ const ANIMATION_DURATION = 300;
14
9
  $:
15
- canHideOnClickOutside = opened && persistent !== true;
16
- $:
17
- positionClass = ["top", "right", "bottom", "left"].includes(position) ? position : void 0;
18
- $:
19
- classes = createClasses(
20
- [opened && "active", positionClass, modal && "modal", fullscreen && "max"],
21
- {
22
- component: "q-dialog",
23
- userClasses
10
+ if (dialogElement) {
11
+ if (value) {
12
+ dialogElement.style.visibility = "visible";
13
+ modal ? dialogElement.showModal() : dialogElement.show();
14
+ } else {
15
+ dialogElement.close();
16
+ setTimeout(() => {
17
+ dialogElement.style.visibility = "hidden";
18
+ }, ANIMATION_DURATION);
24
19
  }
25
- );
26
- export function hide() {
27
- if (dialogElement && dialogElement.open) {
28
- dialogElement.close();
29
- opened = false;
30
- setTimeout(() => {
31
- dialogElement.style.display = "none";
32
- }, 250);
33
20
  }
21
+ $:
22
+ canHideOnClickOutside = value && !persistent;
23
+ export function hide() {
24
+ value = false;
34
25
  }
35
26
  export function show() {
36
- if (dialogElement && !dialogElement.open) {
37
- modal ? dialogElement.showModal() : dialogElement.show();
38
- opened = true;
39
- dialogElement.style.display = "block";
40
- }
27
+ value = true;
41
28
  }
42
29
  export function toggle(e) {
43
- if (dialogElement) {
44
- opened = !opened;
45
- if (dialogElement.open) {
46
- hide();
47
- } else {
48
- show();
49
- }
50
- }
51
- e.stopPropagation();
30
+ value = !value;
31
+ e?.stopPropagation();
52
32
  }
53
33
  function addAnimation() {
54
- if (persistent && opened) {
34
+ if (persistent && value) {
55
35
  dialogElement?.classList.add("animating");
56
36
  setTimeout(() => {
57
37
  dialogElement?.classList.remove("animating");
58
- }, 150);
38
+ }, ANIMATION_DURATION);
59
39
  }
60
40
  }
61
41
  function handleKeyboardHide(e) {
@@ -75,17 +55,28 @@ function handleClickHide() {
75
55
  }
76
56
  </script>
77
57
 
78
- {#if noBtn === false}
79
- <QBtn {...btnAttrs} on:click={toggle} on:click={(event) => emit("btnClick", event)}>
80
- <slot name="button">
81
- {btnContent || ""}
82
- </slot>
58
+ {#if button}
59
+ <QBtn
60
+ {...buttonProps}
61
+ label={buttonLabel}
62
+ on:click={toggle}
63
+ on:click={(event) => emit("buttonClick", event)}
64
+ >
65
+ <slot name="button" />
83
66
  </QBtn>
84
67
  {/if}
85
68
 
86
69
  <dialog
87
70
  use:clickOutsideDialog={handleClickHide}
88
- class={classes}
71
+ class="q-dialog {userClasses}"
72
+ class:q-dialog--active={value}
73
+ class:q-dialog--top={position === "top"}
74
+ class:q-dialog--right={position === "right"}
75
+ class:q-dialog--bottom={position === "bottom"}
76
+ class:q-dialog--left={position === "left"}
77
+ class:q-dialog--modal={modal}
78
+ class:q-dialog--fullscreen={fullscreen}
79
+ class:q-dialog--persistent={persistent}
89
80
  {...$$restProps}
90
81
  bind:this={dialogElement}
91
82
  on:cancel={handleKeyboardHide}
@@ -3,20 +3,21 @@ import type { QDialogProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  [x: string]: any;
6
- noBtn?: QDialogProps["noBtn"];
7
- btnContent?: QDialogProps["btnContent"];
8
- btnAttrs?: QDialogProps["btnAttrs"];
6
+ button?: QDialogProps["button"];
7
+ buttonLabel?: QDialogProps["buttonLabel"];
8
+ buttonProps?: QDialogProps["buttonProps"];
9
9
  position?: QDialogProps["position"];
10
10
  modal?: QDialogProps["modal"];
11
11
  fullscreen?: QDialogProps["fullscreen"];
12
12
  persistent?: QDialogProps["persistent"];
13
13
  class?: string | null | undefined;
14
+ value?: boolean | undefined;
14
15
  hide?: (() => void) | undefined;
15
16
  show?: (() => void) | undefined;
16
- toggle?: ((e: MouseEvent) => void) | undefined;
17
+ toggle?: ((e?: MouseEvent) => void) | undefined;
17
18
  };
18
19
  events: {
19
- btnClick: CustomEvent<any>;
20
+ buttonClick: CustomEvent<any>;
20
21
  } & {
21
22
  [evt: string]: CustomEvent<any>;
22
23
  };
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QDialogDocs: QComponentDocs;
2
+ export declare const QDialogDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QDialogDocsProps } from "./docs.props";
2
- export let QDialogDocs = {
2
+ export const QDialogDocs = {
3
3
  name: "QDialog",
4
4
  description: "Dialogs provide important prompts in a user flow.",
5
5
  docs: {
@@ -1,3 +1,5 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 4086c9cbacac3999316434c5d965375c
1
3
  export const QBtnDocsProps = [
2
4
  {
3
5
  name: "disable",
@@ -114,7 +116,7 @@ export const QDialogDocsProps = [
114
116
  default: "true",
115
117
  },
116
118
  {
117
- name: "noBtn",
119
+ name: "button",
118
120
  type: "boolean",
119
121
  optional: true,
120
122
  clickableType: false,
@@ -122,15 +124,15 @@ export const QDialogDocsProps = [
122
124
  default: "false",
123
125
  },
124
126
  {
125
- name: "btnContent",
127
+ name: "buttonLabel",
126
128
  type: "string",
127
129
  optional: true,
128
130
  clickableType: false,
129
- description: "The content to be displayed on the dialog button.",
131
+ description: 'The label of the trigger button. Requires "button" to be set.',
130
132
  default: "undefined",
131
133
  },
132
134
  {
133
- name: "btnAttrs",
135
+ name: "buttonProps",
134
136
  type: "QBtnProps",
135
137
  optional: true,
136
138
  clickableType: false,
@@ -21,6 +21,7 @@
21
21
  0s background-color;
22
22
  transform: translate(-50%, -4rem);
23
23
  animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);
24
+ transform-origin: top left;
24
25
 
25
26
  &:is(&--active, [open]) {
26
27
  opacity: 1;
@@ -29,7 +30,7 @@
29
30
  }
30
31
 
31
32
  &::backdrop {
32
- display: none;
33
+ visibility: hidden;
33
34
  }
34
35
 
35
36
  &:not(&--left, &--right, &--top, &--bottom) {
@@ -57,7 +58,7 @@
57
58
  transform: translate(-50%, 0);
58
59
  }
59
60
 
60
- &:is(&--active, [open]):is(&--left, &--right, &--top, &--bottom, &--max) {
61
+ &:is(&--active, [open]):is(&--left, &--right, &--top, &--bottom, &--fullscreen) {
61
62
  transform: translate(0, 0);
62
63
  }
63
64
 
@@ -111,7 +112,7 @@
111
112
  transform: translateY(100%);
112
113
  }
113
114
 
114
- &--max {
115
+ &--fullscreen {
115
116
  top: 0;
116
117
  left: 0;
117
118
  right: auto;
@@ -152,7 +153,7 @@
152
153
  }
153
154
 
154
155
  &--modal::backdrop {
155
- display: block;
156
+ visibility: visible;
156
157
  background-color: rgba(0, 0, 0, 0.5);
157
158
  }
158
159
 
@@ -12,17 +12,17 @@ export interface QDialogProps extends NativeProps, HTMLAttributes<HTMLDialogElem
12
12
  * Wether the dialog should have a trigger button or not.
13
13
  * @default false
14
14
  */
15
- noBtn?: boolean;
15
+ button?: boolean;
16
16
  /**
17
- * The content to be displayed on the dialog button.
17
+ * The label of the trigger button. Requires "button" to be set.
18
18
  * @default undefined
19
19
  */
20
- btnContent?: string;
20
+ buttonLabel?: string;
21
21
  /**
22
22
  * Additional attributes for the dialog button.
23
23
  * @default {}
24
24
  */
25
- btnAttrs?: QBtnProps;
25
+ buttonProps?: QBtnProps;
26
26
  /**
27
27
  * The position of the dialog relative to the viewport.
28
28
  * @default "default"
@@ -4,13 +4,10 @@ import { clickOutside } from "../../helpers";
4
4
  import { createClasses, createStyles } from "../../utils";
5
5
  import { getContext } from "svelte";
6
6
  import { derived } from "svelte/store";
7
- export let value = false, 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
+ export let value = false, side = "left", width = 300, bordered = false, overlay = false, persistent = false, userClasses = void 0, userStyles = void 0;
8
8
  export { userClasses as class, userStyles as style };
9
9
  $:
10
10
  canHideOnClickOutside = value === true && persistent === false || overlay === true;
11
- $:
12
- belowBreakpoint = behavior === "mobile" === true || behavior !== "desktop" && /** TODO: Get Layout width */
13
- 1300 <= breakpoint;
14
11
  $:
15
12
  widthStyle = !$ctx && useSize(width).style;
16
13
  $:
@@ -6,16 +6,9 @@ declare const __propDef: {
6
6
  value?: QDrawerProps["value"];
7
7
  side?: QDrawerProps["side"];
8
8
  width?: QDrawerProps["width"];
9
- breakpoint?: QDrawerProps["breakpoint"];
10
- showIfAbove?: QDrawerProps["showIfAbove"];
11
- behavior?: QDrawerProps["behavior"];
12
9
  bordered?: QDrawerProps["bordered"];
13
- elevated?: QDrawerProps["elevated"];
14
10
  overlay?: QDrawerProps["overlay"];
15
11
  persistent?: QDrawerProps["persistent"];
16
- noSwipeOpen?: QDrawerProps["noSwipeOpen"];
17
- noSwipeClose?: QDrawerProps["noSwipeClose"];
18
- noSwipeBackdrop?: QDrawerProps["noSwipeBackdrop"];
19
12
  class?: string | null | undefined;
20
13
  style?: string | null | undefined;
21
14
  show?: ((e?: MouseEvent) => void) | undefined;
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QDrawerDocs: QComponentDocs;
2
+ export declare const QDrawerDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QDrawerDocsProps } from "./docs.props";
2
- export let QDrawerDocs = {
2
+ export const QDrawerDocs = {
3
3
  name: "QDrawer",
4
4
  description: "Navigation drawers provide ergonomic access to destinations in an app",
5
5
  docs: {
@@ -1,3 +1,5 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 26351a76f5e5bdaa4daf1a4319e1d206
1
3
  export const QDrawerDocsProps = [
2
4
  {
3
5
  name: "value",
@@ -21,8 +21,10 @@ $:
21
21
  );
22
22
  </script>
23
23
 
24
- <footer class={classes} {style}>
25
- <nav>
26
- <slot />
27
- </nav>
28
- </footer>
24
+ {#if value}
25
+ <footer class={classes} {style}>
26
+ <nav>
27
+ <slot />
28
+ </nav>
29
+ </footer>
30
+ {/if}
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QFooterDocs: QComponentDocs;
2
+ export declare const QFooterDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QFooterDocsProps } from "./docs.props";
2
- export let QFooterDocs = {
2
+ export const QFooterDocs = {
3
3
  name: "QFooter",
4
4
  description: "Footers can be used to display navigation and key actions at the bottom of the screen.",
5
5
  docs: {
@@ -1,3 +1,5 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash c4c13f38059522fc7b5db2ae14765e9f
1
3
  export const QFooterDocsProps = [
2
4
  {
3
5
  name: "value",
@@ -1,3 +1,5 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 921eb52eb977e8c823f9b2c8af39279f
1
3
  export const QToolbarDocsProps = [
2
4
  {
3
5
  name: "inset",
@@ -1,22 +1,10 @@
1
1
  <script>import { useSize } from "../../composables";
2
- import { createClasses, createStyles } from "../../utils";
3
- export let size = "md", name = void 0, type = "outlined", filled = false, svg = void 0, img = void 0, imgAttributes = {}, color = void 0, userClasses = void 0, userStyles = void 0;
4
- export { userClasses as class, userStyles as style };
2
+ export let size = "md", name = void 0, type = "outlined", filled = false, svg = void 0, img = void 0, imgAttributes = {}, color = void 0, userClasses = "";
3
+ export { userClasses as class };
5
4
  $:
6
5
  sizeObj = useSize(size);
7
6
  $:
8
- classes = createClasses([type, filled && "filled", sizeObj.class], {
9
- component: "q-icon",
10
- userClasses,
11
- quaffClasses: [color && `text-${color}`]
12
- });
13
- $:
14
- style = createStyles(
15
- {
16
- "--size": sizeObj.style
17
- },
18
- userStyles
19
- );
7
+ sizeClass = sizeObj.class && sizeObj.class !== "md" ? `q-icon--${sizeObj.class}` : "";
20
8
  $:
21
9
  imgAttrs = {
22
10
  alt: "Quaff Image Icon",
@@ -24,7 +12,12 @@ $:
24
12
  };
25
13
  </script>
26
14
 
27
- <i class={classes} {style} {...$$restProps}>
15
+ <i
16
+ class="q-icon q-icon--{type} {sizeClass} {color ? `text-${color}` : ''} {userClasses}"
17
+ class:q-icon--filled={filled}
18
+ style:--size={sizeObj.style}
19
+ {...$$restProps}
20
+ >
28
21
  {#if name !== undefined}
29
22
  {name}
30
23
  {:else if img !== undefined}
@@ -12,7 +12,6 @@ declare const __propDef: {
12
12
  imgAttributes?: QIconProps["imgAttributes"];
13
13
  color?: QIconProps["color"];
14
14
  class?: string | null | undefined;
15
- style?: string | null | undefined;
16
15
  };
17
16
  events: {
18
17
  [evt: string]: CustomEvent<any>;
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QIconDocs: QComponentDocs;
2
+ export declare const QIconDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QIconDocsProps } from "./docs.props";
2
- export let QIconDocs = {
2
+ export const QIconDocs = {
3
3
  name: "QIcon",
4
4
  description: "This component allows you to insert icons within elements of the page. Supported cions are Material Symbols icons.",
5
5
  docs: {
@@ -1,3 +1,5 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 3f17452783c0d6c46d1ec71661554ebd
1
3
  export const QIconDocsProps = [
2
4
  {
3
5
  name: "size",
@@ -49,9 +51,9 @@ export const QIconDocsProps = [
49
51
  },
50
52
  {
51
53
  name: "imgAttributes",
52
- type: "Record<string, any>",
54
+ type: "HTMLImgAttributes",
53
55
  optional: true,
54
- clickableType: true,
56
+ clickableType: false,
55
57
  description: 'Additional attributes for the image element when using the `img` prop, as for example the "alt" attribute.',
56
58
  default: "{}",
57
59
  },
@@ -1,5 +1,5 @@
1
1
  import type { CssValue, NativeProps, QuaffSizes } from "../../utils";
2
- import type { HTMLAttributes } from "svelte/elements";
2
+ import type { HTMLAttributes, HTMLImgAttributes } from "svelte/elements";
3
3
  export type QIconSizeOptions = QuaffSizes | CssValue | number;
4
4
  export type QIconTypeOptions = "outlined" | "sharp" | "rounded";
5
5
  export interface QIconProps extends NativeProps, HTMLAttributes<HTMLElement> {
@@ -37,7 +37,7 @@ export interface QIconProps extends NativeProps, HTMLAttributes<HTMLElement> {
37
37
  * Additional attributes for the image element when using the `img` prop, as for example the "alt" attribute.
38
38
  * @default {}
39
39
  */
40
- imgAttributes?: Record<string, any>;
40
+ imgAttributes?: HTMLImgAttributes;
41
41
  /**
42
42
  * The color of the icon.
43
43
  * @default undefined
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QInputDocs: QComponentDocs;
2
+ export declare const QInputDocs: QComponentDocs;
@@ -1,4 +1,4 @@
1
- export let QInputDocs = {
1
+ export const QInputDocs = {
2
2
  name: "QInput",
3
3
  description: "QInput is a form component that allows users to input text. It supports different visual styles such as filled, outlined, and rounded, and it can also display hint text and custom error messages.",
4
4
  docs: {
@@ -1,3 +1,5 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 901937b41d79099a96a3713827911b68
1
3
  export const QInputDocsProps = [
2
4
  {
3
5
  name: "dense",
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QLayoutDocs: QComponentDocs;
2
+ export declare const QLayoutDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QLayoutDocsProps } from "./docs.props";
2
- export let QLayoutDocs = {
2
+ export const QLayoutDocs = {
3
3
  name: "QLayout",
4
4
  description: "The QLayout component is designed to be the skeleton of the entire page, with navigational elements such as header, railbars, drawers and footer. This component is not mandatory but it really helps structure the page.",
5
5
  docs: {
@@ -1,3 +1,5 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash cce7c92a645afcabe17eef05e3f16990
1
3
  export const QLayoutDocsProps = [
2
4
  {
3
5
  name: "view",
@@ -1,11 +1,10 @@
1
1
  <script>import { useRouterLink, isRouteActive } from "../../composables";
2
2
  import { ripple } from "../../helpers";
3
3
  import { Quaff } from "../../stores/Quaff";
4
- import { createClasses } from "../../utils";
5
4
  import { setContext, getContext } from "svelte";
6
5
  import { writable } from "svelte/store";
7
6
  import { QSeparator } from "../..";
8
- export let tag = "div", active = false, clickable = false, dense = false, tabindex = 0, href = void 0, to = void 0, disable = false, activeClass = void 0, replace = false, noRipple = false, userClasses = void 0;
7
+ export let tag = "div", active = false, clickable = false, dense = false, tabindex = 0, href = void 0, to = void 0, disable = false, activeClass = "", replace = false, noRipple = false, userClasses = "";
9
8
  export { userClasses as class };
10
9
  let hasMultipleLines = writable(false);
11
10
  setContext("hasMultipleLines", hasMultipleLines);
@@ -25,27 +24,6 @@ $:
25
24
  isClickable = isActionable && !disable;
26
25
  $:
27
26
  isActive = isRouteActive($Quaff.router, to);
28
- $:
29
- classes = createClasses(
30
- [
31
- $hasMultipleLines && "multiline",
32
- dense && "dense",
33
- (isActive || hasLink && active) && activeClass,
34
- (isActive || hasLink && active) && "active"
35
- ],
36
- {
37
- component: "q-item",
38
- quaffClasses: [linkClasses],
39
- userClasses
40
- }
41
- );
42
- $:
43
- attributes = {
44
- class: classes,
45
- tabindex: isClickable == true ? Number(tabindex) || 0 : void 0,
46
- "aria-disabled": isActionable === true && disable === true ? true : void 0,
47
- ...$$restProps
48
- };
49
27
  </script>
50
28
 
51
29
  {#if separatorOptions !== undefined}
@@ -53,11 +31,33 @@ $:
53
31
  {/if}
54
32
  {#if linkAttributes.href !== undefined}
55
33
  <!-- svelte-ignore a11y-missing-attribute -->
56
- <a use:ripple={{ disable: !isClickable || noRipple }} {...attributes} {...linkAttributes}>
34
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
35
+ <a
36
+ use:ripple={{ disable: !isClickable || noRipple }}
37
+ class="q-item {linkClasses} {userClasses}"
38
+ class:q-item--active={isActive || (hasLink && active)}
39
+ class:q-item--multiline={$hasMultipleLines}
40
+ class:q-item--dense={dense}
41
+ class:{activeClass}={isActive || (hasLink && active)}
42
+ tabindex={isClickable ? Number(tabindex) || 0 : -1}
43
+ aria-disabled={(isActionable && disable) || undefined}
44
+ {...linkAttributes}
45
+ {...$$restProps}
46
+ >
57
47
  <slot />
58
48
  </a>
59
49
  {:else}
60
- <svelte:element this={tag} {...attributes}>
50
+ <svelte:element
51
+ this={tag}
52
+ class="q-item {userClasses}"
53
+ class:q-item--active={isActive || (hasLink && active)}
54
+ class:q-item--multiline={$hasMultipleLines}
55
+ class:q-item--dense={dense}
56
+ class:{activeClass}={isActive || (hasLink && active)}
57
+ tabindex={isClickable ? Number(tabindex) || 0 : -1}
58
+ aria-disabled={(isActionable && disable) || undefined}
59
+ {...$$restProps}
60
+ >
61
61
  <slot />
62
62
  </svelte:element>
63
63
  {/if}
@@ -1,6 +1,5 @@
1
- <script>import { createClasses } from "../../utils";
2
- import { getContext } from "svelte";
3
- export let type = "content", userClasses = void 0;
1
+ <script>import { getContext } from "svelte";
2
+ export let type = "content", userClasses = "";
4
3
  export { userClasses as class };
5
4
  $:
6
5
  ctx = getContext("hasMultipleLines");
@@ -8,14 +7,9 @@ $:
8
7
  if (type === "content") {
9
8
  $ctx = $$slots.headline && [$$slots.line1, $$slots.line2, $$slots.line3].filter(Boolean).length >= 2;
10
9
  }
11
- $:
12
- classes = createClasses([type], {
13
- component: "q-item__section",
14
- userClasses
15
- });
16
10
  </script>
17
11
 
18
- <div class={classes} {...$$restProps}>
12
+ <div class="q-item__section q-item__section--{type} {userClasses}" {...$$restProps}>
19
13
  {#if type === "content"}
20
14
  {#if ![$$slots.headline, $$slots.line2, $$slots.line2, $$slots.line3].some(Boolean)}
21
15
  <slot />
@@ -1,22 +1,22 @@
1
- <script>import { createClasses } from "../../utils";
2
- import { onMount, setContext } from "svelte";
3
- export let bordered = false, roundedBorders = false, dense = false, separator = false, separatorOptions = {}, padding = false, tag = "div", userClasses = void 0;
1
+ <script>import { onMount, setContext } from "svelte";
2
+ export let bordered = false, roundedBorders = false, dense = false, separator = false, separatorOptions = {}, padding = false, tag = "div", userClasses = "";
4
3
  export { userClasses as class };
5
4
  let listElement;
6
5
  onMount(() => listElement.querySelector(".q-separator__wrapper:first-child")?.remove());
7
6
  $:
8
7
  setContext("separator", separator === true ? separatorOptions : void 0);
9
- $:
10
- classes = createClasses(
11
- [bordered && "bordered", dense && "dense", roundedBorders && "rounded"],
12
- {
13
- component: "q-list",
14
- quaffClasses: [padding && "q-py-sm"],
15
- userClasses
16
- }
17
- );
18
8
  </script>
19
9
 
20
- <svelte:element this={tag} class={classes} {...$$restProps} bind:this={listElement} on:scroll>
10
+ <svelte:element
11
+ this={tag}
12
+ class="q-list {userClasses}"
13
+ class:q-list--bordered={bordered}
14
+ class:q-list--rounded={roundedBorders}
15
+ class:q-list--dense={dense}
16
+ class:q-py-sm={padding}
17
+ {...$$restProps}
18
+ bind:this={listElement}
19
+ on:scroll
20
+ >
21
21
  <slot />
22
22
  </svelte:element>
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QListDocs: QComponentDocs;
2
+ export declare const QListDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QListDocsProps } from "./docs.props";
2
- export let QListDocs = {
2
+ export const QListDocs = {
3
3
  name: "QList",
4
4
  description: "The QList component is used to display a list of items with options for adding text, icons and actions.",
5
5
  docs: {