@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,13 +1,37 @@
1
- <script>let focus = false;
2
- $:
3
- active = value || focus;
4
- let slotPrependWidth = 0;
5
- export let dense = false, disable = false, error = false, errorMessage = void 0, filled = false, hint = void 0, label = void 0, outlined = false, rounded = false, value, userClasses = "";
6
- export { userClasses as class };
1
+ <script lang="ts">
2
+ let focus = $state(false);
3
+ let snippetPrependWidth = $state(0);
4
+ let {
5
+ dense = false,
6
+ disable = false,
7
+ error = false,
8
+ errorMessage = void 0,
9
+ filled = false,
10
+ hint = void 0,
11
+ label = void 0,
12
+ outlined = false,
13
+ rounded = false,
14
+ before = void 0,
15
+ prepend = void 0,
16
+ append = void 0,
17
+ after = void 0,
18
+ value = $bindable(),
19
+ ...props
20
+ } = $props();
21
+ const active = $derived(value || focus);
22
+ function onFocus(e) {
23
+ focus = true;
24
+ props.onfocus?.(e);
25
+ }
26
+ function onBlur(e) {
27
+ focus = false;
28
+ props.onblur?.(e);
29
+ }
7
30
  </script>
8
31
 
9
32
  <div
10
- class="q-input q-field {userClasses}"
33
+ {...props}
34
+ class="q-field{props.class ? ` ${props.class}` : ''} q-input"
11
35
  class:q-field--default={!outlined && !rounded && !filled}
12
36
  class:q-field--outlined={outlined}
13
37
  class:q-field--rounded={rounded}
@@ -17,40 +41,43 @@ export { userClasses as class };
17
41
  class:q-field--active={active}
18
42
  class:q-field--focus={focus}
19
43
  class:q-field--label={label}
20
- class:q-field--slot-append={$$slots.append}
21
- class:q-field--slot-prepend={$$slots.prepend}
44
+ class:q-field--snippet-append={!!append}
45
+ class:q-field--snippet-prepend={!!prepend}
22
46
  class:q-field--disable={disable}
23
47
  class:q-field--error={error}
24
- style:--slot-prepend-width="{slotPrependWidth}px"
25
- {...$$restProps}
48
+ style:--snippet-prepend-width="{snippetPrependWidth}px"
49
+ aria-disabled={disable || undefined}
26
50
  >
27
- {#if $$slots.before}
28
- <div class="q-field__slot-before">
29
- <slot name="before" />
51
+ {#if before}
52
+ <div class="q-field__snippet-before">
53
+ {@render before()}
30
54
  </div>
31
55
  {/if}
32
56
 
33
57
  <div class="q-field__inner">
34
58
  <label class="q-field__wrapper">
35
- {#if $$slots.prepend}
36
- <div class="q-field__slot-prepend" bind:clientWidth={slotPrependWidth}>
37
- <slot name="prepend" />
59
+ {#if prepend}
60
+ <div
61
+ class="q-field__snippet-prepend"
62
+ bind:clientWidth={snippetPrependWidth}
63
+ >
64
+ {@render prepend()}
38
65
  </div>
39
66
  {/if}
40
67
  <input
41
68
  class="q-field__input"
42
69
  bind:value
43
70
  placeholder=""
44
- on:focus={() => (focus = true)}
45
- on:blur={() => (focus = false)}
71
+ onfocus={onFocus}
72
+ onblur={onBlur}
46
73
  disabled={disable}
47
74
  tabindex={disable === true ? -1 : 0}
48
75
  />
49
76
  <span class="q-field__label">{label}</span>
50
77
 
51
- {#if $$slots.append}
52
- <div class="q-field__slot-append">
53
- <slot name="append" />
78
+ {#if append}
79
+ <div class="q-field__snippet-append">
80
+ {@render append()}
54
81
  </div>
55
82
  {/if}
56
83
  </label>
@@ -62,9 +89,9 @@ export { userClasses as class };
62
89
  {/if}
63
90
  </div>
64
91
 
65
- {#if $$slots.after}
66
- <div class="q-field__slot-after">
67
- <slot name="after" />
92
+ {#if after}
93
+ <div class="q-field__snippet-after">
94
+ {@render after()}
68
95
  </div>
69
96
  {/if}
70
97
  </div>
@@ -1,33 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QInputProps } from "../input/props";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- dense?: QInputProps["dense"];
7
- disable?: QInputProps["disable"];
8
- error?: QInputProps["error"];
9
- errorMessage?: QInputProps["errorMessage"];
10
- filled?: QInputProps["filled"];
11
- hint?: QInputProps["hint"];
12
- label?: QInputProps["label"];
13
- outlined?: QInputProps["outlined"];
14
- rounded?: QInputProps["rounded"];
15
- value: QInputProps["value"];
16
- class?: string | null | undefined;
17
- };
18
- events: {
19
- [evt: string]: CustomEvent<any>;
20
- };
21
- slots: {
22
- before: {};
23
- prepend: {};
24
- append: {};
25
- after: {};
26
- };
27
- };
28
- type QInputProps_ = typeof __propDef.props;
29
- export { QInputProps_ as QInputProps };
30
- export type QInputEvents = typeof __propDef.events;
31
- export type QInputSlots = typeof __propDef.slots;
32
- export default class QInput extends SvelteComponent<QInputProps, QInputEvents, QInputSlots> {
33
- }
2
+ declare const QInput: import("svelte").Component<QInputProps, {}, "value">;
3
+ export default QInput;
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QInputDocs: QComponentDocs;
2
+ export declare const QInputDocs: QComponentDocs;
@@ -1,4 +1,4 @@
1
- export let QInputDocs = {
1
+ export const QInputDocs = {
2
2
  name: "QInput",
3
3
  description: "QInput is a form component that allows users to input text. It supports different visual styles such as filled, outlined, and rounded, and it can also display hint text and custom error messages.",
4
4
  docs: {
@@ -1,5 +1,5 @@
1
1
  // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
- // @quaffHash 901937b41d79099a96a3713827911b68
2
+ // @quaffHash ebdc5d6efd286c109289cb91b6a1be02
3
3
  export const QInputDocsProps = [
4
4
  {
5
5
  name: "dense",
@@ -81,4 +81,36 @@ export const QInputDocsProps = [
81
81
  description: "",
82
82
  default: "",
83
83
  },
84
+ {
85
+ name: "before",
86
+ type: "Snippet",
87
+ optional: true,
88
+ clickableType: true,
89
+ description: "",
90
+ default: "",
91
+ },
92
+ {
93
+ name: "prepend",
94
+ type: "Snippet",
95
+ optional: true,
96
+ clickableType: true,
97
+ description: "",
98
+ default: "",
99
+ },
100
+ {
101
+ name: "append",
102
+ type: "Snippet",
103
+ optional: true,
104
+ clickableType: true,
105
+ description: "",
106
+ default: "",
107
+ },
108
+ {
109
+ name: "after",
110
+ type: "Snippet",
111
+ optional: true,
112
+ clickableType: true,
113
+ description: "",
114
+ default: "",
115
+ },
84
116
  ];
@@ -1,4 +1,5 @@
1
1
  import type { NativeProps } from "../../utils";
2
+ import type { Snippet } from "svelte";
2
3
  import type { HTMLAttributes } from "svelte/elements";
3
4
  export interface QInputProps extends NativeProps, HTMLAttributes<HTMLDivElement> {
4
5
  dense?: boolean;
@@ -11,16 +12,8 @@ export interface QInputProps extends NativeProps, HTMLAttributes<HTMLDivElement>
11
12
  outlined?: boolean;
12
13
  rounded?: boolean;
13
14
  value: string;
15
+ before?: Snippet;
16
+ prepend?: Snippet;
17
+ append?: Snippet;
18
+ after?: Snippet;
14
19
  }
15
- export declare const QInputPropsDefaults: {
16
- dense: boolean;
17
- disable: boolean;
18
- error: boolean;
19
- errorMessage: undefined;
20
- filled: boolean;
21
- hint: undefined;
22
- label: undefined;
23
- outlined: boolean;
24
- rounded: boolean;
25
- value: string;
26
- };
@@ -1,12 +1 @@
1
- export const QInputPropsDefaults = {
2
- dense: false,
3
- disable: false,
4
- error: false,
5
- errorMessage: undefined,
6
- filled: false,
7
- hint: undefined,
8
- label: undefined,
9
- outlined: false,
10
- rounded: false,
11
- value: "",
12
- };
1
+ export {};
@@ -0,0 +1,178 @@
1
+ @use "$css/mixins";
2
+ @use "$css/variables";
3
+
4
+ .q-layout {
5
+ z-index: 0;
6
+ position: relative;
7
+
8
+ width: 100%;
9
+ height: 100%;
10
+ min-height: 100%;
11
+ min-width: 100%;
12
+
13
+ overflow: hidden;
14
+
15
+ border-radius: inherit;
16
+ }
17
+
18
+ .q-layout > .q-railbar {
19
+ position: absolute;
20
+
21
+ transition:
22
+ top variables.$speed3,
23
+ bottom variables.$speed3;
24
+
25
+ &.q-railbar--offset-top {
26
+ // Put the railbar under the header to avoid hiding its box-shadow
27
+ z-index: 3;
28
+ }
29
+
30
+ @each $pos in ("top", "bottom") {
31
+ &.q-railbar--offset-#{$pos} {
32
+ #{$pos}: var(--offset-#{$pos}, 0);
33
+ }
34
+ }
35
+
36
+ & > .q-list {
37
+ @include mixins.gap("sm");
38
+
39
+ & > .q-item {
40
+ flex-direction: column;
41
+ align-items: center;
42
+ justify-content: center;
43
+
44
+ @include mixins.padding("x-sm");
45
+ @include mixins.gap("xs");
46
+
47
+ border-radius: 2rem;
48
+
49
+ &.q-link::after {
50
+ all: unset;
51
+ }
52
+
53
+ & > .q-item__section {
54
+ justify-content: start;
55
+ }
56
+
57
+ & > i {
58
+ @include mixins.padding("a-xs");
59
+ transition: padding variables.$speed1 linear;
60
+ }
61
+
62
+ &:is(:hover, :focus, .q-item--active) > i {
63
+ @include mixins.padding("x-lg");
64
+
65
+ background-color: var(--secondary-container);
66
+ color: var(--on-secondary-container);
67
+
68
+ font-variation-settings:
69
+ "FILL" 1,
70
+ "wght" 400,
71
+ "opsz" 24;
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ .q-layout > .q-drawer {
78
+ border-radius: 0;
79
+
80
+ transition:
81
+ top variables.$speed3,
82
+ bottom variables.$speed3,
83
+ transform variables.$speed3;
84
+
85
+ &.q-drawer--offset-top {
86
+ // Put the railbar under the header to avoid hiding its box-shadow
87
+ z-index: 2;
88
+ }
89
+
90
+ @function shouldHaveRadius($pos) {
91
+ @if not list-index(("top", "bottom"), $pos) {
92
+ @error 'The position "#{$pos}" is incorrect, should be "top" or "bottom"';
93
+ }
94
+
95
+ @return unquote(
96
+ ":is(.q-drawer--overlay,.q-drawer--offset-#{$pos},:not(:has(~ .q-header)),:has(~ .q-header--collapsed))"
97
+ );
98
+ }
99
+
100
+ $x-pos: "left", "right";
101
+ $y-pos: "top", "bottom";
102
+
103
+ @each $side in $x-pos {
104
+ &.q-drawer--#{$side} {
105
+ #{$side}: var(--#{$side}-railbar-width, 0);
106
+ }
107
+ }
108
+
109
+ @each $pos in $y-pos {
110
+ @each $side in $x-pos {
111
+ &:not(.q-drawer--#{$side})#{shouldHaveRadius($pos)} {
112
+ border-#{$pos}-#{$side}-radius: 1rem;
113
+ }
114
+ }
115
+
116
+ &.q-drawer--offset-#{$pos} {
117
+ #{$pos}: var(--offset-#{$pos}, 0);
118
+ }
119
+ }
120
+
121
+ & .q-list > .q-item.q-link {
122
+ border-radius: 2rem;
123
+ overflow: hidden;
124
+
125
+ &::before {
126
+ content: "";
127
+
128
+ z-index: -1;
129
+ position: absolute;
130
+ bottom: 0;
131
+ left: 0;
132
+
133
+ width: 100%;
134
+ height: 100%;
135
+
136
+ background-color: var(--secondary-container);
137
+ opacity: 0;
138
+
139
+ border-radius: inherit;
140
+
141
+ transform: scaleX(0.32);
142
+
143
+ transition:
144
+ transform variables.$speed2,
145
+ opacity variables.$speed2,
146
+ top variables.$speed3,
147
+ bottom variables.$speed3,
148
+ left variables.$speed3;
149
+ }
150
+
151
+ &.q-item--active {
152
+ color: var(--on-secondary-container);
153
+
154
+ &::before {
155
+ opacity: 1;
156
+ transform: scaleX(1);
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ // Offset for drawer with railbar
163
+ @each $side in ("left", "right") {
164
+ .q-railbar.q-railbar--#{$side}:not([style="display: none"]) ~ .q-drawer.q-drawer--#{$side} {
165
+ #{$side}: var(--#{$side}-railbar-width);
166
+ }
167
+
168
+ // Reset railbar width
169
+ .q-railbar.q-railbar--#{$side}[style="display: none"] ~ .q-drawer.q-drawer--#{$side} {
170
+ --#{$side}-railbar-width: 0px;
171
+ }
172
+ }
173
+
174
+ .q-layout > .q-layout__content {
175
+ height: calc(100% - var(--offset-top) - var(--offset-bottom));
176
+ overflow: auto;
177
+ transition: margin variables.$speed3;
178
+ }
@@ -1,88 +1,108 @@
1
- <script context="module">import { createStyles, createClasses } from "../../utils";
2
- import { setContext } from "svelte";
3
- import { writable } from "svelte/store";
4
- import ContextReseter from "../private/ContextReseter.svelte";
1
+ <script context="module" lang="ts">
2
+ import { setContext } from "svelte";
3
+ import QContext from "../../classes/QContext.svelte";
4
+ import ContextReseter from "../private/ContextReseter.svelte";
5
5
  </script>
6
6
 
7
- <script>export let view = "hhh lpr fff", headerHeight = "64px", footerHeight = "80px", leftDrawerWidth = "300px", rightDrawerWidth = "300px", leftRailbarWidth = "88px", rightRailbarWidth = "88px", userClasses = void 0, userStyles = void 0;
8
- export { userClasses as class, userStyles as style };
9
- $:
10
- style = createStyles(
11
- {
12
- "--header-height": isNaN(Number(headerHeight)) ? headerHeight : `${headerHeight}px`,
13
- "--footer-height": isNaN(Number(footerHeight)) ? footerHeight : `${footerHeight}px`,
14
- "--left-railbar-width": isNaN(Number(leftRailbarWidth)) ? leftRailbarWidth : `${leftRailbarWidth}px`,
15
- "--right-railbar-width": isNaN(Number(rightRailbarWidth)) ? rightRailbarWidth : `${rightRailbarWidth}px`,
16
- "--left-drawer-width": isNaN(Number(leftDrawerWidth)) ? leftDrawerWidth : `${leftDrawerWidth}px`,
17
- "--right-drawer-width": isNaN(Number(rightDrawerWidth)) ? rightDrawerWidth : `${rightDrawerWidth}px`
18
- },
19
- userStyles
20
- );
21
- $:
22
- classes = createClasses(["q-layout", userClasses]);
23
- function prepareCtx(viewProp) {
24
- const [top, middle, bottom] = viewProp.split(" ");
25
- const header = $$slots.header ? {
26
- display: true,
27
- fixed: top.includes("H")
28
- } : void 0;
29
- const footer = $$slots.footer ? {
30
- display: true,
31
- fixed: bottom.includes("F")
32
- } : void 0;
33
- const drawerLeft = {
34
- offset: {
35
- top: $$slots.header && top[0].toLowerCase() === "h",
36
- bottom: $$slots.footer && bottom[0].toLowerCase() === "f"
37
- },
38
- fixed: [top[0], middle[0], bottom[0]].includes("L"),
39
- railbar: $$slots.railbarLeft === true,
40
- drawer: $$slots.drawerLeft === true,
41
- overlay: false
42
- };
43
- const drawerRight = {
44
- offset: {
45
- top: $$slots.header && top[2].toLowerCase() === "h",
46
- bottom: $$slots.footer && bottom[2].toLowerCase() === "f"
47
- },
48
- fixed: [top[2], middle[2], bottom[2]].includes("R"),
49
- railbar: $$slots.railbarRight === true,
50
- drawer: $$slots.drawerRight === true,
51
- overlay: false
52
- };
53
- return {
7
+ <script lang="ts">
8
+ let {
9
+ view = "hhh lpr fff",
10
+ content,
11
+ railbarLeft,
12
+ railbarRight,
13
+ drawerLeft,
14
+ drawerRight,
54
15
  header,
55
16
  footer,
56
- drawerLeft,
57
- drawerRight
58
- };
59
- }
60
- let ctx = writable(prepareCtx(view));
61
- $:
62
- $ctx = prepareCtx(view);
63
- setContext("layout", ctx);
17
+ onscroll,
18
+ onresize,
19
+ children,
20
+ ...props
21
+ } = $props();
22
+ setContext("view", {
23
+ get value() {
24
+ return view;
25
+ },
26
+ });
27
+ const headerCtx = new QContext("QHeader", {
28
+ height: 0,
29
+ collapsed: false,
30
+ });
31
+ const footerCtx = new QContext("QFooter", {
32
+ height: 0,
33
+ collapsed: false,
34
+ });
35
+ const leftRailbarCtx = new QContext("QRailbar-left", {
36
+ width: 0,
37
+ takesSpace: false,
38
+ });
39
+ const rightRailbarCtx = new QContext("QRailbar-right", {
40
+ width: 0,
41
+ takesSpace: false,
42
+ });
43
+ const leftDrawerCtx = new QContext("QDrawer-left", {
44
+ width: 0,
45
+ takesSpace: false,
46
+ });
47
+ const rightDrawerCtx = new QContext("QDrawer-right", {
48
+ width: 360,
49
+ takesSpace: false,
50
+ });
51
+ const topOffset = $derived(
52
+ !header || headerCtx.value.collapsed ? 0 : headerCtx.value.height,
53
+ );
54
+ const bottomOffset = $derived(
55
+ !footer || footerCtx.value.collapsed ? 0 : footerCtx.value.height,
56
+ );
57
+ const leftOffset = $derived(
58
+ handleDrawerCtx(leftRailbarCtx) + handleDrawerCtx(leftDrawerCtx),
59
+ );
60
+ const rightOffset = $derived(
61
+ handleDrawerCtx(rightRailbarCtx) + handleDrawerCtx(rightDrawerCtx),
62
+ );
63
+ const contentMargin = $derived(
64
+ `${header ? topOffset : 0}px ${rightOffset}px ${footer ? bottomOffset : 0}px ${leftOffset}px`,
65
+ );
66
+ function handleDrawerCtx(ctx) {
67
+ return ctx.value.takesSpace ? ctx.value.width : 0;
68
+ }
64
69
  </script>
65
70
 
66
- <div class={classes} {style} {...$$restProps} on:scroll on:resize>
67
- {#if $$slots.railbarLeft}
68
- <slot name="railbarLeft" />
69
- {/if}
70
- {#if $$slots.railbarRight}
71
- <slot name="railbarRight" />
72
- {/if}
73
- {#if $$slots.drawerLeft}
74
- <slot name="drawerLeft" />
75
- {/if}
76
- {#if $$slots.drawerRight}
77
- <slot name="drawerRight" />
78
- {/if}
79
- {#if $$slots.header}
80
- <slot name="header" />
81
- {/if}
82
- {#if $$slots.footer}
83
- <slot name="footer" />
84
- {/if}
85
- <ContextReseter keys="layout">
86
- <slot name="content" />
71
+ <div
72
+ {...props}
73
+ class="q-layout{props.class ? ` ${props.class}` : ''}"
74
+ style:--left-railbar-width={`${railbarLeft ? leftRailbarCtx.value.width : 0}px`}
75
+ style:--right-railbar-width={`${railbarRight ? rightRailbarCtx.value.width : 0}px`}
76
+ style:--offset-top={`${topOffset}px`}
77
+ style:--offset-right={`${rightOffset}px`}
78
+ style:--offset-bottom={`${bottomOffset}px`}
79
+ style:--offset-left={`${leftOffset}px`}
80
+ {onscroll}
81
+ {onresize}
82
+ >
83
+ {@render railbarLeft?.()}
84
+ {@render railbarRight?.()}
85
+ {@render drawerLeft?.()}
86
+ {@render drawerRight?.()}
87
+ {@render header?.()}
88
+ {@render footer?.()}
89
+
90
+ <ContextReseter
91
+ keys={[
92
+ "QHeader",
93
+ "QFooter",
94
+ "QRailbar-left",
95
+ "QRailbar-right",
96
+ "QDrawer-left",
97
+ "QDrawer-right",
98
+ ]}
99
+ >
100
+ <div class="q-layout__content" style:margin={contentMargin}>
101
+ {#if content}
102
+ {@render content()}
103
+ {:else}
104
+ {@render children?.()}
105
+ {/if}
106
+ </div>
87
107
  </ContextReseter>
88
108
  </div>
@@ -1,7 +1,5 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QLayoutProps } from "./props";
3
- import type { Readable } from "svelte/store";
4
- export interface DrawerContext {
2
+ export interface DrawerContextLegacy {
5
3
  offset: {
6
4
  top: boolean;
7
5
  bottom: boolean;
@@ -12,47 +10,22 @@ export interface DrawerContext {
12
10
  overlay: boolean;
13
11
  }
14
12
  export interface AppbarContext {
13
+ height: number;
14
+ collapsed: boolean;
15
+ }
16
+ export interface DrawerContext {
17
+ width: number;
18
+ takesSpace: boolean;
19
+ }
20
+ export interface AppbarContextLegacy {
15
21
  display: boolean;
16
22
  fixed: boolean;
17
23
  }
18
- export type LayoutContext = Readable<{
19
- header?: AppbarContext;
20
- footer?: AppbarContext;
21
- drawerLeft: DrawerContext;
22
- drawerRight: DrawerContext;
23
- }>;
24
- declare const __propDef: {
25
- props: {
26
- [x: string]: any;
27
- view?: QLayoutProps["view"];
28
- headerHeight?: QLayoutProps["headerHeight"];
29
- footerHeight?: QLayoutProps["footerHeight"];
30
- leftDrawerWidth?: QLayoutProps["leftDrawerWidth"];
31
- rightDrawerWidth?: QLayoutProps["rightDrawerWidth"];
32
- leftRailbarWidth?: QLayoutProps["leftRailbarWidth"];
33
- rightRailbarWidth?: QLayoutProps["rightDrawerWidth"];
34
- class?: string | null | undefined;
35
- style?: string | null | undefined;
36
- };
37
- events: {
38
- scroll: Event;
39
- resize: UIEvent;
40
- } & {
41
- [evt: string]: CustomEvent<any>;
42
- };
43
- slots: {
44
- railbarLeft: {};
45
- railbarRight: {};
46
- drawerLeft: {};
47
- drawerRight: {};
48
- header: {};
49
- footer: {};
50
- content: {};
51
- };
24
+ export type LayoutContext = {
25
+ header?: AppbarContextLegacy;
26
+ footer?: AppbarContextLegacy;
27
+ drawerLeft: DrawerContextLegacy;
28
+ drawerRight: DrawerContextLegacy;
52
29
  };
53
- type QLayoutProps_ = typeof __propDef.props;
54
- export { QLayoutProps_ as QLayoutProps };
55
- export type QLayoutEvents = typeof __propDef.events;
56
- export type QLayoutSlots = typeof __propDef.slots;
57
- export default class QLayout extends SvelteComponent<QLayoutProps, QLayoutEvents, QLayoutSlots> {
58
- }
30
+ declare const QLayout: import("svelte").Component<QLayoutProps, {}, "">;
31
+ export default QLayout;
@@ -1,2 +1,2 @@
1
1
  import type { QComponentDocs } from "../../utils";
2
- export declare let QLayoutDocs: QComponentDocs;
2
+ export declare const QLayoutDocs: QComponentDocs;