@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,63 +1,82 @@
1
- <script>import { useRouterLink, isRouteActive } from "../../composables";
2
- import { ripple } from "../../helpers";
3
- import { Quaff } from "../../stores/Quaff";
4
- import { setContext, getContext } from "svelte";
5
- import { writable } from "svelte/store";
6
- import { QSeparator } from "../..";
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 = "";
8
- export { userClasses as class };
9
- let hasMultipleLines = writable(false);
10
- setContext("hasMultipleLines", hasMultipleLines);
11
- $:
12
- ({ hasLink, linkAttributes, linkClasses } = useRouterLink({
1
+ <script lang="ts">
2
+ import { getContext } from "svelte";
3
+ import { getRouterInfo, isRouteActive } from "../../utils/router";
4
+ import { ripple } from "../../helpers/ripple";
5
+ import QContext from "../../classes/QContext.svelte";
6
+ import QSeparator from "../separator/QSeparator.svelte";
7
+ let {
8
+ tag = "div",
9
+ active = false,
10
+ clickable = false,
11
+ dense = false,
12
+ tabindex = 0,
13
13
  href,
14
14
  to,
15
- disable,
16
- activeClass,
17
- replace
18
- }));
19
- $:
20
- separatorOptions = getContext("separator");
21
- $:
22
- isActionable = clickable || hasLink || tag === "label";
23
- $:
24
- isClickable = isActionable && !disable;
25
- $:
26
- isActive = isRouteActive($Quaff.router, to);
15
+ disabled = false,
16
+ activeClass = "active",
17
+ replace = false,
18
+ noRipple = false,
19
+ children,
20
+ ...props
21
+ } = $props();
22
+ const routerInfo = $derived(
23
+ getRouterInfo({
24
+ href,
25
+ to,
26
+ disabled,
27
+ activeClass,
28
+ replace,
29
+ }),
30
+ );
31
+ const multiline = new QContext("multiline", false);
32
+ const separatorOptions = getContext("separator");
33
+ const isActionable = $derived(
34
+ clickable || routerInfo.hasLink || tag === "label",
35
+ );
36
+ const isClickable = $derived(isActionable && !disabled);
37
+ const isActive = $derived(
38
+ $isRouteActive(to || href) || (routerInfo.hasLink && active),
39
+ );
27
40
  </script>
28
41
 
29
- {#if separatorOptions !== undefined}
42
+ {#if separatorOptions}
30
43
  <QSeparator {...separatorOptions} />
31
44
  {/if}
32
- {#if linkAttributes.href !== undefined}
33
- <!-- svelte-ignore a11y-missing-attribute -->
34
- <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
45
+
46
+ {#if routerInfo.linkAttributes.href}
47
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
35
48
  <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}
49
+ use:ripple={{ disabled: !isClickable || noRipple }}
50
+ {...props}
51
+ class="q-item{routerInfo.linkClasses
52
+ ? ` ${routerInfo.linkClasses}`
53
+ : ''}{isActive ? ' ' + activeClass : ''}{props.class
54
+ ? ` ${props.class}`
55
+ : ''}"
56
+ class:q-item--multiline={multiline.value}
40
57
  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}
58
+ class:q-item--active={isActive}
59
+ tabindex={isClickable ? tabindex || 0 : undefined}
60
+ aria-disabled={isActionable && disabled ? true : undefined}
61
+ {...routerInfo.linkAttributes}
46
62
  >
47
- <slot />
63
+ {@render children?.()}
48
64
  </a>
49
65
  {:else}
50
66
  <svelte:element
51
67
  this={tag}
52
- class="q-item {userClasses}"
53
- class:q-item--active={isActive || (hasLink && active)}
54
- class:q-item--multiline={$hasMultipleLines}
68
+ {...props}
69
+ class="q-item{routerInfo.linkClasses
70
+ ? ` ${routerInfo.linkClasses}`
71
+ : ''}{isActive ? ' ' + activeClass : ''}{props.class
72
+ ? ` ${props.class}`
73
+ : ''}"
74
+ class:q-item--multiline={multiline.value}
55
75
  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}
76
+ class:q-item--active={isActive}
77
+ tabindex={isClickable ? tabindex || 0 : undefined}
78
+ aria-disabled={isActionable && disabled ? true : undefined}
60
79
  >
61
- <slot />
80
+ {@render children?.()}
62
81
  </svelte:element>
63
82
  {/if}
@@ -1,31 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QItemProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- tag?: QItemProps["tag"];
7
- active?: QItemProps["active"];
8
- clickable?: QItemProps["clickable"];
9
- dense?: QItemProps["dense"];
10
- tabindex?: QItemProps["tabindex"];
11
- href?: QItemProps["href"];
12
- to?: QItemProps["to"];
13
- disable?: QItemProps["disable"];
14
- activeClass?: QItemProps["activeClass"];
15
- replace?: QItemProps["replace"];
16
- noRipple?: QItemProps["noRipple"];
17
- class?: string | null | undefined;
18
- };
19
- events: {
20
- [evt: string]: CustomEvent<any>;
21
- };
22
- slots: {
23
- default: {};
24
- };
25
- };
26
- type QItemProps_ = typeof __propDef.props;
27
- export { QItemProps_ as QItemProps };
28
- export type QItemEvents = typeof __propDef.events;
29
- export type QItemSlots = typeof __propDef.slots;
30
- export default class QItem extends SvelteComponent<QItemProps, QItemEvents, QItemSlots> {
31
- }
2
+ declare const QItem: import("svelte").Component<QItemProps, {}, "">;
3
+ export default QItem;
@@ -0,0 +1,45 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-item__section {
4
+ display: flex;
5
+
6
+ &--video {
7
+ margin-left: -1rem;
8
+ padding-block: 0.25rem;
9
+
10
+ & video {
11
+ width: auto;
12
+ height: 4rem;
13
+ object-fit: cover;
14
+ object-position: center;
15
+ }
16
+ }
17
+
18
+ & .q-avatar {
19
+ height: 2.5rem;
20
+ width: 2.5rem;
21
+ }
22
+ &--icon {
23
+ height: 1.5rem;
24
+ width: 1.5rem;
25
+ }
26
+
27
+ &--thumbnail img {
28
+ width: 3.5rem;
29
+ height: 3.5rem;
30
+ object-fit: cover;
31
+ object-position: center;
32
+ }
33
+
34
+ &--content {
35
+ flex-direction: column;
36
+ flex: 10000 1 0;
37
+ justify-content: center;
38
+ align-items: start;
39
+ }
40
+
41
+ &--toggle {
42
+ height: 1.5rem;
43
+ width: 3.25rem;
44
+ }
45
+ }
@@ -1,45 +1,60 @@
1
- <script>import { getContext } from "svelte";
2
- export let type = "content", userClasses = "";
3
- export { userClasses as class };
4
- $:
5
- ctx = getContext("hasMultipleLines");
6
- $:
7
- if (type === "content") {
8
- $ctx = $$slots.headline && [$$slots.line1, $$slots.line2, $$slots.line3].filter(Boolean).length >= 2;
1
+ <script lang="ts">
2
+ import QContext from "../../classes/QContext.svelte";
3
+ let {
4
+ type = "content",
5
+ children,
6
+ headline = children,
7
+ line1,
8
+ line2,
9
+ line3,
10
+ ...props
11
+ } = $props();
12
+ const multiline = QContext.get("multiline");
13
+ $effect(() => {
14
+ if (type === "content") {
15
+ multiline?.update(
16
+ !!headline && [line1, line2, line3].filter(Boolean).length >= 2,
17
+ );
18
+ }
19
+ });
20
+ function getClass(snip) {
21
+ return snip === headline
22
+ ? "body-large text-on-surface"
23
+ : "body-medium text-on-surface-variant";
9
24
  }
10
25
  </script>
11
26
 
12
- <div class="q-item__section q-item__section--{type} {userClasses}" {...$$restProps}>
27
+ <div
28
+ {...props}
29
+ class="q-item__section{props.class
30
+ ? ` ${props.class}`
31
+ : ''} q-item__section--{type}"
32
+ >
13
33
  {#if type === "content"}
14
- {#if ![$$slots.headline, $$slots.line2, $$slots.line2, $$slots.line3].some(Boolean)}
15
- <slot />
34
+ {#if !headline && !line1 && !line2 && !line3}
35
+ {@render children?.()}
16
36
  {:else}
17
- {#if $$slots.headline}
18
- <div class="body-large text-on-surface">
19
- <slot name="headline" />
20
- </div>
21
- {/if}
22
- <div class="body-medium text-on-surface-variant">
23
- {#if $$slots.line1}
24
- <slot name="line1" />
25
- {/if}
26
- </div>
27
- {#if $$slots.line2}
28
- <div class="body-medium text-on-surface-variant">
29
- <slot name="line2" />
30
- </div>
31
- {/if}
32
- {#if $$slots.line3}
33
- <div class="body-medium text-on-surface-variant">
34
- <slot name="line3" />
35
- </div>
36
- {/if}
37
+ {@render line(headline)}
38
+
39
+ {@render line(line1)}
40
+
41
+ {@render line(line2)}
42
+
43
+ {@render line(line3)}
37
44
  {/if}
38
45
  {:else if type === "trailingText"}
39
46
  <div class="label-small text-on-surface-variant">
40
- <slot />
47
+ {@render children?.()}
41
48
  </div>
42
49
  {:else}
43
- <slot />
50
+ {@render children?.()}
44
51
  {/if}
45
52
  </div>
53
+
54
+ {#snippet line(snip: Snippet | undefined)}
55
+ {#if snip}
56
+ <div class={getClass(snip)}>
57
+ {@render snip()}
58
+ </div>
59
+ {/if}
60
+ {/snippet}
@@ -1,25 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QItemSectionProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- type?: QItemSectionProps["type"];
7
- class?: string | null | undefined;
8
- };
9
- events: {
10
- [evt: string]: CustomEvent<any>;
11
- };
12
- slots: {
13
- default: {};
14
- headline: {};
15
- line1: {};
16
- line2: {};
17
- line3: {};
18
- };
19
- };
20
- type QItemSectionProps_ = typeof __propDef.props;
21
- export { QItemSectionProps_ as QItemSectionProps };
22
- export type QItemSectionEvents = typeof __propDef.events;
23
- export type QItemSectionSlots = typeof __propDef.slots;
24
- export default class QItemSection extends SvelteComponent<QItemSectionProps, QItemSectionEvents, QItemSectionSlots> {
25
- }
2
+ declare const QItemSection: import("svelte").Component<QItemSectionProps, {}, "">;
3
+ export default QItemSection;
@@ -0,0 +1,30 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-list {
4
+ display: flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ justify-content: center;
8
+ width: 100%;
9
+
10
+ &--bordered {
11
+ @include mixins.border;
12
+ }
13
+
14
+ &--rounded {
15
+ border-radius: 0.25rem;
16
+ }
17
+
18
+ &--dense {
19
+ min-height: 2rem;
20
+ padding-block: 0;
21
+
22
+ & > .q-item {
23
+ min-height: 2rem;
24
+ }
25
+ }
26
+
27
+ & > .q-separator__wrapper:first-child {
28
+ display: none !important;
29
+ }
30
+ }
@@ -1,22 +1,33 @@
1
- <script>import { onMount, setContext } from "svelte";
2
- export let bordered = false, roundedBorders = false, dense = false, separator = false, separatorOptions = {}, padding = false, tag = "div", userClasses = "";
3
- export { userClasses as class };
4
- let listElement;
5
- onMount(() => listElement.querySelector(".q-separator__wrapper:first-child")?.remove());
6
- $:
7
- setContext("separator", separator === true ? separatorOptions : void 0);
1
+ <script lang="ts">
2
+ import { setContext } from "svelte";
3
+ let {
4
+ bordered = false,
5
+ roundedBorders = false,
6
+ dense = false,
7
+ separator = false,
8
+ separatorOptions = {},
9
+ padding = false,
10
+ tag = "div",
11
+ children,
12
+ ...props
13
+ } = $props();
14
+ let listEl;
15
+ $effect(() => {
16
+ listEl.querySelector(".q-separator__wrapper:first-child")?.remove();
17
+ });
18
+ setContext("separator", separator ? separatorOptions : void 0);
8
19
  </script>
9
20
 
10
21
  <svelte:element
11
22
  this={tag}
12
- class="q-list {userClasses}"
23
+ bind:this={listEl}
24
+ {...props}
25
+ class="q-list{padding ? ' ' + 'q-py-sm' : ''} flex flex-center{props.class
26
+ ? ` ${props.class}`
27
+ : ''}"
13
28
  class:q-list--bordered={bordered}
14
- class:q-list--rounded={roundedBorders}
15
29
  class:q-list--dense={dense}
16
- class:q-py-sm={padding}
17
- {...$$restProps}
18
- bind:this={listElement}
19
- on:scroll
30
+ class:q-list--rounded={roundedBorders}
20
31
  >
21
- <slot />
32
+ {@render children?.()}
22
33
  </svelte:element>
@@ -1,29 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QListProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- bordered?: QListProps["bordered"];
7
- roundedBorders?: QListProps["roundedBorders"];
8
- dense?: QListProps["dense"];
9
- separator?: QListProps["separator"];
10
- separatorOptions?: QListProps["separatorOptions"];
11
- padding?: QListProps["padding"];
12
- tag?: QListProps["tag"];
13
- class?: string | null | undefined;
14
- };
15
- events: {
16
- scroll: Event;
17
- } & {
18
- [evt: string]: CustomEvent<any>;
19
- };
20
- slots: {
21
- default: {};
22
- };
23
- };
24
- type QListProps_ = typeof __propDef.props;
25
- export { QListProps_ as QListProps };
26
- export type QListEvents = typeof __propDef.events;
27
- export type QListSlots = typeof __propDef.slots;
28
- export default class QList extends SvelteComponent<QListProps, QListEvents, QListSlots> {
29
- }
2
+ declare const QList: import("svelte").Component<QListProps, {}, "">;
3
+ export default QList;
@@ -1,9 +1,9 @@
1
1
  // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
- // @quaffHash 709e51aed5c99e14ee5c52eee28c2998
2
+ // @quaffHash c756ee7a64d9843e3adb179c354d8a5f
3
3
  export const QSeparatorPropsVertical = [
4
4
  {
5
5
  name: "spacing",
6
- type: "QuaffSizes",
6
+ type: "Q.Size",
7
7
  optional: true,
8
8
  clickableType: true,
9
9
  description: "",
@@ -36,7 +36,7 @@ export const QSeparatorPropsVertical = [
36
36
  {
37
37
  name: "size",
38
38
  type: "string",
39
- optional: false,
39
+ optional: true,
40
40
  clickableType: false,
41
41
  description: "",
42
42
  default: "",
@@ -61,7 +61,7 @@ export const QSeparatorPropsVertical = [
61
61
  export const QSeparatorPropsHorizontal = [
62
62
  {
63
63
  name: "spacing",
64
- type: "QuaffSizes",
64
+ type: "Q.Size",
65
65
  optional: true,
66
66
  clickableType: true,
67
67
  description: "",
@@ -241,4 +241,36 @@ export const QItemSectionDocsProps = [
241
241
  description: "",
242
242
  default: "",
243
243
  },
244
+ {
245
+ name: "headline",
246
+ type: "Snippet",
247
+ optional: true,
248
+ clickableType: true,
249
+ description: "",
250
+ default: "",
251
+ },
252
+ {
253
+ name: "line1",
254
+ type: "Snippet",
255
+ optional: true,
256
+ clickableType: true,
257
+ description: "",
258
+ default: "",
259
+ },
260
+ {
261
+ name: "line2",
262
+ type: "Snippet",
263
+ optional: true,
264
+ clickableType: true,
265
+ description: "",
266
+ default: "",
267
+ },
268
+ {
269
+ name: "line3",
270
+ type: "Snippet",
271
+ optional: true,
272
+ clickableType: true,
273
+ description: "",
274
+ default: "",
275
+ },
244
276
  ];
@@ -1,8 +1,8 @@
1
- import type { UseRouterLinkProps } from "../../composables/useRouterLink";
1
+ import type { RouterProps } from "../../utils/router";
2
+ import type { Snippet } from "svelte";
2
3
  import type { QSeparatorProps } from "../separator/props";
3
4
  import type { HTMLAnchorAttributes, HTMLAttributes } from "svelte/elements";
4
- import type { NativeProps } from "../../utils";
5
- export interface QListProps extends NativeProps, HTMLAttributes<HTMLElement> {
5
+ export interface QListProps extends HTMLAttributes<HTMLElement> {
6
6
  bordered?: boolean;
7
7
  roundedBorders?: boolean;
8
8
  dense?: boolean;
@@ -18,8 +18,7 @@ export interface QListProps extends NativeProps, HTMLAttributes<HTMLElement> {
18
18
  padding?: boolean;
19
19
  tag?: string;
20
20
  }
21
- export declare const QListPropsDefaults: QListProps;
22
- export interface QItemProps extends UseRouterLinkProps, NativeProps, HTMLAttributes<HTMLElement> {
21
+ export interface QItemProps extends RouterProps, HTMLAttributes<HTMLElement> {
23
22
  tag?: string;
24
23
  active?: boolean;
25
24
  clickable?: boolean;
@@ -28,9 +27,11 @@ export interface QItemProps extends UseRouterLinkProps, NativeProps, HTMLAttribu
28
27
  tabindex?: HTMLAttributes<HTMLElement>["tabindex"];
29
28
  target?: HTMLAnchorAttributes["target"];
30
29
  }
31
- export declare const QItemPropsDefaults: QItemProps;
32
30
  export type QItemSectionTypes = "thumbnail" | "video" | "avatar" | "toggle" | "icon" | "trailingIcon" | "trailingText" | "content";
33
- export interface QItemSectionProps extends NativeProps, HTMLAttributes<HTMLDivElement> {
31
+ export interface QItemSectionProps extends HTMLAttributes<HTMLDivElement> {
34
32
  type?: QItemSectionTypes;
33
+ headline?: Snippet;
34
+ line1?: Snippet;
35
+ line2?: Snippet;
36
+ line3?: Snippet;
35
37
  }
36
- export declare const QItemSectionPropsDefaults: QItemSectionProps;
@@ -1,25 +1 @@
1
- import { NativePropsDefaults } from "../../utils";
2
- import { UseRouterLinkPropsDefaults } from "../../composables/useRouterLink";
3
- export const QListPropsDefaults = {
4
- bordered: false,
5
- roundedBorders: false,
6
- dense: false,
7
- separator: false,
8
- separatorOptions: {},
9
- padding: false,
10
- tag: "div",
11
- ...NativePropsDefaults,
12
- };
13
- export const QItemPropsDefaults = {
14
- tag: "div",
15
- active: false,
16
- clickable: false,
17
- dense: false,
18
- tabindex: 0,
19
- ...UseRouterLinkPropsDefaults,
20
- ...NativePropsDefaults,
21
- };
22
- export const QItemSectionPropsDefaults = {
23
- type: "content",
24
- ...NativePropsDefaults,
25
- };
1
+ export {};
@@ -1,13 +1,8 @@
1
- <script>import { setContext } from "svelte";
2
- export let keys;
3
- $:
4
- if (Array.isArray(keys)) {
5
- for (let key of keys) {
6
- setContext(key, void 0);
7
- }
8
- } else {
9
- setContext(keys, void 0);
10
- }
1
+ <script lang="ts">
2
+ import QContext from "../../classes/QContext.svelte";
3
+ let { keys, children } = $props();
4
+ const keysArr = Array.isArray(keys) ? keys : [keys];
5
+ keysArr.forEach((key) => QContext.reset(key));
11
6
  </script>
12
7
 
13
- <slot />
8
+ {@render children?.()}
@@ -1,18 +1,6 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- keys: string | string[];
5
- };
6
- events: {
7
- [evt: string]: CustomEvent<any>;
8
- };
9
- slots: {
10
- default: {};
11
- };
12
- };
13
- export type ContextReseterProps = typeof __propDef.props;
14
- export type ContextReseterEvents = typeof __propDef.events;
15
- export type ContextReseterSlots = typeof __propDef.slots;
16
- export default class ContextReseter extends SvelteComponent<ContextReseterProps, ContextReseterEvents, ContextReseterSlots> {
17
- }
18
- export {};
1
+ import type { Snippet } from "svelte";
2
+ declare const ContextReseter: import("svelte").Component<{
3
+ keys: string | string[];
4
+ children?: Snippet;
5
+ }, {}, "">;
6
+ export default ContextReseter;