@quaffui/quaff 0.1.0-prealpha15 → 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 (323) 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 -50
  12. package/dist/components/avatar/QAvatar.svelte.d.ts +2 -25
  13. package/dist/components/avatar/docs.d.ts +1 -1
  14. package/dist/components/avatar/docs.js +1 -1
  15. package/dist/components/avatar/docs.props.js +21 -5
  16. package/dist/components/avatar/index.scss +5 -3
  17. package/dist/components/avatar/props.d.ts +24 -7
  18. package/dist/components/breadcrumbs/QBreadcrumbs.scss +10 -0
  19. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +24 -10
  20. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +2 -22
  21. package/dist/components/breadcrumbs/QBreadcrumbsEl.scss +10 -0
  22. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +62 -38
  23. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +2 -25
  24. package/dist/components/breadcrumbs/docs.d.ts +1 -1
  25. package/dist/components/breadcrumbs/docs.js +1 -1
  26. package/dist/components/breadcrumbs/docs.props.js +27 -27
  27. package/dist/components/breadcrumbs/props.d.ts +25 -24
  28. package/dist/components/button/QBtn.scss +133 -0
  29. package/dist/components/button/QBtn.svelte +89 -46
  30. package/dist/components/button/QBtn.svelte.d.ts +2 -33
  31. package/dist/components/button/docs.d.ts +1 -1
  32. package/dist/components/button/docs.js +1 -1
  33. package/dist/components/button/docs.props.js +26 -18
  34. package/dist/components/button/props.d.ts +21 -15
  35. package/dist/components/card/QCard.scss +25 -0
  36. package/dist/components/card/QCard.svelte +26 -17
  37. package/dist/components/card/QCard.svelte.d.ts +2 -25
  38. package/dist/components/card/QCardActions.scss +10 -0
  39. package/dist/components/card/QCardActions.svelte +11 -8
  40. package/dist/components/card/QCardActions.svelte.d.ts +2 -21
  41. package/dist/components/card/QCardSection.scss +10 -0
  42. package/dist/components/card/QCardSection.svelte +9 -7
  43. package/dist/components/card/QCardSection.svelte.d.ts +2 -22
  44. package/dist/components/card/docs.d.ts +3 -3
  45. package/dist/components/card/docs.js +3 -3
  46. package/dist/components/card/docs.props.js +6 -14
  47. package/dist/components/card/props.d.ts +9 -15
  48. package/dist/components/checkbox/QCheckbox.svelte +6 -5
  49. package/dist/components/checkbox/QCheckbox.svelte.d.ts +2 -20
  50. package/dist/components/checkbox/docs.d.ts +1 -1
  51. package/dist/components/checkbox/docs.js +1 -1
  52. package/dist/components/checkbox/docs.props.js +1 -1
  53. package/dist/components/checkbox/index.scss +3 -1
  54. package/dist/components/checkbox/props.d.ts +1 -2
  55. package/dist/components/chip/QChip.scss +179 -0
  56. package/dist/components/chip/QChip.svelte +97 -69
  57. package/dist/components/chip/QChip.svelte.d.ts +2 -35
  58. package/dist/components/chip/docs.d.ts +1 -1
  59. package/dist/components/chip/docs.js +1 -1
  60. package/dist/components/chip/docs.props.js +23 -47
  61. package/dist/components/chip/props.d.ts +21 -34
  62. package/dist/components/codeBlock/QCodeBlock.svelte +63 -45
  63. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +2 -19
  64. package/dist/components/codeBlock/docs.props.js +10 -2
  65. package/dist/components/codeBlock/props.d.ts +6 -1
  66. package/dist/components/dialog/{index.scss → QDialog.scss} +9 -7
  67. package/dist/components/dialog/QDialog.svelte +72 -70
  68. package/dist/components/dialog/QDialog.svelte.d.ts +6 -36
  69. package/dist/components/dialog/docs.d.ts +1 -1
  70. package/dist/components/dialog/docs.js +1 -1
  71. package/dist/components/dialog/docs.props.d.ts +0 -8
  72. package/dist/components/dialog/docs.props.js +1 -131
  73. package/dist/components/dialog/props.d.ts +0 -16
  74. package/dist/components/drawer/QDrawer.scss +45 -0
  75. package/dist/components/drawer/QDrawer.svelte +87 -94
  76. package/dist/components/drawer/QDrawer.svelte.d.ts +6 -39
  77. package/dist/components/drawer/docs.d.ts +1 -1
  78. package/dist/components/drawer/docs.js +1 -1
  79. package/dist/components/drawer/docs.props.js +3 -3
  80. package/dist/components/drawer/props.d.ts +2 -2
  81. package/dist/components/footer/QFooter.scss +42 -0
  82. package/dist/components/footer/QFooter.svelte +65 -24
  83. package/dist/components/footer/QFooter.svelte.d.ts +2 -23
  84. package/dist/components/footer/docs.d.ts +1 -1
  85. package/dist/components/footer/docs.js +1 -1
  86. package/dist/components/footer/docs.props.js +14 -6
  87. package/dist/components/footer/props.d.ts +8 -5
  88. package/dist/components/header/QHeader.scss +54 -0
  89. package/dist/components/header/QHeader.svelte +52 -24
  90. package/dist/components/header/QHeader.svelte.d.ts +2 -23
  91. package/dist/components/header/docs.props.js +23 -7
  92. package/dist/components/header/props.d.ts +11 -3
  93. package/dist/components/icon/{index.scss → QIcon.scss} +2 -4
  94. package/dist/components/icon/QIcon.svelte +29 -16
  95. package/dist/components/icon/QIcon.svelte.d.ts +2 -27
  96. package/dist/components/icon/docs.d.ts +1 -1
  97. package/dist/components/icon/docs.js +1 -1
  98. package/dist/components/icon/docs.props.js +5 -5
  99. package/dist/components/icon/props.d.ts +6 -6
  100. package/dist/components/index.d.ts +2 -2
  101. package/dist/components/index.js +2 -2
  102. package/dist/components/input/QInput.svelte +52 -25
  103. package/dist/components/input/QInput.svelte.d.ts +2 -32
  104. package/dist/components/input/docs.d.ts +1 -1
  105. package/dist/components/input/docs.js +1 -1
  106. package/dist/components/input/docs.props.js +33 -1
  107. package/dist/components/input/props.d.ts +5 -12
  108. package/dist/components/input/props.js +1 -12
  109. package/dist/components/layout/QLayout.scss +178 -0
  110. package/dist/components/layout/QLayout.svelte +100 -80
  111. package/dist/components/layout/QLayout.svelte.d.ts +16 -43
  112. package/dist/components/layout/docs.d.ts +1 -1
  113. package/dist/components/layout/docs.js +1 -1
  114. package/dist/components/layout/docs.props.js +57 -1
  115. package/dist/components/layout/props.d.ts +8 -0
  116. package/dist/components/list/QItem.scss +61 -0
  117. package/dist/components/list/QItem.svelte +65 -46
  118. package/dist/components/list/QItem.svelte.d.ts +2 -30
  119. package/dist/components/list/QItemSection.scss +45 -0
  120. package/dist/components/list/QItemSection.svelte +46 -34
  121. package/dist/components/list/QItemSection.svelte.d.ts +2 -24
  122. package/dist/components/list/QList.scss +30 -0
  123. package/dist/components/list/QList.svelte +28 -16
  124. package/dist/components/list/QList.svelte.d.ts +2 -28
  125. package/dist/components/list/docs.d.ts +1 -1
  126. package/dist/components/list/docs.js +1 -1
  127. package/dist/components/list/docs.props.js +36 -4
  128. package/dist/components/list/props.d.ts +9 -8
  129. package/dist/components/list/props.js +1 -25
  130. package/dist/components/private/ContextReseter.svelte +6 -11
  131. package/dist/components/private/ContextReseter.svelte.d.ts +6 -18
  132. package/dist/components/private/QApi.svelte +118 -97
  133. package/dist/components/private/QApi.svelte.d.ts +4 -16
  134. package/dist/components/private/QDocs.svelte +67 -58
  135. package/dist/components/private/QDocs.svelte.d.ts +9 -20
  136. package/dist/components/private/QDocsSection.svelte +15 -22
  137. package/dist/components/private/QDocsSection.svelte.d.ts +7 -29
  138. package/dist/components/private/QIconSnippet.svelte +12 -0
  139. package/dist/components/private/QIconSnippet.svelte.d.ts +8 -0
  140. package/dist/components/progress/QCircularProgress.scss +63 -0
  141. package/dist/components/progress/QCircularProgress.svelte +104 -28
  142. package/dist/components/progress/QCircularProgress.svelte.d.ts +2 -22
  143. package/dist/components/progress/QLinearProgress.scss +75 -0
  144. package/dist/components/progress/QLinearProgress.svelte +55 -13
  145. package/dist/components/progress/QLinearProgress.svelte.d.ts +2 -20
  146. package/dist/components/progress/docs.d.ts +1 -1
  147. package/dist/components/progress/docs.js +1 -1
  148. package/dist/components/progress/docs.props.js +138 -10
  149. package/dist/components/progress/props.d.ts +75 -12
  150. package/dist/components/radio/QRadio.svelte +14 -3
  151. package/dist/components/radio/QRadio.svelte.d.ts +2 -21
  152. package/dist/components/radio/docs.d.ts +1 -1
  153. package/dist/components/radio/docs.js +1 -1
  154. package/dist/components/radio/docs.props.js +2 -2
  155. package/dist/components/radio/index.scss +3 -1
  156. package/dist/components/radio/props.d.ts +2 -4
  157. package/dist/components/radio/props.js +1 -8
  158. package/dist/components/railbar/QRailbar.scss +54 -0
  159. package/dist/components/railbar/QRailbar.svelte +43 -66
  160. package/dist/components/railbar/QRailbar.svelte.d.ts +2 -22
  161. package/dist/components/railbar/docs.d.ts +1 -1
  162. package/dist/components/railbar/docs.js +1 -1
  163. package/dist/components/railbar/docs.props.js +4 -4
  164. package/dist/components/railbar/props.d.ts +3 -3
  165. package/dist/components/select/QSelect.svelte +121 -88
  166. package/dist/components/select/QSelect.svelte.d.ts +2 -34
  167. package/dist/components/select/docs.d.ts +1 -1
  168. package/dist/components/select/docs.js +8 -1
  169. package/dist/components/select/docs.props.js +41 -1
  170. package/dist/components/select/index.scss +8 -6
  171. package/dist/components/select/props.d.ts +6 -12
  172. package/dist/components/select/props.js +1 -12
  173. package/dist/components/separator/QSeparator.scss +54 -0
  174. package/dist/components/separator/QSeparator.svelte +38 -45
  175. package/dist/components/separator/QSeparator.svelte.d.ts +2 -24
  176. package/dist/components/separator/docs.d.ts +1 -1
  177. package/dist/components/separator/docs.js +1 -1
  178. package/dist/components/separator/docs.props.js +4 -4
  179. package/dist/components/separator/props.d.ts +5 -7
  180. package/dist/components/separator/props.js +1 -9
  181. package/dist/components/switch/QSwitch.scss +305 -0
  182. package/dist/components/switch/QSwitch.svelte +96 -0
  183. package/dist/components/switch/QSwitch.svelte.d.ts +3 -0
  184. package/dist/components/{toggle → switch}/docs.d.ts +1 -1
  185. package/dist/components/{toggle → switch}/docs.js +3 -3
  186. package/dist/components/{toggle → switch}/docs.props.d.ts +1 -1
  187. package/dist/components/{toggle → switch}/docs.props.js +30 -6
  188. package/dist/components/switch/props.d.ts +13 -0
  189. package/dist/components/switch/props.js +1 -0
  190. package/dist/components/table/QTable.svelte +99 -85
  191. package/dist/components/table/QTable.svelte.d.ts +3 -29
  192. package/dist/components/table/docs.d.ts +1 -1
  193. package/dist/components/table/docs.js +1 -1
  194. package/dist/components/table/docs.props.js +9 -1
  195. package/dist/components/table/index.scss +3 -1
  196. package/dist/components/table/props.d.ts +10 -0
  197. package/dist/components/tabs/QTab.scss +71 -0
  198. package/dist/components/tabs/QTab.svelte +75 -96
  199. package/dist/components/tabs/QTab.svelte.d.ts +2 -25
  200. package/dist/components/tabs/QTabs.scss +40 -0
  201. package/dist/components/tabs/QTabs.svelte +107 -59
  202. package/dist/components/tabs/QTabs.svelte.d.ts +6 -31
  203. package/dist/components/tabs/docs.d.ts +1 -1
  204. package/dist/components/tabs/docs.js +1 -1
  205. package/dist/components/tabs/docs.props.js +3 -3
  206. package/dist/components/tabs/index.scss +4 -2
  207. package/dist/components/tabs/props.d.ts +5 -4
  208. package/dist/components/tabs/props.js +1 -1
  209. package/dist/components/toolbar/QToolbar.svelte +15 -12
  210. package/dist/components/toolbar/QToolbar.svelte.d.ts +2 -23
  211. package/dist/components/toolbar/QToolbarTitle.svelte +8 -7
  212. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +2 -21
  213. package/dist/components/toolbar/docs.d.ts +1 -1
  214. package/dist/components/toolbar/docs.js +1 -1
  215. package/dist/components/toolbar/docs.props.js +4 -4
  216. package/dist/components/toolbar/index.scss +12 -14
  217. package/dist/components/toolbar/props.d.ts +4 -5
  218. package/dist/components/tooltip/QTooltip.svelte +5 -9
  219. package/dist/components/tooltip/QTooltip.svelte.d.ts +2 -21
  220. package/dist/components/tooltip/docs.d.ts +1 -1
  221. package/dist/components/tooltip/docs.js +1 -1
  222. package/dist/components/tooltip/docs.props.js +1 -1
  223. package/dist/components/tooltip/index.scss +3 -1
  224. package/dist/components/tooltip/props.d.ts +1 -1
  225. package/dist/composables/index.d.ts +3 -3
  226. package/dist/composables/index.js +3 -3
  227. package/dist/composables/useSize.d.ts +10 -0
  228. package/dist/composables/useSize.js +37 -0
  229. package/dist/composables/{use-size.d.ts → useSizeLegacy.d.ts} +2 -2
  230. package/dist/composables/{use-size.js → useSizeLegacy.js} +5 -5
  231. package/dist/css/_components.scss +31 -0
  232. package/dist/css/_disabled.scss +18 -0
  233. package/dist/css/{ripple.scss → _ripple.scss} +1 -1
  234. package/dist/css/_variables.scss +73 -0
  235. package/dist/css/classes/_design.scss +57 -0
  236. package/dist/css/classes/_flex.scss +62 -0
  237. package/dist/css/classes/_grid.scss +35 -0
  238. package/dist/css/classes/_index.scss +7 -0
  239. package/dist/css/classes/_overflow.scss +7 -0
  240. package/dist/css/classes/_position.scss +7 -0
  241. package/dist/css/classes/_select.scss +6 -0
  242. package/dist/css/classes/_spaces.scss +23 -0
  243. package/dist/css/fonts.scss +16 -3
  244. package/dist/css/index.css +1 -1
  245. package/dist/css/index.scss +15 -94
  246. package/dist/css/mixins/_design.scss +63 -0
  247. package/dist/css/mixins/{field-mixins.scss → _field.scss} +16 -5
  248. package/dist/css/mixins/_image.scss +63 -0
  249. package/dist/css/mixins/_index.scss +9 -0
  250. package/dist/css/mixins/_layout.scss +20 -0
  251. package/dist/css/mixins/{menu.scss → _menu.scss} +4 -2
  252. package/dist/css/mixins/{selection.scss → _selection.scss} +7 -67
  253. package/dist/css/mixins/_spaces.scss +36 -0
  254. package/dist/css/mixins/_typography.scss +7 -0
  255. package/dist/css/shared/q-field.scss +62 -32
  256. package/dist/css/theme/_colors.scss +173 -0
  257. package/dist/css/theme/css-variables.scss +5 -0
  258. package/dist/css/theme/page.scss +3 -3
  259. package/dist/css/theme/reset.scss +17 -1
  260. package/dist/css/theme/theme.scss +2 -3
  261. package/dist/css/theme/tokens.scss +0 -159
  262. package/dist/global.d.ts +1 -1
  263. package/dist/helpers/clickOutside.d.ts +2 -2
  264. package/dist/helpers/clickOutside.js +5 -4
  265. package/dist/helpers/ripple.d.ts +1 -1
  266. package/dist/helpers/ripple.js +14 -5
  267. package/dist/helpers/version.d.ts +1 -1
  268. package/dist/helpers/version.js +1 -1
  269. package/dist/index.d.ts +2 -1
  270. package/dist/index.js +2 -1
  271. package/dist/stores/index.d.ts +0 -2
  272. package/dist/stores/index.js +1 -2
  273. package/dist/utils/clipboard.js +2 -2
  274. package/dist/utils/colors.d.ts +71 -0
  275. package/dist/utils/colors.js +103 -15
  276. package/dist/utils/dom.d.ts +2 -0
  277. package/dist/utils/dom.js +10 -4
  278. package/dist/utils/number.d.ts +2 -0
  279. package/dist/utils/number.js +9 -0
  280. package/dist/utils/props.d.ts +2 -2
  281. package/dist/utils/props.js +8 -6
  282. package/dist/utils/router.d.ts +17 -0
  283. package/dist/utils/router.js +23 -0
  284. package/dist/utils/string.d.ts +1 -0
  285. package/dist/utils/string.js +4 -1
  286. package/dist/utils/types.d.ts +7 -2
  287. package/dist/utils/types.js +0 -3
  288. package/dist/utils/types.json +8 -5
  289. package/dist/utils/watchable.d.ts +0 -1
  290. package/dist/utils/watchable.js +1 -1
  291. package/package.json +42 -39
  292. package/dist/components/breadcrumbs/index.scss +0 -20
  293. package/dist/components/button/index.scss +0 -98
  294. package/dist/components/card/index.scss +0 -56
  295. package/dist/components/chip/index.scss +0 -103
  296. package/dist/components/drawer/index.scss +0 -59
  297. package/dist/components/footer/index.scss +0 -28
  298. package/dist/components/layout/index.scss +0 -387
  299. package/dist/components/list/index.scss +0 -144
  300. package/dist/components/progress/index.scss +0 -82
  301. package/dist/components/railbar/index.scss +0 -39
  302. package/dist/components/separator/index.scss +0 -52
  303. package/dist/components/toggle/QToggle.svelte +0 -34
  304. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  305. package/dist/components/toggle/index.scss +0 -31
  306. package/dist/components/toggle/props.d.ts +0 -9
  307. package/dist/components/toggle/props.js +0 -9
  308. package/dist/css/grid.scss +0 -50
  309. package/dist/css/mixins.scss +0 -137
  310. package/dist/css/states.scss +0 -75
  311. package/dist/css/theme/bridge.scss +0 -15
  312. package/dist/css/theme/theme.dark.scss +0 -39
  313. package/dist/css/theme/theme.light.scss +0 -39
  314. package/dist/css/variables-sass.scss +0 -16
  315. package/dist/stores/QTheme.d.ts +0 -42
  316. package/dist/stores/QTheme.js +0 -60
  317. package/dist/stores/Quaff.d.ts +0 -32
  318. package/dist/stores/Quaff.js +0 -58
  319. /package/dist/composables/{use-align.d.ts → useAlign.d.ts} +0 -0
  320. /package/dist/composables/{use-align.js → useAlign.js} +0 -0
  321. /package/dist/composables/{use-router-link.d.ts → useRouterLink.d.ts} +0 -0
  322. /package/dist/composables/{use-router-link.js → useRouterLink.js} +0 -0
  323. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { QLayoutDocsProps } from "./docs.props";
2
- export let QLayoutDocs = {
2
+ export const QLayoutDocs = {
3
3
  name: "QLayout",
4
4
  description: "The QLayout component is designed to be the skeleton of the entire page, with navigational elements such as header, railbars, drawers and footer. This component is not mandatory but it really helps structure the page.",
5
5
  docs: {
@@ -1,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
+ }
@@ -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,48 +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
27
  <div
13
- class="q-item__section q-item__section--{type} {userClasses}"
14
- {...$$restProps}
28
+ {...props}
29
+ class="q-item__section{props.class
30
+ ? ` ${props.class}`
31
+ : ''} q-item__section--{type}"
15
32
  >
16
33
  {#if type === "content"}
17
- {#if ![$$slots.headline, $$slots.line2, $$slots.line2, $$slots.line3].some(Boolean)}
18
- <slot />
34
+ {#if !headline && !line1 && !line2 && !line3}
35
+ {@render children?.()}
19
36
  {:else}
20
- {#if $$slots.headline}
21
- <div class="body-large text-on-surface">
22
- <slot name="headline" />
23
- </div>
24
- {/if}
25
- <div class="body-medium text-on-surface-variant">
26
- {#if $$slots.line1}
27
- <slot name="line1" />
28
- {/if}
29
- </div>
30
- {#if $$slots.line2}
31
- <div class="body-medium text-on-surface-variant">
32
- <slot name="line2" />
33
- </div>
34
- {/if}
35
- {#if $$slots.line3}
36
- <div class="body-medium text-on-surface-variant">
37
- <slot name="line3" />
38
- </div>
39
- {/if}
37
+ {@render line(headline)}
38
+
39
+ {@render line(line1)}
40
+
41
+ {@render line(line2)}
42
+
43
+ {@render line(line3)}
40
44
  {/if}
41
45
  {:else if type === "trailingText"}
42
46
  <div class="label-small text-on-surface-variant">
43
- <slot />
47
+ {@render children?.()}
44
48
  </div>
45
49
  {:else}
46
- <slot />
50
+ {@render children?.()}
47
51
  {/if}
48
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,21 +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
- <svelte:element
11
- this={tag}
12
- class="q-list {userClasses}"
21
+ <svelte:element
22
+ this={tag}
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>
20
- <slot />
30
+ class:q-list--rounded={roundedBorders}
31
+ >
32
+ {@render children?.()}
21
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,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QListDocs: QComponentDocs;
2
+ export declare const QListDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QListDocsProps } from "./docs.props";
2
- export let QListDocs = {
2
+ export const QListDocs = {
3
3
  name: "QList",
4
4
  description: "The QList component is used to display a list of items with options for adding text, icons and actions.",
5
5
  docs: {