@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
@@ -1,9 +1,14 @@
1
+ @use "$css/variables";
2
+
1
3
  //? Basic styles
2
4
  .q-avatar {
3
5
  object-fit: cover;
4
6
  object-position: center;
5
7
  aspect-ratio: 1;
6
- transition: var(--speed3) transform, var(--speed3) border-radius, var(--speed3) padding;
8
+ transition:
9
+ variables.$speed3 transform,
10
+ variables.$speed3 border-radius,
11
+ variables.$speed3 padding;
7
12
  border-radius: 0;
8
13
 
9
14
  display: flex;
@@ -1,25 +1,43 @@
1
- import type { NativeProps } from "../../utils/types";
1
+ import type { Snippet } from "svelte";
2
+ import type { HTMLAttributes } from "svelte/elements";
2
3
  export type QAvatarShapeOptions = "circle" | "rounded" | "top-round" | "left-round" | "right-round" | "bottom-round" | "top-left-round" | "top-right-round" | "bottom-left-round" | "bottom-right-round";
3
- export type QAvatarSizeOptions = "xs" | "sm" | "md" | "lg" | "xl" | string;
4
- export interface QAvatarProps extends NativeProps {
4
+ export type QAvatarSizeOptions = Q.Size | Q.CssValue | number;
5
+ export interface QAvatarProps extends HTMLAttributes<HTMLElement> {
5
6
  /**
6
7
  * Shape of the avatar.
7
- * @default circle
8
+ *
9
+ * @default "circle"
8
10
  */
9
11
  shape?: QAvatarShapeOptions;
10
12
  /**
11
13
  * Size of the avatar, can be a custom size using CSS units. If no unit is specified, "px" will be used.
12
- * @default md
14
+ *
15
+ * @default "md"
13
16
  */
14
17
  size?: QAvatarSizeOptions;
15
18
  /**
16
- * Source of the image to use as the avatar. Can be a url or a path to a local file.
19
+ * Source of the image to be used as the avatar. Can be a url or a path to a local file.
20
+ *
17
21
  * @default undefined
18
22
  */
19
23
  src?: string;
20
24
  /**
21
- * If set to true, will use the "src" prop as a video source.
25
+ * If set to true, the "src" prop will be used as a video source.
26
+ *
22
27
  * @default false
23
28
  */
24
29
  video?: boolean;
30
+ /**
31
+ * alt property for the image.
32
+ *
33
+ * @default undefined
34
+ */
35
+ alt?: string;
36
+ /**
37
+ * Accessibility controls you might want to add inside the <video> element.
38
+ * For example, you might want to add a <p> tag in case the video player doesn't work.
39
+ *
40
+ * @default undefined
41
+ */
42
+ videoAccessibility?: Snippet;
25
43
  }
@@ -1 +1 @@
1
- import "$lib/utils/types";
1
+ export {};
@@ -0,0 +1,10 @@
1
+ .q-breadcrumbs {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ width: fit-content;
6
+
7
+ & > .q-breadcrumbs__separator:first-child {
8
+ display: none;
9
+ }
10
+ }
@@ -1,18 +1,27 @@
1
- <script>import { createClasses } from "../../utils/props";
2
- import { onMount, setContext } from "svelte";
3
- export let separator = "/", gutter = "sm", activeColor = "primary", separatorColor = "outline", userClasses = void 0;
4
- export { userClasses as class };
5
- let breadcrumbElement;
6
- onMount(() => breadcrumbElement.firstChild?.remove());
7
- setContext("activeColor", activeColor);
8
- setContext("separator", { type: separator, color: separatorColor, gutter });
9
- $:
10
- classes = createClasses([], {
11
- component: "q-breadcrumbs",
12
- userClasses
1
+ <svelte:options runes={true} />
2
+
3
+ <script lang="ts">
4
+ import { setContext, untrack } from "svelte";
5
+ let {
6
+ activeColor = "primary",
7
+ gutter = "sm",
8
+ separator = "/",
9
+ separatorColor = "outline",
10
+ children,
11
+ ...props
12
+ } = $props();
13
+ let breadrumbElement;
14
+ $effect(() => {
15
+ untrack(() => breadrumbElement.firstChild?.remove());
13
16
  });
17
+ setContext("activeColor", activeColor);
18
+ setContext("separator", { type: separator, color: separatorColor, gutter });
14
19
  </script>
15
20
 
16
- <div class={classes} bind:this={breadcrumbElement}>
17
- <slot />
21
+ <div
22
+ bind:this={breadrumbElement}
23
+ {...props}
24
+ class="q-breadcrumbs{props.class ? ` ${props.class}` : ''}"
25
+ >
26
+ {@render children?.()}
18
27
  </div>
@@ -1,23 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QBreadcrumbsProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- separator?: QBreadcrumbsProps["separator"];
6
- gutter?: QBreadcrumbsProps["gutter"];
7
- activeColor?: QBreadcrumbsProps["activeColor"];
8
- separatorColor?: QBreadcrumbsProps["separatorColor"];
9
- class?: string | undefined;
10
- };
11
- events: {
12
- [evt: string]: CustomEvent<any>;
13
- };
14
- slots: {
15
- default: {};
16
- };
17
- };
18
- type QBreadcrumbsProps_ = typeof __propDef.props;
19
- export { QBreadcrumbsProps_ as QBreadcrumbsProps };
20
- export type QBreadcrumbsEvents = typeof __propDef.events;
21
- export type QBreadcrumbsSlots = typeof __propDef.slots;
22
- export default class QBreadcrumbs extends SvelteComponent<QBreadcrumbsProps, QBreadcrumbsEvents, QBreadcrumbsSlots> {
23
- }
2
+ declare const QBreadcrumbs: import("svelte").Component<QBreadcrumbsProps, {}, "">;
3
+ export default QBreadcrumbs;
@@ -0,0 +1,10 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-breadcrumbs__el {
4
+ display: flex;
5
+ align-items: center;
6
+
7
+ & > .q-icon {
8
+ @include mixins.margin("r-sm");
9
+ }
10
+ }
@@ -1,59 +1,75 @@
1
- <script>import { getContext } from "svelte";
2
- import QIcon from "../icon/QIcon.svelte";
3
- import { createClasses } from "../../utils/props";
4
- import { isRouteActive } from "../../composables/use-router-link";
5
- import { Quaff } from "../../stores/Quaff";
6
- export let label = "", icon = void 0, tag = "div", to = void 0, href = void 0, activeClass = "active", userClasses = void 0;
7
- export { userClasses as class };
8
- const activeColor = getContext("activeColor");
9
- const separator = getContext("separator");
10
- $:
11
- isActive = isRouteActive($Quaff.router, href || to);
12
- $:
13
- classes = createClasses([isActive && activeClass], {
14
- component: "q-breadcrumbs",
15
- element: "el",
16
- quaffClasses: [isActive && `${activeColor}-text`],
17
- userClasses
18
- });
19
- $:
20
- separatorClasses = createClasses([], {
21
- component: "q-breadcrumbs",
22
- element: "separator",
23
- quaffClasses: [`q-px-${separator.gutter}`]
24
- });
1
+ <svelte:options runes={true} />
2
+
3
+ <script lang="ts">
4
+ import { getContext } from "svelte";
5
+ import { derived } from "svelte/store";
6
+ import { isRouteActive } from "../../utils/router";
7
+ import QIcon from "../icon/QIcon.svelte";
8
+ let {
9
+ activeClass = "active",
10
+ href,
11
+ label = "",
12
+ icon,
13
+ tag = "div",
14
+ to,
15
+ children = fallback,
16
+ ...props
17
+ } = $props();
18
+ const activeColor = getContext("activeColor");
19
+ const separator = getContext("separator");
20
+ const classesIfActive = derived(isRouteActive, ($isRouteActive) =>
21
+ $isRouteActive(href || to) ? `${activeClass} text-${activeColor}` : void 0,
22
+ );
25
23
  </script>
26
24
 
27
- <div class={separatorClasses}>
28
- {#if separator.type.startsWith("icon:")}
29
- <QIcon name={separator.type.replace("icon:", "")} size="1rem" />
25
+ {#snippet fallback()}
26
+ {label}
27
+ {/snippet}
28
+
29
+ {#snippet breadcrumbEl()}
30
+ {#if icon !== undefined}
31
+ {#if typeof icon === "string"}
32
+ <QIcon name={icon} size="1rem" />
33
+ {:else}
34
+ {@render icon()}
35
+ {/if}
36
+ {/if}
37
+
38
+ {@render children()}
39
+ {/snippet}
40
+
41
+ <div
42
+ {...props}
43
+ class="q-breadcrumbs__separator q-px-{separator.gutter}{props.class
44
+ ? ` ${props.class}`
45
+ : ''}"
46
+ >
47
+ {#if typeof separator.type === "string"}
48
+ {#if separator.type.startsWith("icon:")}
49
+ <QIcon
50
+ name={separator.type.replace("icon:", "") as MaterialSymbol}
51
+ size="1rem"
52
+ />
53
+ {:else}
54
+ {separator.type}
55
+ {/if}
30
56
  {:else}
31
- {separator.type}
57
+ {@render separator.type()}
32
58
  {/if}
33
59
  </div>
34
60
 
35
61
  {#if href !== undefined || to !== undefined}
36
- <a href={href || to} class={classes}>
37
- {#if icon !== undefined}
38
- <QIcon name={icon} size="1rem" />
39
- {:else if $$slots.icon}
40
- <slot name="icon" />
41
- {/if}
42
-
43
- <slot>
44
- {label}
45
- </slot>
62
+ <a
63
+ href={href || to}
64
+ class="q-breadcrumbs__el{$classesIfActive ? ` ${$classesIfActive}` : ''}"
65
+ >
66
+ {@render breadcrumbEl()}
46
67
  </a>
47
68
  {:else}
48
- <svelte:element this={tag} class={classes}>
49
- {#if icon !== undefined}
50
- <QIcon name={icon} size="1rem" />
51
- {:else if $$slots.icon}
52
- <slot name="icon" />
53
- {/if}
54
-
55
- <slot>
56
- {label}
57
- </slot>
69
+ <svelte:element
70
+ this={tag}
71
+ class="q-breadcrumbs__el{$classesIfActive ? ` ${$classesIfActive}` : ''}"
72
+ >
73
+ {@render breadcrumbEl()}
58
74
  </svelte:element>
59
75
  {/if}
@@ -1,26 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QBreadcrumbsElProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- label?: QBreadcrumbsElProps["label"];
6
- icon?: QBreadcrumbsElProps["icon"];
7
- tag?: QBreadcrumbsElProps["tag"];
8
- to?: QBreadcrumbsElProps["to"];
9
- href?: QBreadcrumbsElProps["href"];
10
- activeClass?: QBreadcrumbsElProps["activeClass"];
11
- class?: string | undefined;
12
- };
13
- events: {
14
- [evt: string]: CustomEvent<any>;
15
- };
16
- slots: {
17
- icon: {};
18
- default: {};
19
- };
20
- };
21
- type QBreadcrumbsElProps_ = typeof __propDef.props;
22
- export { QBreadcrumbsElProps_ as QBreadcrumbsElProps };
23
- export type QBreadcrumbsElEvents = typeof __propDef.events;
24
- export type QBreadcrumbsElSlots = typeof __propDef.slots;
25
- export default class QBreadcrumbsEl extends SvelteComponent<QBreadcrumbsElProps, QBreadcrumbsElEvents, QBreadcrumbsElSlots> {
26
- }
2
+ declare const QBreadcrumbsEl: import("svelte").Component<QBreadcrumbsElProps, {}, "">;
3
+ export default QBreadcrumbsEl;
@@ -1,2 +1,2 @@
1
- import type { QComponentDocs } from "$utils/types";
2
- export declare let QBreadcrumbsDocs: QComponentDocs;
1
+ import type { QComponentDocs } from "../../utils";
2
+ export declare const QBreadcrumbsDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QBreadcrumbsDocsProps } from "./docs.props";
2
- export let QBreadcrumbsDocs = {
2
+ export const QBreadcrumbsDocs = {
3
3
  name: "QBreadcrumbs",
4
4
  description: "Breadcrumbs are mostly used as a navigation aid. They allow users to keep track of their location within the page.",
5
5
  docs: {
@@ -1,11 +1,13 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 66c85971b241303d63478c8c8bca6aa0
1
3
  export const QBreadcrumbsDocsProps = [
2
4
  {
3
- name: "separator",
5
+ name: "activeColor",
4
6
  type: "string",
5
7
  optional: true,
6
8
  clickableType: false,
7
- description: 'Separator to use between the breadcrumb elements. To use an icon, prefix with "icon:" followed by the name of the icon.',
8
- default: "/",
9
+ description: "Color to use for the active breadcrumb element. See <link to colors docs> to see what colors can be used.",
10
+ default: '"primary"',
9
11
  },
10
12
  {
11
13
  name: "gutter",
@@ -13,15 +15,15 @@ export const QBreadcrumbsDocsProps = [
13
15
  optional: true,
14
16
  clickableType: true,
15
17
  description: "Space around separators.",
16
- default: "sm",
18
+ default: '"sm"',
17
19
  },
18
20
  {
19
- name: "activeColor",
20
- type: "string",
21
+ name: "separator",
22
+ type: "string | `icon:${MaterialSymbol}` | Snippet",
21
23
  optional: true,
22
- clickableType: false,
23
- description: "Color to use for the active breadcrumb element. See <link to colors docs> to see what colors can be used.",
24
- default: "primary",
24
+ clickableType: true,
25
+ description: 'Separator to use between the breadcrumb elements. To use an icon, prefix with "icon:" followed by the name of the icon.',
26
+ default: '"/"',
25
27
  },
26
28
  {
27
29
  name: "separatorColor",
@@ -29,56 +31,56 @@ export const QBreadcrumbsDocsProps = [
29
31
  optional: true,
30
32
  clickableType: false,
31
33
  description: "Color to use for the separators. See <link to colors docs> to see what colors can be used.",
32
- default: "outline",
34
+ default: '"outline"',
33
35
  },
34
36
  ];
35
37
  export const QBreadcrumbsElDocsProps = [
36
38
  {
37
- name: "label",
39
+ name: "activeClass",
38
40
  type: "string",
39
41
  optional: true,
40
42
  clickableType: false,
41
- description: "Text to use for the breadcrumb element. If default slot is defined, the label will be overwritten by it.",
42
- default: '""',
43
+ description: "Class to apply to the breadcrumb element when the route is active.",
44
+ default: '"active"',
43
45
  },
44
46
  {
45
47
  name: "icon",
46
- type: "string",
48
+ type: "MaterialSymbol | Snippet",
47
49
  optional: true,
48
- clickableType: false,
50
+ clickableType: true,
49
51
  description: "Name of the leading icon for the breadcrumb element. The icon prop overwrites to icon slot.",
50
52
  default: "undefined",
51
53
  },
52
54
  {
53
- name: "tag",
55
+ name: "label",
54
56
  type: "string",
55
57
  optional: true,
56
58
  clickableType: false,
57
- description: "Tag to use for the breadcrumb element.",
58
- default: '"div"',
59
+ description: "Text to use for the breadcrumb element. If default slot is defined, the label will be overwritten by it.",
60
+ default: '""',
59
61
  },
60
62
  {
61
- name: "to",
63
+ name: "href",
62
64
  type: "string",
63
65
  optional: true,
64
66
  clickableType: false,
65
- description: 'Makes the breadcrumb element navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id")',
67
+ description: 'Also makes the breadcrumb element navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id")',
66
68
  default: "undefined",
67
69
  },
68
70
  {
69
- name: "href",
71
+ name: "tag",
70
72
  type: "string",
71
73
  optional: true,
72
74
  clickableType: false,
73
- description: 'Also makes the breadcrumb element navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id")',
74
- default: "undefined",
75
+ description: "Tag to use for the breadcrumb element.",
76
+ default: '"div"',
75
77
  },
76
78
  {
77
- name: "activeClass",
79
+ name: "to",
78
80
  type: "string",
79
81
  optional: true,
80
82
  clickableType: false,
81
- description: "Class to apply to the breadcrumb element when the route is active.",
82
- default: '"active"',
83
+ description: 'Makes the breadcrumb element navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id")',
84
+ default: "undefined",
83
85
  },
84
86
  ];
@@ -1,38 +1,50 @@
1
- import type { NativeProps } from "../../utils/types";
2
- export type QBreadcrumbsGutterOptions = "none" | "sm" | "md" | "lg";
3
- export interface QBreadcrumbsProps extends NativeProps {
1
+ import type { MaterialSymbol } from "material-symbols";
2
+ import type { Snippet } from "svelte";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ export type QBreadcrumbsGutterOptions = Exclude<Q.Size, "xs" | "xl">;
5
+ export interface QBreadcrumbsProps extends HTMLAttributes<HTMLDivElement> {
4
6
  /**
5
- * Separator to use between the breadcrumb elements. To use an icon, prefix with "icon:" followed by the name of the icon.
6
- * @default /
7
+ * Color to use for the active breadcrumb element. See <link to colors docs> to see what colors can be used.
8
+ * @default "primary"
7
9
  */
8
- separator?: string;
10
+ activeColor?: string;
9
11
  /**
10
12
  * Space around separators.
11
- * @default sm
13
+ * @default "sm"
12
14
  */
13
15
  gutter?: QBreadcrumbsGutterOptions;
14
16
  /**
15
- * Color to use for the active breadcrumb element. See <link to colors docs> to see what colors can be used.
16
- * @default primary
17
+ * Separator to use between the breadcrumb elements. To use an icon, prefix with "icon:" followed by the name of the icon.
18
+ * @default "/"
17
19
  */
18
- activeColor?: string;
20
+ separator?: string | `icon:${MaterialSymbol}` | Snippet;
19
21
  /**
20
22
  * Color to use for the separators. See <link to colors docs> to see what colors can be used.
21
- * @default outline
23
+ * @default "outline"
22
24
  */
23
25
  separatorColor?: string;
24
26
  }
25
- export interface QBreadcrumbsElProps extends NativeProps {
27
+ export interface QBreadcrumbsElProps extends HTMLAttributes<HTMLElement> {
28
+ /**
29
+ * Class to apply to the breadcrumb element when the route is active.
30
+ * @default "active"
31
+ */
32
+ activeClass?: string;
33
+ /**
34
+ * Name of the leading icon for the breadcrumb element. The icon prop overwrites to icon slot.
35
+ * @default undefined
36
+ */
37
+ icon?: MaterialSymbol | Snippet;
26
38
  /**
27
39
  * Text to use for the breadcrumb element. If default slot is defined, the label will be overwritten by it.
28
40
  * @default ""
29
41
  */
30
42
  label?: string;
31
43
  /**
32
- * Name of the leading icon for the breadcrumb element. The icon prop overwrites to icon slot.
44
+ * Also makes the breadcrumb element navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id")
33
45
  * @default undefined
34
46
  */
35
- icon?: string;
47
+ href?: string;
36
48
  /**
37
49
  * Tag to use for the breadcrumb element.
38
50
  * @default "div"
@@ -43,14 +55,4 @@ export interface QBreadcrumbsElProps extends NativeProps {
43
55
  * @default undefined
44
56
  */
45
57
  to?: string;
46
- /**
47
- * Also makes the breadcrumb element navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id")
48
- * @default undefined
49
- */
50
- href?: string;
51
- /**
52
- * Class to apply to the breadcrumb element when the route is active.
53
- * @default "active"
54
- */
55
- activeClass?: string;
56
58
  }
@@ -0,0 +1,133 @@
1
+ @use "$css/mixins";
2
+ @use "$css/variables";
3
+ @use "$css/disabled";
4
+
5
+ @layer q-btn {
6
+ .q-btn {
7
+ position: relative;
8
+
9
+ display: inline-flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+
13
+ margin: 0 0.5rem;
14
+ padding: 0 1.5rem;
15
+
16
+ box-sizing: content-box;
17
+ border: none;
18
+ outline: inherit;
19
+
20
+ background-color: transparent;
21
+ color: var(--ripple-color);
22
+
23
+ font-family: inherit;
24
+ font-size: 0.875rem;
25
+ font-weight: 500;
26
+ line-height: normal;
27
+
28
+ cursor: pointer;
29
+ user-select: none;
30
+ text-decoration: none;
31
+
32
+ transition:
33
+ variables.$speed3 transform,
34
+ variables.$speed3 border-radius,
35
+ variables.$speed3 padding;
36
+
37
+ @include mixins.btn-image;
38
+
39
+ $sizeMap: (
40
+ "sm": -1,
41
+ "md": 0,
42
+ "lg": 1,
43
+ "xl": 2,
44
+ );
45
+ @each $size, $val in $sizeMap {
46
+ &--#{$size} {
47
+ height: 2.5rem + 0.5 * $val;
48
+ min-width: 2.5rem + 0.5 * $val;
49
+
50
+ border-radius: 1.25rem + 0.25 * $val;
51
+
52
+ font-size: 1rem + 0.125 * $val;
53
+ }
54
+ }
55
+
56
+ &:not([aria-disabled]):hover::after {
57
+ @include mixins.overlay(var(--ripple-color), 0.08);
58
+ }
59
+
60
+ &:not([aria-disabled]):focus::after {
61
+ @include mixins.overlay(var(--ripple-color), 0.1);
62
+ }
63
+
64
+ &--elevated {
65
+ &:not(.q-btn--unelevated, [aria-disabled]) {
66
+ @include mixins.elevate(1, "bottom");
67
+ }
68
+
69
+ background-color: var(--surface-container-low);
70
+
71
+ // Surface tint overlay
72
+ &::before {
73
+ @include mixins.overlay(var(--surface-tint), 0.12);
74
+ }
75
+ }
76
+
77
+ &--filled {
78
+ background-color: var(--primary);
79
+
80
+ &:hover:not([aria-disabled]) {
81
+ @include mixins.elevate(1, "bottom");
82
+ }
83
+ }
84
+
85
+ &--tonal {
86
+ background-color: var(--secondary-container);
87
+
88
+ &:hover:not([aria-disabled]) {
89
+ @include mixins.elevate(1, "bottom");
90
+ }
91
+ }
92
+
93
+ &--outlined {
94
+ outline: solid 0.0625rem var(--outline);
95
+
96
+ &:not([aria-disabled]):focus {
97
+ outline-color: var(--primary);
98
+ }
99
+ }
100
+
101
+ &--round {
102
+ width: 2.5rem;
103
+ height: 2.5rem;
104
+ border-radius: 50%;
105
+ padding: 0;
106
+ }
107
+
108
+ &--rectangle {
109
+ border-radius: 0.5rem;
110
+ }
111
+ }
112
+
113
+ .q-btn:not(.q-btn--round) > :is(.q-icon, .q-btn__img, .q-circular-progress) {
114
+ margin-left: -0.5rem;
115
+ margin-right: 0.5rem;
116
+ --size: 1.5rem;
117
+ }
118
+ }
119
+
120
+ // Disabled
121
+ @layer q-btn--disabled {
122
+ .q-btn[aria-disabled] {
123
+ @include disabled.base();
124
+
125
+ &:not(.q-btn--outlined, .q-btn--flat) {
126
+ background-color: disabled.rest-color();
127
+ }
128
+
129
+ &.q-btn--outlined {
130
+ outline-color: disabled.rest-color();
131
+ }
132
+ }
133
+ }