@quaffui/quaff 0.1.0-prealpha2 → 0.1.0-prealpha21

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 (355) 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 -41
  12. package/dist/components/avatar/QAvatar.svelte.d.ts +2 -26
  13. package/dist/components/avatar/docs.d.ts +2 -2
  14. package/dist/components/avatar/docs.js +1 -1
  15. package/dist/components/avatar/docs.props.js +22 -4
  16. package/dist/components/avatar/index.scss +6 -1
  17. package/dist/components/avatar/props.d.ts +25 -7
  18. package/dist/components/avatar/props.js +1 -1
  19. package/dist/components/breadcrumbs/QBreadcrumbs.scss +10 -0
  20. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +23 -14
  21. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +2 -22
  22. package/dist/components/breadcrumbs/QBreadcrumbsEl.scss +10 -0
  23. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +64 -48
  24. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +2 -25
  25. package/dist/components/breadcrumbs/docs.d.ts +2 -2
  26. package/dist/components/breadcrumbs/docs.js +1 -1
  27. package/dist/components/breadcrumbs/docs.props.js +28 -26
  28. package/dist/components/breadcrumbs/props.d.ts +26 -24
  29. package/dist/components/button/QBtn.scss +133 -0
  30. package/dist/components/button/QBtn.svelte +94 -41
  31. package/dist/components/button/QBtn.svelte.d.ts +2 -31
  32. package/dist/components/button/docs.d.ts +2 -2
  33. package/dist/components/button/docs.js +1 -1
  34. package/dist/components/button/docs.props.js +47 -13
  35. package/dist/components/button/props.d.ts +35 -13
  36. package/dist/components/card/QCard.scss +25 -0
  37. package/dist/components/card/QCard.svelte +27 -19
  38. package/dist/components/card/QCard.svelte.d.ts +2 -25
  39. package/dist/components/card/QCardActions.scss +10 -0
  40. package/dist/components/card/QCardActions.svelte +14 -15
  41. package/dist/components/card/QCardActions.svelte.d.ts +2 -21
  42. package/dist/components/card/QCardSection.scss +10 -0
  43. package/dist/components/card/QCardSection.svelte +11 -11
  44. package/dist/components/card/QCardSection.svelte.d.ts +2 -22
  45. package/dist/components/card/docs.d.ts +4 -4
  46. package/dist/components/card/docs.js +3 -3
  47. package/dist/components/card/docs.props.js +9 -15
  48. package/dist/components/card/props.d.ts +11 -16
  49. package/dist/components/checkbox/QCheckbox.svelte +8 -9
  50. package/dist/components/checkbox/QCheckbox.svelte.d.ts +2 -20
  51. package/dist/components/checkbox/docs.d.ts +2 -2
  52. package/dist/components/checkbox/docs.js +1 -1
  53. package/dist/components/checkbox/docs.props.js +2 -0
  54. package/dist/components/checkbox/index.scss +7 -1
  55. package/dist/components/checkbox/props.d.ts +2 -2
  56. package/dist/components/chip/QChip.scss +179 -0
  57. package/dist/components/chip/QChip.svelte +98 -55
  58. package/dist/components/chip/QChip.svelte.d.ts +2 -34
  59. package/dist/components/chip/docs.d.ts +2 -2
  60. package/dist/components/chip/docs.js +1 -1
  61. package/dist/components/chip/docs.props.js +28 -42
  62. package/dist/components/chip/props.d.ts +25 -32
  63. package/dist/components/codeBlock/QCodeBlock.svelte +78 -45
  64. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +2 -22
  65. package/dist/components/codeBlock/docs.props.js +11 -1
  66. package/dist/components/codeBlock/props.d.ts +8 -2
  67. package/dist/components/dialog/QDialog.scss +177 -0
  68. package/dist/components/dialog/QDialog.svelte +77 -70
  69. package/dist/components/dialog/QDialog.svelte.d.ts +6 -36
  70. package/dist/components/dialog/docs.d.ts +2 -2
  71. package/dist/components/dialog/docs.js +1 -1
  72. package/dist/components/dialog/docs.props.d.ts +0 -8
  73. package/dist/components/dialog/docs.props.js +4 -108
  74. package/dist/components/dialog/props.d.ts +3 -18
  75. package/dist/components/drawer/QDrawer.scss +45 -0
  76. package/dist/components/drawer/QDrawer.svelte +91 -81
  77. package/dist/components/drawer/QDrawer.svelte.d.ts +6 -38
  78. package/dist/components/drawer/docs.d.ts +2 -2
  79. package/dist/components/drawer/docs.js +1 -1
  80. package/dist/components/drawer/docs.props.js +4 -2
  81. package/dist/components/drawer/props.d.ts +4 -3
  82. package/dist/components/footer/QFooter.scss +42 -0
  83. package/dist/components/footer/QFooter.svelte +67 -12
  84. package/dist/components/footer/QFooter.svelte.d.ts +2 -23
  85. package/dist/components/footer/docs.d.ts +2 -2
  86. package/dist/components/footer/docs.js +1 -1
  87. package/dist/components/footer/docs.props.js +13 -3
  88. package/dist/components/footer/props.d.ts +9 -5
  89. package/dist/components/header/QHeader.scss +54 -0
  90. package/dist/components/header/QHeader.svelte +56 -0
  91. package/dist/components/header/QHeader.svelte.d.ts +3 -0
  92. package/dist/components/header/docs.props.d.ts +24 -0
  93. package/dist/components/header/docs.props.js +88 -0
  94. package/dist/components/header/props.d.ts +23 -0
  95. package/dist/components/header/props.js +1 -0
  96. package/dist/components/icon/QIcon.scss +73 -0
  97. package/dist/components/icon/QIcon.svelte +32 -30
  98. package/dist/components/icon/QIcon.svelte.d.ts +2 -27
  99. package/dist/components/icon/docs.d.ts +2 -2
  100. package/dist/components/icon/docs.js +1 -1
  101. package/dist/components/icon/docs.props.js +11 -9
  102. package/dist/components/icon/props.d.ts +9 -8
  103. package/dist/components/index.d.ts +5 -2
  104. package/dist/components/index.js +5 -2
  105. package/dist/components/input/QInput.svelte +88 -72
  106. package/dist/components/input/QInput.svelte.d.ts +3 -32
  107. package/dist/components/input/docs.d.ts +2 -2
  108. package/dist/components/input/docs.js +2 -8
  109. package/dist/components/input/docs.props.js +39 -13
  110. package/dist/components/input/index.scss +1 -3
  111. package/dist/components/input/props.d.ts +13 -21
  112. package/dist/components/input/props.js +1 -13
  113. package/dist/components/layout/QLayout.scss +178 -0
  114. package/dist/components/layout/QLayout.svelte +101 -81
  115. package/dist/components/layout/QLayout.svelte.d.ts +17 -43
  116. package/dist/components/layout/docs.d.ts +2 -2
  117. package/dist/components/layout/docs.js +1 -1
  118. package/dist/components/layout/docs.props.js +65 -7
  119. package/dist/components/layout/props.d.ts +18 -9
  120. package/dist/components/list/QItem.scss +61 -0
  121. package/dist/components/list/QItem.svelte +73 -51
  122. package/dist/components/list/QItem.svelte.d.ts +2 -33
  123. package/dist/components/list/QItemSection.scss +45 -0
  124. package/dist/components/list/QItemSection.svelte +50 -37
  125. package/dist/components/list/QItemSection.svelte.d.ts +2 -24
  126. package/dist/components/list/QList.scss +30 -0
  127. package/dist/components/list/QList.svelte +30 -20
  128. package/dist/components/list/QList.svelte.d.ts +2 -35
  129. package/dist/components/list/docs.d.ts +2 -0
  130. package/dist/components/list/docs.js +11 -0
  131. package/dist/components/list/docs.props.js +79 -29
  132. package/dist/components/list/props.d.ts +24 -20
  133. package/dist/components/list/props.js +1 -25
  134. package/dist/components/private/ContextReseter.svelte +6 -11
  135. package/dist/components/private/ContextReseter.svelte.d.ts +6 -18
  136. package/dist/components/private/QApi.svelte +117 -93
  137. package/dist/components/private/QApi.svelte.d.ts +5 -17
  138. package/dist/components/private/QDocs.svelte +78 -41
  139. package/dist/components/private/QDocs.svelte.d.ts +10 -21
  140. package/dist/components/private/QDocsSection.svelte +16 -24
  141. package/dist/components/private/QDocsSection.svelte.d.ts +7 -29
  142. package/dist/components/private/QIconSnippet.svelte +12 -0
  143. package/dist/components/private/QIconSnippet.svelte.d.ts +8 -0
  144. package/dist/components/progress/QCircularProgress.scss +63 -0
  145. package/dist/components/progress/QCircularProgress.svelte +106 -20
  146. package/dist/components/progress/QCircularProgress.svelte.d.ts +2 -21
  147. package/dist/components/progress/QLinearProgress.scss +75 -0
  148. package/dist/components/progress/QLinearProgress.svelte +59 -17
  149. package/dist/components/progress/QLinearProgress.svelte.d.ts +2 -21
  150. package/dist/components/progress/docs.d.ts +2 -0
  151. package/dist/components/progress/docs.js +11 -0
  152. package/dist/components/progress/docs.props.d.ts +8 -0
  153. package/dist/components/progress/docs.props.js +181 -9
  154. package/dist/components/progress/props.d.ts +98 -17
  155. package/dist/components/progress/props.js +1 -7
  156. package/dist/components/radio/QRadio.svelte +14 -9
  157. package/dist/components/radio/QRadio.svelte.d.ts +2 -21
  158. package/dist/components/radio/docs.d.ts +2 -2
  159. package/dist/components/radio/docs.js +1 -1
  160. package/dist/components/radio/docs.props.js +6 -4
  161. package/dist/components/radio/index.scss +3 -1
  162. package/dist/components/radio/props.d.ts +5 -6
  163. package/dist/components/radio/props.js +1 -8
  164. package/dist/components/railbar/QRailbar.scss +54 -0
  165. package/dist/components/railbar/QRailbar.svelte +45 -49
  166. package/dist/components/railbar/QRailbar.svelte.d.ts +2 -22
  167. package/dist/components/railbar/docs.d.ts +2 -0
  168. package/dist/components/railbar/docs.js +11 -0
  169. package/dist/components/railbar/docs.props.js +10 -8
  170. package/dist/components/railbar/props.d.ts +15 -6
  171. package/dist/components/railbar/props.js +1 -7
  172. package/dist/components/select/QSelect.svelte +171 -140
  173. package/dist/components/select/QSelect.svelte.d.ts +2 -33
  174. package/dist/components/select/docs.d.ts +2 -2
  175. package/dist/components/select/docs.js +9 -8
  176. package/dist/components/select/docs.props.js +47 -13
  177. package/dist/components/select/index.scss +28 -7
  178. package/dist/components/select/props.d.ts +16 -20
  179. package/dist/components/select/props.js +1 -14
  180. package/dist/components/separator/QSeparator.scss +54 -0
  181. package/dist/components/separator/QSeparator.svelte +39 -57
  182. package/dist/components/separator/QSeparator.svelte.d.ts +2 -24
  183. package/dist/components/separator/docs.d.ts +2 -0
  184. package/dist/components/separator/docs.js +11 -0
  185. package/dist/components/separator/docs.props.js +16 -14
  186. package/dist/components/separator/props.d.ts +13 -14
  187. package/dist/components/separator/props.js +1 -9
  188. package/dist/components/switch/QSwitch.scss +305 -0
  189. package/dist/components/switch/QSwitch.svelte +96 -0
  190. package/dist/components/switch/QSwitch.svelte.d.ts +3 -0
  191. package/dist/components/switch/docs.d.ts +2 -0
  192. package/dist/components/{toggle → switch}/docs.js +3 -3
  193. package/dist/components/{toggle → switch}/docs.props.d.ts +1 -1
  194. package/dist/components/switch/docs.props.js +68 -0
  195. package/dist/components/switch/props.d.ts +13 -0
  196. package/dist/components/switch/props.js +1 -0
  197. package/dist/components/table/QTable.svelte +99 -94
  198. package/dist/components/table/QTable.svelte.d.ts +2 -28
  199. package/dist/components/table/docs.d.ts +2 -2
  200. package/dist/components/table/docs.js +1 -1
  201. package/dist/components/table/docs.props.js +11 -1
  202. package/dist/components/table/index.scss +3 -1
  203. package/dist/components/table/props.d.ts +14 -3
  204. package/dist/components/tabs/QTab.scss +71 -0
  205. package/dist/components/tabs/QTab.svelte +80 -66
  206. package/dist/components/tabs/QTab.svelte.d.ts +2 -27
  207. package/dist/components/tabs/QTabs.scss +40 -0
  208. package/dist/components/tabs/QTabs.svelte +114 -51
  209. package/dist/components/tabs/QTabs.svelte.d.ts +7 -22
  210. package/dist/components/tabs/docs.d.ts +2 -0
  211. package/dist/components/tabs/docs.js +11 -0
  212. package/dist/components/tabs/docs.props.js +10 -16
  213. package/dist/components/tabs/index.scss +71 -28
  214. package/dist/components/tabs/props.d.ts +9 -9
  215. package/dist/components/tabs/props.js +1 -13
  216. package/dist/components/toolbar/QToolbar.svelte +20 -37
  217. package/dist/components/toolbar/QToolbar.svelte.d.ts +2 -22
  218. package/dist/components/toolbar/QToolbarTitle.svelte +11 -0
  219. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +3 -0
  220. package/dist/components/toolbar/docs.d.ts +2 -0
  221. package/dist/components/toolbar/docs.js +11 -0
  222. package/dist/components/toolbar/docs.props.d.ts +8 -0
  223. package/dist/components/toolbar/docs.props.js +33 -5
  224. package/dist/components/toolbar/index.scss +34 -1
  225. package/dist/components/toolbar/props.d.ts +24 -5
  226. package/dist/components/toolbar/props.js +1 -6
  227. package/dist/components/tooltip/QTooltip.svelte +8 -12
  228. package/dist/components/tooltip/QTooltip.svelte.d.ts +2 -21
  229. package/dist/components/tooltip/docs.d.ts +2 -0
  230. package/dist/components/tooltip/docs.js +11 -0
  231. package/dist/components/tooltip/docs.props.js +3 -1
  232. package/dist/components/tooltip/index.scss +80 -2
  233. package/dist/components/tooltip/props.d.ts +4 -3
  234. package/dist/components/tooltip/props.js +1 -1
  235. package/dist/composables/index.d.ts +3 -0
  236. package/dist/composables/index.js +3 -1
  237. package/dist/composables/{use-align.d.ts → useAlign.d.ts} +1 -1
  238. package/dist/composables/useAlign.js +23 -0
  239. package/dist/composables/{use-router-link.d.ts → useRouterLink.d.ts} +3 -3
  240. package/dist/composables/{use-router-link.js → useRouterLink.js} +4 -5
  241. package/dist/composables/useSize.d.ts +10 -0
  242. package/dist/composables/useSize.js +37 -0
  243. package/dist/composables/useSizeLegacy.d.ts +9 -0
  244. package/dist/composables/useSizeLegacy.js +25 -0
  245. package/dist/css/_components.scss +31 -0
  246. package/dist/css/_disabled.scss +18 -0
  247. package/dist/css/_ripple.scss +49 -0
  248. package/dist/css/_variables.scss +73 -0
  249. package/dist/css/classes/_design.scss +57 -0
  250. package/dist/css/classes/_flex.scss +62 -0
  251. package/dist/css/classes/_grid.scss +35 -0
  252. package/dist/css/classes/_index.scss +7 -0
  253. package/dist/css/classes/_overflow.scss +7 -0
  254. package/dist/css/classes/_position.scss +7 -0
  255. package/dist/css/classes/_select.scss +6 -0
  256. package/dist/css/classes/_spaces.scss +23 -0
  257. package/dist/css/flex.scss +41 -0
  258. package/dist/css/fonts.scss +17 -0
  259. package/dist/css/index.css +1 -0
  260. package/dist/css/index.scss +15 -111
  261. package/dist/css/mixins/_design.scss +63 -0
  262. package/dist/css/mixins/_field.scss +64 -0
  263. package/dist/css/mixins/_image.scss +63 -0
  264. package/dist/css/mixins/_index.scss +9 -0
  265. package/dist/css/mixins/_layout.scss +20 -0
  266. package/dist/css/mixins/{menu.scss → _menu.scss} +6 -2
  267. package/dist/css/mixins/{selection.scss → _selection.scss} +7 -67
  268. package/dist/css/mixins/_spaces.scss +36 -0
  269. package/dist/css/mixins/_typography.scss +7 -0
  270. package/dist/css/shared/q-field.scss +348 -0
  271. package/dist/css/theme/_colors.scss +173 -0
  272. package/dist/css/theme/colors.module.scss +261 -109
  273. package/dist/css/theme/css-variables.scss +5 -0
  274. package/dist/css/theme/elevate.scss +57 -0
  275. package/dist/css/theme/page.scss +16 -0
  276. package/dist/css/theme/palette.scss +653 -0
  277. package/dist/css/theme/reset.scss +56 -0
  278. package/dist/css/theme/theme.scss +7 -2
  279. package/dist/css/theme/tokens.scss +0 -159
  280. package/dist/css/theme/typography.scss +111 -0
  281. package/dist/global.d.ts +1 -2
  282. package/dist/helpers/clickOutside.d.ts +2 -2
  283. package/dist/helpers/clickOutside.js +5 -4
  284. package/dist/helpers/index.d.ts +1 -1
  285. package/dist/helpers/index.js +1 -1
  286. package/dist/helpers/ripple.d.ts +11 -0
  287. package/dist/helpers/ripple.js +90 -0
  288. package/dist/helpers/version.d.ts +2 -0
  289. package/dist/helpers/version.js +1 -0
  290. package/dist/index.d.ts +3 -1
  291. package/dist/index.js +3 -1
  292. package/dist/stores/index.d.ts +0 -0
  293. package/dist/stores/index.js +1 -0
  294. package/dist/utils/clipboard.d.ts +1 -1
  295. package/dist/utils/clipboard.js +3 -4
  296. package/dist/utils/colors.d.ts +71 -0
  297. package/dist/utils/colors.js +103 -15
  298. package/dist/utils/dom.d.ts +11 -0
  299. package/dist/utils/dom.js +81 -0
  300. package/dist/utils/events.d.ts +13 -0
  301. package/dist/utils/events.js +13 -0
  302. package/dist/utils/index.d.ts +8 -0
  303. package/dist/utils/index.js +8 -1
  304. package/dist/utils/number.d.ts +2 -0
  305. package/dist/utils/number.js +9 -0
  306. package/dist/utils/props.d.ts +4 -4
  307. package/dist/utils/props.js +9 -7
  308. package/dist/utils/router.d.ts +17 -0
  309. package/dist/utils/router.js +23 -0
  310. package/dist/utils/string.d.ts +1 -0
  311. package/dist/utils/string.js +4 -1
  312. package/dist/utils/types.d.ts +12 -4
  313. package/dist/utils/types.js +0 -3
  314. package/dist/utils/types.json +27 -1
  315. package/dist/utils/watchable.d.ts +0 -1
  316. package/dist/utils/watchable.js +1 -1
  317. package/package.json +44 -34
  318. package/dist/components/breadcrumbs/index.scss +0 -20
  319. package/dist/components/button/index.scss +0 -78
  320. package/dist/components/card/index.scss +0 -53
  321. package/dist/components/chip/index.scss +0 -83
  322. package/dist/components/dialog/index.scss +0 -27
  323. package/dist/components/drawer/index.scss +0 -54
  324. package/dist/components/footer/index.scss +0 -5
  325. package/dist/components/icon/index.scss +0 -18
  326. package/dist/components/layout/index.scss +0 -370
  327. package/dist/components/list/index.scss +0 -114
  328. package/dist/components/progress/index.scss +0 -50
  329. package/dist/components/toggle/QToggle.svelte +0 -35
  330. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  331. package/dist/components/toggle/docs.d.ts +0 -2
  332. package/dist/components/toggle/docs.props.js +0 -42
  333. package/dist/components/toggle/index.scss +0 -31
  334. package/dist/components/toggle/props.d.ts +0 -9
  335. package/dist/components/toggle/props.js +0 -9
  336. package/dist/composables/use-align.js +0 -12
  337. package/dist/composables/use-index.d.ts +0 -2
  338. package/dist/composables/use-index.js +0 -17
  339. package/dist/composables/use-size.d.ts +0 -11
  340. package/dist/composables/use-size.js +0 -13
  341. package/dist/css/grid.scss +0 -65
  342. package/dist/css/mixins/field.scss +0 -430
  343. package/dist/css/mixins.scss +0 -135
  344. package/dist/css/states.scss +0 -70
  345. package/dist/css/theme/theme.dark.scss +0 -36
  346. package/dist/css/theme/theme.light.scss +0 -36
  347. package/dist/helpers/activationHandler.d.ts +0 -9
  348. package/dist/helpers/activationHandler.js +0 -23
  349. package/dist/stores/QTheme.d.ts +0 -42
  350. package/dist/stores/QTheme.js +0 -53
  351. package/dist/stores/Quaff.d.ts +0 -32
  352. package/dist/stores/Quaff.js +0 -52
  353. package/dist/utils/fields.d.ts +0 -1
  354. package/dist/utils/fields.js +0 -14
  355. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
@@ -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,60 +1,82 @@
1
- <script>import QSeparator from "../separator/QSeparator.svelte";
2
- import useRouterLink, { isRouteActive } from "../../composables/use-router-link";
3
- import { createClasses } from "../../utils/props";
4
- import { getContext, setContext } from "svelte";
5
- import { Quaff } from "../../stores/Quaff";
6
- import { writable } from "svelte/store";
7
- export let tag = "div", active = false, clickable = false, dense = false, tabindex = 0, href = void 0, to = void 0, disable = false, activeClass = void 0, replace = false, userClasses = void 0;
8
- export { userClasses as class };
9
- let hasMultiplLines = writable(false);
10
- setContext("hasMultipleLines", hasMultiplLines);
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 === true || hasLink === true || tag === "label";
23
- $:
24
- isClickable = disable !== true && isActionable === true;
25
- $:
26
- isActive = isRouteActive($Quaff.router, to);
27
- $:
28
- classes = createClasses([
29
- "q-item flex middle-align",
30
- $hasMultiplLines && "multiline",
31
- dense && "dense",
32
- hasLink && active && "q-item--active",
33
- hasLink && active && activeClass,
34
- isActive && "active",
35
- isClickable && "wave",
36
- linkClasses,
37
- userClasses
38
- ]);
39
- $:
40
- attributes = {
41
- class: classes,
42
- tabindex: isClickable == true ? Number(tabindex) || 0 : void 0,
43
- "aria-disabled": isActionable === true && disable === true ? true : void 0,
44
- ...$$restProps
45
- };
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
+ );
46
40
  </script>
47
41
 
48
- {#if separatorOptions !== undefined}
42
+ {#if separatorOptions}
49
43
  <QSeparator {...separatorOptions} />
50
44
  {/if}
51
- {#if linkAttributes.href !== undefined}
52
- <!-- svelte-ignore a11y-missing-attribute -->
53
- <a {...attributes} {...linkAttributes} {...$$restProps} on:mouseenter on:mouseleave on:click>
54
- <slot />
45
+
46
+ {#if routerInfo.linkAttributes.href}
47
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
48
+ <a
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}
57
+ class:q-item--dense={dense}
58
+ class:q-item--active={isActive}
59
+ tabindex={isClickable ? tabindex || 0 : undefined}
60
+ aria-disabled={isActionable && disabled ? true : undefined}
61
+ {...routerInfo.linkAttributes}
62
+ >
63
+ {@render children?.()}
55
64
  </a>
56
65
  {:else}
57
- <div {...attributes} {...$$restProps} on:mouseenter on:mouseleave on:click>
58
- <slot />
59
- </div>
66
+ <svelte:element
67
+ this={tag}
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}
75
+ class:q-item--dense={dense}
76
+ class:q-item--active={isActive}
77
+ tabindex={isClickable ? tabindex || 0 : undefined}
78
+ aria-disabled={isActionable && disabled ? true : undefined}
79
+ >
80
+ {@render children?.()}
81
+ </svelte:element>
60
82
  {/if}
@@ -1,34 +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?: string | undefined;
7
- active?: boolean | undefined;
8
- clickable?: boolean | undefined;
9
- dense?: boolean | undefined;
10
- tabindex?: string | number | undefined;
11
- href?: QItemProps["href"];
12
- to?: QItemProps["to"];
13
- disable?: boolean | undefined;
14
- activeClass?: QItemProps["activeClass"];
15
- replace?: boolean | undefined;
16
- class?: string | undefined;
17
- };
18
- events: {
19
- mouseenter: MouseEvent;
20
- mouseleave: MouseEvent;
21
- click: MouseEvent;
22
- } & {
23
- [evt: string]: CustomEvent<any>;
24
- };
25
- slots: {
26
- default: {};
27
- };
28
- };
29
- type QItemProps_ = typeof __propDef.props;
30
- export { QItemProps_ as QItemProps };
31
- export type QItemEvents = typeof __propDef.events;
32
- export type QItemSlots = typeof __propDef.slots;
33
- export default class QItem extends SvelteComponent<QItemProps, QItemEvents, QItemSlots> {
34
- }
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,47 +1,60 @@
1
- <script>import { createClasses } from "../../utils/props";
2
- import { getContext } from "svelte";
3
- export let type = "content", userClasses = void 0;
4
- export { userClasses as class };
5
- $:
6
- ctx = getContext("hasMultipleLines");
7
- $:
8
- if (type === "content") {
9
- $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";
10
24
  }
11
- $:
12
- classes = createClasses([`q-item__section `, `q-item__section--${type}`, userClasses]);
13
25
  </script>
14
26
 
15
- <div class={classes} {...$$restProps}>
27
+ <div
28
+ {...props}
29
+ class="q-item__section{props.class
30
+ ? ` ${props.class}`
31
+ : ''} q-item__section--{type}"
32
+ >
16
33
  {#if type === "content"}
17
- {#if [$$slots.headline, $$slots.line2, $$slots.line2, $$slots.line3].some(Boolean) === false}
18
- <slot />
19
- {/if}
20
- {#if $$slots.headline}
21
- <div class="body-large on-surface-text">
22
- <slot name="headline" />
23
- </div>
24
- {/if}
25
- <div class="body-medium on-surface-variant-text">
26
- {#if $$slots.line1}
27
- <slot name="line1" />
28
- {/if}
29
- </div>
30
- {#if $$slots.line2}
31
- <div class="body-medium on-surface-variant-text">
32
- <slot name="line2" />
33
- </div>
34
- {/if}
35
- {#if $$slots.line3}
36
- <div class="body-medium on-surface-variant-text">
37
- <slot name="line3" />
38
- </div>
34
+ {#if !headline && !line1 && !line2 && !line3}
35
+ {@render children?.()}
36
+ {:else}
37
+ {@render line(headline)}
38
+
39
+ {@render line(line1)}
40
+
41
+ {@render line(line2)}
42
+
43
+ {@render line(line3)}
39
44
  {/if}
40
45
  {:else if type === "trailingText"}
41
- <div class="label-small on-surface-variant-text">
42
- <slot />
46
+ <div class="label-small text-on-surface-variant">
47
+ {@render children?.()}
43
48
  </div>
44
49
  {:else}
45
- <slot />
50
+ {@render children?.()}
46
51
  {/if}
47
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?: import("./props").QItemSectionTypes | undefined;
7
- class?: string | 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,23 +1,33 @@
1
- <script>import { setIndex } from "../../composables/use-index";
2
- import { createClasses } from "../../utils/props";
3
- import { onMount, setContext } from "svelte";
4
- export let bordered = false, roundedBorders = false, dense = false, separator = false, separatorOptions = {}, padding = false, tag = "div", userClasses = void 0;
5
- export { userClasses as class };
6
- let listElement;
7
- onMount(() => listElement.querySelector(".q-separator__wrapper:first-child")?.remove());
8
- $:
9
- setContext("separator", separator === true ? separatorOptions : void 0);
10
- $:
11
- classes = createClasses([
12
- "q-list",
13
- bordered && "border",
14
- dense && "dense",
15
- padding && "q-py-sm",
16
- roundedBorders && "rounded-borders",
17
- userClasses
18
- ]);
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);
19
19
  </script>
20
20
 
21
- <svelte:element this={tag} class={classes} {...$$restProps} bind:this={listElement} on:scroll>
22
- <slot />
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
+ : ''}"
28
+ class:q-list--bordered={bordered}
29
+ class:q-list--dense={dense}
30
+ class:q-list--rounded={roundedBorders}
31
+ >
32
+ {@render children?.()}
23
33
  </svelte:element>
@@ -1,36 +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?: boolean | undefined;
7
- roundedBorders?: boolean | undefined;
8
- dense?: boolean | undefined;
9
- separator?: boolean | undefined;
10
- separatorOptions?: {
11
- spacing?: "sm" | "md" | "lg" | "none" | undefined;
12
- inset?: boolean | undefined;
13
- color?: string | undefined;
14
- size?: string | undefined;
15
- text?: string | undefined;
16
- textAlign?: "top" | "bottom" | "left" | "right" | "center" | "middle" | undefined;
17
- } | undefined;
18
- padding?: boolean | undefined;
19
- tag?: QListProps["tag"];
20
- class?: string | undefined;
21
- };
22
- events: {
23
- scroll: Event;
24
- } & {
25
- [evt: string]: CustomEvent<any>;
26
- };
27
- slots: {
28
- default: {};
29
- };
30
- };
31
- type QListProps_ = typeof __propDef.props;
32
- export { QListProps_ as QListProps };
33
- export type QListEvents = typeof __propDef.events;
34
- export type QListSlots = typeof __propDef.slots;
35
- export default class QList extends SvelteComponent<QListProps, QListEvents, QListSlots> {
36
- }
2
+ declare const QList: import("svelte").Component<QListProps, {}, "">;
3
+ export default QList;
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "../../utils";
2
+ export declare const QListDocs: QComponentDocs;
@@ -0,0 +1,11 @@
1
+ import { QListDocsProps } from "./docs.props";
2
+ export const QListDocs = {
3
+ name: "QList",
4
+ description: "The QList component is used to display a list of items with options for adding text, icons and actions.",
5
+ docs: {
6
+ props: QListDocsProps,
7
+ slots: [],
8
+ methods: [],
9
+ events: [],
10
+ },
11
+ };