@quaffui/quaff 0.1.0-prealpha

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 (278) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +43 -0
  3. package/dist/components/avatar/QAvatar.svelte +43 -0
  4. package/dist/components/avatar/QAvatar.svelte.d.ts +27 -0
  5. package/dist/components/avatar/docs.d.ts +2 -0
  6. package/dist/components/avatar/docs.js +22 -0
  7. package/dist/components/avatar/docs.props.d.ts +8 -0
  8. package/dist/components/avatar/docs.props.js +34 -0
  9. package/dist/components/avatar/index.scss +88 -0
  10. package/dist/components/avatar/props.d.ts +25 -0
  11. package/dist/components/avatar/props.js +1 -0
  12. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +18 -0
  13. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +23 -0
  14. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +59 -0
  15. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +26 -0
  16. package/dist/components/breadcrumbs/docs.d.ts +2 -0
  17. package/dist/components/breadcrumbs/docs.js +16 -0
  18. package/dist/components/breadcrumbs/docs.props.d.ts +16 -0
  19. package/dist/components/breadcrumbs/docs.props.js +84 -0
  20. package/dist/components/breadcrumbs/index.scss +20 -0
  21. package/dist/components/breadcrumbs/props.d.ts +56 -0
  22. package/dist/components/breadcrumbs/props.js +1 -0
  23. package/dist/components/button/QBtn.svelte +59 -0
  24. package/dist/components/button/QBtn.svelte.d.ts +32 -0
  25. package/dist/components/button/docs.d.ts +2 -0
  26. package/dist/components/button/docs.js +22 -0
  27. package/dist/components/button/docs.props.d.ts +8 -0
  28. package/dist/components/button/docs.props.js +82 -0
  29. package/dist/components/button/index.scss +78 -0
  30. package/dist/components/button/props.d.ts +54 -0
  31. package/dist/components/button/props.js +1 -0
  32. package/dist/components/card/QCard.svelte +23 -0
  33. package/dist/components/card/QCard.svelte.d.ts +26 -0
  34. package/dist/components/card/QCardActions.svelte +18 -0
  35. package/dist/components/card/QCardActions.svelte.d.ts +22 -0
  36. package/dist/components/card/QCardSection.svelte +14 -0
  37. package/dist/components/card/QCardSection.svelte.d.ts +23 -0
  38. package/dist/components/card/docs.d.ts +4 -0
  39. package/dist/components/card/docs.js +46 -0
  40. package/dist/components/card/docs.props.d.ts +24 -0
  41. package/dist/components/card/docs.props.js +62 -0
  42. package/dist/components/card/index.scss +53 -0
  43. package/dist/components/card/props.d.ts +44 -0
  44. package/dist/components/card/props.js +1 -0
  45. package/dist/components/checkbox/QCheckbox.svelte +14 -0
  46. package/dist/components/checkbox/QCheckbox.svelte.d.ts +21 -0
  47. package/dist/components/checkbox/docs.d.ts +2 -0
  48. package/dist/components/checkbox/docs.js +17 -0
  49. package/dist/components/checkbox/docs.props.d.ts +8 -0
  50. package/dist/components/checkbox/docs.props.js +26 -0
  51. package/dist/components/checkbox/index.scss +3 -0
  52. package/dist/components/checkbox/props.d.ts +17 -0
  53. package/dist/components/checkbox/props.js +1 -0
  54. package/dist/components/chip/QChip.svelte +62 -0
  55. package/dist/components/chip/QChip.svelte.d.ts +35 -0
  56. package/dist/components/chip/docs.d.ts +2 -0
  57. package/dist/components/chip/docs.js +30 -0
  58. package/dist/components/chip/docs.props.d.ts +8 -0
  59. package/dist/components/chip/docs.props.js +90 -0
  60. package/dist/components/chip/index.scss +83 -0
  61. package/dist/components/chip/props.d.ts +59 -0
  62. package/dist/components/chip/props.js +1 -0
  63. package/dist/components/codeBlock/QCodeBlock.svelte +71 -0
  64. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +23 -0
  65. package/dist/components/codeBlock/docs.props.d.ts +8 -0
  66. package/dist/components/codeBlock/docs.props.js +34 -0
  67. package/dist/components/codeBlock/props.d.ts +20 -0
  68. package/dist/components/codeBlock/props.js +1 -0
  69. package/dist/components/dialog/QDialog.svelte +80 -0
  70. package/dist/components/dialog/QDialog.svelte.d.ts +37 -0
  71. package/dist/components/dialog/docs.d.ts +2 -0
  72. package/dist/components/dialog/docs.js +11 -0
  73. package/dist/components/dialog/docs.props.d.ts +16 -0
  74. package/dist/components/dialog/docs.props.js +148 -0
  75. package/dist/components/dialog/index.scss +27 -0
  76. package/dist/components/dialog/props.d.ts +45 -0
  77. package/dist/components/dialog/props.js +1 -0
  78. package/dist/components/drawer/QDrawer.svelte +87 -0
  79. package/dist/components/drawer/QDrawer.svelte.d.ts +39 -0
  80. package/dist/components/drawer/docs.d.ts +2 -0
  81. package/dist/components/drawer/docs.js +11 -0
  82. package/dist/components/drawer/docs.props.d.ts +8 -0
  83. package/dist/components/drawer/docs.props.js +106 -0
  84. package/dist/components/drawer/index.scss +54 -0
  85. package/dist/components/drawer/props.d.ts +70 -0
  86. package/dist/components/drawer/props.js +1 -0
  87. package/dist/components/footer/QFooter.svelte +14 -0
  88. package/dist/components/footer/QFooter.svelte.d.ts +24 -0
  89. package/dist/components/footer/docs.d.ts +2 -0
  90. package/dist/components/footer/docs.js +11 -0
  91. package/dist/components/footer/docs.props.d.ts +8 -0
  92. package/dist/components/footer/docs.props.js +34 -0
  93. package/dist/components/footer/index.scss +5 -0
  94. package/dist/components/footer/props.d.ts +23 -0
  95. package/dist/components/footer/props.js +1 -0
  96. package/dist/components/icon/QIcon.svelte +40 -0
  97. package/dist/components/icon/QIcon.svelte.d.ts +28 -0
  98. package/dist/components/icon/docs.d.ts +2 -0
  99. package/dist/components/icon/docs.js +11 -0
  100. package/dist/components/icon/docs.props.d.ts +8 -0
  101. package/dist/components/icon/docs.props.js +66 -0
  102. package/dist/components/icon/index.scss +18 -0
  103. package/dist/components/icon/props.d.ts +45 -0
  104. package/dist/components/icon/props.js +1 -0
  105. package/dist/components/index.d.ts +29 -0
  106. package/dist/components/index.js +29 -0
  107. package/dist/components/input/QInput.svelte +81 -0
  108. package/dist/components/input/QInput.svelte.d.ts +32 -0
  109. package/dist/components/input/docs.d.ts +2 -0
  110. package/dist/components/input/docs.js +83 -0
  111. package/dist/components/input/docs.props.d.ts +8 -0
  112. package/dist/components/input/docs.props.js +90 -0
  113. package/dist/components/input/index.scss +3 -0
  114. package/dist/components/input/props.d.ts +27 -0
  115. package/dist/components/input/props.js +13 -0
  116. package/dist/components/layout/QLayout.svelte +88 -0
  117. package/dist/components/layout/QLayout.svelte.d.ts +57 -0
  118. package/dist/components/layout/docs.d.ts +2 -0
  119. package/dist/components/layout/docs.js +11 -0
  120. package/dist/components/layout/docs.props.d.ts +8 -0
  121. package/dist/components/layout/docs.props.js +58 -0
  122. package/dist/components/layout/index.scss +370 -0
  123. package/dist/components/layout/props.d.ts +41 -0
  124. package/dist/components/layout/props.js +1 -0
  125. package/dist/components/list/QItem.svelte +60 -0
  126. package/dist/components/list/QItem.svelte.d.ts +34 -0
  127. package/dist/components/list/QItemSection.svelte +47 -0
  128. package/dist/components/list/QItemSection.svelte.d.ts +25 -0
  129. package/dist/components/list/QList.svelte +23 -0
  130. package/dist/components/list/QList.svelte.d.ts +36 -0
  131. package/dist/components/list/docs.props.d.ts +40 -0
  132. package/dist/components/list/docs.props.js +226 -0
  133. package/dist/components/list/index.scss +114 -0
  134. package/dist/components/list/props.d.ts +33 -0
  135. package/dist/components/list/props.js +25 -0
  136. package/dist/components/private/ContextReseter.svelte +13 -0
  137. package/dist/components/private/ContextReseter.svelte.d.ts +18 -0
  138. package/dist/components/private/QApi.svelte +142 -0
  139. package/dist/components/private/QApi.svelte.d.ts +17 -0
  140. package/dist/components/private/QDocs.svelte +66 -0
  141. package/dist/components/private/QDocs.svelte.d.ts +21 -0
  142. package/dist/components/private/QDocsSection.svelte +32 -0
  143. package/dist/components/private/QDocsSection.svelte.d.ts +29 -0
  144. package/dist/components/progress/QCircularProgress.svelte +26 -0
  145. package/dist/components/progress/QCircularProgress.svelte.d.ts +22 -0
  146. package/dist/components/progress/QLinearProgress.svelte +20 -0
  147. package/dist/components/progress/QLinearProgress.svelte.d.ts +22 -0
  148. package/dist/components/progress/docs.props.d.ts +8 -0
  149. package/dist/components/progress/docs.props.js +26 -0
  150. package/dist/components/progress/index.scss +50 -0
  151. package/dist/components/progress/props.d.ts +20 -0
  152. package/dist/components/progress/props.js +7 -0
  153. package/dist/components/radio/QRadio.svelte +14 -0
  154. package/dist/components/radio/QRadio.svelte.d.ts +22 -0
  155. package/dist/components/radio/docs.d.ts +2 -0
  156. package/dist/components/radio/docs.js +39 -0
  157. package/dist/components/radio/docs.props.d.ts +8 -0
  158. package/dist/components/radio/docs.props.js +34 -0
  159. package/dist/components/radio/index.scss +3 -0
  160. package/dist/components/radio/props.d.ts +8 -0
  161. package/dist/components/radio/props.js +8 -0
  162. package/dist/components/railbar/QRailbar.svelte +52 -0
  163. package/dist/components/railbar/QRailbar.svelte.d.ts +23 -0
  164. package/dist/components/railbar/docs.props.d.ts +8 -0
  165. package/dist/components/railbar/docs.props.js +26 -0
  166. package/dist/components/railbar/props.d.ts +7 -0
  167. package/dist/components/railbar/props.js +7 -0
  168. package/dist/components/select/QSelect.svelte +159 -0
  169. package/dist/components/select/QSelect.svelte.d.ts +34 -0
  170. package/dist/components/select/docs.d.ts +2 -0
  171. package/dist/components/select/docs.js +95 -0
  172. package/dist/components/select/docs.props.d.ts +8 -0
  173. package/dist/components/select/docs.props.js +106 -0
  174. package/dist/components/select/index.scss +34 -0
  175. package/dist/components/select/props.d.ts +33 -0
  176. package/dist/components/select/props.js +14 -0
  177. package/dist/components/separator/QSeparator.svelte +63 -0
  178. package/dist/components/separator/QSeparator.svelte.d.ts +25 -0
  179. package/dist/components/separator/docs.props.d.ts +16 -0
  180. package/dist/components/separator/docs.props.js +116 -0
  181. package/dist/components/separator/props.d.ts +22 -0
  182. package/dist/components/separator/props.js +9 -0
  183. package/dist/components/table/QTable.svelte +154 -0
  184. package/dist/components/table/QTable.svelte.d.ts +29 -0
  185. package/dist/components/table/docs.d.ts +2 -0
  186. package/dist/components/table/docs.js +11 -0
  187. package/dist/components/table/docs.props.d.ts +8 -0
  188. package/dist/components/table/docs.props.js +42 -0
  189. package/dist/components/table/index.scss +77 -0
  190. package/dist/components/table/props.d.ts +45 -0
  191. package/dist/components/table/props.js +1 -0
  192. package/dist/components/tabs/QTab.svelte +78 -0
  193. package/dist/components/tabs/QTab.svelte.d.ts +28 -0
  194. package/dist/components/tabs/QTabs.svelte +55 -0
  195. package/dist/components/tabs/QTabs.svelte.d.ts +23 -0
  196. package/dist/components/tabs/docs.props.d.ts +16 -0
  197. package/dist/components/tabs/docs.props.js +60 -0
  198. package/dist/components/tabs/index.scss +75 -0
  199. package/dist/components/tabs/props.d.ts +14 -0
  200. package/dist/components/tabs/props.js +13 -0
  201. package/dist/components/toggle/QToggle.svelte +35 -0
  202. package/dist/components/toggle/QToggle.svelte.d.ts +23 -0
  203. package/dist/components/toggle/docs.d.ts +2 -0
  204. package/dist/components/toggle/docs.js +47 -0
  205. package/dist/components/toggle/docs.props.d.ts +8 -0
  206. package/dist/components/toggle/docs.props.js +42 -0
  207. package/dist/components/toggle/index.scss +31 -0
  208. package/dist/components/toggle/props.d.ts +9 -0
  209. package/dist/components/toggle/props.js +9 -0
  210. package/dist/components/toolbar/QToolbar.svelte +39 -0
  211. package/dist/components/toolbar/QToolbar.svelte.d.ts +23 -0
  212. package/dist/components/toolbar/docs.props.d.ts +8 -0
  213. package/dist/components/toolbar/docs.props.js +18 -0
  214. package/dist/components/toolbar/index.scss +7 -0
  215. package/dist/components/toolbar/props.d.ts +6 -0
  216. package/dist/components/toolbar/props.js +6 -0
  217. package/dist/components/tooltip/QTooltip.svelte +15 -0
  218. package/dist/components/tooltip/QTooltip.svelte.d.ts +22 -0
  219. package/dist/components/tooltip/docs.props.d.ts +8 -0
  220. package/dist/components/tooltip/docs.props.js +18 -0
  221. package/dist/components/tooltip/index.scss +7 -0
  222. package/dist/components/tooltip/props.d.ts +6 -0
  223. package/dist/components/tooltip/props.js +6 -0
  224. package/dist/composables/index.d.ts +0 -0
  225. package/dist/composables/index.js +1 -0
  226. package/dist/composables/use-align.d.ts +8 -0
  227. package/dist/composables/use-align.js +12 -0
  228. package/dist/composables/use-index.d.ts +2 -0
  229. package/dist/composables/use-index.js +17 -0
  230. package/dist/composables/use-router-link.d.ts +18 -0
  231. package/dist/composables/use-router-link.js +27 -0
  232. package/dist/composables/use-size.d.ts +11 -0
  233. package/dist/composables/use-size.js +13 -0
  234. package/dist/css/grid.scss +65 -0
  235. package/dist/css/index.scss +119 -0
  236. package/dist/css/mixins/field.scss +430 -0
  237. package/dist/css/mixins/menu.scss +70 -0
  238. package/dist/css/mixins/selection.scss +184 -0
  239. package/dist/css/mixins/table.scss +36 -0
  240. package/dist/css/mixins.scss +135 -0
  241. package/dist/css/states.scss +70 -0
  242. package/dist/css/theme/colors.module.scss +180 -0
  243. package/dist/css/theme/theme.dark.scss +36 -0
  244. package/dist/css/theme/theme.light.scss +36 -0
  245. package/dist/css/theme/theme.scss +5 -0
  246. package/dist/css/theme/tokens.scss +266 -0
  247. package/dist/css/theme/typography.module.scss +150 -0
  248. package/dist/global.d.ts +10 -0
  249. package/dist/helpers/activationHandler.d.ts +9 -0
  250. package/dist/helpers/activationHandler.js +23 -0
  251. package/dist/helpers/clickOutside.d.ts +6 -0
  252. package/dist/helpers/clickOutside.js +34 -0
  253. package/dist/helpers/index.d.ts +2 -0
  254. package/dist/helpers/index.js +2 -0
  255. package/dist/index.d.ts +1 -0
  256. package/dist/index.js +2 -0
  257. package/dist/stores/QTheme.d.ts +41 -0
  258. package/dist/stores/QTheme.js +53 -0
  259. package/dist/stores/Quaff.d.ts +31 -0
  260. package/dist/stores/Quaff.js +52 -0
  261. package/dist/utils/clipboard.d.ts +1 -0
  262. package/dist/utils/clipboard.js +11 -0
  263. package/dist/utils/colors.d.ts +10 -0
  264. package/dist/utils/colors.js +102 -0
  265. package/dist/utils/fields.d.ts +1 -0
  266. package/dist/utils/fields.js +14 -0
  267. package/dist/utils/index.d.ts +0 -0
  268. package/dist/utils/index.js +1 -0
  269. package/dist/utils/props.d.ts +9 -0
  270. package/dist/utils/props.js +31 -0
  271. package/dist/utils/string.d.ts +10 -0
  272. package/dist/utils/string.js +78 -0
  273. package/dist/utils/types.d.ts +42 -0
  274. package/dist/utils/types.js +7 -0
  275. package/dist/utils/types.json +1 -0
  276. package/dist/utils/watchable.d.ts +2 -0
  277. package/dist/utils/watchable.js +22 -0
  278. package/package.json +66 -0
@@ -0,0 +1,34 @@
1
+ export const QCodeBlockDocsProps = [
2
+ {
3
+ name: "language",
4
+ type: "string",
5
+ optional: false,
6
+ clickableType: false,
7
+ description: "Language to use for highlighting.",
8
+ default: "",
9
+ },
10
+ {
11
+ name: "code",
12
+ type: "string",
13
+ optional: true,
14
+ clickableType: false,
15
+ description: "Code to highlight.",
16
+ default: "",
17
+ },
18
+ {
19
+ name: "title",
20
+ type: "string",
21
+ optional: true,
22
+ clickableType: false,
23
+ description: "Title to display above the code.",
24
+ default: "undefined",
25
+ },
26
+ {
27
+ name: "copiable",
28
+ type: "boolean",
29
+ optional: true,
30
+ clickableType: false,
31
+ description: "Wether the code should be copiable or not.",
32
+ default: "false",
33
+ },
34
+ ];
@@ -0,0 +1,20 @@
1
+ export interface QCodeBlockProps {
2
+ /**
3
+ * Language to use for highlighting.
4
+ */
5
+ language: string;
6
+ /**
7
+ * Code to highlight.
8
+ */
9
+ code?: string;
10
+ /**
11
+ * Title to display above the code.
12
+ * @default undefined
13
+ */
14
+ title?: string;
15
+ /**
16
+ * Wether the code should be copiable or not.
17
+ * @default false
18
+ */
19
+ copiable?: boolean;
20
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,80 @@
1
+ <script>import { createClasses } from "../../utils/props";
2
+ import { createEventDispatcher } from "svelte";
3
+ import QBtn from "../button/QBtn.svelte";
4
+ import { clickOutsideDialog } from "../../helpers";
5
+ export let value = true, noBtn = false, btnContent = void 0, btnAttrs = {}, position = "default", modal = false, fullscreen = false, persistent = false, userClasses = void 0;
6
+ export { userClasses as class };
7
+ const emit = createEventDispatcher();
8
+ let dialogElement;
9
+ $:
10
+ canHideOnClickOutside = value === true && persistent !== true;
11
+ $:
12
+ positionClass = ["top", "right", "bottom", "left"].includes(position) ? position : void 0;
13
+ $:
14
+ classes = createClasses([
15
+ "q-dialog",
16
+ value && "active",
17
+ positionClass,
18
+ modal && "modal",
19
+ fullscreen && "max",
20
+ userClasses
21
+ ]);
22
+ $:
23
+ value === true ? modal ? dialogElement?.showModal() : dialogElement?.show() : dialogElement?.close();
24
+ export function hide() {
25
+ if (value === true) {
26
+ value = false;
27
+ }
28
+ }
29
+ export function show() {
30
+ if (value === false) {
31
+ value = true;
32
+ }
33
+ }
34
+ export function toggle(e) {
35
+ value = !value;
36
+ e.stopPropagation();
37
+ }
38
+ function addAnimation() {
39
+ if (persistent && value === true) {
40
+ dialogElement?.classList.add("animating");
41
+ setTimeout(() => {
42
+ dialogElement?.classList.remove("animating");
43
+ }, 150);
44
+ }
45
+ }
46
+ function handleKeyboardHide(e) {
47
+ if (canHideOnClickOutside) {
48
+ hide();
49
+ } else {
50
+ addAnimation();
51
+ e.preventDefault();
52
+ }
53
+ }
54
+ function handleClickHide() {
55
+ if (canHideOnClickOutside) {
56
+ hide();
57
+ } else {
58
+ addAnimation();
59
+ }
60
+ }
61
+ </script>
62
+
63
+ {#if noBtn === false}
64
+ <QBtn {...btnAttrs} on:click={toggle} on:click={(event) => emit("btnClick", event)}>
65
+ <slot name="button">
66
+ {btnContent || ""}
67
+ </slot>
68
+ </QBtn>
69
+ {/if}
70
+
71
+ <dialog
72
+ use:clickOutsideDialog={handleClickHide}
73
+ class={classes}
74
+ open={value}
75
+ {...$$restProps}
76
+ bind:this={dialogElement}
77
+ on:cancel={handleKeyboardHide}
78
+ >
79
+ <slot />
80
+ </dialog>
@@ -0,0 +1,37 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { QDialogProps } from "./props";
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ value?: boolean | undefined;
7
+ noBtn?: QDialogProps["noBtn"];
8
+ btnContent?: QDialogProps["btnContent"];
9
+ btnAttrs?: QDialogProps["btnAttrs"];
10
+ position?: QDialogProps["position"];
11
+ modal?: QDialogProps["modal"];
12
+ fullscreen?: QDialogProps["fullscreen"];
13
+ persistent?: QDialogProps["persistent"];
14
+ class?: string | undefined;
15
+ hide?: (() => void) | undefined;
16
+ show?: (() => void) | undefined;
17
+ toggle?: ((e: MouseEvent) => void) | undefined;
18
+ };
19
+ events: {
20
+ btnClick: CustomEvent<any>;
21
+ } & {
22
+ [evt: string]: CustomEvent<any>;
23
+ };
24
+ slots: {
25
+ button: {};
26
+ default: {};
27
+ };
28
+ };
29
+ export type QDialogProps = typeof __propDef.props;
30
+ export type QDialogEvents = typeof __propDef.events;
31
+ export type QDialogSlots = typeof __propDef.slots;
32
+ export default class QDialog extends SvelteComponentTyped<QDialogProps, QDialogEvents, QDialogSlots> {
33
+ get hide(): any;
34
+ get show(): any;
35
+ get toggle(): any;
36
+ }
37
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "$utils/types";
2
+ export declare let QDialogDocs: QComponentDocs;
@@ -0,0 +1,11 @@
1
+ import { QDialogDocsProps } from "./docs.props";
2
+ export let QDialogDocs = {
3
+ name: "QDialog",
4
+ description: "Dialogs provide important prompts in a user flow.",
5
+ docs: {
6
+ props: QDialogDocsProps,
7
+ slots: [],
8
+ methods: [],
9
+ events: [],
10
+ },
11
+ };
@@ -0,0 +1,16 @@
1
+ export declare const QBtnDocsProps: {
2
+ name: string;
3
+ type: string;
4
+ optional: boolean;
5
+ clickableType: boolean;
6
+ description: string;
7
+ default: string;
8
+ }[];
9
+ export declare const QDialogDocsProps: {
10
+ name: string;
11
+ type: string;
12
+ optional: boolean;
13
+ clickableType: boolean;
14
+ description: string;
15
+ default: string;
16
+ }[];
@@ -0,0 +1,148 @@
1
+ export const QBtnDocsProps = [
2
+ {
3
+ name: "disable",
4
+ type: "boolean",
5
+ optional: true,
6
+ clickableType: false,
7
+ description: "Puts the button in a disabled state, making it unclickable.",
8
+ default: "false",
9
+ },
10
+ {
11
+ name: "flat",
12
+ type: "boolean",
13
+ optional: true,
14
+ clickableType: false,
15
+ description: "Use flat design for the button, removing its elevation and background-color.",
16
+ default: "false",
17
+ },
18
+ {
19
+ name: "icon",
20
+ type: "string",
21
+ optional: true,
22
+ clickableType: false,
23
+ description: "Name of the leading icon to use for the button.",
24
+ default: "undefined",
25
+ },
26
+ {
27
+ name: "label",
28
+ type: "string",
29
+ optional: true,
30
+ clickableType: false,
31
+ description: "Text to use for the button.",
32
+ default: "undefined",
33
+ },
34
+ {
35
+ name: "loading",
36
+ type: "boolean",
37
+ optional: true,
38
+ clickableType: false,
39
+ description: "Puts the button in a loading state, adding a loader as the leading icon.",
40
+ default: "false",
41
+ },
42
+ {
43
+ name: "outline",
44
+ type: "boolean",
45
+ optional: true,
46
+ clickableType: false,
47
+ description: "Use outline design for the button, adding a border around it.",
48
+ default: "false",
49
+ },
50
+ {
51
+ name: "rectangle",
52
+ type: "boolean",
53
+ optional: true,
54
+ clickableType: false,
55
+ description: "Use rectangle design for the button, removing the large border-radius.",
56
+ default: "false",
57
+ },
58
+ {
59
+ name: "to",
60
+ type: "string",
61
+ optional: true,
62
+ clickableType: false,
63
+ description: 'Makes the button navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id").',
64
+ default: "undefined",
65
+ },
66
+ {
67
+ name: "unelevated",
68
+ type: "boolean",
69
+ optional: true,
70
+ clickableType: false,
71
+ description: "Removes the button's elevation.",
72
+ default: "false",
73
+ },
74
+ {
75
+ name: "size",
76
+ type: "QBtnSizeOptions",
77
+ optional: true,
78
+ clickableType: true,
79
+ description: "Size of the button.",
80
+ default: "md",
81
+ },
82
+ ];
83
+ export const QDialogDocsProps = [
84
+ {
85
+ name: "value",
86
+ type: "boolean",
87
+ optional: true,
88
+ clickableType: false,
89
+ description: "The value indicating whether the dialog is visible or hidden.",
90
+ default: "false",
91
+ },
92
+ {
93
+ name: "noBtn",
94
+ type: "boolean",
95
+ optional: true,
96
+ clickableType: false,
97
+ description: "Wether the dialog should have a trigger button or not.",
98
+ default: "false",
99
+ },
100
+ {
101
+ name: "btnContent",
102
+ type: "string",
103
+ optional: true,
104
+ clickableType: false,
105
+ description: "The content to be displayed on the dialog button.",
106
+ default: "undefined",
107
+ },
108
+ {
109
+ name: "btnAttrs",
110
+ type: "QBtnProps",
111
+ optional: true,
112
+ clickableType: false,
113
+ description: "Additional attributes for the dialog button.",
114
+ default: "{}",
115
+ },
116
+ {
117
+ name: "position",
118
+ type: "QDialogPositionOptions",
119
+ optional: true,
120
+ clickableType: true,
121
+ description: "The position of the dialog relative to the viewport.",
122
+ default: '"default"',
123
+ },
124
+ {
125
+ name: "modal",
126
+ type: "boolean",
127
+ optional: true,
128
+ clickableType: false,
129
+ description: "Determines whether the dialog is displayed as a modal or not.",
130
+ default: "false",
131
+ },
132
+ {
133
+ name: "fullscreen",
134
+ type: "boolean",
135
+ optional: true,
136
+ clickableType: false,
137
+ description: "Determines whether the dialog is displayed in fullscreen mode.",
138
+ default: "false",
139
+ },
140
+ {
141
+ name: "persistent",
142
+ type: "boolean",
143
+ optional: true,
144
+ clickableType: false,
145
+ description: "Determines whether the dialog remains persistent, not closing on click outside.",
146
+ default: "false",
147
+ },
148
+ ];
@@ -0,0 +1,27 @@
1
+ dialog.q-dialog {
2
+ animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);
3
+
4
+ &:is(.left, .right, .top, .bottom) {
5
+ border-radius: 0;
6
+ }
7
+ &.modal::backdrop {
8
+ display: block;
9
+ background-color: rgba(0, 0, 0, 0.5);
10
+ }
11
+
12
+ &.animating {
13
+ animation: shake 0.15s;
14
+ }
15
+ }
16
+
17
+ @keyframes shake {
18
+ 0% {
19
+ scale: 1;
20
+ }
21
+ 50% {
22
+ scale: 1.04;
23
+ }
24
+ 100% {
25
+ scale: 1;
26
+ }
27
+ }
@@ -0,0 +1,45 @@
1
+ import type { NativeProps } from "../../utils/types";
2
+ import type { QBtnProps } from "../button/props";
3
+ export type QDialogPositionOptions = "default" | "top" | "right" | "bottom" | "left";
4
+ export interface QDialogProps extends NativeProps {
5
+ /**
6
+ * The value indicating whether the dialog is visible or hidden.
7
+ * @default true
8
+ */
9
+ value: boolean;
10
+ /**
11
+ * Wether the dialog should have a trigger button or not.
12
+ * @default false
13
+ */
14
+ noBtn?: boolean;
15
+ /**
16
+ * The content to be displayed on the dialog button.
17
+ * @default undefined
18
+ */
19
+ btnContent?: string;
20
+ /**
21
+ * Additional attributes for the dialog button.
22
+ * @default {}
23
+ */
24
+ btnAttrs?: QBtnProps;
25
+ /**
26
+ * The position of the dialog relative to the viewport.
27
+ * @default "default"
28
+ */
29
+ position?: QDialogPositionOptions;
30
+ /**
31
+ * Determines whether the dialog is displayed as a modal or not.
32
+ * @default false
33
+ */
34
+ modal?: boolean;
35
+ /**
36
+ * Determines whether the dialog is displayed in fullscreen mode.
37
+ * @default false
38
+ */
39
+ fullscreen?: boolean;
40
+ /**
41
+ * Determines whether the dialog remains persistent, not closing on click outside.
42
+ * @default false
43
+ */
44
+ persistent?: boolean;
45
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ <script>import { navigating } from "$app/stores";
2
+ import { createClasses, createStyles } from "../../utils/props";
3
+ import { getContext } from "svelte";
4
+ import { clickOutside } from "../../helpers";
5
+ export let value = true, side = "left", width = 300, breakpoint = 1023, showIfAbove = false, behavior = "default", bordered = false, elevated = false, overlay = false, persistent = false, noSwipeOpen = false, noSwipeClose = false, noSwipeBackdrop = false, userClasses = void 0, userStyles = void 0;
6
+ export { userClasses as class, userStyles as style };
7
+ $:
8
+ canHideOnClickOutside = value === true && persistent === false || overlay === true;
9
+ $:
10
+ belowBreakpoint = behavior === "mobile" === true || behavior !== "desktop" && /** TODO: Get Layout width */
11
+ 1300 <= breakpoint;
12
+ $:
13
+ widthStyle = ctx === void 0 ? isNaN(Number(width)) ? width : `${width}px` : void 0;
14
+ $:
15
+ hideOnRouteChange = persistent !== true || overlay === true;
16
+ export const show = (e) => {
17
+ if (value !== true) {
18
+ value = true;
19
+ e && e.stopPropagation();
20
+ }
21
+ };
22
+ export const hide = () => {
23
+ if (value === true && canHideOnClickOutside === true) {
24
+ value = false;
25
+ }
26
+ };
27
+ export const toggle = (e) => {
28
+ value = !value;
29
+ e && e.stopPropagation();
30
+ };
31
+ $:
32
+ if ($navigating && hideOnRouteChange) {
33
+ hide();
34
+ }
35
+ let ctx = getContext("layout");
36
+ function prepareZIndexClass(context, overlayProp, sideProp) {
37
+ let drawer = sideProp === "left" ? context.drawerLeft : context.drawerRight;
38
+ let pos;
39
+ for (pos of ["top", "bottom"]) {
40
+ if (!drawer.offset[pos] && overlayProp) {
41
+ drawer.overlay = true;
42
+ return "above";
43
+ }
44
+ }
45
+ }
46
+ let drawerType;
47
+ $:
48
+ drawerType = side === "left" ? "drawerLeft" : "drawerRight";
49
+ $:
50
+ classes = createClasses([
51
+ "q-drawer",
52
+ "surface",
53
+ side,
54
+ value && "active",
55
+ overlay && "overlay",
56
+ bordered && "bordered",
57
+ $ctx && $ctx[drawerType].offset.top && "offset-top",
58
+ $ctx && $ctx[drawerType].offset.bottom && "offset-bottom",
59
+ $ctx && $ctx[drawerType].fixed && "fixed",
60
+ getBorderRadiusClasses(side, overlay, $ctx),
61
+ $ctx && prepareZIndexClass($ctx, overlay, side),
62
+ userClasses
63
+ ]);
64
+ $:
65
+ style = createStyles(
66
+ {
67
+ [side === "left" ? "--leftDrawerWidth" : "--rightDrawerWidth"]: widthStyle
68
+ },
69
+ userStyles
70
+ );
71
+ function getBorderRadiusClasses(sideProp, overlayProp, context) {
72
+ let prefix = "border-radius" + (sideProp === "left" ? "__right" : "__left");
73
+ const shouldHaveRadius = (pos) => {
74
+ if (!context)
75
+ return void 0;
76
+ let appbarEl = pos === "top" ? context["header"] : context["footer"];
77
+ if (appbarEl && appbarEl.display && !context[drawerType].offset[pos] && !overlayProp)
78
+ return void 0;
79
+ return `${prefix}--${pos}`;
80
+ };
81
+ return createClasses([shouldHaveRadius("top"), shouldHaveRadius("bottom")]);
82
+ }
83
+ </script>
84
+
85
+ <div use:clickOutside={hide} class={classes} {style}>
86
+ <slot />
87
+ </div>
@@ -0,0 +1,39 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { QDrawerProps } from "./props";
3
+ declare const __propDef: {
4
+ props: {
5
+ value?: QDrawerProps["value"];
6
+ side?: QDrawerProps["side"];
7
+ width?: QDrawerProps["width"];
8
+ breakpoint?: QDrawerProps["breakpoint"];
9
+ showIfAbove?: QDrawerProps["showIfAbove"];
10
+ behavior?: QDrawerProps["behavior"];
11
+ bordered?: QDrawerProps["bordered"];
12
+ elevated?: QDrawerProps["elevated"];
13
+ overlay?: QDrawerProps["overlay"];
14
+ persistent?: QDrawerProps["persistent"];
15
+ noSwipeOpen?: QDrawerProps["noSwipeOpen"];
16
+ noSwipeClose?: QDrawerProps["noSwipeClose"];
17
+ noSwipeBackdrop?: QDrawerProps["noSwipeBackdrop"];
18
+ class?: string | undefined;
19
+ style?: string | undefined;
20
+ show?: ((e?: MouseEvent) => void) | undefined;
21
+ hide?: (() => void) | undefined;
22
+ toggle?: ((e?: MouseEvent) => void) | undefined;
23
+ };
24
+ events: {
25
+ [evt: string]: CustomEvent<any>;
26
+ };
27
+ slots: {
28
+ default: {};
29
+ };
30
+ };
31
+ export type QDrawerProps = typeof __propDef.props;
32
+ export type QDrawerEvents = typeof __propDef.events;
33
+ export type QDrawerSlots = typeof __propDef.slots;
34
+ export default class QDrawer extends SvelteComponentTyped<QDrawerProps, QDrawerEvents, QDrawerSlots> {
35
+ get show(): any;
36
+ get hide(): any;
37
+ get toggle(): any;
38
+ }
39
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "$utils/types";
2
+ export declare let QDrawerDocs: QComponentDocs;
@@ -0,0 +1,11 @@
1
+ import { QDrawerDocsProps } from "./docs.props";
2
+ export let QDrawerDocs = {
3
+ name: "QDrawer",
4
+ description: "Navigation drawers provide ergonomic access to destinations in an app",
5
+ docs: {
6
+ props: QDrawerDocsProps,
7
+ slots: [],
8
+ methods: [],
9
+ events: [],
10
+ },
11
+ };
@@ -0,0 +1,8 @@
1
+ export declare const QDrawerDocsProps: {
2
+ name: string;
3
+ type: string;
4
+ optional: boolean;
5
+ clickableType: boolean;
6
+ description: string;
7
+ default: string;
8
+ }[];