@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,59 +1,112 @@
1
- <script>import { createClasses } from "../../utils/props";
2
- import { createEventDispatcher } from "svelte";
3
- import QIcon from "../icon/QIcon.svelte";
4
- import QCircularProgress from "../progress/QCircularProgress.svelte";
5
- import { activationHandler } from "../../helpers/activationHandler";
6
- export let icon = void 0, label = void 0, disable = false, loading = false, unelevated = false, outline = false, rectangle = false, flat = false, to = void 0, size = void 0, userClasses = void 0;
7
- export { userClasses as class };
8
- const emit = createEventDispatcher();
9
- let tag;
10
- $:
11
- tag = to !== void 0 ? "a" : "div";
12
- $:
13
- classes = createClasses(
14
- [
15
- unelevated && "unelevated",
16
- rectangle && "rectangle",
17
- outline && "outlined",
18
- flat && "flat",
19
- !$$slots.default && !label && "circle",
20
- size && size !== "md" && size
21
- ],
22
- {
23
- component: "q-btn",
24
- userClasses
25
- }
1
+ <svelte:options runes={true} />
2
+
3
+ <script lang="ts">
4
+ import QCircularProgress from "../progress/QCircularProgress.svelte";
5
+ import { useSize } from "../../composables/useSize";
6
+ import { ripple } from "../../helpers";
7
+ import { isActivationKey } from "../../utils";
8
+ import { extractImgSrc } from "../../utils/string";
9
+ import QIcon from "../icon/QIcon.svelte";
10
+ let {
11
+ disabled = false,
12
+ design = "elevated",
13
+ icon,
14
+ label,
15
+ loading = false,
16
+ rectangle = false,
17
+ noRipple = false,
18
+ rippleColor,
19
+ round = false,
20
+ to,
21
+ unelevated = false,
22
+ size = "md",
23
+ target,
24
+ onclick,
25
+ children,
26
+ ...props
27
+ } = $props();
28
+ let qBtn;
29
+ const tag = $derived(to ? "a" : "button");
30
+ const qSize = $derived(useSize(size, "q-btn"));
31
+ const src = $derived(extractImgSrc(icon));
32
+ const color = $derived(
33
+ `var(--${design === "filled" ? "on-primary" : design === "tonal" ? "on-secondary-container" : "primary"})`,
34
+ );
35
+ const rippleColorVar = $derived(
36
+ rippleColor ? `var(--${rippleColor}, ${rippleColor})` : color,
26
37
  );
38
+ function stopIfDisabled(e) {
39
+ if (disabled) {
40
+ e.preventDefault();
41
+ e.stopImmediatePropagation();
42
+ return;
43
+ }
44
+ onclick?.(e);
45
+ }
46
+ function onkeydown(e) {
47
+ if (e.key === "Escape") {
48
+ qBtn?.blur();
49
+ return;
50
+ }
51
+ if (!isActivationKey(e)) {
52
+ return;
53
+ }
54
+ e.preventDefault();
55
+ const click = new MouseEvent("click", { relatedTarget: qBtn });
56
+ stopIfDisabled(click);
57
+ }
27
58
  </script>
28
59
 
29
60
  <svelte:element
30
61
  this={tag}
31
- use:activationHandler={{ disable, callback: (e) => emit("activated", e) }}
32
- role="button"
33
- href={to}
34
- class={classes}
35
- aria-disabled={disable || undefined}
36
- tabindex={disable ? -1 : 0}
37
- {...$$restProps}
62
+ bind:this={qBtn}
63
+ use:ripple={{
64
+ disabled: noRipple || disabled,
65
+ color: rippleColorVar,
66
+ }}
67
+ {...props}
68
+ class="q-btn{qSize.class ? ` ${qSize.class}` : ''}{props.class
69
+ ? ` ${props.class}`
70
+ : ''} q-btn--{design}"
71
+ class:q-btn--unelevated={unelevated}
72
+ class:q-btn--rectangle={rectangle}
73
+ class:q-btn--round={round || (!children && !label)}
74
+ style:--q-btn-size={qSize.style}
75
+ style:--ripple-color={color}
76
+ {target}
77
+ role={tag === "a" ? "button" : undefined}
78
+ aria-disabled={disabled || undefined}
79
+ tabindex={disabled ? -1 : 0}
80
+ {onkeydown}
81
+ onclick={stopIfDisabled}
38
82
  >
39
83
  {#if icon && !loading}
40
- {#if icon.startsWith("img:")}
84
+ {#if src}
41
85
  <img
42
- src={icon.replace("img:", "")}
86
+ {src}
87
+ alt="q-btn leading icon"
43
88
  class="q-btn__img q-btn__img--responsive"
44
- alt="{label || 'Slotted'} button"
45
89
  />
46
90
  {:else}
47
- <QIcon name={icon} class="q-btn__icon" />
91
+ <QIcon name={icon as MaterialSymbol} {color} class="q-btn__icon" />
48
92
  {/if}
49
93
  {/if}
50
94
 
51
95
  {#if loading}
52
- <QCircularProgress indeterminate class="q-btn__loader" />
96
+ <QCircularProgress
97
+ indeterminate
98
+ trackColor="transparent"
99
+ {color}
100
+ size="1.5em"
101
+ class="q-btn__loader"
102
+ />
53
103
  {/if}
54
104
 
55
- {#if label}
56
- <span>{label}</span>
57
- {/if}
58
- <slot />
105
+ <span class="q-btn__label">
106
+ {#if label}
107
+ {label}
108
+ {:else}
109
+ {@render children?.()}
110
+ {/if}
111
+ </span>
59
112
  </svelte:element>
@@ -1,32 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QBtnProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- icon?: QBtnProps["icon"];
7
- label?: QBtnProps["label"];
8
- disable?: QBtnProps["disable"];
9
- loading?: QBtnProps["loading"];
10
- unelevated?: QBtnProps["unelevated"];
11
- outline?: QBtnProps["outline"];
12
- rectangle?: QBtnProps["rectangle"];
13
- flat?: QBtnProps["flat"];
14
- to?: QBtnProps["to"];
15
- size?: QBtnProps["size"];
16
- class?: string | undefined;
17
- };
18
- events: {
19
- activated: CustomEvent<any>;
20
- } & {
21
- [evt: string]: CustomEvent<any>;
22
- };
23
- slots: {
24
- default: {};
25
- };
26
- };
27
- type QBtnProps_ = typeof __propDef.props;
28
- export { QBtnProps_ as QBtnProps };
29
- export type QBtnEvents = typeof __propDef.events;
30
- export type QBtnSlots = typeof __propDef.slots;
31
- export default class QBtn extends SvelteComponent<QBtnProps, QBtnEvents, QBtnSlots> {
32
- }
2
+ declare const QBtn: import("svelte").Component<QBtnProps, {}, "">;
3
+ export default QBtn;
@@ -1,2 +1,2 @@
1
- import type { QComponentDocs } from "$utils/types";
2
- export declare let QBtnDocs: QComponentDocs;
1
+ import type { QComponentDocs } from "../../utils";
2
+ export declare const QBtnDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QBtnDocsProps } from "./docs.props";
2
- export let QBtnDocs = {
2
+ export const QBtnDocs = {
3
3
  name: "QBtn",
4
4
  description: "Buttons help users take action, such as sending an email, sharing a document, or liking a comment.",
5
5
  docs: {
@@ -1,6 +1,8 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 8658ff9566d68f27112f5c6ff5b97a54
1
3
  export const QBtnDocsProps = [
2
4
  {
3
- name: "disable",
5
+ name: "disabled",
4
6
  type: "boolean",
5
7
  optional: true,
6
8
  clickableType: false,
@@ -8,18 +10,18 @@ export const QBtnDocsProps = [
8
10
  default: "false",
9
11
  },
10
12
  {
11
- name: "flat",
12
- type: "boolean",
13
+ name: "design",
14
+ type: "QBtnDesignOptions",
13
15
  optional: true,
14
- clickableType: false,
15
- description: "Use flat design for the button, removing its elevation and background-color.",
16
- default: "false",
16
+ clickableType: true,
17
+ description: "Choose the design for the button.",
18
+ default: '"elevated"',
17
19
  },
18
20
  {
19
21
  name: "icon",
20
- type: "string",
22
+ type: "MaterialSymbol | `img:${string}`",
21
23
  optional: true,
22
- clickableType: false,
24
+ clickableType: true,
23
25
  description: "Name of the leading icon to use for the button.",
24
26
  default: "undefined",
25
27
  },
@@ -40,19 +42,35 @@ export const QBtnDocsProps = [
40
42
  default: "false",
41
43
  },
42
44
  {
43
- name: "outline",
45
+ name: "rectangle",
44
46
  type: "boolean",
45
47
  optional: true,
46
48
  clickableType: false,
47
- description: "Use outline design for the button, adding a border around it.",
49
+ description: "Use rectangle design for the button, removing the large border-radius.",
48
50
  default: "false",
49
51
  },
50
52
  {
51
- name: "rectangle",
53
+ name: "noRipple",
52
54
  type: "boolean",
53
55
  optional: true,
54
56
  clickableType: false,
55
- description: "Use rectangle design for the button, removing the large border-radius.",
57
+ description: "Disable the ripple effect for the button.",
58
+ default: "false",
59
+ },
60
+ {
61
+ name: "rippleColor",
62
+ type: "string",
63
+ optional: true,
64
+ clickableType: false,
65
+ description: "Sets the ripple effect's color for the button.",
66
+ default: "undefined",
67
+ },
68
+ {
69
+ name: "round",
70
+ type: "boolean",
71
+ optional: true,
72
+ clickableType: false,
73
+ description: "Use round design for the button, giving it a circular shape.",
56
74
  default: "false",
57
75
  },
58
76
  {
@@ -77,6 +95,22 @@ export const QBtnDocsProps = [
77
95
  optional: true,
78
96
  clickableType: true,
79
97
  description: "Size of the button.",
80
- default: "md",
98
+ default: '"md"',
99
+ },
100
+ {
101
+ name: "target",
102
+ type: 'HTMLAnchorAttributes["target"]',
103
+ optional: true,
104
+ clickableType: true,
105
+ description: 'For "a" (anchor) tag only, apply the target attribute.',
106
+ default: "undefined",
107
+ },
108
+ {
109
+ name: "onclick",
110
+ type: "MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>",
111
+ optional: true,
112
+ clickableType: true,
113
+ description: "This event is emitted when the button is clicked.",
114
+ default: "undefined",
81
115
  },
82
116
  ];
@@ -1,21 +1,23 @@
1
- import type { NativeProps } from "$utils/types";
2
- export type QBtnSizeOptions = "sm" | "md" | "lg" | "xl";
3
- export interface QBtnProps extends NativeProps {
1
+ import type { MaterialSymbol } from "material-symbols";
2
+ import type { HTMLAttributes, HTMLAnchorAttributes, MouseEventHandler } from "svelte/elements";
3
+ export type QBtnSizeOptions = Exclude<Q.Size, "xs">;
4
+ export type QBtnDesignOptions = "elevated" | "filled" | "tonal" | "outlined" | "flat";
5
+ export interface QBtnProps extends HTMLAttributes<HTMLButtonElement> {
4
6
  /**
5
7
  * Puts the button in a disabled state, making it unclickable.
6
8
  * @default false
7
9
  */
8
- disable?: boolean;
10
+ disabled?: boolean;
9
11
  /**
10
- * Use flat design for the button, removing its elevation and background-color.
11
- * @default false
12
+ * Choose the design for the button.
13
+ * @default "elevated"
12
14
  */
13
- flat?: boolean;
15
+ design?: QBtnDesignOptions;
14
16
  /**
15
17
  * Name of the leading icon to use for the button.
16
18
  * @default undefined
17
19
  */
18
- icon?: string;
20
+ icon?: MaterialSymbol | `img:${string}`;
19
21
  /**
20
22
  * Text to use for the button.
21
23
  * @default undefined
@@ -27,15 +29,25 @@ export interface QBtnProps extends NativeProps {
27
29
  */
28
30
  loading?: boolean;
29
31
  /**
30
- * Use outline design for the button, adding a border around it.
32
+ * Use rectangle design for the button, removing the large border-radius.
31
33
  * @default false
32
34
  */
33
- outline?: boolean;
35
+ rectangle?: boolean;
34
36
  /**
35
- * Use rectangle design for the button, removing the large border-radius.
37
+ * Disable the ripple effect for the button.
36
38
  * @default false
37
39
  */
38
- rectangle?: boolean;
40
+ noRipple?: boolean;
41
+ /**
42
+ * Sets the ripple effect's color for the button.
43
+ * @default undefined
44
+ */
45
+ rippleColor?: string;
46
+ /**
47
+ * Use round design for the button, giving it a circular shape.
48
+ * @default false
49
+ */
50
+ round?: boolean;
39
51
  /**
40
52
  * Makes the button navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id").
41
53
  * @default undefined
@@ -48,7 +60,17 @@ export interface QBtnProps extends NativeProps {
48
60
  unelevated?: boolean;
49
61
  /**
50
62
  * Size of the button.
51
- * @default md
63
+ * @default "md"
52
64
  */
53
65
  size?: QBtnSizeOptions;
66
+ /**
67
+ * For "a" (anchor) tag only, apply the target attribute.
68
+ * @default undefined
69
+ */
70
+ target?: HTMLAnchorAttributes["target"];
71
+ /**
72
+ * This event is emitted when the button is clicked.
73
+ * @default undefined
74
+ */
75
+ onclick?: MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
54
76
  }
@@ -0,0 +1,25 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-card {
4
+ display: block;
5
+ border-radius: 0.75rem;
6
+ transition: transform var(--speed-3) padding var(--speed-3) border-radius var(--speed-3);
7
+
8
+ @include mixins.padding("a-md");
9
+ @include mixins.elevate(1, "bottom");
10
+
11
+ &--bordered {
12
+ box-sizing: border-box;
13
+ box-shadow: none;
14
+
15
+ @include mixins.border;
16
+ }
17
+
18
+ &--flat {
19
+ box-shadow: none;
20
+ }
21
+
22
+ &--rounded {
23
+ border-radius: 2rem;
24
+ }
25
+ }
@@ -1,23 +1,31 @@
1
- <script>import { createClasses } from "$utils/props";
2
- export let bordered = false, fill = void 0, flat = false, round = false, title = void 0, userClasses = void 0;
3
- export { userClasses as class };
4
- const colorOptions = ["primary", "secondary", "tertiary"];
5
- $:
6
- color = !fill ? "surface" : colorOptions.includes(fill) ? `${fill}-container` : "surface-variant";
7
- $:
8
- classes = createClasses([bordered && "bordered", flat && "flat", round && "rounded"], {
9
- component: "q-card",
10
- quaffClasses: [`${color} on-${color}-text`],
11
- userClasses
1
+ <svelte:options runes={true} />
2
+
3
+ <script lang="ts">
4
+ let {
5
+ fill = false,
6
+ flat = false,
7
+ bordered = false,
8
+ rounded = false,
9
+ children,
10
+ ...props
11
+ } = $props();
12
+ const colorOptions = ["primary", "secondary", "tertiary"];
13
+ const color = $derived.by(() => {
14
+ if (fill) {
15
+ return colorOptions.includes(fill)
16
+ ? `${fill}-container`
17
+ : "surface-variant";
18
+ }
19
+ return "surface";
12
20
  });
13
21
  </script>
14
22
 
15
- <article class={classes} {...$$restProps}>
16
- {#if $$slots.title}
17
- <slot name="title" />
18
- {:else if title !== undefined}
19
- <h5 class="q-card__title">{title}</h5>
20
- {/if}
21
-
22
- <slot />
23
+ <article
24
+ {...props}
25
+ class="q-card{color ? ` ${color}` : ''}{props.class ? ` ${props.class}` : ''}"
26
+ class:q-card--flat={flat}
27
+ class:q-card--bordered={bordered}
28
+ class:q-card--rounded={rounded}
29
+ >
30
+ {@render children?.()}
23
31
  </article>
@@ -1,26 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QCardProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- bordered?: QCardProps["bordered"];
7
- fill?: QCardProps["fill"];
8
- flat?: QCardProps["flat"];
9
- round?: QCardProps["round"];
10
- title?: QCardProps["title"];
11
- class?: string | undefined;
12
- };
13
- events: {
14
- [evt: string]: CustomEvent<any>;
15
- };
16
- slots: {
17
- title: {};
18
- default: {};
19
- };
20
- };
21
- type QCardProps_ = typeof __propDef.props;
22
- export { QCardProps_ as QCardProps };
23
- export type QCardEvents = typeof __propDef.events;
24
- export type QCardSlots = typeof __propDef.slots;
25
- export default class QCard extends SvelteComponent<QCardProps, QCardEvents, QCardSlots> {
26
- }
2
+ declare const QCard: import("svelte").Component<QCardProps, {}, "">;
3
+ export default QCard;
@@ -0,0 +1,10 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-card__actions {
4
+ display: flex;
5
+ @include mixins.margin("t-sm");
6
+
7
+ &--vertical {
8
+ flex-direction: column;
9
+ }
10
+ }
@@ -1,18 +1,17 @@
1
- <script>import useAlign from "../../composables/use-align";
2
- import { createClasses } from "$utils/props";
3
- export let align = void 0, vertical = false, userClasses = void 0;
4
- export { userClasses as class };
5
- $:
6
- alignClass = useAlign(align);
7
- $:
8
- classes = createClasses([vertical && "vertical"], {
9
- component: "q-card",
10
- element: "actions",
11
- quaffClasses: [alignClass],
12
- userClasses
13
- });
1
+ <svelte:options runes={true} />
2
+
3
+ <script lang="ts">
4
+ import { useAlign } from "../../composables/useAlign";
5
+ let { align, vertical = false, children, ...props } = $props();
6
+ const alignClass = $derived(useAlign(align));
14
7
  </script>
15
8
 
16
- <nav class={classes} {...$$restProps}>
17
- <slot />
9
+ <nav
10
+ {...props}
11
+ class="q-card__actions{alignClass ? ` ${alignClass}` : ''}{props.class
12
+ ? ` ${props.class}`
13
+ : ''}"
14
+ class:q-card__actions--vertical={vertical}
15
+ >
16
+ {@render children?.()}
18
17
  </nav>
@@ -1,22 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QCardActionsProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- align?: QCardActionsProps["align"];
7
- vertical?: boolean | undefined;
8
- class?: string | undefined;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {
14
- default: {};
15
- };
16
- };
17
- type QCardActionsProps_ = typeof __propDef.props;
18
- export { QCardActionsProps_ as QCardActionsProps };
19
- export type QCardActionsEvents = typeof __propDef.events;
20
- export type QCardActionsSlots = typeof __propDef.slots;
21
- export default class QCardActions extends SvelteComponent<QCardActionsProps, QCardActionsEvents, QCardActionsSlots> {
22
- }
2
+ declare const QCardActions: import("svelte").Component<QCardActionsProps, {}, "">;
3
+ export default QCardActions;
@@ -0,0 +1,10 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-card__section {
4
+ @include mixins.padding("a-sm");
5
+
6
+ &--horizontal {
7
+ border-radius: 0;
8
+ @include mixins.margin("t-sm");
9
+ }
10
+ }
@@ -1,14 +1,14 @@
1
- <script>import { createClasses } from "$utils/props";
2
- export let horizontal = false, userClasses = void 0;
3
- export { userClasses as class };
4
- $:
5
- classes = createClasses([horizontal && "horizontal"], {
6
- component: "q-card",
7
- element: "section",
8
- userClasses
9
- });
1
+ <svelte:options runes={true} />
2
+
3
+ <script lang="ts">
4
+ let { horizontal = false, children, ...props } = $props();
10
5
  </script>
11
6
 
12
- <div class={classes} {...$$restProps} on:scroll>
13
- <slot />
7
+ <div
8
+ {...props}
9
+ class="q-card__section{props.class ? ` ${props.class}` : ''}"
10
+ class:q-card__section--horizontal={horizontal}
11
+ class:row={horizontal}
12
+ >
13
+ {@render children?.()}
14
14
  </div>
@@ -1,23 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QCardSectionProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- horizontal?: QCardSectionProps["horizontal"];
7
- class?: string | undefined;
8
- };
9
- events: {
10
- scroll: Event;
11
- } & {
12
- [evt: string]: CustomEvent<any>;
13
- };
14
- slots: {
15
- default: {};
16
- };
17
- };
18
- type QCardSectionProps_ = typeof __propDef.props;
19
- export { QCardSectionProps_ as QCardSectionProps };
20
- export type QCardSectionEvents = typeof __propDef.events;
21
- export type QCardSectionSlots = typeof __propDef.slots;
22
- export default class QCardSection extends SvelteComponent<QCardSectionProps, QCardSectionEvents, QCardSectionSlots> {
23
- }
2
+ declare const QCardSection: import("svelte").Component<QCardSectionProps, {}, "">;
3
+ export default QCardSection;
@@ -1,4 +1,4 @@
1
- import type { QComponentDocs } from "../../utils/types";
2
- export declare let QCardDocs: QComponentDocs;
3
- export declare let QCardSectionDocs: QComponentDocs;
4
- export declare let QCardActionsDocs: QComponentDocs;
1
+ import type { QComponentDocs } from "../../utils";
2
+ export declare const QCardDocs: QComponentDocs;
3
+ export declare const QCardSectionDocs: QComponentDocs;
4
+ export declare const QCardActionsDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QCardActionsDocsProps, QCardDocsProps, QCardSectionDocsProps } from "./docs.props";
2
- export let QCardDocs = {
2
+ export const QCardDocs = {
3
3
  name: "QCard",
4
4
  description: "Cards provide a clean, flexible, and convenient means of displaying a wide variety of content.",
5
5
  docs: {
@@ -14,7 +14,7 @@ export let QCardDocs = {
14
14
  events: [],
15
15
  },
16
16
  };
17
- export let QCardSectionDocs = {
17
+ export const QCardSectionDocs = {
18
18
  name: "QCardSection",
19
19
  description: "Sections are used to group similar content within a card.",
20
20
  docs: {
@@ -29,7 +29,7 @@ export let QCardSectionDocs = {
29
29
  events: [],
30
30
  },
31
31
  };
32
- export let QCardActionsDocs = {
32
+ export const QCardActionsDocs = {
33
33
  name: "QCardActions",
34
34
  description: "Actions hold actionable items like buttons within a card.",
35
35
  docs: {