@quaffui/quaff 0.1.0-prealpha16 → 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 (269) 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 -60
  12. package/dist/components/avatar/QAvatar.svelte.d.ts +2 -25
  13. package/dist/components/avatar/docs.props.js +21 -5
  14. package/dist/components/avatar/index.scss +5 -3
  15. package/dist/components/avatar/props.d.ts +24 -7
  16. package/dist/components/breadcrumbs/QBreadcrumbs.scss +10 -0
  17. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +24 -9
  18. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +2 -22
  19. package/dist/components/breadcrumbs/QBreadcrumbsEl.scss +10 -0
  20. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +64 -38
  21. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +2 -25
  22. package/dist/components/breadcrumbs/docs.props.js +27 -27
  23. package/dist/components/breadcrumbs/props.d.ts +25 -24
  24. package/dist/components/button/QBtn.scss +133 -0
  25. package/dist/components/button/QBtn.svelte +88 -48
  26. package/dist/components/button/QBtn.svelte.d.ts +2 -33
  27. package/dist/components/button/docs.props.js +26 -18
  28. package/dist/components/button/props.d.ts +21 -15
  29. package/dist/components/card/QCard.scss +25 -0
  30. package/dist/components/card/QCard.svelte +25 -16
  31. package/dist/components/card/QCard.svelte.d.ts +2 -25
  32. package/dist/components/card/QCardActions.scss +10 -0
  33. package/dist/components/card/QCardActions.svelte +11 -8
  34. package/dist/components/card/QCardActions.svelte.d.ts +2 -21
  35. package/dist/components/card/QCardSection.scss +10 -0
  36. package/dist/components/card/QCardSection.svelte +8 -6
  37. package/dist/components/card/QCardSection.svelte.d.ts +2 -22
  38. package/dist/components/card/docs.props.js +6 -14
  39. package/dist/components/card/props.d.ts +9 -15
  40. package/dist/components/checkbox/QCheckbox.svelte +8 -3
  41. package/dist/components/checkbox/QCheckbox.svelte.d.ts +2 -20
  42. package/dist/components/checkbox/docs.props.js +1 -1
  43. package/dist/components/checkbox/index.scss +3 -1
  44. package/dist/components/checkbox/props.d.ts +1 -2
  45. package/dist/components/chip/QChip.scss +179 -0
  46. package/dist/components/chip/QChip.svelte +95 -70
  47. package/dist/components/chip/QChip.svelte.d.ts +2 -35
  48. package/dist/components/chip/docs.props.js +23 -47
  49. package/dist/components/chip/props.d.ts +21 -34
  50. package/dist/components/codeBlock/QCodeBlock.svelte +64 -42
  51. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +2 -20
  52. package/dist/components/codeBlock/docs.props.js +10 -2
  53. package/dist/components/codeBlock/props.d.ts +6 -1
  54. package/dist/components/dialog/{index.scss → QDialog.scss} +9 -7
  55. package/dist/components/dialog/QDialog.svelte +72 -70
  56. package/dist/components/dialog/QDialog.svelte.d.ts +6 -36
  57. package/dist/components/dialog/docs.props.d.ts +0 -8
  58. package/dist/components/dialog/docs.props.js +1 -131
  59. package/dist/components/dialog/props.d.ts +0 -16
  60. package/dist/components/drawer/QDrawer.scss +45 -0
  61. package/dist/components/drawer/QDrawer.svelte +87 -91
  62. package/dist/components/drawer/QDrawer.svelte.d.ts +6 -32
  63. package/dist/components/drawer/docs.props.js +3 -3
  64. package/dist/components/drawer/props.d.ts +2 -2
  65. package/dist/components/footer/QFooter.scss +42 -0
  66. package/dist/components/footer/QFooter.svelte +62 -23
  67. package/dist/components/footer/QFooter.svelte.d.ts +2 -23
  68. package/dist/components/footer/docs.props.js +14 -6
  69. package/dist/components/footer/props.d.ts +8 -5
  70. package/dist/components/header/QHeader.scss +54 -0
  71. package/dist/components/header/QHeader.svelte +52 -24
  72. package/dist/components/header/QHeader.svelte.d.ts +2 -23
  73. package/dist/components/header/docs.props.js +23 -7
  74. package/dist/components/header/props.d.ts +11 -3
  75. package/dist/components/icon/{index.scss → QIcon.scss} +2 -4
  76. package/dist/components/icon/QIcon.svelte +29 -16
  77. package/dist/components/icon/QIcon.svelte.d.ts +2 -27
  78. package/dist/components/icon/docs.props.js +3 -3
  79. package/dist/components/icon/props.d.ts +4 -4
  80. package/dist/components/index.d.ts +2 -2
  81. package/dist/components/index.js +2 -2
  82. package/dist/components/input/QInput.svelte +52 -25
  83. package/dist/components/input/QInput.svelte.d.ts +2 -32
  84. package/dist/components/input/docs.props.js +33 -1
  85. package/dist/components/input/props.d.ts +5 -12
  86. package/dist/components/input/props.js +1 -12
  87. package/dist/components/layout/QLayout.scss +178 -0
  88. package/dist/components/layout/QLayout.svelte +100 -80
  89. package/dist/components/layout/QLayout.svelte.d.ts +16 -43
  90. package/dist/components/layout/docs.props.js +57 -1
  91. package/dist/components/layout/props.d.ts +8 -0
  92. package/dist/components/list/QItem.scss +61 -0
  93. package/dist/components/list/QItem.svelte +65 -46
  94. package/dist/components/list/QItem.svelte.d.ts +2 -30
  95. package/dist/components/list/QItemSection.scss +45 -0
  96. package/dist/components/list/QItemSection.svelte +48 -33
  97. package/dist/components/list/QItemSection.svelte.d.ts +2 -24
  98. package/dist/components/list/QList.scss +30 -0
  99. package/dist/components/list/QList.svelte +25 -14
  100. package/dist/components/list/QList.svelte.d.ts +2 -28
  101. package/dist/components/list/docs.props.js +36 -4
  102. package/dist/components/list/props.d.ts +9 -8
  103. package/dist/components/list/props.js +1 -25
  104. package/dist/components/private/ContextReseter.svelte +6 -11
  105. package/dist/components/private/ContextReseter.svelte.d.ts +6 -18
  106. package/dist/components/private/QApi.svelte +117 -103
  107. package/dist/components/private/QApi.svelte.d.ts +4 -16
  108. package/dist/components/private/QDocs.svelte +67 -48
  109. package/dist/components/private/QDocs.svelte.d.ts +9 -20
  110. package/dist/components/private/QDocsSection.svelte +15 -14
  111. package/dist/components/private/QDocsSection.svelte.d.ts +7 -19
  112. package/dist/components/private/QIconSnippet.svelte +12 -0
  113. package/dist/components/private/QIconSnippet.svelte.d.ts +8 -0
  114. package/dist/components/progress/QCircularProgress.scss +63 -0
  115. package/dist/components/progress/QCircularProgress.svelte +104 -28
  116. package/dist/components/progress/QCircularProgress.svelte.d.ts +2 -22
  117. package/dist/components/progress/QLinearProgress.scss +75 -0
  118. package/dist/components/progress/QLinearProgress.svelte +55 -13
  119. package/dist/components/progress/QLinearProgress.svelte.d.ts +2 -20
  120. package/dist/components/progress/docs.props.js +138 -10
  121. package/dist/components/progress/props.d.ts +75 -12
  122. package/dist/components/radio/QRadio.svelte +14 -3
  123. package/dist/components/radio/QRadio.svelte.d.ts +2 -21
  124. package/dist/components/radio/docs.props.js +1 -1
  125. package/dist/components/radio/index.scss +3 -1
  126. package/dist/components/radio/props.d.ts +1 -3
  127. package/dist/components/radio/props.js +1 -8
  128. package/dist/components/railbar/QRailbar.scss +54 -0
  129. package/dist/components/railbar/QRailbar.svelte +43 -66
  130. package/dist/components/railbar/QRailbar.svelte.d.ts +2 -22
  131. package/dist/components/railbar/docs.props.js +4 -4
  132. package/dist/components/railbar/props.d.ts +3 -3
  133. package/dist/components/select/QSelect.svelte +121 -88
  134. package/dist/components/select/QSelect.svelte.d.ts +2 -34
  135. package/dist/components/select/docs.js +7 -0
  136. package/dist/components/select/docs.props.js +41 -1
  137. package/dist/components/select/index.scss +8 -6
  138. package/dist/components/select/props.d.ts +6 -12
  139. package/dist/components/select/props.js +1 -12
  140. package/dist/components/separator/QSeparator.scss +54 -0
  141. package/dist/components/separator/QSeparator.svelte +38 -45
  142. package/dist/components/separator/QSeparator.svelte.d.ts +2 -24
  143. package/dist/components/separator/docs.props.js +4 -4
  144. package/dist/components/separator/props.d.ts +5 -7
  145. package/dist/components/separator/props.js +1 -9
  146. package/dist/components/switch/QSwitch.scss +305 -0
  147. package/dist/components/switch/QSwitch.svelte +96 -0
  148. package/dist/components/switch/QSwitch.svelte.d.ts +3 -0
  149. package/dist/components/{toggle → switch}/docs.d.ts +1 -1
  150. package/dist/components/{toggle → switch}/docs.js +3 -3
  151. package/dist/components/{toggle → switch}/docs.props.d.ts +1 -1
  152. package/dist/components/{toggle → switch}/docs.props.js +30 -6
  153. package/dist/components/switch/props.d.ts +13 -0
  154. package/dist/components/switch/props.js +1 -0
  155. package/dist/components/table/QTable.svelte +99 -85
  156. package/dist/components/table/QTable.svelte.d.ts +3 -29
  157. package/dist/components/table/docs.props.js +9 -1
  158. package/dist/components/table/index.scss +3 -1
  159. package/dist/components/table/props.d.ts +10 -0
  160. package/dist/components/tabs/QTab.scss +71 -0
  161. package/dist/components/tabs/QTab.svelte +74 -90
  162. package/dist/components/tabs/QTab.svelte.d.ts +2 -25
  163. package/dist/components/tabs/QTabs.scss +40 -0
  164. package/dist/components/tabs/QTabs.svelte +110 -58
  165. package/dist/components/tabs/QTabs.svelte.d.ts +6 -31
  166. package/dist/components/tabs/docs.props.js +3 -3
  167. package/dist/components/tabs/index.scss +4 -2
  168. package/dist/components/tabs/props.d.ts +5 -4
  169. package/dist/components/toolbar/QToolbar.svelte +15 -12
  170. package/dist/components/toolbar/QToolbar.svelte.d.ts +2 -23
  171. package/dist/components/toolbar/QToolbarTitle.svelte +8 -7
  172. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +2 -21
  173. package/dist/components/toolbar/docs.props.js +4 -4
  174. package/dist/components/toolbar/index.scss +12 -14
  175. package/dist/components/toolbar/props.d.ts +4 -5
  176. package/dist/components/tooltip/QTooltip.svelte +5 -9
  177. package/dist/components/tooltip/QTooltip.svelte.d.ts +2 -21
  178. package/dist/components/tooltip/docs.props.js +1 -1
  179. package/dist/components/tooltip/index.scss +3 -1
  180. package/dist/components/tooltip/props.d.ts +1 -1
  181. package/dist/composables/index.d.ts +1 -1
  182. package/dist/composables/index.js +1 -1
  183. package/dist/composables/useSize.d.ts +10 -9
  184. package/dist/composables/useSize.js +32 -20
  185. package/dist/composables/useSizeLegacy.d.ts +9 -0
  186. package/dist/composables/useSizeLegacy.js +25 -0
  187. package/dist/css/_components.scss +31 -0
  188. package/dist/css/_disabled.scss +18 -0
  189. package/dist/css/{ripple.scss → _ripple.scss} +1 -1
  190. package/dist/css/_variables.scss +73 -0
  191. package/dist/css/classes/_design.scss +57 -0
  192. package/dist/css/classes/_flex.scss +62 -0
  193. package/dist/css/classes/_grid.scss +35 -0
  194. package/dist/css/classes/_index.scss +7 -0
  195. package/dist/css/classes/_overflow.scss +7 -0
  196. package/dist/css/classes/_position.scss +7 -0
  197. package/dist/css/classes/_select.scss +6 -0
  198. package/dist/css/classes/_spaces.scss +23 -0
  199. package/dist/css/index.css +1 -1
  200. package/dist/css/index.scss +15 -94
  201. package/dist/css/mixins/_design.scss +63 -0
  202. package/dist/css/mixins/{field-mixins.scss → _field.scss} +16 -5
  203. package/dist/css/mixins/_image.scss +63 -0
  204. package/dist/css/mixins/_index.scss +9 -0
  205. package/dist/css/mixins/_layout.scss +20 -0
  206. package/dist/css/mixins/{menu.scss → _menu.scss} +4 -2
  207. package/dist/css/mixins/{selection.scss → _selection.scss} +7 -67
  208. package/dist/css/mixins/_spaces.scss +36 -0
  209. package/dist/css/mixins/_typography.scss +7 -0
  210. package/dist/css/shared/q-field.scss +62 -32
  211. package/dist/css/theme/_colors.scss +173 -0
  212. package/dist/css/theme/css-variables.scss +5 -0
  213. package/dist/css/theme/page.scss +3 -3
  214. package/dist/css/theme/reset.scss +17 -1
  215. package/dist/css/theme/theme.scss +2 -3
  216. package/dist/css/theme/tokens.scss +0 -159
  217. package/dist/helpers/clickOutside.js +2 -1
  218. package/dist/helpers/ripple.d.ts +1 -1
  219. package/dist/helpers/ripple.js +13 -4
  220. package/dist/helpers/version.d.ts +1 -1
  221. package/dist/helpers/version.js +1 -1
  222. package/dist/index.d.ts +2 -1
  223. package/dist/index.js +2 -1
  224. package/dist/stores/index.d.ts +0 -2
  225. package/dist/stores/index.js +1 -2
  226. package/dist/utils/colors.d.ts +71 -0
  227. package/dist/utils/colors.js +101 -14
  228. package/dist/utils/dom.d.ts +2 -0
  229. package/dist/utils/dom.js +6 -0
  230. package/dist/utils/number.d.ts +2 -0
  231. package/dist/utils/number.js +9 -0
  232. package/dist/utils/props.js +3 -1
  233. package/dist/utils/router.d.ts +17 -0
  234. package/dist/utils/router.js +23 -0
  235. package/dist/utils/string.d.ts +1 -0
  236. package/dist/utils/string.js +3 -0
  237. package/dist/utils/types.d.ts +6 -1
  238. package/dist/utils/types.js +0 -3
  239. package/dist/utils/types.json +8 -5
  240. package/dist/utils/watchable.d.ts +0 -1
  241. package/package.json +40 -37
  242. package/dist/components/breadcrumbs/index.scss +0 -20
  243. package/dist/components/button/index.scss +0 -103
  244. package/dist/components/card/index.scss +0 -56
  245. package/dist/components/chip/index.scss +0 -103
  246. package/dist/components/drawer/index.scss +0 -59
  247. package/dist/components/footer/index.scss +0 -28
  248. package/dist/components/layout/index.scss +0 -387
  249. package/dist/components/list/index.scss +0 -144
  250. package/dist/components/progress/index.scss +0 -82
  251. package/dist/components/railbar/index.scss +0 -39
  252. package/dist/components/separator/index.scss +0 -52
  253. package/dist/components/toggle/QToggle.svelte +0 -34
  254. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  255. package/dist/components/toggle/index.scss +0 -31
  256. package/dist/components/toggle/props.d.ts +0 -9
  257. package/dist/components/toggle/props.js +0 -9
  258. package/dist/css/grid.scss +0 -50
  259. package/dist/css/mixins.scss +0 -137
  260. package/dist/css/states.scss +0 -75
  261. package/dist/css/theme/bridge.scss +0 -15
  262. package/dist/css/theme/theme.dark.scss +0 -39
  263. package/dist/css/theme/theme.light.scss +0 -39
  264. package/dist/css/variables-sass.scss +0 -16
  265. package/dist/stores/QTheme.d.ts +0 -42
  266. package/dist/stores/QTheme.js +0 -59
  267. package/dist/stores/Quaff.d.ts +0 -32
  268. package/dist/stores/Quaff.js +0 -58
  269. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
@@ -1,61 +1,67 @@
1
- <script>import {
2
- QCard,
3
- QIcon,
4
- QTabs,
5
- QTab,
6
- QCardSection,
7
- QList,
8
- QItem,
9
- QItemSection,
10
- QDrawer,
11
- QCodeBlock
12
- } from "../..";
13
- import { capitalize } from "../../utils";
14
- import Types from "../../utils/types.json";
15
- export let componentDocs;
16
- let api = componentDocs.map(() => "props");
17
- let drawer = Object.fromEntries(
18
- componentDocs.map((doc) => [
19
- doc.name,
1
+ <script lang="ts">
2
+ import {
3
+ QCard,
4
+ QIcon,
5
+ QTabs,
6
+ QTab,
7
+ QCardSection,
8
+ QList,
9
+ QItem,
10
+ QItemSection,
11
+ QDrawer,
12
+ QCodeBlock,
13
+ } from "../..";
14
+ import { capitalize } from "../../utils";
15
+ import Types from "../../utils/types.json";
16
+ let { componentDocs } = $props();
17
+ let api = componentDocs.map(() => "props");
18
+ let drawer = $state(
20
19
  Object.fromEntries(
21
- doc.docs.props.map((prop) => [prop.name, prop.clickableType ? false : void 0])
22
- )
23
- ])
24
- );
25
- let drawerContent = "";
26
- function isProp(doc, index) {
27
- return api[index] === "props";
28
- }
29
- function isEvent(doc, index) {
30
- return api[index] === "events";
31
- }
32
- function getType(type) {
33
- type = type.replace("[]", "");
34
- let found = type in Types ? Types[type] : void 0;
35
- return found;
36
- }
37
- function handleDrawer(QDocument, doc, e) {
38
- e.stopPropagation();
39
- let content = getType(doc.type);
40
- for (let docName in drawer[QDocument.name]) {
41
- if (drawer[QDocument.name][docName] === true && docName !== doc.name) {
42
- drawer[QDocument.name][docName] = false;
43
- }
20
+ componentDocs.map((doc) => [
21
+ doc.name,
22
+ Object.fromEntries(
23
+ doc.docs.props.map((prop) => [
24
+ prop.name,
25
+ prop.clickableType ? false : void 0,
26
+ ]),
27
+ ),
28
+ ]),
29
+ ),
30
+ );
31
+ let drawerContent = $state("");
32
+ function isProp(doc, index) {
33
+ return api[index] === "props";
34
+ }
35
+ function isEvent(doc, index) {
36
+ return api[index] === "events";
44
37
  }
45
- if (!drawer[QDocument.name][doc.name]) {
46
- setTimeout(() => {
47
- drawerContent = content;
48
- drawer[QDocument.name][doc.name] = true;
49
- }, 100);
50
- } else {
51
- drawer[QDocument.name][doc.name] = false;
38
+ function getType(type) {
39
+ type = type.replace("[]", "");
40
+ let found = type in Types ? Types[type] : void 0;
41
+ return found;
42
+ }
43
+ function handleDrawer(QDocument, doc, e) {
44
+ e.stopPropagation();
45
+ let content = getType(doc.type);
46
+ for (let docName in drawer[QDocument.name]) {
47
+ if (drawer[QDocument.name][docName] && docName !== doc.name) {
48
+ drawer[QDocument.name][docName] = false;
49
+ }
50
+ }
51
+ if (!drawer[QDocument.name][doc.name]) {
52
+ setTimeout(() => {
53
+ drawerContent = content;
54
+ drawer[QDocument.name][doc.name] = true;
55
+ }, 100);
56
+ } else {
57
+ drawer[QDocument.name][doc.name] = false;
58
+ }
52
59
  }
53
- }
54
60
  </script>
55
61
 
56
62
  {#each componentDocs as QDocument, index}
57
63
  <QCard class="q-px-none q-pb-none q-mt-lg">
58
- <div slot="title" class="flex justify-between items-center q-px-md">
64
+ <div class="flex justify-between items-center q-px-md">
59
65
  <h5 class="no-margin">
60
66
  <QIcon name="info" />
61
67
  <span class="q-ml-md">{QDocument.name} API</span>
@@ -78,44 +84,50 @@ function handleDrawer(QDocument, doc, e) {
78
84
  <QDrawer
79
85
  side="right"
80
86
  class="no-padding api-drawer"
81
- style="height: fit-content; max-height: 400%; overflow: auto; border-radius: 0;"
87
+ style="height: fit-content; width: 50%; max-height: 400%; overflow: auto; border-radius: 0;"
82
88
  bind:value={drawer[QDocument.name][doc.name]}
83
- width="50%"
84
89
  >
85
- <QCodeBlock language="ts" code={drawerContent} />
90
+ <QCodeBlock language="typescript" code={drawerContent} />
86
91
  </QDrawer>
87
92
  {/if}
88
93
  <QItemSection type="content" style="overflow: visible">
89
- <div slot="headline" class="q-my-sm" style="flex: 1 1 0; white-space: nowrap">
90
- <span class="q-pa-sm surface-variant">
91
- <b>{doc.name}</b>
92
- {#if isProp(doc, index)}
93
- {doc.optional ? "?" : ""}
94
- {#if doc.clickableType === true}
95
- <!-- svelte-ignore a11y-click-events-have-key-events a11y-no-static-element-interactions -->
96
- <span
97
- class="prop-type clickable"
98
- on:click={(e) => isProp(doc, index) && handleDrawer(QDocument, doc, e)}
99
- >
100
- : {doc.type}
101
- </span>
102
- {:else}
94
+ {#snippet headline()}
95
+ <div class="q-my-sm" style="flex: 1 1 0; white-space: nowrap">
96
+ <span class="q-pa-sm surface-variant">
97
+ <b>{doc.name}</b>
98
+ {#if isProp(doc, index)}
99
+ {doc.optional ? "?" : ""}
100
+ {#if doc.clickableType}
101
+ <span
102
+ class="prop-type clickable"
103
+ onclick={(e) =>
104
+ isProp(doc, index) &&
105
+ handleDrawer(QDocument, doc, e)}
106
+ >
107
+ : {doc.type}
108
+ </span>
109
+ {:else}
110
+ <span class="prop-type">
111
+ : {doc.type}
112
+ </span>
113
+ {/if}
114
+ {doc.default === "" ? "" : ` = ${doc.default}`}
115
+ {:else if isEvent(doc, index)}
103
116
  <span class="prop-type">
104
117
  : {doc.type}
105
118
  </span>
106
119
  {/if}
107
- {doc.default === "" ? "" : ` = ${doc.default}`}
108
- {:else if isEvent(doc, index)}
109
- <span class="prop-type">
110
- : {doc.type}
111
- </span>
112
- {/if}
113
- </span>
114
- </div>
115
- <div slot="line1" class="q-mt-sm prop-description" style="white-space: normal;">
116
- <!-- eslint-disable-next-line svelte/no-at-html-tags -->
117
- {@html doc.description}
118
- </div>
120
+ </span>
121
+ </div>
122
+ {/snippet}
123
+ {#snippet line1()}
124
+ <div
125
+ class="q-mt-sm prop-description"
126
+ style="white-space: normal;"
127
+ >
128
+ {@html doc.description}
129
+ </div>
130
+ {/snippet}
119
131
  </QItemSection>
120
132
  </QItem>
121
133
  {/each}
@@ -124,29 +136,31 @@ function handleDrawer(QDocument, doc, e) {
124
136
  </QCard>
125
137
  {/each}
126
138
 
127
- <style>.clickable {
128
- cursor: pointer;
129
- }
130
- .clickable:hover {
131
- color: var(--primary);
132
- }
139
+ <style>
140
+ .clickable {
141
+ cursor: pointer;
142
+ }
143
+ .clickable:hover {
144
+ color: var(--primary);
145
+ }
133
146
 
134
- .prop-type {
135
- opacity: 0.75;
136
- }
137
- .prop-type.clickable {
138
- cursor: pointer;
139
- }
140
- .prop-type.clickable:hover {
141
- opacity: 1;
142
- }
147
+ .prop-type {
148
+ opacity: 0.75;
149
+ }
150
+ .prop-type.clickable {
151
+ cursor: pointer;
152
+ }
153
+ .prop-type.clickable:hover {
154
+ opacity: 1;
155
+ }
143
156
 
144
- :global(.q-drawer.api-drawer pre) {
145
- margin: 0;
146
- border-radius: inherit;
147
- white-space: pre-wrap;
148
- }
157
+ :global(.q-drawer.api-drawer pre) {
158
+ margin: 0;
159
+ border-radius: inherit;
160
+ white-space: pre-wrap;
161
+ }
149
162
 
150
- :global(.prop-description > a:hover) {
151
- color: var(--primary);
152
- }</style>
163
+ :global(.prop-description > a:hover) {
164
+ color: var(--primary);
165
+ }
166
+ </style>
@@ -1,17 +1,5 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QComponentDocs } from "../../utils";
3
- declare const __propDef: {
4
- props: {
5
- componentDocs: QComponentDocs[];
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- };
12
- export type QApiProps = typeof __propDef.props;
13
- export type QApiEvents = typeof __propDef.events;
14
- export type QApiSlots = typeof __propDef.slots;
15
- export default class QApi extends SvelteComponent<QApiProps, QApiEvents, QApiSlots> {
16
- }
17
- export {};
2
+ declare const QApi: import("svelte").Component<{
3
+ componentDocs: QComponentDocs[];
4
+ }, {}, "">;
5
+ export default QApi;
@@ -1,16 +1,22 @@
1
- <script>import { Quaff } from "../../stores";
2
- import { QCard, QCardSection } from "../..";
3
- import QApi from "./QApi.svelte";
4
- export let componentDocs;
5
- $:
6
- isDark = $Quaff.dark.isActive;
7
- let principalDocument = Array.isArray(componentDocs) ? componentDocs[0] : componentDocs;
1
+ <script lang="ts">
2
+ import { QCard, QCardSection } from "../..";
3
+ import Quaff from "../../classes/Quaff.svelte";
4
+ import QApi from "./QApi.svelte";
5
+ let { children, display, pre, usage, componentDocs } = $props();
6
+ const isDark = $derived(Quaff.darkMode.isActive);
7
+ let principalDocument = Array.isArray(componentDocs)
8
+ ? componentDocs[0]
9
+ : componentDocs;
8
10
  </script>
9
11
 
10
12
  <div class="q-docs" style="margin: 1rem">
11
- <div class="row q-gutter-lg q-mb-lg" style="min-height: 400px">
12
- <QCard class="col-sm-12 col-lg-6 flex flex-center" fill="primary" style="min-height: 400px">
13
- <h1 class="large no-margin" slot="title">{principalDocument.name}</h1>
13
+ <div class="row q-gutter-lg" style="min-height: 400px">
14
+ <QCard
15
+ class="col-sm-12 col-lg-6 flex flex-center"
16
+ fill="primary"
17
+ style="min-height: 400px"
18
+ >
19
+ <h1 class="large no-margin">{principalDocument.name}</h1>
14
20
  </QCard>
15
21
  <QCard
16
22
  class="q-docs__preview col-sm-12 col-lg-6 q-mt-none q-pa-none"
@@ -22,7 +28,7 @@ let principalDocument = Array.isArray(componentDocs) ? componentDocs[0] : compon
22
28
  class="flex flex-center"
23
29
  style="position: absolute; height: 100%; width: 100%; z-index: 1;"
24
30
  >
25
- <slot name="display" />
31
+ {@render display?.()}
26
32
  </div>
27
33
  <img
28
34
  class="q-docs__image"
@@ -39,46 +45,59 @@ let principalDocument = Array.isArray(componentDocs) ? componentDocs[0] : compon
39
45
  </QCard>
40
46
  </div>
41
47
 
42
- <QApi componentDocs={Array.isArray(componentDocs) ? componentDocs : [componentDocs]} />
48
+ <div class="q-page">
49
+ <QApi
50
+ componentDocs={Array.isArray(componentDocs)
51
+ ? componentDocs
52
+ : [componentDocs]}
53
+ />
43
54
 
44
- {#if $$slots.usage}
45
- <div class="s12 q-pa-md">
46
- <div class="heading-usage">
47
- <h4 class="q-my-xl">Usage</h4>
48
- </div>
55
+ {@render pre?.()}
49
56
 
50
- <slot name="usage" />
51
- </div>
52
- {/if}
57
+ {#if usage}
58
+ <div class="q-pa-md">
59
+ <div class="heading-usage">
60
+ <h4 class="q-my-xl">Usage</h4>
61
+ </div>
62
+
63
+ {@render usage()}
64
+ </div>
65
+ {/if}
53
66
 
54
- <slot />
67
+ {@render children?.()}
68
+ </div>
55
69
  </div>
56
70
 
57
- <style>.q-docs :global(.q-pa-none) {
58
- padding: 0 !important;
59
- }
60
- .q-docs__image {
61
- width: 100%;
62
- height: 12rem;
63
- object-fit: cover;
64
- border-bottom-left-radius: 0;
65
- border-bottom-right-radius: 0;
66
- }
67
- .q-docs :global(.q-docs__preview) {
68
- display: flex !important;
69
- flex-direction: column;
70
- }
71
- .q-docs :global(.q-docs__description) {
72
- display: flex;
73
- flex-grow: 1;
74
- justify-content: center;
75
- align-items: center;
76
- }
77
- .q-docs :global(.q-docs__description-text) {
78
- font-size: 1.75rem;
79
- }
71
+ <style>
72
+ .q-docs :global(.q-pa-none) {
73
+ padding: 0 !important;
74
+ }
75
+ .q-docs__image {
76
+ width: 100%;
77
+ height: 12rem;
78
+ object-fit: cover;
79
+ border-bottom-left-radius: 0;
80
+ border-bottom-right-radius: 0;
81
+ }
82
+ .q-docs :global(.q-docs__preview) {
83
+ display: flex !important;
84
+ flex-direction: column;
85
+ }
86
+ .q-docs :global(.q-docs__description) {
87
+ display: flex;
88
+ flex-grow: 1;
89
+ justify-content: center;
90
+ align-items: center;
91
+ }
92
+ .q-docs :global(.q-docs__description-text) {
93
+ font-size: 1.75rem;
94
+ }
95
+ .q-docs .q-page {
96
+ padding-top: 0.5rem;
97
+ }
80
98
 
81
- .heading-usage {
82
- display: flex;
83
- align-items: center;
84
- }</style>
99
+ .heading-usage {
100
+ display: flex;
101
+ align-items: center;
102
+ }
103
+ </style>
@@ -1,21 +1,10 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { QComponentDocs } from "../../utils";
3
- declare const __propDef: {
4
- props: {
5
- componentDocs: QComponentDocs | QComponentDocs[];
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {
11
- display: {};
12
- usage: {};
13
- default: {};
14
- };
15
- };
16
- export type QDocsProps = typeof __propDef.props;
17
- export type QDocsEvents = typeof __propDef.events;
18
- export type QDocsSlots = typeof __propDef.slots;
19
- export default class QDocs extends SvelteComponent<QDocsProps, QDocsEvents, QDocsSlots> {
20
- }
21
- export {};
2
+ import type { Snippet } from "svelte";
3
+ declare const QDocs: import("svelte").Component<{
4
+ children?: Snippet;
5
+ display?: Snippet;
6
+ pre?: Snippet;
7
+ usage?: Snippet;
8
+ componentDocs: QComponentDocs | QComponentDocs[];
9
+ }, {}, "">;
10
+ export default QDocs;
@@ -1,23 +1,24 @@
1
- <script>import { QCodeBlock, QDialog } from "../..";
2
- export let title, snippets = void 0;
3
- let dialog = false;
1
+ <script lang="ts">
2
+ import { QCodeBlock, QDialog, QBtn } from "../..";
3
+ let { title, snippet, children } = $props();
4
+ let dialog = $state(false);
5
+ const code = $derived(snippet?.replaceAll(/^ {2}/gm, ""));
4
6
  </script>
5
7
 
6
8
  <div style="margin-bottom:48px">
7
9
  <div class="flex justify-between q-mb-md">
8
10
  <h5>{title}</h5>
9
- {#if snippets}
10
- <QDialog
11
- class="snippet-dialog"
12
- bind:value={dialog}
13
- button
14
- buttonProps={{ outline: true, round: true, icon: "code" }}
15
- on:buttonClick={() => (dialog = true)}
16
- modal
17
- >
18
- <QCodeBlock code={snippets[title]} language="svelte" {title} copiable />
11
+ {#if code}
12
+ <QBtn
13
+ icon="code"
14
+ design="outlined"
15
+ round
16
+ onclick={() => (dialog = true)}
17
+ />
18
+ <QDialog class="snippet-dialog" bind:value={dialog} modal>
19
+ <QCodeBlock {code} language="svelte" {title} copiable />
19
20
  </QDialog>
20
21
  {/if}
21
22
  </div>
22
- <slot />
23
+ {@render children?.()}
23
24
  </div>
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- title: string;
5
- snippets?: Record<string, string> | undefined;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {
11
- default: {};
12
- };
13
- };
14
- export type QDocsSectionProps = typeof __propDef.props;
15
- export type QDocsSectionEvents = typeof __propDef.events;
16
- export type QDocsSectionSlots = typeof __propDef.slots;
17
- export default class QDocsSection extends SvelteComponent<QDocsSectionProps, QDocsSectionEvents, QDocsSectionSlots> {
18
- }
19
- export {};
1
+ import type { Snippet } from "svelte";
2
+ declare const QDocsSection: import("svelte").Component<{
3
+ title: string;
4
+ snippet?: string;
5
+ children?: Snippet;
6
+ }, {}, "">;
7
+ export default QDocsSection;
@@ -0,0 +1,12 @@
1
+ <!-- This component should be used when an icon can be set from props. The icon can either be undefined, a string or a Snippet so this componnet handles it all. -->
2
+ <script lang="ts">
3
+ import QIcon from "../icon/QIcon.svelte";
4
+ let { icon, defaultIcon, ...props } = $props();
5
+ const iconToUse = $derived(icon ?? defaultIcon);
6
+ </script>
7
+
8
+ {#if typeof iconToUse === "string"}
9
+ <QIcon name={iconToUse} {...props} />
10
+ {:else}
11
+ {@render iconToUse?.()}
12
+ {/if}
@@ -0,0 +1,8 @@
1
+ import type { QIconProps } from "../icon/props";
2
+ import type { Snippet } from "svelte";
3
+ import type { MaterialSymbol } from "material-symbols";
4
+ declare const QIconSnippet: import("svelte").Component<Omit<QIconProps, "name"> & {
5
+ icon?: MaterialSymbol | Snippet;
6
+ defaultIcon?: MaterialSymbol | Snippet;
7
+ }, {}, "">;
8
+ export default QIconSnippet;
@@ -0,0 +1,63 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-circular-progress {
4
+ display: inline-block;
5
+ position: relative;
6
+ vertical-align: middle;
7
+
8
+ height: 1em;
9
+ width: 1em;
10
+ font-size: var(--size);
11
+ line-height: 0;
12
+
13
+ &__svg {
14
+ height: 100%;
15
+ width: 100%;
16
+ }
17
+
18
+ &--indeterminate {
19
+ & .q-circular-progress__svg {
20
+ transform-origin: 50% 50%;
21
+ animation: q-spin 2s linear infinite;
22
+
23
+ & .q-circular-progress__indicator {
24
+ stroke-dasharray: 1400;
25
+ stroke-dashoffset: 0;
26
+ animation: q-load 1.5s ease-in-out infinite;
27
+ }
28
+ }
29
+ }
30
+ }
31
+
32
+ @keyframes q-spin {
33
+ 0% {
34
+ transform: rotate3d(0, 0, 1, 0deg);
35
+ }
36
+ 25% {
37
+ transform: rotate3d(0, 0, 1, 90deg);
38
+ }
39
+ 50% {
40
+ transform: rotate3d(0, 0, 1, 180deg);
41
+ }
42
+ 75% {
43
+ transform: rotate3d(0, 0, 1, 270deg);
44
+ }
45
+ 100% {
46
+ transform: rotate3d(0, 0, 1, 359deg);
47
+ }
48
+ }
49
+
50
+ @keyframes q-load {
51
+ 0% {
52
+ stroke-dasharray: 1, 400;
53
+ stroke-dashoffset: 0;
54
+ }
55
+ 50% {
56
+ stroke-dasharray: 400, 400;
57
+ stroke-dashoffset: -100;
58
+ }
59
+ 100% {
60
+ stroke-dasharray: 400, 400;
61
+ stroke-dashoffset: -300;
62
+ }
63
+ }