@quaffui/quaff 0.1.0-prealpha16 → 0.1.0-prealpha19

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 (269) hide show
  1. package/README.md +6 -6
  2. package/dist/classes/QContext.svelte.d.ts +42 -0
  3. package/dist/classes/QContext.svelte.js +63 -0
  4. package/dist/classes/QScrollObserver.svelte.d.ts +44 -0
  5. package/dist/classes/QScrollObserver.svelte.js +95 -0
  6. package/dist/classes/QTheme.svelte.d.ts +11 -0
  7. package/dist/classes/QTheme.svelte.js +49 -0
  8. package/dist/classes/Quaff.svelte.d.ts +14 -0
  9. package/dist/classes/Quaff.svelte.js +35 -0
  10. package/dist/components/avatar/QAvatar.scss +97 -0
  11. package/dist/components/avatar/QAvatar.svelte +35 -60
  12. package/dist/components/avatar/QAvatar.svelte.d.ts +2 -25
  13. package/dist/components/avatar/docs.props.js +21 -5
  14. package/dist/components/avatar/index.scss +5 -3
  15. package/dist/components/avatar/props.d.ts +24 -7
  16. package/dist/components/breadcrumbs/QBreadcrumbs.scss +10 -0
  17. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +24 -9
  18. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +2 -22
  19. package/dist/components/breadcrumbs/QBreadcrumbsEl.scss +10 -0
  20. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +64 -38
  21. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +2 -25
  22. package/dist/components/breadcrumbs/docs.props.js +27 -27
  23. package/dist/components/breadcrumbs/props.d.ts +25 -24
  24. package/dist/components/button/QBtn.scss +133 -0
  25. package/dist/components/button/QBtn.svelte +88 -48
  26. package/dist/components/button/QBtn.svelte.d.ts +2 -33
  27. package/dist/components/button/docs.props.js +26 -18
  28. package/dist/components/button/props.d.ts +21 -15
  29. package/dist/components/card/QCard.scss +25 -0
  30. package/dist/components/card/QCard.svelte +25 -16
  31. package/dist/components/card/QCard.svelte.d.ts +2 -25
  32. package/dist/components/card/QCardActions.scss +10 -0
  33. package/dist/components/card/QCardActions.svelte +11 -8
  34. package/dist/components/card/QCardActions.svelte.d.ts +2 -21
  35. package/dist/components/card/QCardSection.scss +10 -0
  36. package/dist/components/card/QCardSection.svelte +8 -6
  37. package/dist/components/card/QCardSection.svelte.d.ts +2 -22
  38. package/dist/components/card/docs.props.js +6 -14
  39. package/dist/components/card/props.d.ts +9 -15
  40. package/dist/components/checkbox/QCheckbox.svelte +8 -3
  41. package/dist/components/checkbox/QCheckbox.svelte.d.ts +2 -20
  42. package/dist/components/checkbox/docs.props.js +1 -1
  43. package/dist/components/checkbox/index.scss +3 -1
  44. package/dist/components/checkbox/props.d.ts +1 -2
  45. package/dist/components/chip/QChip.scss +179 -0
  46. package/dist/components/chip/QChip.svelte +95 -70
  47. package/dist/components/chip/QChip.svelte.d.ts +2 -35
  48. package/dist/components/chip/docs.props.js +23 -47
  49. package/dist/components/chip/props.d.ts +21 -34
  50. package/dist/components/codeBlock/QCodeBlock.svelte +64 -42
  51. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +2 -20
  52. package/dist/components/codeBlock/docs.props.js +10 -2
  53. package/dist/components/codeBlock/props.d.ts +6 -1
  54. package/dist/components/dialog/{index.scss → QDialog.scss} +9 -7
  55. package/dist/components/dialog/QDialog.svelte +72 -70
  56. package/dist/components/dialog/QDialog.svelte.d.ts +6 -36
  57. package/dist/components/dialog/docs.props.d.ts +0 -8
  58. package/dist/components/dialog/docs.props.js +1 -131
  59. package/dist/components/dialog/props.d.ts +0 -16
  60. package/dist/components/drawer/QDrawer.scss +45 -0
  61. package/dist/components/drawer/QDrawer.svelte +87 -91
  62. package/dist/components/drawer/QDrawer.svelte.d.ts +6 -32
  63. package/dist/components/drawer/docs.props.js +3 -3
  64. package/dist/components/drawer/props.d.ts +2 -2
  65. package/dist/components/footer/QFooter.scss +42 -0
  66. package/dist/components/footer/QFooter.svelte +62 -23
  67. package/dist/components/footer/QFooter.svelte.d.ts +2 -23
  68. package/dist/components/footer/docs.props.js +14 -6
  69. package/dist/components/footer/props.d.ts +8 -5
  70. package/dist/components/header/QHeader.scss +54 -0
  71. package/dist/components/header/QHeader.svelte +52 -24
  72. package/dist/components/header/QHeader.svelte.d.ts +2 -23
  73. package/dist/components/header/docs.props.js +23 -7
  74. package/dist/components/header/props.d.ts +11 -3
  75. package/dist/components/icon/{index.scss → QIcon.scss} +2 -4
  76. package/dist/components/icon/QIcon.svelte +29 -16
  77. package/dist/components/icon/QIcon.svelte.d.ts +2 -27
  78. package/dist/components/icon/docs.props.js +3 -3
  79. package/dist/components/icon/props.d.ts +4 -4
  80. package/dist/components/index.d.ts +2 -2
  81. package/dist/components/index.js +2 -2
  82. package/dist/components/input/QInput.svelte +52 -25
  83. package/dist/components/input/QInput.svelte.d.ts +2 -32
  84. package/dist/components/input/docs.props.js +33 -1
  85. package/dist/components/input/props.d.ts +5 -12
  86. package/dist/components/input/props.js +1 -12
  87. package/dist/components/layout/QLayout.scss +178 -0
  88. package/dist/components/layout/QLayout.svelte +100 -80
  89. package/dist/components/layout/QLayout.svelte.d.ts +16 -43
  90. package/dist/components/layout/docs.props.js +57 -1
  91. package/dist/components/layout/props.d.ts +8 -0
  92. package/dist/components/list/QItem.scss +61 -0
  93. package/dist/components/list/QItem.svelte +65 -46
  94. package/dist/components/list/QItem.svelte.d.ts +2 -30
  95. package/dist/components/list/QItemSection.scss +45 -0
  96. package/dist/components/list/QItemSection.svelte +48 -33
  97. package/dist/components/list/QItemSection.svelte.d.ts +2 -24
  98. package/dist/components/list/QList.scss +30 -0
  99. package/dist/components/list/QList.svelte +25 -14
  100. package/dist/components/list/QList.svelte.d.ts +2 -28
  101. package/dist/components/list/docs.props.js +36 -4
  102. package/dist/components/list/props.d.ts +9 -8
  103. package/dist/components/list/props.js +1 -25
  104. package/dist/components/private/ContextReseter.svelte +6 -11
  105. package/dist/components/private/ContextReseter.svelte.d.ts +6 -18
  106. package/dist/components/private/QApi.svelte +117 -103
  107. package/dist/components/private/QApi.svelte.d.ts +4 -16
  108. package/dist/components/private/QDocs.svelte +67 -48
  109. package/dist/components/private/QDocs.svelte.d.ts +9 -20
  110. package/dist/components/private/QDocsSection.svelte +15 -14
  111. package/dist/components/private/QDocsSection.svelte.d.ts +7 -19
  112. package/dist/components/private/QIconSnippet.svelte +12 -0
  113. package/dist/components/private/QIconSnippet.svelte.d.ts +8 -0
  114. package/dist/components/progress/QCircularProgress.scss +63 -0
  115. package/dist/components/progress/QCircularProgress.svelte +104 -28
  116. package/dist/components/progress/QCircularProgress.svelte.d.ts +2 -22
  117. package/dist/components/progress/QLinearProgress.scss +75 -0
  118. package/dist/components/progress/QLinearProgress.svelte +55 -13
  119. package/dist/components/progress/QLinearProgress.svelte.d.ts +2 -20
  120. package/dist/components/progress/docs.props.js +138 -10
  121. package/dist/components/progress/props.d.ts +75 -12
  122. package/dist/components/radio/QRadio.svelte +14 -3
  123. package/dist/components/radio/QRadio.svelte.d.ts +2 -21
  124. package/dist/components/radio/docs.props.js +1 -1
  125. package/dist/components/radio/index.scss +3 -1
  126. package/dist/components/radio/props.d.ts +1 -3
  127. package/dist/components/radio/props.js +1 -8
  128. package/dist/components/railbar/QRailbar.scss +54 -0
  129. package/dist/components/railbar/QRailbar.svelte +43 -66
  130. package/dist/components/railbar/QRailbar.svelte.d.ts +2 -22
  131. package/dist/components/railbar/docs.props.js +4 -4
  132. package/dist/components/railbar/props.d.ts +3 -3
  133. package/dist/components/select/QSelect.svelte +121 -88
  134. package/dist/components/select/QSelect.svelte.d.ts +2 -34
  135. package/dist/components/select/docs.js +7 -0
  136. package/dist/components/select/docs.props.js +41 -1
  137. package/dist/components/select/index.scss +8 -6
  138. package/dist/components/select/props.d.ts +6 -12
  139. package/dist/components/select/props.js +1 -12
  140. package/dist/components/separator/QSeparator.scss +54 -0
  141. package/dist/components/separator/QSeparator.svelte +38 -45
  142. package/dist/components/separator/QSeparator.svelte.d.ts +2 -24
  143. package/dist/components/separator/docs.props.js +4 -4
  144. package/dist/components/separator/props.d.ts +5 -7
  145. package/dist/components/separator/props.js +1 -9
  146. package/dist/components/switch/QSwitch.scss +305 -0
  147. package/dist/components/switch/QSwitch.svelte +96 -0
  148. package/dist/components/switch/QSwitch.svelte.d.ts +3 -0
  149. package/dist/components/{toggle → switch}/docs.d.ts +1 -1
  150. package/dist/components/{toggle → switch}/docs.js +3 -3
  151. package/dist/components/{toggle → switch}/docs.props.d.ts +1 -1
  152. package/dist/components/{toggle → switch}/docs.props.js +30 -6
  153. package/dist/components/switch/props.d.ts +13 -0
  154. package/dist/components/switch/props.js +1 -0
  155. package/dist/components/table/QTable.svelte +99 -85
  156. package/dist/components/table/QTable.svelte.d.ts +3 -29
  157. package/dist/components/table/docs.props.js +9 -1
  158. package/dist/components/table/index.scss +3 -1
  159. package/dist/components/table/props.d.ts +10 -0
  160. package/dist/components/tabs/QTab.scss +71 -0
  161. package/dist/components/tabs/QTab.svelte +74 -90
  162. package/dist/components/tabs/QTab.svelte.d.ts +2 -25
  163. package/dist/components/tabs/QTabs.scss +40 -0
  164. package/dist/components/tabs/QTabs.svelte +110 -58
  165. package/dist/components/tabs/QTabs.svelte.d.ts +6 -31
  166. package/dist/components/tabs/docs.props.js +3 -3
  167. package/dist/components/tabs/index.scss +4 -2
  168. package/dist/components/tabs/props.d.ts +5 -4
  169. package/dist/components/toolbar/QToolbar.svelte +15 -12
  170. package/dist/components/toolbar/QToolbar.svelte.d.ts +2 -23
  171. package/dist/components/toolbar/QToolbarTitle.svelte +8 -7
  172. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +2 -21
  173. package/dist/components/toolbar/docs.props.js +4 -4
  174. package/dist/components/toolbar/index.scss +12 -14
  175. package/dist/components/toolbar/props.d.ts +4 -5
  176. package/dist/components/tooltip/QTooltip.svelte +5 -9
  177. package/dist/components/tooltip/QTooltip.svelte.d.ts +2 -21
  178. package/dist/components/tooltip/docs.props.js +1 -1
  179. package/dist/components/tooltip/index.scss +3 -1
  180. package/dist/components/tooltip/props.d.ts +1 -1
  181. package/dist/composables/index.d.ts +1 -1
  182. package/dist/composables/index.js +1 -1
  183. package/dist/composables/useSize.d.ts +10 -9
  184. package/dist/composables/useSize.js +32 -20
  185. package/dist/composables/useSizeLegacy.d.ts +9 -0
  186. package/dist/composables/useSizeLegacy.js +25 -0
  187. package/dist/css/_components.scss +31 -0
  188. package/dist/css/_disabled.scss +18 -0
  189. package/dist/css/{ripple.scss → _ripple.scss} +1 -1
  190. package/dist/css/_variables.scss +73 -0
  191. package/dist/css/classes/_design.scss +57 -0
  192. package/dist/css/classes/_flex.scss +62 -0
  193. package/dist/css/classes/_grid.scss +35 -0
  194. package/dist/css/classes/_index.scss +7 -0
  195. package/dist/css/classes/_overflow.scss +7 -0
  196. package/dist/css/classes/_position.scss +7 -0
  197. package/dist/css/classes/_select.scss +6 -0
  198. package/dist/css/classes/_spaces.scss +23 -0
  199. package/dist/css/index.css +1 -1
  200. package/dist/css/index.scss +15 -94
  201. package/dist/css/mixins/_design.scss +63 -0
  202. package/dist/css/mixins/{field-mixins.scss → _field.scss} +16 -5
  203. package/dist/css/mixins/_image.scss +63 -0
  204. package/dist/css/mixins/_index.scss +9 -0
  205. package/dist/css/mixins/_layout.scss +20 -0
  206. package/dist/css/mixins/{menu.scss → _menu.scss} +4 -2
  207. package/dist/css/mixins/{selection.scss → _selection.scss} +7 -67
  208. package/dist/css/mixins/_spaces.scss +36 -0
  209. package/dist/css/mixins/_typography.scss +7 -0
  210. package/dist/css/shared/q-field.scss +62 -32
  211. package/dist/css/theme/_colors.scss +173 -0
  212. package/dist/css/theme/css-variables.scss +5 -0
  213. package/dist/css/theme/page.scss +3 -3
  214. package/dist/css/theme/reset.scss +17 -1
  215. package/dist/css/theme/theme.scss +2 -3
  216. package/dist/css/theme/tokens.scss +0 -159
  217. package/dist/helpers/clickOutside.js +2 -1
  218. package/dist/helpers/ripple.d.ts +1 -1
  219. package/dist/helpers/ripple.js +13 -4
  220. package/dist/helpers/version.d.ts +1 -1
  221. package/dist/helpers/version.js +1 -1
  222. package/dist/index.d.ts +2 -1
  223. package/dist/index.js +2 -1
  224. package/dist/stores/index.d.ts +0 -2
  225. package/dist/stores/index.js +1 -2
  226. package/dist/utils/colors.d.ts +71 -0
  227. package/dist/utils/colors.js +101 -14
  228. package/dist/utils/dom.d.ts +2 -0
  229. package/dist/utils/dom.js +6 -0
  230. package/dist/utils/number.d.ts +2 -0
  231. package/dist/utils/number.js +9 -0
  232. package/dist/utils/props.js +3 -1
  233. package/dist/utils/router.d.ts +17 -0
  234. package/dist/utils/router.js +23 -0
  235. package/dist/utils/string.d.ts +1 -0
  236. package/dist/utils/string.js +3 -0
  237. package/dist/utils/types.d.ts +6 -1
  238. package/dist/utils/types.js +0 -3
  239. package/dist/utils/types.json +8 -5
  240. package/dist/utils/watchable.d.ts +0 -1
  241. package/package.json +40 -37
  242. package/dist/components/breadcrumbs/index.scss +0 -20
  243. package/dist/components/button/index.scss +0 -103
  244. package/dist/components/card/index.scss +0 -56
  245. package/dist/components/chip/index.scss +0 -103
  246. package/dist/components/drawer/index.scss +0 -59
  247. package/dist/components/footer/index.scss +0 -28
  248. package/dist/components/layout/index.scss +0 -387
  249. package/dist/components/list/index.scss +0 -144
  250. package/dist/components/progress/index.scss +0 -82
  251. package/dist/components/railbar/index.scss +0 -39
  252. package/dist/components/separator/index.scss +0 -52
  253. package/dist/components/toggle/QToggle.svelte +0 -34
  254. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  255. package/dist/components/toggle/index.scss +0 -31
  256. package/dist/components/toggle/props.d.ts +0 -9
  257. package/dist/components/toggle/props.js +0 -9
  258. package/dist/css/grid.scss +0 -50
  259. package/dist/css/mixins.scss +0 -137
  260. package/dist/css/states.scss +0 -75
  261. package/dist/css/theme/bridge.scss +0 -15
  262. package/dist/css/theme/theme.dark.scss +0 -39
  263. package/dist/css/theme/theme.light.scss +0 -39
  264. package/dist/css/variables-sass.scss +0 -16
  265. package/dist/stores/QTheme.d.ts +0 -42
  266. package/dist/stores/QTheme.js +0 -59
  267. package/dist/stores/Quaff.d.ts +0 -32
  268. package/dist/stores/Quaff.js +0 -58
  269. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
@@ -1,5 +1,5 @@
1
1
  // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
- // @quaffHash 901937b41d79099a96a3713827911b68
2
+ // @quaffHash ebdc5d6efd286c109289cb91b6a1be02
3
3
  export const QInputDocsProps = [
4
4
  {
5
5
  name: "dense",
@@ -81,4 +81,36 @@ export const QInputDocsProps = [
81
81
  description: "",
82
82
  default: "",
83
83
  },
84
+ {
85
+ name: "before",
86
+ type: "Snippet",
87
+ optional: true,
88
+ clickableType: true,
89
+ description: "",
90
+ default: "",
91
+ },
92
+ {
93
+ name: "prepend",
94
+ type: "Snippet",
95
+ optional: true,
96
+ clickableType: true,
97
+ description: "",
98
+ default: "",
99
+ },
100
+ {
101
+ name: "append",
102
+ type: "Snippet",
103
+ optional: true,
104
+ clickableType: true,
105
+ description: "",
106
+ default: "",
107
+ },
108
+ {
109
+ name: "after",
110
+ type: "Snippet",
111
+ optional: true,
112
+ clickableType: true,
113
+ description: "",
114
+ default: "",
115
+ },
84
116
  ];
@@ -1,4 +1,5 @@
1
1
  import type { NativeProps } from "../../utils";
2
+ import type { Snippet } from "svelte";
2
3
  import type { HTMLAttributes } from "svelte/elements";
3
4
  export interface QInputProps extends NativeProps, HTMLAttributes<HTMLDivElement> {
4
5
  dense?: boolean;
@@ -11,16 +12,8 @@ export interface QInputProps extends NativeProps, HTMLAttributes<HTMLDivElement>
11
12
  outlined?: boolean;
12
13
  rounded?: boolean;
13
14
  value: string;
15
+ before?: Snippet;
16
+ prepend?: Snippet;
17
+ append?: Snippet;
18
+ after?: Snippet;
14
19
  }
15
- export declare const QInputPropsDefaults: {
16
- dense: boolean;
17
- disable: boolean;
18
- error: boolean;
19
- errorMessage: undefined;
20
- filled: boolean;
21
- hint: undefined;
22
- label: undefined;
23
- outlined: boolean;
24
- rounded: boolean;
25
- value: string;
26
- };
@@ -1,12 +1 @@
1
- export const QInputPropsDefaults = {
2
- dense: false,
3
- disable: false,
4
- error: false,
5
- errorMessage: undefined,
6
- filled: false,
7
- hint: undefined,
8
- label: undefined,
9
- outlined: false,
10
- rounded: false,
11
- value: "",
12
- };
1
+ export {};
@@ -0,0 +1,178 @@
1
+ @use "$css/mixins";
2
+ @use "$css/variables";
3
+
4
+ .q-layout {
5
+ z-index: 0;
6
+ position: relative;
7
+
8
+ width: 100%;
9
+ height: 100%;
10
+ min-height: 100%;
11
+ min-width: 100%;
12
+
13
+ overflow: hidden;
14
+
15
+ border-radius: inherit;
16
+ }
17
+
18
+ .q-layout > .q-railbar {
19
+ position: absolute;
20
+
21
+ transition:
22
+ top variables.$speed3,
23
+ bottom variables.$speed3;
24
+
25
+ &.q-railbar--offset-top {
26
+ // Put the railbar under the header to avoid hiding its box-shadow
27
+ z-index: 3;
28
+ }
29
+
30
+ @each $pos in ("top", "bottom") {
31
+ &.q-railbar--offset-#{$pos} {
32
+ #{$pos}: var(--offset-#{$pos}, 0);
33
+ }
34
+ }
35
+
36
+ & > .q-list {
37
+ @include mixins.gap("sm");
38
+
39
+ & > .q-item {
40
+ flex-direction: column;
41
+ align-items: center;
42
+ justify-content: center;
43
+
44
+ @include mixins.padding("x-sm");
45
+ @include mixins.gap("xs");
46
+
47
+ border-radius: 2rem;
48
+
49
+ &.q-link::after {
50
+ all: unset;
51
+ }
52
+
53
+ & > .q-item__section {
54
+ justify-content: start;
55
+ }
56
+
57
+ & > i {
58
+ @include mixins.padding("a-xs");
59
+ transition: padding variables.$speed1 linear;
60
+ }
61
+
62
+ &:is(:hover, :focus, .q-item--active) > i {
63
+ @include mixins.padding("x-lg");
64
+
65
+ background-color: var(--secondary-container);
66
+ color: var(--on-secondary-container);
67
+
68
+ font-variation-settings:
69
+ "FILL" 1,
70
+ "wght" 400,
71
+ "opsz" 24;
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ .q-layout > .q-drawer {
78
+ border-radius: 0;
79
+
80
+ transition:
81
+ top variables.$speed3,
82
+ bottom variables.$speed3,
83
+ transform variables.$speed3;
84
+
85
+ &.q-drawer--offset-top {
86
+ // Put the railbar under the header to avoid hiding its box-shadow
87
+ z-index: 2;
88
+ }
89
+
90
+ @function shouldHaveRadius($pos) {
91
+ @if not list-index(("top", "bottom"), $pos) {
92
+ @error 'The position "#{$pos}" is incorrect, should be "top" or "bottom"';
93
+ }
94
+
95
+ @return unquote(
96
+ ":is(.q-drawer--overlay,.q-drawer--offset-#{$pos},:not(:has(~ .q-header)),:has(~ .q-header--collapsed))"
97
+ );
98
+ }
99
+
100
+ $x-pos: "left", "right";
101
+ $y-pos: "top", "bottom";
102
+
103
+ @each $side in $x-pos {
104
+ &.q-drawer--#{$side} {
105
+ #{$side}: var(--#{$side}-railbar-width, 0);
106
+ }
107
+ }
108
+
109
+ @each $pos in $y-pos {
110
+ @each $side in $x-pos {
111
+ &:not(.q-drawer--#{$side})#{shouldHaveRadius($pos)} {
112
+ border-#{$pos}-#{$side}-radius: 1rem;
113
+ }
114
+ }
115
+
116
+ &.q-drawer--offset-#{$pos} {
117
+ #{$pos}: var(--offset-#{$pos}, 0);
118
+ }
119
+ }
120
+
121
+ & .q-list > .q-item.q-link {
122
+ border-radius: 2rem;
123
+ overflow: hidden;
124
+
125
+ &::before {
126
+ content: "";
127
+
128
+ z-index: -1;
129
+ position: absolute;
130
+ bottom: 0;
131
+ left: 0;
132
+
133
+ width: 100%;
134
+ height: 100%;
135
+
136
+ background-color: var(--secondary-container);
137
+ opacity: 0;
138
+
139
+ border-radius: inherit;
140
+
141
+ transform: scaleX(0.32);
142
+
143
+ transition:
144
+ transform variables.$speed2,
145
+ opacity variables.$speed2,
146
+ top variables.$speed3,
147
+ bottom variables.$speed3,
148
+ left variables.$speed3;
149
+ }
150
+
151
+ &.q-item--active {
152
+ color: var(--on-secondary-container);
153
+
154
+ &::before {
155
+ opacity: 1;
156
+ transform: scaleX(1);
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ // Offset for drawer with railbar
163
+ @each $side in ("left", "right") {
164
+ .q-railbar.q-railbar--#{$side}:not([style="display: none"]) ~ .q-drawer.q-drawer--#{$side} {
165
+ #{$side}: var(--#{$side}-railbar-width);
166
+ }
167
+
168
+ // Reset railbar width
169
+ .q-railbar.q-railbar--#{$side}[style="display: none"] ~ .q-drawer.q-drawer--#{$side} {
170
+ --#{$side}-railbar-width: 0px;
171
+ }
172
+ }
173
+
174
+ .q-layout > .q-layout__content {
175
+ height: calc(100% - var(--offset-top) - var(--offset-bottom));
176
+ overflow: auto;
177
+ transition: margin variables.$speed3;
178
+ }
@@ -1,88 +1,108 @@
1
- <script context="module">import { createStyles, createClasses } from "../../utils";
2
- import { setContext } from "svelte";
3
- import { writable } from "svelte/store";
4
- import ContextReseter from "../private/ContextReseter.svelte";
1
+ <script context="module" lang="ts">
2
+ import { setContext } from "svelte";
3
+ import QContext from "../../classes/QContext.svelte";
4
+ import ContextReseter from "../private/ContextReseter.svelte";
5
5
  </script>
6
6
 
7
- <script>export let view = "hhh lpr fff", headerHeight = "64px", footerHeight = "80px", leftDrawerWidth = "300px", rightDrawerWidth = "300px", leftRailbarWidth = "88px", rightRailbarWidth = "88px", userClasses = void 0, userStyles = void 0;
8
- export { userClasses as class, userStyles as style };
9
- $:
10
- style = createStyles(
11
- {
12
- "--header-height": isNaN(Number(headerHeight)) ? headerHeight : `${headerHeight}px`,
13
- "--footer-height": isNaN(Number(footerHeight)) ? footerHeight : `${footerHeight}px`,
14
- "--left-railbar-width": isNaN(Number(leftRailbarWidth)) ? leftRailbarWidth : `${leftRailbarWidth}px`,
15
- "--right-railbar-width": isNaN(Number(rightRailbarWidth)) ? rightRailbarWidth : `${rightRailbarWidth}px`,
16
- "--left-drawer-width": isNaN(Number(leftDrawerWidth)) ? leftDrawerWidth : `${leftDrawerWidth}px`,
17
- "--right-drawer-width": isNaN(Number(rightDrawerWidth)) ? rightDrawerWidth : `${rightDrawerWidth}px`
18
- },
19
- userStyles
20
- );
21
- $:
22
- classes = createClasses(["q-layout", userClasses]);
23
- function prepareCtx(viewProp) {
24
- const [top, middle, bottom] = viewProp.split(" ");
25
- const header = $$slots.header ? {
26
- display: true,
27
- fixed: top.includes("H")
28
- } : void 0;
29
- const footer = $$slots.footer ? {
30
- display: true,
31
- fixed: bottom.includes("F")
32
- } : void 0;
33
- const drawerLeft = {
34
- offset: {
35
- top: $$slots.header && top[0].toLowerCase() === "h",
36
- bottom: $$slots.footer && bottom[0].toLowerCase() === "f"
37
- },
38
- fixed: [top[0], middle[0], bottom[0]].includes("L"),
39
- railbar: $$slots.railbarLeft === true,
40
- drawer: $$slots.drawerLeft === true,
41
- overlay: false
42
- };
43
- const drawerRight = {
44
- offset: {
45
- top: $$slots.header && top[2].toLowerCase() === "h",
46
- bottom: $$slots.footer && bottom[2].toLowerCase() === "f"
47
- },
48
- fixed: [top[2], middle[2], bottom[2]].includes("R"),
49
- railbar: $$slots.railbarRight === true,
50
- drawer: $$slots.drawerRight === true,
51
- overlay: false
52
- };
53
- return {
7
+ <script lang="ts">
8
+ let {
9
+ view = "hhh lpr fff",
10
+ content,
11
+ railbarLeft,
12
+ railbarRight,
13
+ drawerLeft,
14
+ drawerRight,
54
15
  header,
55
16
  footer,
56
- drawerLeft,
57
- drawerRight
58
- };
59
- }
60
- let ctx = writable(prepareCtx(view));
61
- $:
62
- $ctx = prepareCtx(view);
63
- setContext("layout", ctx);
17
+ onscroll,
18
+ onresize,
19
+ children,
20
+ ...props
21
+ } = $props();
22
+ setContext("view", {
23
+ get value() {
24
+ return view;
25
+ },
26
+ });
27
+ const headerCtx = new QContext("QHeader", {
28
+ height: 0,
29
+ collapsed: false,
30
+ });
31
+ const footerCtx = new QContext("QFooter", {
32
+ height: 0,
33
+ collapsed: false,
34
+ });
35
+ const leftRailbarCtx = new QContext("QRailbar-left", {
36
+ width: 0,
37
+ takesSpace: false,
38
+ });
39
+ const rightRailbarCtx = new QContext("QRailbar-right", {
40
+ width: 0,
41
+ takesSpace: false,
42
+ });
43
+ const leftDrawerCtx = new QContext("QDrawer-left", {
44
+ width: 0,
45
+ takesSpace: false,
46
+ });
47
+ const rightDrawerCtx = new QContext("QDrawer-right", {
48
+ width: 360,
49
+ takesSpace: false,
50
+ });
51
+ const topOffset = $derived(
52
+ !header || headerCtx.value.collapsed ? 0 : headerCtx.value.height,
53
+ );
54
+ const bottomOffset = $derived(
55
+ !footer || footerCtx.value.collapsed ? 0 : footerCtx.value.height,
56
+ );
57
+ const leftOffset = $derived(
58
+ handleDrawerCtx(leftRailbarCtx) + handleDrawerCtx(leftDrawerCtx),
59
+ );
60
+ const rightOffset = $derived(
61
+ handleDrawerCtx(rightRailbarCtx) + handleDrawerCtx(rightDrawerCtx),
62
+ );
63
+ const contentMargin = $derived(
64
+ `${header ? topOffset : 0}px ${rightOffset}px ${footer ? bottomOffset : 0}px ${leftOffset}px`,
65
+ );
66
+ function handleDrawerCtx(ctx) {
67
+ return ctx.value.takesSpace ? ctx.value.width : 0;
68
+ }
64
69
  </script>
65
70
 
66
- <div class={classes} {style} {...$$restProps} on:scroll on:resize>
67
- {#if $$slots.railbarLeft}
68
- <slot name="railbarLeft" />
69
- {/if}
70
- {#if $$slots.railbarRight}
71
- <slot name="railbarRight" />
72
- {/if}
73
- {#if $$slots.drawerLeft}
74
- <slot name="drawerLeft" />
75
- {/if}
76
- {#if $$slots.drawerRight}
77
- <slot name="drawerRight" />
78
- {/if}
79
- {#if $$slots.header}
80
- <slot name="header" />
81
- {/if}
82
- {#if $$slots.footer}
83
- <slot name="footer" />
84
- {/if}
85
- <ContextReseter keys="layout">
86
- <slot name="content" />
71
+ <div
72
+ {...props}
73
+ class="q-layout{props.class ? ` ${props.class}` : ''}"
74
+ style:--left-railbar-width={`${railbarLeft ? leftRailbarCtx.value.width : 0}px`}
75
+ style:--right-railbar-width={`${railbarRight ? rightRailbarCtx.value.width : 0}px`}
76
+ style:--offset-top={`${topOffset}px`}
77
+ style:--offset-right={`${rightOffset}px`}
78
+ style:--offset-bottom={`${bottomOffset}px`}
79
+ style:--offset-left={`${leftOffset}px`}
80
+ {onscroll}
81
+ {onresize}
82
+ >
83
+ {@render railbarLeft?.()}
84
+ {@render railbarRight?.()}
85
+ {@render drawerLeft?.()}
86
+ {@render drawerRight?.()}
87
+ {@render header?.()}
88
+ {@render footer?.()}
89
+
90
+ <ContextReseter
91
+ keys={[
92
+ "QHeader",
93
+ "QFooter",
94
+ "QRailbar-left",
95
+ "QRailbar-right",
96
+ "QDrawer-left",
97
+ "QDrawer-right",
98
+ ]}
99
+ >
100
+ <div class="q-layout__content" style:margin={contentMargin}>
101
+ {#if content}
102
+ {@render content()}
103
+ {:else}
104
+ {@render children?.()}
105
+ {/if}
106
+ </div>
87
107
  </ContextReseter>
88
108
  </div>
@@ -1,7 +1,5 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QLayoutProps } from "./props";
3
- import type { Readable } from "svelte/store";
4
- export interface DrawerContext {
2
+ export interface DrawerContextLegacy {
5
3
  offset: {
6
4
  top: boolean;
7
5
  bottom: boolean;
@@ -12,47 +10,22 @@ export interface DrawerContext {
12
10
  overlay: boolean;
13
11
  }
14
12
  export interface AppbarContext {
13
+ height: number;
14
+ collapsed: boolean;
15
+ }
16
+ export interface DrawerContext {
17
+ width: number;
18
+ takesSpace: boolean;
19
+ }
20
+ export interface AppbarContextLegacy {
15
21
  display: boolean;
16
22
  fixed: boolean;
17
23
  }
18
- export type LayoutContext = Readable<{
19
- header?: AppbarContext;
20
- footer?: AppbarContext;
21
- drawerLeft: DrawerContext;
22
- drawerRight: DrawerContext;
23
- }>;
24
- declare const __propDef: {
25
- props: {
26
- [x: string]: any;
27
- view?: QLayoutProps["view"];
28
- headerHeight?: QLayoutProps["headerHeight"];
29
- footerHeight?: QLayoutProps["footerHeight"];
30
- leftDrawerWidth?: QLayoutProps["leftDrawerWidth"];
31
- rightDrawerWidth?: QLayoutProps["rightDrawerWidth"];
32
- leftRailbarWidth?: QLayoutProps["leftRailbarWidth"];
33
- rightRailbarWidth?: QLayoutProps["rightDrawerWidth"];
34
- class?: string | null | undefined;
35
- style?: string | null | undefined;
36
- };
37
- events: {
38
- scroll: Event;
39
- resize: UIEvent;
40
- } & {
41
- [evt: string]: CustomEvent<any>;
42
- };
43
- slots: {
44
- railbarLeft: {};
45
- railbarRight: {};
46
- drawerLeft: {};
47
- drawerRight: {};
48
- header: {};
49
- footer: {};
50
- content: {};
51
- };
24
+ export type LayoutContext = {
25
+ header?: AppbarContextLegacy;
26
+ footer?: AppbarContextLegacy;
27
+ drawerLeft: DrawerContextLegacy;
28
+ drawerRight: DrawerContextLegacy;
52
29
  };
53
- type QLayoutProps_ = typeof __propDef.props;
54
- export { QLayoutProps_ as QLayoutProps };
55
- export type QLayoutEvents = typeof __propDef.events;
56
- export type QLayoutSlots = typeof __propDef.slots;
57
- export default class QLayout extends SvelteComponent<QLayoutProps, QLayoutEvents, QLayoutSlots> {
58
- }
30
+ declare const QLayout: import("svelte").Component<QLayoutProps, {}, "">;
31
+ export default QLayout;
@@ -1,5 +1,5 @@
1
1
  // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
- // @quaffHash cce7c92a645afcabe17eef05e3f16990
2
+ // @quaffHash 0dcefb45962cef3881e6d5b3d3ec1666
3
3
  export const QLayoutDocsProps = [
4
4
  {
5
5
  name: "view",
@@ -57,4 +57,60 @@ export const QLayoutDocsProps = [
57
57
  description: 'The width of the right railbar. Can be specified with CSS units. If no unit is specified, "px" will be used.',
58
58
  default: "88px",
59
59
  },
60
+ {
61
+ name: "content",
62
+ type: "Snippet",
63
+ optional: true,
64
+ clickableType: true,
65
+ description: "",
66
+ default: "",
67
+ },
68
+ {
69
+ name: "railbarLeft",
70
+ type: "Snippet",
71
+ optional: true,
72
+ clickableType: true,
73
+ description: "",
74
+ default: "",
75
+ },
76
+ {
77
+ name: "railbarRight",
78
+ type: "Snippet",
79
+ optional: true,
80
+ clickableType: true,
81
+ description: "",
82
+ default: "",
83
+ },
84
+ {
85
+ name: "drawerLeft",
86
+ type: "Snippet",
87
+ optional: true,
88
+ clickableType: true,
89
+ description: "",
90
+ default: "",
91
+ },
92
+ {
93
+ name: "drawerRight",
94
+ type: "Snippet",
95
+ optional: true,
96
+ clickableType: true,
97
+ description: "",
98
+ default: "",
99
+ },
100
+ {
101
+ name: "header",
102
+ type: "Snippet",
103
+ optional: true,
104
+ clickableType: true,
105
+ description: "",
106
+ default: "",
107
+ },
108
+ {
109
+ name: "footer",
110
+ type: "Snippet",
111
+ optional: true,
112
+ clickableType: true,
113
+ description: "",
114
+ default: "",
115
+ },
60
116
  ];
@@ -1,4 +1,5 @@
1
1
  import type { NativeProps } from "../../utils";
2
+ import type { Snippet } from "svelte";
2
3
  import type { HTMLAttributes } from "svelte/elements";
3
4
  export type QLayoutViewOptions = `${"l" | "h"}${"h" | "H"}${"r" | "h"} ${"l" | "L"}${"p"}${"r" | "R"} ${"l" | "f"}${"f" | "F"}${"r" | "f"}`;
4
5
  export interface QLayoutProps extends NativeProps, HTMLAttributes<HTMLDivElement> {
@@ -38,5 +39,12 @@ export interface QLayoutProps extends NativeProps, HTMLAttributes<HTMLDivElement
38
39
  * @default 88px
39
40
  */
40
41
  rightRailbarWidth?: string | number;
42
+ content?: Snippet;
43
+ railbarLeft?: Snippet;
44
+ railbarRight?: Snippet;
45
+ drawerLeft?: Snippet;
46
+ drawerRight?: Snippet;
47
+ header?: Snippet;
48
+ footer?: Snippet;
41
49
  }
42
50
  export type QLayoutEvents = "resize" | "scroll" | "scrollHeight";
@@ -0,0 +1,61 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-item {
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: flex-start;
7
+ white-space: nowrap;
8
+ gap: 1rem;
9
+
10
+ min-width: 100%;
11
+ max-width: 100%;
12
+ min-height: 3.5rem;
13
+ margin-top: 0 !important;
14
+ margin: 0;
15
+ padding: 0.5rem 1.5rem 0.5rem 1rem;
16
+ gap: 1rem;
17
+
18
+ &.q-link {
19
+ padding: 0.5rem 1.5rem 0.5rem 1rem;
20
+
21
+ &:is(:hover, :focus):not([aria-disabled])::after {
22
+ content: "";
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ width: 100%;
27
+ height: 100%;
28
+ background-color: var(--on-surface);
29
+ border-radius: inherit;
30
+ }
31
+
32
+ &:hover:not([aria-disabled])::after {
33
+ opacity: 0.08;
34
+ }
35
+
36
+ &:focus:not([aria-disabled])::after {
37
+ opacity: 0.16;
38
+ }
39
+
40
+ &.multiline {
41
+ padding-block: 0.75rem;
42
+ }
43
+
44
+ &::after {
45
+ background-image: radial-gradient(circle, rgb(150 150 150 / 0.2) 1%, transparent 1%);
46
+ }
47
+ }
48
+
49
+ &--multiline {
50
+ padding-block: 0.75rem;
51
+
52
+ & > .q-item__section:is(.avatar, .icon, .thumbnail, .trailingIcon, .trailingText) {
53
+ align-self: start;
54
+ }
55
+
56
+ > .q-item__section.video {
57
+ margin-left: -1rem !important;
58
+ padding-block: 0;
59
+ }
60
+ }
61
+ }