@quaffui/quaff 0.1.0-prealpha15 → 0.1.0-prealpha19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/README.md +6 -6
  2. package/dist/classes/QContext.svelte.d.ts +42 -0
  3. package/dist/classes/QContext.svelte.js +63 -0
  4. package/dist/classes/QScrollObserver.svelte.d.ts +44 -0
  5. package/dist/classes/QScrollObserver.svelte.js +95 -0
  6. package/dist/classes/QTheme.svelte.d.ts +11 -0
  7. package/dist/classes/QTheme.svelte.js +49 -0
  8. package/dist/classes/Quaff.svelte.d.ts +14 -0
  9. package/dist/classes/Quaff.svelte.js +35 -0
  10. package/dist/components/avatar/QAvatar.scss +97 -0
  11. package/dist/components/avatar/QAvatar.svelte +35 -50
  12. package/dist/components/avatar/QAvatar.svelte.d.ts +2 -25
  13. package/dist/components/avatar/docs.d.ts +1 -1
  14. package/dist/components/avatar/docs.js +1 -1
  15. package/dist/components/avatar/docs.props.js +21 -5
  16. package/dist/components/avatar/index.scss +5 -3
  17. package/dist/components/avatar/props.d.ts +24 -7
  18. package/dist/components/breadcrumbs/QBreadcrumbs.scss +10 -0
  19. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +24 -10
  20. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +2 -22
  21. package/dist/components/breadcrumbs/QBreadcrumbsEl.scss +10 -0
  22. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +62 -38
  23. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +2 -25
  24. package/dist/components/breadcrumbs/docs.d.ts +1 -1
  25. package/dist/components/breadcrumbs/docs.js +1 -1
  26. package/dist/components/breadcrumbs/docs.props.js +27 -27
  27. package/dist/components/breadcrumbs/props.d.ts +25 -24
  28. package/dist/components/button/QBtn.scss +133 -0
  29. package/dist/components/button/QBtn.svelte +89 -46
  30. package/dist/components/button/QBtn.svelte.d.ts +2 -33
  31. package/dist/components/button/docs.d.ts +1 -1
  32. package/dist/components/button/docs.js +1 -1
  33. package/dist/components/button/docs.props.js +26 -18
  34. package/dist/components/button/props.d.ts +21 -15
  35. package/dist/components/card/QCard.scss +25 -0
  36. package/dist/components/card/QCard.svelte +26 -17
  37. package/dist/components/card/QCard.svelte.d.ts +2 -25
  38. package/dist/components/card/QCardActions.scss +10 -0
  39. package/dist/components/card/QCardActions.svelte +11 -8
  40. package/dist/components/card/QCardActions.svelte.d.ts +2 -21
  41. package/dist/components/card/QCardSection.scss +10 -0
  42. package/dist/components/card/QCardSection.svelte +9 -7
  43. package/dist/components/card/QCardSection.svelte.d.ts +2 -22
  44. package/dist/components/card/docs.d.ts +3 -3
  45. package/dist/components/card/docs.js +3 -3
  46. package/dist/components/card/docs.props.js +6 -14
  47. package/dist/components/card/props.d.ts +9 -15
  48. package/dist/components/checkbox/QCheckbox.svelte +6 -5
  49. package/dist/components/checkbox/QCheckbox.svelte.d.ts +2 -20
  50. package/dist/components/checkbox/docs.d.ts +1 -1
  51. package/dist/components/checkbox/docs.js +1 -1
  52. package/dist/components/checkbox/docs.props.js +1 -1
  53. package/dist/components/checkbox/index.scss +3 -1
  54. package/dist/components/checkbox/props.d.ts +1 -2
  55. package/dist/components/chip/QChip.scss +179 -0
  56. package/dist/components/chip/QChip.svelte +97 -69
  57. package/dist/components/chip/QChip.svelte.d.ts +2 -35
  58. package/dist/components/chip/docs.d.ts +1 -1
  59. package/dist/components/chip/docs.js +1 -1
  60. package/dist/components/chip/docs.props.js +23 -47
  61. package/dist/components/chip/props.d.ts +21 -34
  62. package/dist/components/codeBlock/QCodeBlock.svelte +63 -45
  63. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +2 -19
  64. package/dist/components/codeBlock/docs.props.js +10 -2
  65. package/dist/components/codeBlock/props.d.ts +6 -1
  66. package/dist/components/dialog/{index.scss → QDialog.scss} +9 -7
  67. package/dist/components/dialog/QDialog.svelte +72 -70
  68. package/dist/components/dialog/QDialog.svelte.d.ts +6 -36
  69. package/dist/components/dialog/docs.d.ts +1 -1
  70. package/dist/components/dialog/docs.js +1 -1
  71. package/dist/components/dialog/docs.props.d.ts +0 -8
  72. package/dist/components/dialog/docs.props.js +1 -131
  73. package/dist/components/dialog/props.d.ts +0 -16
  74. package/dist/components/drawer/QDrawer.scss +45 -0
  75. package/dist/components/drawer/QDrawer.svelte +87 -94
  76. package/dist/components/drawer/QDrawer.svelte.d.ts +6 -39
  77. package/dist/components/drawer/docs.d.ts +1 -1
  78. package/dist/components/drawer/docs.js +1 -1
  79. package/dist/components/drawer/docs.props.js +3 -3
  80. package/dist/components/drawer/props.d.ts +2 -2
  81. package/dist/components/footer/QFooter.scss +42 -0
  82. package/dist/components/footer/QFooter.svelte +65 -24
  83. package/dist/components/footer/QFooter.svelte.d.ts +2 -23
  84. package/dist/components/footer/docs.d.ts +1 -1
  85. package/dist/components/footer/docs.js +1 -1
  86. package/dist/components/footer/docs.props.js +14 -6
  87. package/dist/components/footer/props.d.ts +8 -5
  88. package/dist/components/header/QHeader.scss +54 -0
  89. package/dist/components/header/QHeader.svelte +52 -24
  90. package/dist/components/header/QHeader.svelte.d.ts +2 -23
  91. package/dist/components/header/docs.props.js +23 -7
  92. package/dist/components/header/props.d.ts +11 -3
  93. package/dist/components/icon/{index.scss → QIcon.scss} +2 -4
  94. package/dist/components/icon/QIcon.svelte +29 -16
  95. package/dist/components/icon/QIcon.svelte.d.ts +2 -27
  96. package/dist/components/icon/docs.d.ts +1 -1
  97. package/dist/components/icon/docs.js +1 -1
  98. package/dist/components/icon/docs.props.js +5 -5
  99. package/dist/components/icon/props.d.ts +6 -6
  100. package/dist/components/index.d.ts +2 -2
  101. package/dist/components/index.js +2 -2
  102. package/dist/components/input/QInput.svelte +52 -25
  103. package/dist/components/input/QInput.svelte.d.ts +2 -32
  104. package/dist/components/input/docs.d.ts +1 -1
  105. package/dist/components/input/docs.js +1 -1
  106. package/dist/components/input/docs.props.js +33 -1
  107. package/dist/components/input/props.d.ts +5 -12
  108. package/dist/components/input/props.js +1 -12
  109. package/dist/components/layout/QLayout.scss +178 -0
  110. package/dist/components/layout/QLayout.svelte +100 -80
  111. package/dist/components/layout/QLayout.svelte.d.ts +16 -43
  112. package/dist/components/layout/docs.d.ts +1 -1
  113. package/dist/components/layout/docs.js +1 -1
  114. package/dist/components/layout/docs.props.js +57 -1
  115. package/dist/components/layout/props.d.ts +8 -0
  116. package/dist/components/list/QItem.scss +61 -0
  117. package/dist/components/list/QItem.svelte +65 -46
  118. package/dist/components/list/QItem.svelte.d.ts +2 -30
  119. package/dist/components/list/QItemSection.scss +45 -0
  120. package/dist/components/list/QItemSection.svelte +46 -34
  121. package/dist/components/list/QItemSection.svelte.d.ts +2 -24
  122. package/dist/components/list/QList.scss +30 -0
  123. package/dist/components/list/QList.svelte +28 -16
  124. package/dist/components/list/QList.svelte.d.ts +2 -28
  125. package/dist/components/list/docs.d.ts +1 -1
  126. package/dist/components/list/docs.js +1 -1
  127. package/dist/components/list/docs.props.js +36 -4
  128. package/dist/components/list/props.d.ts +9 -8
  129. package/dist/components/list/props.js +1 -25
  130. package/dist/components/private/ContextReseter.svelte +6 -11
  131. package/dist/components/private/ContextReseter.svelte.d.ts +6 -18
  132. package/dist/components/private/QApi.svelte +118 -97
  133. package/dist/components/private/QApi.svelte.d.ts +4 -16
  134. package/dist/components/private/QDocs.svelte +67 -58
  135. package/dist/components/private/QDocs.svelte.d.ts +9 -20
  136. package/dist/components/private/QDocsSection.svelte +15 -22
  137. package/dist/components/private/QDocsSection.svelte.d.ts +7 -29
  138. package/dist/components/private/QIconSnippet.svelte +12 -0
  139. package/dist/components/private/QIconSnippet.svelte.d.ts +8 -0
  140. package/dist/components/progress/QCircularProgress.scss +63 -0
  141. package/dist/components/progress/QCircularProgress.svelte +104 -28
  142. package/dist/components/progress/QCircularProgress.svelte.d.ts +2 -22
  143. package/dist/components/progress/QLinearProgress.scss +75 -0
  144. package/dist/components/progress/QLinearProgress.svelte +55 -13
  145. package/dist/components/progress/QLinearProgress.svelte.d.ts +2 -20
  146. package/dist/components/progress/docs.d.ts +1 -1
  147. package/dist/components/progress/docs.js +1 -1
  148. package/dist/components/progress/docs.props.js +138 -10
  149. package/dist/components/progress/props.d.ts +75 -12
  150. package/dist/components/radio/QRadio.svelte +14 -3
  151. package/dist/components/radio/QRadio.svelte.d.ts +2 -21
  152. package/dist/components/radio/docs.d.ts +1 -1
  153. package/dist/components/radio/docs.js +1 -1
  154. package/dist/components/radio/docs.props.js +2 -2
  155. package/dist/components/radio/index.scss +3 -1
  156. package/dist/components/radio/props.d.ts +2 -4
  157. package/dist/components/radio/props.js +1 -8
  158. package/dist/components/railbar/QRailbar.scss +54 -0
  159. package/dist/components/railbar/QRailbar.svelte +43 -66
  160. package/dist/components/railbar/QRailbar.svelte.d.ts +2 -22
  161. package/dist/components/railbar/docs.d.ts +1 -1
  162. package/dist/components/railbar/docs.js +1 -1
  163. package/dist/components/railbar/docs.props.js +4 -4
  164. package/dist/components/railbar/props.d.ts +3 -3
  165. package/dist/components/select/QSelect.svelte +121 -88
  166. package/dist/components/select/QSelect.svelte.d.ts +2 -34
  167. package/dist/components/select/docs.d.ts +1 -1
  168. package/dist/components/select/docs.js +8 -1
  169. package/dist/components/select/docs.props.js +41 -1
  170. package/dist/components/select/index.scss +8 -6
  171. package/dist/components/select/props.d.ts +6 -12
  172. package/dist/components/select/props.js +1 -12
  173. package/dist/components/separator/QSeparator.scss +54 -0
  174. package/dist/components/separator/QSeparator.svelte +38 -45
  175. package/dist/components/separator/QSeparator.svelte.d.ts +2 -24
  176. package/dist/components/separator/docs.d.ts +1 -1
  177. package/dist/components/separator/docs.js +1 -1
  178. package/dist/components/separator/docs.props.js +4 -4
  179. package/dist/components/separator/props.d.ts +5 -7
  180. package/dist/components/separator/props.js +1 -9
  181. package/dist/components/switch/QSwitch.scss +305 -0
  182. package/dist/components/switch/QSwitch.svelte +96 -0
  183. package/dist/components/switch/QSwitch.svelte.d.ts +3 -0
  184. package/dist/components/{toggle → switch}/docs.d.ts +1 -1
  185. package/dist/components/{toggle → switch}/docs.js +3 -3
  186. package/dist/components/{toggle → switch}/docs.props.d.ts +1 -1
  187. package/dist/components/{toggle → switch}/docs.props.js +30 -6
  188. package/dist/components/switch/props.d.ts +13 -0
  189. package/dist/components/switch/props.js +1 -0
  190. package/dist/components/table/QTable.svelte +99 -85
  191. package/dist/components/table/QTable.svelte.d.ts +3 -29
  192. package/dist/components/table/docs.d.ts +1 -1
  193. package/dist/components/table/docs.js +1 -1
  194. package/dist/components/table/docs.props.js +9 -1
  195. package/dist/components/table/index.scss +3 -1
  196. package/dist/components/table/props.d.ts +10 -0
  197. package/dist/components/tabs/QTab.scss +71 -0
  198. package/dist/components/tabs/QTab.svelte +75 -96
  199. package/dist/components/tabs/QTab.svelte.d.ts +2 -25
  200. package/dist/components/tabs/QTabs.scss +40 -0
  201. package/dist/components/tabs/QTabs.svelte +107 -59
  202. package/dist/components/tabs/QTabs.svelte.d.ts +6 -31
  203. package/dist/components/tabs/docs.d.ts +1 -1
  204. package/dist/components/tabs/docs.js +1 -1
  205. package/dist/components/tabs/docs.props.js +3 -3
  206. package/dist/components/tabs/index.scss +4 -2
  207. package/dist/components/tabs/props.d.ts +5 -4
  208. package/dist/components/tabs/props.js +1 -1
  209. package/dist/components/toolbar/QToolbar.svelte +15 -12
  210. package/dist/components/toolbar/QToolbar.svelte.d.ts +2 -23
  211. package/dist/components/toolbar/QToolbarTitle.svelte +8 -7
  212. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +2 -21
  213. package/dist/components/toolbar/docs.d.ts +1 -1
  214. package/dist/components/toolbar/docs.js +1 -1
  215. package/dist/components/toolbar/docs.props.js +4 -4
  216. package/dist/components/toolbar/index.scss +12 -14
  217. package/dist/components/toolbar/props.d.ts +4 -5
  218. package/dist/components/tooltip/QTooltip.svelte +5 -9
  219. package/dist/components/tooltip/QTooltip.svelte.d.ts +2 -21
  220. package/dist/components/tooltip/docs.d.ts +1 -1
  221. package/dist/components/tooltip/docs.js +1 -1
  222. package/dist/components/tooltip/docs.props.js +1 -1
  223. package/dist/components/tooltip/index.scss +3 -1
  224. package/dist/components/tooltip/props.d.ts +1 -1
  225. package/dist/composables/index.d.ts +3 -3
  226. package/dist/composables/index.js +3 -3
  227. package/dist/composables/useSize.d.ts +10 -0
  228. package/dist/composables/useSize.js +37 -0
  229. package/dist/composables/{use-size.d.ts → useSizeLegacy.d.ts} +2 -2
  230. package/dist/composables/{use-size.js → useSizeLegacy.js} +5 -5
  231. package/dist/css/_components.scss +31 -0
  232. package/dist/css/_disabled.scss +18 -0
  233. package/dist/css/{ripple.scss → _ripple.scss} +1 -1
  234. package/dist/css/_variables.scss +73 -0
  235. package/dist/css/classes/_design.scss +57 -0
  236. package/dist/css/classes/_flex.scss +62 -0
  237. package/dist/css/classes/_grid.scss +35 -0
  238. package/dist/css/classes/_index.scss +7 -0
  239. package/dist/css/classes/_overflow.scss +7 -0
  240. package/dist/css/classes/_position.scss +7 -0
  241. package/dist/css/classes/_select.scss +6 -0
  242. package/dist/css/classes/_spaces.scss +23 -0
  243. package/dist/css/fonts.scss +16 -3
  244. package/dist/css/index.css +1 -1
  245. package/dist/css/index.scss +15 -94
  246. package/dist/css/mixins/_design.scss +63 -0
  247. package/dist/css/mixins/{field-mixins.scss → _field.scss} +16 -5
  248. package/dist/css/mixins/_image.scss +63 -0
  249. package/dist/css/mixins/_index.scss +9 -0
  250. package/dist/css/mixins/_layout.scss +20 -0
  251. package/dist/css/mixins/{menu.scss → _menu.scss} +4 -2
  252. package/dist/css/mixins/{selection.scss → _selection.scss} +7 -67
  253. package/dist/css/mixins/_spaces.scss +36 -0
  254. package/dist/css/mixins/_typography.scss +7 -0
  255. package/dist/css/shared/q-field.scss +62 -32
  256. package/dist/css/theme/_colors.scss +173 -0
  257. package/dist/css/theme/css-variables.scss +5 -0
  258. package/dist/css/theme/page.scss +3 -3
  259. package/dist/css/theme/reset.scss +17 -1
  260. package/dist/css/theme/theme.scss +2 -3
  261. package/dist/css/theme/tokens.scss +0 -159
  262. package/dist/global.d.ts +1 -1
  263. package/dist/helpers/clickOutside.d.ts +2 -2
  264. package/dist/helpers/clickOutside.js +5 -4
  265. package/dist/helpers/ripple.d.ts +1 -1
  266. package/dist/helpers/ripple.js +14 -5
  267. package/dist/helpers/version.d.ts +1 -1
  268. package/dist/helpers/version.js +1 -1
  269. package/dist/index.d.ts +2 -1
  270. package/dist/index.js +2 -1
  271. package/dist/stores/index.d.ts +0 -2
  272. package/dist/stores/index.js +1 -2
  273. package/dist/utils/clipboard.js +2 -2
  274. package/dist/utils/colors.d.ts +71 -0
  275. package/dist/utils/colors.js +103 -15
  276. package/dist/utils/dom.d.ts +2 -0
  277. package/dist/utils/dom.js +10 -4
  278. package/dist/utils/number.d.ts +2 -0
  279. package/dist/utils/number.js +9 -0
  280. package/dist/utils/props.d.ts +2 -2
  281. package/dist/utils/props.js +8 -6
  282. package/dist/utils/router.d.ts +17 -0
  283. package/dist/utils/router.js +23 -0
  284. package/dist/utils/string.d.ts +1 -0
  285. package/dist/utils/string.js +4 -1
  286. package/dist/utils/types.d.ts +7 -2
  287. package/dist/utils/types.js +0 -3
  288. package/dist/utils/types.json +8 -5
  289. package/dist/utils/watchable.d.ts +0 -1
  290. package/dist/utils/watchable.js +1 -1
  291. package/package.json +42 -39
  292. package/dist/components/breadcrumbs/index.scss +0 -20
  293. package/dist/components/button/index.scss +0 -98
  294. package/dist/components/card/index.scss +0 -56
  295. package/dist/components/chip/index.scss +0 -103
  296. package/dist/components/drawer/index.scss +0 -59
  297. package/dist/components/footer/index.scss +0 -28
  298. package/dist/components/layout/index.scss +0 -387
  299. package/dist/components/list/index.scss +0 -144
  300. package/dist/components/progress/index.scss +0 -82
  301. package/dist/components/railbar/index.scss +0 -39
  302. package/dist/components/separator/index.scss +0 -52
  303. package/dist/components/toggle/QToggle.svelte +0 -34
  304. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  305. package/dist/components/toggle/index.scss +0 -31
  306. package/dist/components/toggle/props.d.ts +0 -9
  307. package/dist/components/toggle/props.js +0 -9
  308. package/dist/css/grid.scss +0 -50
  309. package/dist/css/mixins.scss +0 -137
  310. package/dist/css/states.scss +0 -75
  311. package/dist/css/theme/bridge.scss +0 -15
  312. package/dist/css/theme/theme.dark.scss +0 -39
  313. package/dist/css/theme/theme.light.scss +0 -39
  314. package/dist/css/variables-sass.scss +0 -16
  315. package/dist/stores/QTheme.d.ts +0 -42
  316. package/dist/stores/QTheme.js +0 -60
  317. package/dist/stores/Quaff.d.ts +0 -32
  318. package/dist/stores/Quaff.js +0 -58
  319. /package/dist/composables/{use-align.d.ts → useAlign.d.ts} +0 -0
  320. /package/dist/composables/{use-align.js → useAlign.js} +0 -0
  321. /package/dist/composables/{use-router-link.d.ts → useRouterLink.d.ts} +0 -0
  322. /package/dist/composables/{use-router-link.js → useRouterLink.js} +0 -0
  323. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
@@ -1,70 +1,118 @@
1
- <script context="module"></script>
1
+ <script context="module" lang="ts"></script>
2
2
 
3
- <script>import { movementDirection } from "../../utils";
4
- import { setContext } from "svelte";
5
- import { writable } from "svelte/store";
6
- export let value = void 0, variant = "primary", round = false, userClasses = "";
7
- export { userClasses as class };
8
- const cssVars = {
9
- indicatorPosition: "--indicator-position",
10
- indicatorSize: "--indicator-size"
11
- };
12
- let qTabs;
13
- const qTabStore = writable({
14
- value,
15
- variant,
16
- previousEl: null,
17
- activeEl: null,
18
- utils: { size: 0, position: 0 }
19
- });
20
- $:
21
- qTabStore.update(($store) => {
22
- $store.value = value;
23
- return $store;
3
+ <script lang="ts">
4
+ import { setContext, untrack } from "svelte";
5
+ import QContext from "../../classes/QContext.svelte";
6
+ import { shouldReduceMotion } from "../../utils/dom";
7
+ let {
8
+ value = $bindable(),
9
+ variant = "primary",
10
+ round = false,
11
+ children,
12
+ ...props
13
+ } = $props();
14
+ let qTabs;
15
+ let tabList;
16
+ const valueContext = new QContext("QTabsValue", value);
17
+ const requestContext = new QContext("QTabsRequest", null);
18
+ setContext("QTabsVariant", variant);
19
+ $effect(() => {
20
+ tabList = Array.from(qTabs.querySelectorAll(".q-tab"));
24
21
  });
25
- $:
26
- value = $qTabStore.value;
27
- setContext("qTabStore", qTabStore);
28
- $:
29
- if ($qTabStore.activeEl) {
30
- const {
31
- previousEl,
32
- activeEl,
33
- utils: { position, size },
34
- variant: storeVariant
35
- } = $qTabStore;
36
- const tabsSize = storeVariant === "vertical" ? qTabs.offsetHeight : qTabs.offsetWidth;
37
- const tabSize = size / tabsSize;
38
- if (!previousEl) {
39
- qTabs.style.setProperty(cssVars.indicatorSize, `${tabSize}`);
40
- qTabs.style.setProperty(cssVars.indicatorPosition, `${position}px`);
22
+ $effect(() => {
23
+ if (!value) {
24
+ return;
25
+ }
26
+ untrack(() => {
27
+ const newTab = getResquetingTab(value);
28
+ animateIndicator(newTab);
29
+ valueContext.update(value);
30
+ });
31
+ });
32
+ $effect(() => {
33
+ const request = requestContext.value;
34
+ if (!request) {
35
+ return;
36
+ }
37
+ const defaultPrevented = !dispatchEvent(
38
+ new Event("change", { bubbles: true, cancelable: true }),
39
+ );
40
+ const requester = getResquetingTab(request);
41
+ if (defaultPrevented || !requester) {
42
+ return;
43
+ }
44
+ untrack(() => {
45
+ value = request;
46
+ });
47
+ });
48
+ function getResquetingTab(requestingTabName) {
49
+ return (
50
+ tabList.find(
51
+ (tab) => tab.getAttribute("aria-label") === requestingTabName,
52
+ ) ?? null
53
+ );
54
+ }
55
+ function getActiveTab() {
56
+ return (
57
+ tabList.find((tab) => tab.getAttribute("aria-current") === "true") ?? null
58
+ );
59
+ }
60
+ function animateIndicator(newTab) {
61
+ const qIndicator = newTab?.querySelector(".q-tab__indicator");
62
+ if (!qIndicator) {
63
+ return;
64
+ }
65
+ const previousTab = getActiveTab();
66
+ qIndicator.getAnimations().forEach((animation) => animation.cancel());
67
+ const frames = getKeyframes(previousTab, newTab);
68
+ if (frames) {
69
+ qIndicator.animate(frames, {
70
+ duration: 600,
71
+ easing: "cubic-bezier(.18,.77,0,1)",
72
+ });
73
+ }
74
+ }
75
+ function getKeyframes(oldTab, newTab) {
76
+ const reduceMotion = shouldReduceMotion();
77
+ if (!oldTab) {
78
+ return reduceMotion ? [{ opacity: 1 }, { transform: "none" }] : null;
79
+ }
80
+ const previousEl =
81
+ variant === "primary" ? oldTab?.querySelector(".q-tab__content") : oldTab;
82
+ const activeEl =
83
+ variant === "primary" ? newTab?.querySelector(".q-tab__content") : newTab;
84
+ const pos = variant === "vertical" ? "top" : "left";
85
+ const extent = variant === "vertical" ? "height" : "width";
86
+ const axis = variant === "vertical" ? "Y" : "X";
87
+ const fromRect = previousEl?.getBoundingClientRect() ?? {};
88
+ const fromPos = fromRect[pos];
89
+ const fromExtent = fromRect[extent];
90
+ const toRect = activeEl?.getBoundingClientRect() ?? {};
91
+ const toPos = toRect[pos];
92
+ const toExtent = toRect[extent];
93
+ const scale = fromExtent / toExtent;
94
+ const keyframe = {};
95
+ if (
96
+ !reduceMotion &&
97
+ fromPos !== void 0 &&
98
+ toPos !== void 0 &&
99
+ !isNaN(scale)
100
+ ) {
101
+ const translateAnimation = (fromPos - toPos).toFixed(4);
102
+ const scaleAnimation = scale.toFixed(4);
103
+ keyframe.transform = `translate${axis}(${translateAnimation}px) scale${axis}(${scaleAnimation})`;
41
104
  } else {
42
- const comparePositions = movementDirection(previousEl, activeEl);
43
- let transitionSize;
44
- if (comparePositions === "next") {
45
- transitionSize = prepareTransitionSize(storeVariant, previousEl, activeEl);
46
- } else {
47
- transitionSize = prepareTransitionSize(storeVariant, activeEl, previousEl);
48
- qTabs.style.setProperty(cssVars.indicatorPosition, `${position}px`);
49
- }
50
- qTabs.style.setProperty(cssVars.indicatorSize, `${transitionSize / tabsSize}`);
51
- setTimeout(() => {
52
- qTabs.style.setProperty(cssVars.indicatorPosition, `${position}px`);
53
- qTabs.style.setProperty(cssVars.indicatorSize, `${tabSize}`);
54
- }, 250);
105
+ keyframe.opacity = 0;
55
106
  }
107
+ return [keyframe, { transform: "none" }];
56
108
  }
57
- function prepareTransitionSize(storeVariant, fromEl, toEl) {
58
- const fromElChild = storeVariant === "primary" ? fromEl.firstElementChild : { offsetLeft: 0, offsetWidth: 0 };
59
- const toElChild = storeVariant === "primary" ? toEl.firstElementChild : { offsetLeft: 0, offsetWidth: 0 };
60
- return storeVariant === "vertical" ? toEl.offsetTop + toEl.offsetHeight - fromEl.offsetTop : toEl.offsetLeft + toElChild.offsetLeft + (toElChild.offsetWidth || toEl.offsetWidth) - (fromEl.offsetLeft + fromElChild.offsetLeft);
61
- }
62
109
  </script>
63
110
 
64
111
  <nav
112
+ {...props}
65
113
  bind:this={qTabs}
66
- class="q-tabs q-tabs--{variant} {userClasses}"
114
+ class="q-tabs{props.class ? ` ${props.class}` : ''} q-tabs--{variant}"
67
115
  class:q-tabs--rounded={round}
68
- >
69
- <slot />
116
+ >
117
+ {@render children?.()}
70
118
  </nav>
@@ -1,33 +1,8 @@
1
- import { SvelteComponent } from "svelte";
2
- export type QTab = HTMLAnchorElement | HTMLButtonElement;
3
- export type QTabStore = {
4
- value?: string;
5
- variant: QTabsProps["variant"];
6
- previousEl: QTab | null;
7
- activeEl: QTab | null;
8
- utils: {
9
- position: number;
10
- size: number;
11
- };
1
+ export type QTabEl = HTMLAnchorElement | HTMLButtonElement;
2
+ export type QTabsElementsContext = {
3
+ previous: QTabEl | null;
4
+ active: QTabEl | null;
12
5
  };
13
6
  import type { QTabsProps } from "./props";
14
- declare const __propDef: {
15
- props: {
16
- value?: QTabsProps["value"];
17
- variant?: QTabsProps["variant"];
18
- round?: QTabsProps["round"];
19
- class?: string | null | undefined;
20
- };
21
- events: {
22
- [evt: string]: CustomEvent<any>;
23
- };
24
- slots: {
25
- default: {};
26
- };
27
- };
28
- type QTabsProps_ = typeof __propDef.props;
29
- export { QTabsProps_ as QTabsProps };
30
- export type QTabsEvents = typeof __propDef.events;
31
- export type QTabsSlots = typeof __propDef.slots;
32
- export default class QTabs extends SvelteComponent<QTabsProps, QTabsEvents, QTabsSlots> {
33
- }
7
+ declare const QTabs: import("svelte").Component<QTabsProps, {}, "value">;
8
+ export default QTabs;
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QTabsDocs: QComponentDocs;
2
+ export declare const QTabsDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QTabsDocsProps } from "./docs.props";
2
- export let QTabsDocs = {
2
+ export const QTabsDocs = {
3
3
  name: "QTabs",
4
4
  description: "Tabs allow creating navigational tabs, enabling users to switch between different views or functional aspects.",
5
5
  docs: {
@@ -1,5 +1,5 @@
1
1
  // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
- // @quaffHash 448513ccbdd5582cec72c379c9659fc0
2
+ // @quaffHash 34e1efd974e8b37c46e10e23636ef284
3
3
  export const QTabsDocsProps = [
4
4
  {
5
5
  name: "value",
@@ -45,9 +45,9 @@ export const QTabDocsProps = [
45
45
  },
46
46
  {
47
47
  name: "icon",
48
- type: "string",
48
+ type: "MaterialSymbol | Snippet",
49
49
  optional: true,
50
- clickableType: false,
50
+ clickableType: true,
51
51
  description: "",
52
52
  default: "",
53
53
  },
@@ -1,3 +1,5 @@
1
+ @use "$css/mixins";
2
+
1
3
  .q-tabs {
2
4
  position: relative;
3
5
  display: flex;
@@ -26,7 +28,7 @@
26
28
  border-radius: 0;
27
29
  gap: 0;
28
30
  overflow: hidden;
29
- @include padding("x", "md");
31
+ @include mixins.padding("x-md");
30
32
 
31
33
  & .q-tab__icon {
32
34
  margin-right: 0.25rem;
@@ -65,7 +67,7 @@
65
67
  border-right: solid 0.0625rem var(--outline-4);
66
68
 
67
69
  & > .q-tab {
68
- @include padding("x", "md");
70
+ @include mixins.padding("x-md");
69
71
  }
70
72
 
71
73
  &::after {
@@ -1,13 +1,14 @@
1
+ import type { MaterialSymbol } from "material-symbols";
2
+ import type { Snippet } from "svelte";
1
3
  import type { HTMLAttributes } from "svelte/elements";
2
- import type { NativeProps } from "../../utils";
3
4
  export type QTabsVariants = "primary" | "secondary" | "vertical";
4
- export interface QTabsProps extends NativeProps, HTMLAttributes<HTMLElement> {
5
+ export interface QTabsProps extends HTMLAttributes<HTMLElement> {
5
6
  value?: string;
6
7
  variant?: QTabsVariants;
7
8
  round?: boolean;
8
9
  }
9
- export interface QTabProps extends NativeProps, HTMLAttributes<HTMLElement> {
10
+ export interface QTabProps extends HTMLAttributes<HTMLElement> {
10
11
  name: string;
11
12
  to?: string;
12
- icon?: string;
13
+ icon?: MaterialSymbol | Snippet;
13
14
  }
@@ -1 +1 @@
1
- import "$lib/utils";
1
+ export {};
@@ -1,19 +1,22 @@
1
- <script>export let inset = false, border = false, elevate = false, height = "64px", userClasses = "";
2
- export { userClasses as class };
3
- $:
4
- dynamicHeight = !userClasses?.includes("q-header") ? height : void 0;
1
+ <script lang="ts">
2
+ let {
3
+ inset = false,
4
+ border = false,
5
+ elevate = false,
6
+ height = 64,
7
+ children,
8
+ ...props
9
+ } = $props();
5
10
  </script>
6
11
 
7
- <header
8
- class="q-toolbar {userClasses}"
12
+ <nav
13
+ {...props}
14
+ class="q-toolbar{props.class ? ` ${props.class}` : ''}"
9
15
  class:q-toolbar--inset={inset}
10
16
  class:q-toolbar--elevated={elevate}
11
17
  class:q-toolbar--bordered={border}
12
18
  role="toolbar"
13
- style:height={dynamicHeight}
14
- {...$$restProps}
19
+ style:--toolbar-height="{height}px"
15
20
  >
16
- <nav>
17
- <slot />
18
- </nav>
19
- </header>
21
+ {@render children?.()}
22
+ </nav>
@@ -1,24 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QToolbarProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- inset?: QToolbarProps["inset"];
7
- border?: QToolbarProps["border"];
8
- elevate?: QToolbarProps["elevate"];
9
- height?: QToolbarProps["height"];
10
- class?: string | null | undefined;
11
- };
12
- events: {
13
- [evt: string]: CustomEvent<any>;
14
- };
15
- slots: {
16
- default: {};
17
- };
18
- };
19
- type QToolbarProps_ = typeof __propDef.props;
20
- export { QToolbarProps_ as QToolbarProps };
21
- export type QToolbarEvents = typeof __propDef.events;
22
- export type QToolbarSlots = typeof __propDef.slots;
23
- export default class QToolbar extends SvelteComponent<QToolbarProps, QToolbarEvents, QToolbarSlots> {
24
- }
2
+ declare const QToolbar: import("svelte").Component<QToolbarProps, {}, "">;
3
+ export default QToolbar;
@@ -1,10 +1,11 @@
1
- <script>import { createClasses } from "../../utils";
2
- export let shrink = false, userClasses = void 0, userStyles = void 0;
3
- export { userClasses as class, userStyles as style };
4
- $:
5
- classes = createClasses([shrink && "shrink", userClasses], { component: "q-toolbar-title" });
1
+ <script lang="ts">
2
+ let { shrink = false, children, ...props } = $props();
6
3
  </script>
7
4
 
8
- <div class={classes} {...$$restProps} style={userStyles}>
9
- <slot />
5
+ <div
6
+ {...props}
7
+ class="q-toolbar-title{props.class ? ` ${props.class}` : ''}"
8
+ class:q-toolbar-title--shrink={shrink}
9
+ >
10
+ {@render children?.()}
10
11
  </div>
@@ -1,22 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QToolbarTitleProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- shrink?: QToolbarTitleProps["shrink"];
7
- class?: string | null | undefined;
8
- style?: string | null | undefined;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {
14
- default: {};
15
- };
16
- };
17
- type QToolbarTitleProps_ = typeof __propDef.props;
18
- export { QToolbarTitleProps_ as QToolbarTitleProps };
19
- export type QToolbarTitleEvents = typeof __propDef.events;
20
- export type QToolbarTitleSlots = typeof __propDef.slots;
21
- export default class QToolbarTitle extends SvelteComponent<QToolbarTitleProps, QToolbarTitleEvents, QToolbarTitleSlots> {
22
- }
2
+ declare const QToolbarTitle: import("svelte").Component<QToolbarTitleProps, {}, "">;
3
+ export default QToolbarTitle;
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QToolbarDocs: QComponentDocs;
2
+ export declare const QToolbarDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QToolbarDocsProps } from "./docs.props";
2
- export let QToolbarDocs = {
2
+ export const QToolbarDocs = {
3
3
  name: "QToolbar",
4
4
  description: "The Toolbar component is used to hold common actions and controls, often located at the top of an application or view.",
5
5
  docs: {
@@ -1,5 +1,5 @@
1
1
  // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
- // @quaffHash ff59611542258810d9f769e875972d2a
2
+ // @quaffHash beedaeb7026ad26756370f4342f7a11e
3
3
  export const QToolbarDocsProps = [
4
4
  {
5
5
  name: "inset",
@@ -27,11 +27,11 @@ export const QToolbarDocsProps = [
27
27
  },
28
28
  {
29
29
  name: "height",
30
- type: "CssValue | number",
30
+ type: "number",
31
31
  optional: true,
32
- clickableType: true,
32
+ clickableType: false,
33
33
  description: "",
34
- default: "64px",
34
+ default: "64",
35
35
  },
36
36
  ];
37
37
  export const QToolbarTitleDocsProps = [
@@ -1,27 +1,25 @@
1
+ @use "$css/mixins";
2
+ @use "$css/variables";
3
+
1
4
  .q-toolbar {
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: flex-start;
8
+ white-space: nowrap;
9
+ gap: 1rem;
10
+
2
11
  width: 100%;
12
+ height: var(--toolbar-height);
3
13
  padding: 0 1rem;
4
- transition: all var(--speed3);
14
+ transition: all variables.$speed3;
5
15
  background-color: var(--surface);
6
16
 
7
- nav {
8
- display: flex;
9
- align-items: center;
10
- justify-content: flex-start;
11
- white-space: nowrap;
12
- gap: 1rem;
13
-
14
- > * {
15
- margin: 0;
16
- }
17
- }
18
-
19
17
  &--inset {
20
18
  padding-left: 58px;
21
19
  }
22
20
 
23
21
  &--elevated {
24
- @include elevate(1, "bottom");
22
+ @include mixins.elevate(1, "bottom");
25
23
  }
26
24
 
27
25
  &--bordered {
@@ -1,6 +1,5 @@
1
- import type { NativeProps, CssValue } from "../../utils";
2
1
  import type { HTMLAttributes } from "svelte/elements";
3
- export interface QToolbarProps extends NativeProps, HTMLAttributes<HTMLElement> {
2
+ export interface QToolbarProps extends HTMLAttributes<HTMLElement> {
4
3
  /**
5
4
  * @default false
6
5
  */
@@ -14,11 +13,11 @@ export interface QToolbarProps extends NativeProps, HTMLAttributes<HTMLElement>
14
13
  */
15
14
  elevate?: boolean;
16
15
  /**
17
- * @default 64px
16
+ * @default 64
18
17
  */
19
- height?: CssValue | number;
18
+ height?: number;
20
19
  }
21
- export interface QToolbarTitleProps extends NativeProps, HTMLAttributes<HTMLDivElement> {
20
+ export interface QToolbarTitleProps extends HTMLAttributes<HTMLDivElement> {
22
21
  /**
23
22
  * @default false
24
23
  */
@@ -1,15 +1,11 @@
1
- <script>export let value = void 0, position = "bottom", userClasses = "";
2
- export { userClasses as class };
1
+ <script lang="ts">
2
+ let { value, position = "bottom", children, ...props } = $props();
3
3
  </script>
4
4
 
5
5
  <div
6
- class="q-tooltip {userClasses}"
7
- class:q-tooltip--top={position === "top"}
8
- class:q-tooltip--right={position === "right"}
9
- class:q-tooltip--bottom={position === "bottom"}
10
- class:q-tooltip--left={position === "left"}
6
+ {...props}
7
+ class="q-tooltip{props.class ? ` ${props.class}` : ''} q-tooltip--{position}"
11
8
  class:q-tooltip--active={value}
12
- {...$$restProps}
13
9
  >
14
- <slot />
10
+ {@render children?.()}
15
11
  </div>
@@ -1,22 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QTooltipProps } from "./props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- value?: QTooltipProps["value"];
7
- position?: QTooltipProps["position"];
8
- class?: string | null | undefined;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {
14
- default: {};
15
- };
16
- };
17
- type QTooltipProps_ = typeof __propDef.props;
18
- export { QTooltipProps_ as QTooltipProps };
19
- export type QTooltipEvents = typeof __propDef.events;
20
- export type QTooltipSlots = typeof __propDef.slots;
21
- export default class QTooltip extends SvelteComponent<QTooltipProps, QTooltipEvents, QTooltipSlots> {
22
- }
2
+ declare const QTooltip: import("svelte").Component<QTooltipProps, {}, "">;
3
+ export default QTooltip;
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QTooltipDocs: QComponentDocs;
2
+ export declare const QTooltipDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QTooltipDocsProps } from "./docs.props";
2
- export let QTooltipDocs = {
2
+ export const QTooltipDocs = {
3
3
  name: "QTooltip",
4
4
  description: "The Tooltip component displays informative text on hover or focus, providing additional context.",
5
5
  docs: {
@@ -1,5 +1,5 @@
1
1
  // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
- // @quaffHash 7dbd449feacad30b81776c0962accee1
2
+ // @quaffHash 79575d1e83ec0e01be08573c5d70998f
3
3
  export const QTooltipDocsProps = [
4
4
  {
5
5
  name: "value",
@@ -1,3 +1,5 @@
1
+ @use "$css/variables";
2
+
1
3
  .q-tooltip {
2
4
  --space: -0.5rem;
3
5
  visibility: hidden;
@@ -22,7 +24,7 @@
22
24
  white-space: nowrap;
23
25
  font-weight: 500;
24
26
  opacity: 0;
25
- transition: var(--speed2) all;
27
+ transition: variables.$speed2 all;
26
28
  z-index: 9999;
27
29
 
28
30
  &--top {
@@ -1,5 +1,5 @@
1
- import type { HTMLAttributes } from "svelte/elements";
2
1
  import type { NativeProps } from "../../utils";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
3
  export interface QTooltipProps extends NativeProps, HTMLAttributes<HTMLDivElement> {
4
4
  value?: boolean;
5
5
  position?: "top" | "right" | "bottom" | "left";
@@ -1,3 +1,3 @@
1
- export * from "./use-align";
2
- export * from "./use-router-link";
3
- export * from "./use-size";
1
+ export * from "./useAlign";
2
+ export * from "./useRouterLink";
3
+ export * from "./useSizeLegacy";
@@ -1,3 +1,3 @@
1
- export * from "./use-align";
2
- export * from "./use-router-link";
3
- export * from "./use-size";
1
+ export * from "./useAlign";
2
+ export * from "./useRouterLink";
3
+ export * from "./useSizeLegacy";
@@ -0,0 +1,10 @@
1
+ export declare const sizes: Q.Size[];
2
+ export declare const CssUnits: Q.CssUnit[];
3
+ /**
4
+ * Checks wether the input is a size like "sm" or "lg"
5
+ */
6
+ export declare function isQuaffSize(size: number | string): size is Q.Size;
7
+ export declare function useSize(size: number | string, component?: `q-${string}`): {
8
+ class: string;
9
+ style: string | undefined;
10
+ };