@quaffui/quaff 0.1.0-prealpha → 0.1.0-prealpha10

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 (186) hide show
  1. package/dist/components/avatar/QAvatar.svelte +8 -7
  2. package/dist/components/avatar/QAvatar.svelte.d.ts +4 -4
  3. package/dist/components/avatar/docs.d.ts +1 -1
  4. package/dist/components/avatar/index.scss +4 -1
  5. package/dist/components/avatar/props.d.ts +2 -2
  6. package/dist/components/avatar/props.js +1 -1
  7. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +4 -4
  8. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +4 -4
  9. package/dist/components/breadcrumbs/docs.d.ts +1 -1
  10. package/dist/components/button/QBtn.svelte +23 -9
  11. package/dist/components/button/QBtn.svelte.d.ts +6 -5
  12. package/dist/components/button/docs.d.ts +1 -1
  13. package/dist/components/button/docs.props.js +8 -0
  14. package/dist/components/button/index.scss +23 -3
  15. package/dist/components/button/props.d.ts +7 -2
  16. package/dist/components/card/QCard.svelte +1 -1
  17. package/dist/components/card/QCard.svelte.d.ts +4 -4
  18. package/dist/components/card/QCardActions.svelte +1 -1
  19. package/dist/components/card/QCardActions.svelte.d.ts +4 -4
  20. package/dist/components/card/QCardSection.svelte +1 -1
  21. package/dist/components/card/QCardSection.svelte.d.ts +4 -4
  22. package/dist/components/card/docs.props.js +1 -1
  23. package/dist/components/card/index.scss +4 -1
  24. package/dist/components/checkbox/QCheckbox.svelte.d.ts +4 -4
  25. package/dist/components/checkbox/index.scss +4 -0
  26. package/dist/components/chip/QChip.svelte +8 -2
  27. package/dist/components/chip/QChip.svelte.d.ts +4 -4
  28. package/dist/components/chip/docs.d.ts +1 -1
  29. package/dist/components/chip/docs.props.js +3 -3
  30. package/dist/components/chip/index.scss +4 -1
  31. package/dist/components/chip/props.d.ts +2 -2
  32. package/dist/components/codeBlock/QCodeBlock.svelte +8 -9
  33. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +5 -7
  34. package/dist/components/dialog/QDialog.svelte +34 -20
  35. package/dist/components/dialog/QDialog.svelte.d.ts +4 -5
  36. package/dist/components/dialog/docs.d.ts +1 -1
  37. package/dist/components/dialog/docs.props.js +10 -2
  38. package/dist/components/dialog/index.scss +150 -3
  39. package/dist/components/drawer/QDrawer.svelte +50 -38
  40. package/dist/components/drawer/QDrawer.svelte.d.ts +5 -4
  41. package/dist/components/drawer/docs.d.ts +1 -1
  42. package/dist/components/drawer/index.scss +14 -9
  43. package/dist/components/drawer/props.d.ts +2 -2
  44. package/dist/components/footer/QFooter.svelte +18 -4
  45. package/dist/components/footer/QFooter.svelte.d.ts +6 -6
  46. package/dist/components/footer/docs.d.ts +1 -1
  47. package/dist/components/footer/index.scss +23 -0
  48. package/dist/components/footer/props.d.ts +4 -4
  49. package/dist/components/header/QHeader.svelte +28 -0
  50. package/dist/components/header/QHeader.svelte.d.ts +24 -0
  51. package/dist/components/header/props.d.ts +15 -0
  52. package/dist/components/header/props.js +1 -0
  53. package/dist/components/icon/QIcon.svelte +11 -13
  54. package/dist/components/icon/QIcon.svelte.d.ts +5 -5
  55. package/dist/components/icon/docs.d.ts +1 -1
  56. package/dist/components/icon/docs.props.js +1 -1
  57. package/dist/components/icon/index.scss +63 -6
  58. package/dist/components/icon/props.d.ts +3 -3
  59. package/dist/components/index.d.ts +3 -1
  60. package/dist/components/index.js +3 -1
  61. package/dist/components/input/QInput.svelte.d.ts +4 -4
  62. package/dist/components/input/docs.d.ts +1 -1
  63. package/dist/components/input/props.d.ts +1 -1
  64. package/dist/components/layout/QLayout.svelte.d.ts +4 -4
  65. package/dist/components/layout/docs.d.ts +1 -1
  66. package/dist/components/layout/index.scss +93 -76
  67. package/dist/components/list/QItem.svelte +1 -1
  68. package/dist/components/list/QItem.svelte.d.ts +4 -4
  69. package/dist/components/list/QItemSection.svelte.d.ts +4 -4
  70. package/dist/components/list/QList.svelte.d.ts +4 -4
  71. package/dist/components/list/docs.d.ts +2 -0
  72. package/dist/components/list/docs.js +11 -0
  73. package/dist/components/list/docs.props.js +1 -1
  74. package/dist/components/list/index.scss +7 -0
  75. package/dist/components/private/ContextReseter.svelte.d.ts +2 -2
  76. package/dist/components/private/QApi.svelte +25 -22
  77. package/dist/components/private/QApi.svelte.d.ts +2 -2
  78. package/dist/components/private/QDocs.svelte +38 -10
  79. package/dist/components/private/QDocs.svelte.d.ts +3 -3
  80. package/dist/components/private/QDocsSection.svelte +2 -2
  81. package/dist/components/private/QDocsSection.svelte.d.ts +2 -2
  82. package/dist/components/progress/QCircularProgress.svelte +4 -3
  83. package/dist/components/progress/QCircularProgress.svelte.d.ts +5 -5
  84. package/dist/components/progress/QLinearProgress.svelte +8 -2
  85. package/dist/components/progress/QLinearProgress.svelte.d.ts +4 -4
  86. package/dist/components/progress/docs.d.ts +2 -0
  87. package/dist/components/progress/docs.js +11 -0
  88. package/dist/components/progress/docs.props.d.ts +8 -0
  89. package/dist/components/progress/docs.props.js +42 -0
  90. package/dist/components/progress/index.scss +15 -0
  91. package/dist/components/progress/props.d.ts +26 -9
  92. package/dist/components/progress/props.js +1 -7
  93. package/dist/components/radio/QRadio.svelte.d.ts +4 -4
  94. package/dist/components/radio/docs.d.ts +1 -1
  95. package/dist/components/railbar/QRailbar.svelte +48 -29
  96. package/dist/components/railbar/QRailbar.svelte.d.ts +5 -5
  97. package/dist/components/railbar/docs.d.ts +2 -0
  98. package/dist/components/railbar/docs.js +11 -0
  99. package/dist/components/railbar/index.scss +39 -0
  100. package/dist/components/railbar/props.d.ts +11 -3
  101. package/dist/components/railbar/props.js +1 -7
  102. package/dist/components/select/QSelect.svelte +6 -4
  103. package/dist/components/select/QSelect.svelte.d.ts +4 -4
  104. package/dist/components/select/docs.d.ts +1 -1
  105. package/dist/components/select/docs.props.js +2 -2
  106. package/dist/components/select/index.scss +8 -2
  107. package/dist/components/select/props.d.ts +1 -1
  108. package/dist/components/separator/QSeparator.svelte +1 -1
  109. package/dist/components/separator/QSeparator.svelte.d.ts +4 -4
  110. package/dist/components/separator/docs.d.ts +2 -0
  111. package/dist/components/separator/docs.js +11 -0
  112. package/dist/components/separator/props.d.ts +1 -1
  113. package/dist/components/table/QTable.svelte.d.ts +4 -4
  114. package/dist/components/table/docs.d.ts +1 -1
  115. package/dist/components/tabs/QTab.svelte +45 -17
  116. package/dist/components/tabs/QTab.svelte.d.ts +5 -7
  117. package/dist/components/tabs/QTabs.svelte +3 -7
  118. package/dist/components/tabs/QTabs.svelte.d.ts +4 -4
  119. package/dist/components/tabs/docs.d.ts +2 -0
  120. package/dist/components/tabs/docs.js +11 -0
  121. package/dist/components/tabs/docs.props.js +3 -11
  122. package/dist/components/tabs/index.scss +40 -9
  123. package/dist/components/toggle/QToggle.svelte.d.ts +4 -4
  124. package/dist/components/toggle/docs.d.ts +1 -1
  125. package/dist/components/toggle/props.d.ts +1 -1
  126. package/dist/components/toggle/props.js +1 -1
  127. package/dist/components/toolbar/QToolbar.svelte +6 -22
  128. package/dist/components/toolbar/QToolbar.svelte.d.ts +7 -5
  129. package/dist/components/toolbar/QToolbarTitle.svelte +10 -0
  130. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +22 -0
  131. package/dist/components/toolbar/docs.d.ts +2 -0
  132. package/dist/components/toolbar/docs.js +11 -0
  133. package/dist/components/toolbar/docs.props.d.ts +8 -0
  134. package/dist/components/toolbar/docs.props.js +10 -0
  135. package/dist/components/toolbar/index.scss +35 -0
  136. package/dist/components/toolbar/props.d.ts +22 -3
  137. package/dist/components/toolbar/props.js +1 -6
  138. package/dist/components/tooltip/QTooltip.svelte +3 -5
  139. package/dist/components/tooltip/QTooltip.svelte.d.ts +4 -4
  140. package/dist/components/tooltip/docs.d.ts +2 -0
  141. package/dist/components/tooltip/docs.js +11 -0
  142. package/dist/components/tooltip/index.scss +77 -2
  143. package/dist/composables/use-align.js +17 -6
  144. package/dist/composables/use-router-link.js +0 -1
  145. package/dist/composables/use-size.d.ts +8 -10
  146. package/dist/composables/use-size.js +24 -12
  147. package/dist/css/flex.scss +41 -0
  148. package/dist/css/fonts.scss +4 -0
  149. package/dist/css/grid.scss +1 -16
  150. package/dist/css/index.css +1 -0
  151. package/dist/css/index.scss +5 -23
  152. package/dist/css/mixins/field.scss +3 -1
  153. package/dist/css/mixins/menu.scss +3 -1
  154. package/dist/css/mixins.scss +5 -4
  155. package/dist/css/ripple.scss +42 -0
  156. package/dist/css/states.scss +9 -4
  157. package/dist/css/theme/bridge.scss +15 -0
  158. package/dist/css/theme/elevate.scss +57 -0
  159. package/dist/css/theme/page.scss +16 -0
  160. package/dist/css/theme/palette.scss +633 -0
  161. package/dist/css/theme/reset.scss +40 -0
  162. package/dist/css/theme/theme.dark.scss +1 -0
  163. package/dist/css/theme/theme.light.scss +1 -0
  164. package/dist/css/theme/theme.scss +6 -0
  165. package/dist/css/theme/typography.scss +111 -0
  166. package/dist/css/variables-sass.scss +16 -0
  167. package/dist/global.d.ts +0 -1
  168. package/dist/helpers/ripple.d.ts +10 -0
  169. package/dist/helpers/ripple.js +79 -0
  170. package/dist/helpers/version.d.ts +2 -0
  171. package/dist/helpers/version.js +1 -0
  172. package/dist/index.d.ts +2 -1
  173. package/dist/index.js +2 -1
  174. package/dist/stores/QTheme.d.ts +2 -1
  175. package/dist/stores/Quaff.d.ts +6 -5
  176. package/dist/stores/Quaff.js +2 -1
  177. package/dist/utils/dom.d.ts +8 -0
  178. package/dist/utils/dom.js +71 -0
  179. package/dist/utils/events.d.ts +13 -0
  180. package/dist/utils/events.js +13 -0
  181. package/dist/utils/props.d.ts +1 -1
  182. package/dist/utils/props.js +1 -1
  183. package/dist/utils/types.d.ts +3 -0
  184. package/dist/utils/types.json +1 -1
  185. package/dist/utils/watchable.d.ts +1 -0
  186. package/package.json +34 -28
@@ -1,6 +1,7 @@
1
1
  <script>import { getContext } from "svelte";
2
2
  import { createClasses, createStyles } from "../../utils/props";
3
- import { isNumber } from "../../utils/types";
3
+ import { useSize } from "../../composables/use-size";
4
+ import { derived } from "svelte/store";
4
5
  export let width = 88, side = "left", bordered = false, userClasses = void 0, userStyles = void 0;
5
6
  export { userClasses as class, userStyles as style };
6
7
  let ctx = getContext("layout");
@@ -8,20 +9,23 @@ let drawerType;
8
9
  $:
9
10
  drawerType = side === "left" ? "drawerLeft" : "drawerRight";
10
11
  $:
11
- classes = createClasses([
12
- "q-railbar",
13
- "surface",
14
- side,
15
- bordered && "bordered",
16
- $ctx && $ctx[drawerType].offset.top && "offset-top",
17
- $ctx && $ctx[drawerType].offset.bottom && "offset-bottom",
18
- $ctx && $ctx[drawerType].fixed && "fixed",
19
- getBorderRadiusClasses(side, $ctx),
20
- $ctx && prepareZIndexClass($ctx, side),
21
- userClasses
22
- ]);
12
+ classes = createClasses(
13
+ [
14
+ side,
15
+ bordered && "bordered",
16
+ $ctx && $ctx[drawerType].offset.top && "offset-top",
17
+ $ctx && $ctx[drawerType].offset.bottom && "offset-bottom",
18
+ $ctx && $ctx[drawerType].fixed && "fixed",
19
+ $borderRadiusClasses,
20
+ $zIndexClass
21
+ ],
22
+ {
23
+ component: "q-railbar",
24
+ userClasses
25
+ }
26
+ );
23
27
  $:
24
- widthStyle = ctx === void 0 ? isNumber(width) ? `${width}px` : width : void 0;
28
+ widthStyle = !$ctx && useSize(width).style;
25
29
  $:
26
30
  style = createStyles(
27
31
  {
@@ -29,22 +33,37 @@ $:
29
33
  },
30
34
  userStyles
31
35
  );
32
- function getBorderRadiusClasses(sideProp, context) {
33
- let prefix = "border-radius" + (sideProp === "left" ? "__right" : "__left");
34
- return createClasses([
35
- context && context[drawerType].offset.top !== false && context && context[drawerType].drawer === false ? prefix + "--top" : void 0,
36
- context && context[drawerType].offset.bottom !== false && context && context[drawerType].drawer === false ? prefix + "--bottom" : void 0
37
- ]);
38
- }
39
- function prepareZIndexClass(context, sideProp) {
40
- let drawer = sideProp === "left" ? context.drawerLeft : context.drawerRight;
41
- let pos;
42
- for (pos of ["top", "bottom"]) {
43
- if (!drawer.offset[pos] && drawer.overlay) {
44
- return "above";
36
+ $:
37
+ borderRadiusClasses = ctx && // No border radius if this isn't a layout railbar
38
+ derived(ctx, (context) => {
39
+ const borderSide = side === "left" ? "right" : "left";
40
+ const shouldHaveRadius = (pos) => {
41
+ let appBarEl = pos === "top" ? context["header"] : context["footer"];
42
+ if (context[drawerType].drawer) {
43
+ return false;
44
+ }
45
+ return !appBarEl?.display || context[drawerType].offset[pos];
46
+ };
47
+ return createClasses(
48
+ [
49
+ shouldHaveRadius("top") && `top-${borderSide}-radius`,
50
+ shouldHaveRadius("bottom") && `bottom-${borderSide}-radius`
51
+ ],
52
+ {
53
+ component: "q-railbar"
54
+ }
55
+ );
56
+ });
57
+ $:
58
+ zIndexClass = ctx && derived(ctx, (context) => {
59
+ let drawer = side === "left" ? context.drawerLeft : context.drawerRight;
60
+ let pos;
61
+ for (pos of ["top", "bottom"]) {
62
+ if (!drawer.offset[pos] && drawer.overlay) {
63
+ return "above";
64
+ }
45
65
  }
46
- }
47
- }
66
+ });
48
67
  </script>
49
68
 
50
69
  <nav class={classes} {style}>
@@ -1,8 +1,8 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type { QRailbarProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
5
- width?: string | number | undefined;
5
+ width?: number | `${number}px` | `${number}%` | `${number}em` | `${number}ex` | `${number}ch` | `${number}rem` | `${number}vw` | `${number}vh` | `${number}vmin` | `${number}vmax` | undefined;
6
6
  side?: "left" | "right" | undefined;
7
7
  bordered?: boolean | undefined;
8
8
  class?: string | undefined;
@@ -15,9 +15,9 @@ declare const __propDef: {
15
15
  default: {};
16
16
  };
17
17
  };
18
- export type QRailbarProps = typeof __propDef.props;
18
+ type QRailbarProps_ = typeof __propDef.props;
19
+ export { QRailbarProps_ as QRailbarProps };
19
20
  export type QRailbarEvents = typeof __propDef.events;
20
21
  export type QRailbarSlots = typeof __propDef.slots;
21
- export default class QRailbar extends SvelteComponentTyped<QRailbarProps, QRailbarEvents, QRailbarSlots> {
22
+ export default class QRailbar extends SvelteComponent<QRailbarProps, QRailbarEvents, QRailbarSlots> {
22
23
  }
23
- export {};
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "../../utils/types";
2
+ export declare let QRailbarDocs: QComponentDocs;
@@ -0,0 +1,11 @@
1
+ import { QRailbarDocsProps } from "./docs.props";
2
+ export let QRailbarDocs = {
3
+ name: "QRailbar",
4
+ description: "Railbars are used to provide navigation between different sections or views within an application.",
5
+ docs: {
6
+ props: QRailbarDocsProps,
7
+ slots: [],
8
+ methods: [],
9
+ events: [],
10
+ },
11
+ };
@@ -0,0 +1,39 @@
1
+ .q-railbar {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: flex-start;
6
+ text-align: center;
7
+ vertical-align: middle;
8
+
9
+ border: 0;
10
+ border-radius: 0;
11
+ margin: 0;
12
+ padding: 0.5rem;
13
+
14
+ position: fixed;
15
+ top: 0;
16
+ bottom: 0;
17
+ height: auto;
18
+ width: auto;
19
+ gap: 1rem;
20
+
21
+ color: var(--on-surface);
22
+ background-color: var(--surface);
23
+
24
+ z-index: 100;
25
+ transform: none;
26
+ white-space: nowrap;
27
+ box-sizing: border-box;
28
+
29
+ &::-webkit-scrollbar {
30
+ display: none;
31
+ }
32
+
33
+ &__left {
34
+ left: 0;
35
+ }
36
+ &__right {
37
+ right: 0;
38
+ }
39
+ }
@@ -1,7 +1,15 @@
1
- import { type NativeProps } from "../../utils/types";
1
+ import type { NativeProps, CssValue } from "../../utils/types";
2
2
  export interface QRailbarProps extends NativeProps {
3
- width: number | string;
3
+ /**
4
+ * @default 88px
5
+ */
6
+ width: CssValue | number;
7
+ /**
8
+ * @default left
9
+ */
4
10
  side: "left" | "right";
11
+ /**
12
+ * @default false
13
+ */
5
14
  bordered: boolean;
6
15
  }
7
- export declare const QRailbarPropsDefaults: QRailbarProps;
@@ -1,7 +1 @@
1
- import { NativePropsDefaults } from "../../utils/types";
2
- export const QRailbarPropsDefaults = {
3
- width: 88,
4
- side: "left",
5
- bordered: false,
6
- ...NativePropsDefaults,
7
- };
1
+ export {};
@@ -1,4 +1,5 @@
1
- <script>import { onDestroy, onMount } from "svelte";
1
+ <script>import QIcon from "../icon/QIcon.svelte";
2
+ import { onDestroy, onMount } from "svelte";
2
3
  import { createClasses } from "../../utils/props";
3
4
  import { textWidth } from "../../utils/fields";
4
5
  import { browser } from "$app/environment";
@@ -129,9 +130,10 @@ onDestroy(() => {
129
130
  disabled={disable}
130
131
  />
131
132
 
132
- <i class="q-select__arrow-toggle" class:q-select__arrow-toggle--has-append={$$slots.append}
133
- >{`arrow_drop_${isMenuOpen ? "up" : "down"}`}</i
134
- >
133
+ <QIcon
134
+ class="q-select__arrow-toggle {$$slots.append ? 'q-select__arrow-toggle--has-append' : ''}"
135
+ name={`arrow_drop_${isMenuOpen ? "up" : "down"}`}
136
+ />
135
137
 
136
138
  <slot name="append" />
137
139
 
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type { QSelectProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
@@ -26,9 +26,9 @@ declare const __propDef: {
26
26
  append: {};
27
27
  };
28
28
  };
29
- export type QSelectProps = typeof __propDef.props;
29
+ type QSelectProps_ = typeof __propDef.props;
30
+ export { QSelectProps_ as QSelectProps };
30
31
  export type QSelectEvents = typeof __propDef.events;
31
32
  export type QSelectSlots = typeof __propDef.slots;
32
- export default class QSelect extends SvelteComponentTyped<QSelectProps, QSelectEvents, QSelectSlots> {
33
+ export default class QSelect extends SvelteComponent<QSelectProps, QSelectEvents, QSelectSlots> {
33
34
  }
34
- export {};
@@ -1,2 +1,2 @@
1
- import type { QComponentDocs } from "$utils/types";
1
+ import type { QComponentDocs } from "../../utils/types";
2
2
  export declare let QSelectDocs: QComponentDocs;
@@ -1,9 +1,9 @@
1
1
  export const QSelectDocsProps = [
2
2
  {
3
3
  name: "value",
4
- type: "string | string[]",
4
+ type: "string | string[] | number | number[]",
5
5
  optional: false,
6
- clickableType: false,
6
+ clickableType: true,
7
7
  description: "",
8
8
  default: "",
9
9
  },
@@ -14,13 +14,19 @@
14
14
  opacity: 0;
15
15
  visibility: hidden;
16
16
  transform: scale(0.8) translateY(120%);
17
- transition: opacity var(--speed2), transform var(--speed2), visibility 0s var(--speed2);
17
+ transition:
18
+ opacity var(--speed2),
19
+ transform var(--speed2),
20
+ visibility 0s var(--speed2);
18
21
 
19
22
  &--active {
20
23
  opacity: 1;
21
24
  visibility: visible;
22
25
  transform: scale(1) translateY(100%);
23
- transition: opacity var(--speed2), transform var(--speed2), visibility 0s 0s;
26
+ transition:
27
+ opacity var(--speed2),
28
+ transform var(--speed2),
29
+ visibility 0s 0s;
24
30
  }
25
31
  }
26
32
 
@@ -1,4 +1,4 @@
1
- import { type NativeProps } from "$utils/types";
1
+ import { type NativeProps } from "../../utils/types";
2
2
  export type QSelectOption = string | {
3
3
  label: string;
4
4
  value: string;
@@ -1,4 +1,4 @@
1
- <script>import { createClasses, createStyles } from "$utils/props";
1
+ <script>import { createClasses, createStyles } from "../../utils/props";
2
2
  export let spacing = "none", inset = false, vertical = false, color = void 0, size = "1px", text = void 0, textAlign = vertical === true ? "middle" : "center", userClasses = void 0, userStyles = void 0;
3
3
  export { userClasses as class };
4
4
  export { userStyles as style };
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type { QSeparatorProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
@@ -17,9 +17,9 @@ declare const __propDef: {
17
17
  };
18
18
  slots: {};
19
19
  };
20
- export type QSeparatorProps = typeof __propDef.props;
20
+ type QSeparatorProps_ = typeof __propDef.props;
21
+ export { QSeparatorProps_ as QSeparatorProps };
21
22
  export type QSeparatorEvents = typeof __propDef.events;
22
23
  export type QSeparatorSlots = typeof __propDef.slots;
23
- export default class QSeparator extends SvelteComponentTyped<QSeparatorProps, QSeparatorEvents, QSeparatorSlots> {
24
+ export default class QSeparator extends SvelteComponent<QSeparatorProps, QSeparatorEvents, QSeparatorSlots> {
24
25
  }
25
- export {};
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "../../utils/types";
2
+ export declare let QSeparatorDocs: QComponentDocs;
@@ -0,0 +1,11 @@
1
+ import { QSeparatorPropsVertical } from "./docs.props";
2
+ export let QSeparatorDocs = {
3
+ name: "QSeparator",
4
+ description: "Separators can be used to create a dividing line or space between elements within a layout, offering visual separation and organization.",
5
+ docs: {
6
+ props: QSeparatorPropsVertical,
7
+ slots: [],
8
+ methods: [],
9
+ events: [],
10
+ },
11
+ };
@@ -1,4 +1,4 @@
1
- import type { NativeProps } from "$utils/types";
1
+ import type { NativeProps } from "../../utils/types";
2
2
  interface QSeparatorPropsVertical extends NativeProps {
3
3
  spacing: "none" | "sm" | "md" | "lg";
4
4
  inset: boolean;
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type { QTableProps } from "./props";
3
3
  import type { QTableColumn, QTableRow } from "./props";
4
4
  declare const __propDef: {
@@ -21,9 +21,9 @@ declare const __propDef: {
21
21
  };
22
22
  };
23
23
  };
24
- export type QTableProps = typeof __propDef.props;
24
+ type QTableProps_ = typeof __propDef.props;
25
+ export { QTableProps_ as QTableProps };
25
26
  export type QTableEvents = typeof __propDef.events;
26
27
  export type QTableSlots = typeof __propDef.slots;
27
- export default class QTable extends SvelteComponentTyped<QTableProps, QTableEvents, QTableSlots> {
28
+ export default class QTable extends SvelteComponent<QTableProps, QTableEvents, QTableSlots> {
28
29
  }
29
- export {};
@@ -1,2 +1,2 @@
1
- import type { QComponentDocs } from "$utils/types";
1
+ import type { QComponentDocs } from "../../utils/types";
2
2
  export declare let QTableDocs: QComponentDocs;
@@ -1,12 +1,15 @@
1
- <script>import { Quaff } from "$stores/Quaff";
1
+ <script>import { Quaff } from "../../stores/Quaff";
2
2
  import { getContext, hasContext } from "svelte";
3
3
  import { createClasses } from "../../utils/props";
4
4
  import QIcon from "../icon/QIcon.svelte";
5
5
  import { isRouteActive } from "../../composables/use-router-link";
6
+ import { getDirection, isActivationKey, isArrowKey, isTabKey } from "../../utils/events";
7
+ import { ripple } from "../../helpers/ripple";
8
+ import { getClosestFocusableBlock, getClosestFocusableSibling } from "../../utils/dom";
6
9
  export let name = void 0, to = void 0, icon = void 0, userClasses = void 0;
7
10
  export { userClasses as class };
8
11
  let index = 1;
9
- let tabEl;
12
+ let qTab;
10
13
  if (!hasContext("QTabCount")) {
11
14
  console.warn("QTab should be used inside QTabs");
12
15
  }
@@ -20,23 +23,21 @@ let activeStore = getContext("activeTab");
20
23
  $:
21
24
  isActive = to !== void 0 ? isRouteActive($Quaff.router, to) : name === $activeStore.name;
22
25
  $:
23
- if (isActive && tabEl) {
24
- setActive(tabEl);
26
+ if (isActive && qTab) {
27
+ setActive(qTab);
25
28
  }
26
29
  let tag;
27
30
  $:
28
31
  tag = to === void 0 ? "button" : "a";
29
32
  $:
30
- classes = createClasses([
31
- "q-tab",
32
- isActive ? "active primary-text on-surface-text" : "surface on-surface-variant-text",
33
- tag === "a" && "button",
33
+ classes = createClasses([isActive && "active"], {
34
+ component: "q-tab",
34
35
  userClasses
35
- ]);
36
+ });
36
37
  function setActive(el) {
37
38
  let rect;
38
39
  if (variant === "primary") {
39
- rect = el.firstChild.getBoundingClientRect();
40
+ rect = el.firstElementChild.getBoundingClientRect();
40
41
  } else {
41
42
  rect = el.getBoundingClientRect();
42
43
  }
@@ -51,25 +52,52 @@ function setActive(el) {
51
52
  };
52
53
  }
53
54
  }
54
- function handleClick(e) {
55
+ function onClick(e) {
55
56
  setActive(e.target);
56
57
  }
58
+ function onKeydown(e) {
59
+ if (isActivationKey(e)) {
60
+ e.preventDefault();
61
+ const click = new MouseEvent("click");
62
+ qTab.dispatchEvent(click);
63
+ return;
64
+ }
65
+ if (isArrowKey(e)) {
66
+ e.preventDefault();
67
+ const direction = getDirection(e);
68
+ const targetTab = getClosestFocusableSibling(qTab, direction);
69
+ if (targetTab === qTab) {
70
+ return;
71
+ }
72
+ targetTab?.focus();
73
+ return;
74
+ }
75
+ if (isTabKey(e)) {
76
+ e.preventDefault();
77
+ const direction = e.shiftKey ? "previous" : "next";
78
+ const targetBlock = getClosestFocusableBlock(qTab, direction);
79
+ targetBlock?.focus();
80
+ }
81
+ return;
82
+ }
57
83
  </script>
58
84
 
59
85
  <svelte:element
60
86
  this={tag}
87
+ use:ripple
61
88
  href={to}
62
89
  class={classes}
63
- on:click={handleClick}
64
- on:keyup
65
- on:keydown
66
- on:keypress
90
+ role={tag === "a" ? "button" : undefined}
91
+ aria-current={isActive || undefined}
92
+ on:click
93
+ on:click={onClick}
94
+ on:keydown={onKeydown}
67
95
  {...$$restProps}
68
- bind:this={tabEl}
96
+ bind:this={qTab}
69
97
  >
70
98
  <div>
71
99
  {#if icon}
72
- <QIcon name={icon} />
100
+ <QIcon name={icon} class="q-tab__icon" />
73
101
  {:else if $$slots.icon}
74
102
  <slot name="icon" />
75
103
  {/if}
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type { QTabProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
@@ -9,9 +9,7 @@ declare const __propDef: {
9
9
  class?: string | undefined;
10
10
  };
11
11
  events: {
12
- keyup: KeyboardEvent;
13
- keydown: KeyboardEvent;
14
- keypress: KeyboardEvent;
12
+ click: MouseEvent;
15
13
  } & {
16
14
  [evt: string]: CustomEvent<any>;
17
15
  };
@@ -20,9 +18,9 @@ declare const __propDef: {
20
18
  default: {};
21
19
  };
22
20
  };
23
- export type QTabProps = typeof __propDef.props;
21
+ type QTabProps_ = typeof __propDef.props;
22
+ export { QTabProps_ as QTabProps };
24
23
  export type QTabEvents = typeof __propDef.events;
25
24
  export type QTabSlots = typeof __propDef.slots;
26
- export default class QTab extends SvelteComponentTyped<QTabProps, QTabEvents, QTabSlots> {
25
+ export default class QTab extends SvelteComponent<QTabProps, QTabEvents, QTabSlots> {
27
26
  }
28
- export {};
@@ -27,14 +27,10 @@ setContext("variant", variant);
27
27
  $:
28
28
  value = $activeTabStore.name;
29
29
  $:
30
- classes = createClasses([
31
- "q-tabs",
32
- variant === "vertical" && "vertical-tabs",
33
- round && "round",
34
- variant === "primary" && "small-indicator",
35
- hidden && "hidden-indicator",
30
+ classes = createClasses([variant, round && "rounded", hidden && "hidden-indicator"], {
31
+ component: "q-tabs",
36
32
  userClasses
37
- ]);
33
+ });
38
34
  let indicatorWidth = derived(activeTabStore, ($activeTabStore2) => {
39
35
  return variant === "primary" ? `calc(${$activeTabStore2.size}px + 8px)` : `${$activeTabStore2.size}px`;
40
36
  });
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type { QTabsProps } from "./props";
3
3
  declare const __propDef: {
4
4
  props: {
@@ -15,9 +15,9 @@ declare const __propDef: {
15
15
  default: {};
16
16
  };
17
17
  };
18
- export type QTabsProps = typeof __propDef.props;
18
+ type QTabsProps_ = typeof __propDef.props;
19
+ export { QTabsProps_ as QTabsProps };
19
20
  export type QTabsEvents = typeof __propDef.events;
20
21
  export type QTabsSlots = typeof __propDef.slots;
21
- export default class QTabs extends SvelteComponentTyped<QTabsProps, QTabsEvents, QTabsSlots> {
22
+ export default class QTabs extends SvelteComponent<QTabsProps, QTabsEvents, QTabsSlots> {
22
23
  }
23
- export {};
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "../../utils/types";
2
+ export declare let QTabsDocs: QComponentDocs;
@@ -0,0 +1,11 @@
1
+ import { QTabsDocsProps } from "./docs.props";
2
+ export let QTabsDocs = {
3
+ name: "QTabs",
4
+ description: "Tabs allow creating navigational tabs, enabling users to switch between different views or functional aspects.",
5
+ docs: {
6
+ props: QTabsDocsProps,
7
+ slots: [],
8
+ methods: [],
9
+ events: [],
10
+ },
11
+ };
@@ -8,10 +8,10 @@ export const QTabsDocsProps = [
8
8
  default: "",
9
9
  },
10
10
  {
11
- name: "vertical",
12
- type: "boolean",
11
+ name: "variant",
12
+ type: "QTabsVariants",
13
13
  optional: false,
14
- clickableType: false,
14
+ clickableType: true,
15
15
  description: "",
16
16
  default: "",
17
17
  },
@@ -23,14 +23,6 @@ export const QTabsDocsProps = [
23
23
  description: "",
24
24
  default: "",
25
25
  },
26
- {
27
- name: "smallIndicator",
28
- type: "boolean",
29
- optional: false,
30
- clickableType: false,
31
- description: "",
32
- default: "",
33
- },
34
26
  ];
35
27
  export const QTabDocsProps = [
36
28
  {