@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,44 @@
1
+ import type { UseAlignProps } from "../../composables/use-align";
2
+ import type { NativeProps } from "../../utils/types";
3
+ export type QCardFillColors = "primary" | "secondary" | "tertiary";
4
+ export interface QCardProps extends NativeProps {
5
+ /**
6
+ * Puts a border around the card.
7
+ * @default false
8
+ */
9
+ bordered?: boolean;
10
+ /**
11
+ * Defines the fill color of the card.
12
+ * @default undefined
13
+ */
14
+ fill?: boolean | QCardFillColors;
15
+ /**
16
+ * Makes the card flat, removing its elevation.
17
+ * @default false
18
+ */
19
+ flat?: boolean;
20
+ /**
21
+ * Adds rounded corners to the card.
22
+ * @default false
23
+ */
24
+ round?: boolean;
25
+ /**
26
+ * Sets the title of the card.
27
+ * @default undefined
28
+ */
29
+ title?: string;
30
+ }
31
+ export interface QCardSectionProps extends NativeProps {
32
+ /**
33
+ * Lays out the section content horizontally.
34
+ * @default false
35
+ */
36
+ horizontal?: boolean;
37
+ }
38
+ export interface QCardActionsProps extends UseAlignProps, NativeProps {
39
+ /**
40
+ * Lays out the action items vertically.
41
+ * @default false
42
+ */
43
+ vertical: boolean;
44
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ <script>import { createClasses } from "../../utils/props";
2
+ export let value = false, label = "", disable = false, userClasses = void 0;
3
+ export { userClasses as class };
4
+ $:
5
+ classes = createClasses([disable && "disabled"], {
6
+ component: "q-checkbox",
7
+ userClasses
8
+ });
9
+ </script>
10
+
11
+ <label class={classes} {...$$restProps}>
12
+ <input type="checkbox" bind:checked={value} disabled={disable} />
13
+ <span>{label}</span>
14
+ </label>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { QCheckboxProps } from "./props";
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ value?: boolean | undefined;
7
+ label?: QCheckboxProps["label"];
8
+ disable?: QCheckboxProps["disable"];
9
+ class?: string | undefined;
10
+ };
11
+ events: {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export type QCheckboxProps = typeof __propDef.props;
17
+ export type QCheckboxEvents = typeof __propDef.events;
18
+ export type QCheckboxSlots = typeof __propDef.slots;
19
+ export default class QCheckbox extends SvelteComponentTyped<QCheckboxProps, QCheckboxEvents, QCheckboxSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "../../utils/types";
2
+ export declare let QCheckboxDocs: QComponentDocs;
@@ -0,0 +1,17 @@
1
+ import { QCheckboxDocsProps } from "./docs.props";
2
+ export let QCheckboxDocs = {
3
+ name: "QCheckbox",
4
+ description: "Checkboxes allow the user to select one or more items from a set.",
5
+ docs: {
6
+ props: QCheckboxDocsProps,
7
+ slots: [],
8
+ methods: [],
9
+ events: [
10
+ {
11
+ name: "change",
12
+ type: "(e: Event) => void",
13
+ description: "Emitted when the checkbox is checked or unchecked.",
14
+ },
15
+ ],
16
+ },
17
+ };
@@ -0,0 +1,8 @@
1
+ export declare const QCheckboxDocsProps: {
2
+ name: string;
3
+ type: string;
4
+ optional: boolean;
5
+ clickableType: boolean;
6
+ description: string;
7
+ default: string;
8
+ }[];
@@ -0,0 +1,26 @@
1
+ export const QCheckboxDocsProps = [
2
+ {
3
+ name: "value",
4
+ type: "boolean",
5
+ optional: false,
6
+ clickableType: false,
7
+ description: "Controls the checked state of the checkbox.",
8
+ default: "",
9
+ },
10
+ {
11
+ name: "label",
12
+ type: "string",
13
+ optional: true,
14
+ clickableType: false,
15
+ description: "Sets the label for the checkbox.",
16
+ default: "undefined",
17
+ },
18
+ {
19
+ name: "disable",
20
+ type: "boolean",
21
+ optional: true,
22
+ clickableType: false,
23
+ description: "Puts the checkbox in a disabled state, making it unclickable.",
24
+ default: "false",
25
+ },
26
+ ];
@@ -0,0 +1,3 @@
1
+ .q-checkbox {
2
+ @include selection(checkbox);
3
+ }
@@ -0,0 +1,17 @@
1
+ import type { NativeProps } from "../../utils/types";
2
+ export interface QCheckboxProps extends NativeProps {
3
+ /**
4
+ * Controls the checked state of the checkbox.
5
+ */
6
+ value: boolean;
7
+ /**
8
+ * Sets the label for the checkbox.
9
+ * @default undefined
10
+ */
11
+ label?: string;
12
+ /**
13
+ * Puts the checkbox in a disabled state, making it unclickable.
14
+ * @default false
15
+ */
16
+ disable?: boolean;
17
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,62 @@
1
+ <script>import { activationHandler } from "../../helpers/activationHandler";
2
+ import { createClasses } from "../../utils/props";
3
+ import { createEventDispatcher } from "svelte";
4
+ import QIcon from "../icon/QIcon.svelte";
5
+ export let content = void 0, icon = void 0, iconRight = void 0, disable = false, responsive = false, vertical = false, round = false, outlined = false, size = "md", tabindex = void 0, href = void 0, userClasses = void 0;
6
+ export { userClasses as class };
7
+ const emit = createEventDispatcher();
8
+ $:
9
+ img = icon?.startsWith("img:") ? icon.slice(4) : void 0;
10
+ $:
11
+ imgRight = iconRight?.startsWith("img:") ? iconRight.slice(4) : void 0;
12
+ $:
13
+ sizeClass = ["sm", "lg"].includes(size) ? size : void 0;
14
+ $:
15
+ classes = createClasses(
16
+ [vertical && "vertical", round && "rounded", (outlined || disable) && "bordered", sizeClass],
17
+ {
18
+ component: "q-chip",
19
+ userClasses
20
+ }
21
+ );
22
+ $:
23
+ imgClass = createClasses([responsive && "responsive"], {
24
+ component: "q-chip",
25
+ element: "img"
26
+ });
27
+ $:
28
+ tab = disable ? -1 : tabindex ?? 0;
29
+ </script>
30
+
31
+ <a
32
+ use:activationHandler={{ disable, callback: (e) => emit("activated", e) }}
33
+ {href}
34
+ class={classes}
35
+ tabindex={tab}
36
+ {...$$restProps}
37
+ aria-disabled={disable || undefined}
38
+ >
39
+ {#if $$slots.leading}
40
+ <slot name="leading" />
41
+ {:else if img}
42
+ <img class={imgClass} src={img} alt="{content || 'Slotted'} chip" />
43
+ {:else if icon}
44
+ <QIcon name={icon} class="q-chip__icon" />
45
+ {/if}
46
+ {#if content}
47
+ {content}
48
+ {:else}
49
+ <slot />
50
+ {/if}
51
+ {#if $$slots.trailing}
52
+ <slot name="trailing" />
53
+ {:else if imgRight}
54
+ <img
55
+ class="{imgClass} q-chip__img--trailing"
56
+ src={imgRight}
57
+ alt="{content || 'Slotted'} chip"
58
+ />
59
+ {:else if iconRight}
60
+ <QIcon name={iconRight} class="q-chip__icon" />
61
+ {/if}
62
+ </a>
@@ -0,0 +1,35 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { QChipProps } from "./props";
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ content?: QChipProps["content"];
7
+ icon?: QChipProps["icon"];
8
+ iconRight?: QChipProps["iconRight"];
9
+ disable?: QChipProps["disable"];
10
+ responsive?: QChipProps["responsive"];
11
+ vertical?: QChipProps["vertical"];
12
+ round?: QChipProps["round"];
13
+ outlined?: QChipProps["outlined"];
14
+ size?: QChipProps["size"];
15
+ tabindex?: QChipProps["tabindex"];
16
+ href?: QChipProps["href"];
17
+ class?: string | undefined;
18
+ };
19
+ events: {
20
+ activated: CustomEvent<any>;
21
+ } & {
22
+ [evt: string]: CustomEvent<any>;
23
+ };
24
+ slots: {
25
+ leading: {};
26
+ default: {};
27
+ trailing: {};
28
+ };
29
+ };
30
+ export type QChipProps = typeof __propDef.props;
31
+ export type QChipEvents = typeof __propDef.events;
32
+ export type QChipSlots = typeof __propDef.slots;
33
+ export default class QChip extends SvelteComponentTyped<QChipProps, QChipEvents, QChipSlots> {
34
+ }
35
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { QComponentDocs } from "$utils/types";
2
+ export declare let QChipDocs: QComponentDocs;
@@ -0,0 +1,30 @@
1
+ import { QChipDocsProps } from "./docs.props";
2
+ export let QChipDocs = {
3
+ name: "QChip",
4
+ description: "Chips help people enter information, make selections, filter content, or trigger actions. They represent options in a specific context, unlike buttons, which are persistent.",
5
+ docs: {
6
+ props: QChipDocsProps,
7
+ slots: [
8
+ {
9
+ name: "default",
10
+ description: 'The default slot for the chip\'s content. Is overwritten by the "content" prop',
11
+ },
12
+ {
13
+ name: "leading",
14
+ description: "Slot for content to display at the start of the chip. Use with an icon or a media.",
15
+ },
16
+ {
17
+ name: "trailing",
18
+ description: "Slot for content to display at the end of the chip. Use with an icon or a media.",
19
+ },
20
+ ],
21
+ methods: [],
22
+ events: [
23
+ {
24
+ name: "click",
25
+ type: "(e: MouseEvent) => void",
26
+ description: "Emitted when the user clicks on the chip.",
27
+ },
28
+ ],
29
+ },
30
+ };
@@ -0,0 +1,8 @@
1
+ export declare const QChipDocsProps: {
2
+ name: string;
3
+ type: string;
4
+ optional: boolean;
5
+ clickableType: boolean;
6
+ description: string;
7
+ default: string;
8
+ }[];
@@ -0,0 +1,90 @@
1
+ export const QChipDocsProps = [
2
+ {
3
+ name: "content",
4
+ type: "string",
5
+ optional: true,
6
+ clickableType: false,
7
+ description: "The content inside the chip. Will overwrite the default slot.",
8
+ default: "undefined",
9
+ },
10
+ {
11
+ name: "icon",
12
+ type: "string",
13
+ optional: true,
14
+ clickableType: false,
15
+ description: 'Name of the leading icon to use for the chip. If starts with "img:", will be used as an image src instead.',
16
+ default: "undefined",
17
+ },
18
+ {
19
+ name: "iconRight",
20
+ type: "string",
21
+ optional: true,
22
+ clickableType: false,
23
+ description: 'Name of the trailing icon to use for the chip. If starts with "img:", will be used as an image src instead.',
24
+ default: "undefined",
25
+ },
26
+ {
27
+ name: "disable",
28
+ type: "boolean",
29
+ optional: true,
30
+ clickableType: false,
31
+ description: "Puts the chip in a disabled state, making it unclickable.",
32
+ default: "false",
33
+ },
34
+ {
35
+ name: "responsive",
36
+ type: "boolean",
37
+ optional: true,
38
+ clickableType: false,
39
+ description: "Makes leading and trailing images responsive, making them take more space.",
40
+ default: "false",
41
+ },
42
+ {
43
+ name: "vertical",
44
+ type: "boolean",
45
+ optional: true,
46
+ clickableType: false,
47
+ description: "If true, the chip will display its content vertically.",
48
+ default: "false",
49
+ },
50
+ {
51
+ name: "round",
52
+ type: "boolean",
53
+ optional: true,
54
+ clickableType: false,
55
+ description: "Use round design for the chip, adding a large border-radius to it.",
56
+ default: "false",
57
+ },
58
+ {
59
+ name: "outlined",
60
+ type: "boolean",
61
+ optional: true,
62
+ clickableType: false,
63
+ description: "Use outline design for the chip, adding a border around it.",
64
+ default: "false",
65
+ },
66
+ {
67
+ name: "size",
68
+ type: '"small" | "medium" | "large"',
69
+ optional: true,
70
+ clickableType: false,
71
+ description: "Size of the chip.",
72
+ default: "small",
73
+ },
74
+ {
75
+ name: "tabindex",
76
+ type: "string | number",
77
+ optional: true,
78
+ clickableType: false,
79
+ description: "Tabindex of the chip.",
80
+ default: "undefined",
81
+ },
82
+ {
83
+ name: "href",
84
+ type: "string",
85
+ optional: true,
86
+ clickableType: false,
87
+ description: 'Makes the chip navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id").',
88
+ default: "undefined",
89
+ },
90
+ ];
@@ -0,0 +1,83 @@
1
+ // QChip
2
+ .q-chip {
3
+ box-sizing: content-box;
4
+ display: inline-flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ height: 2.5rem;
8
+ min-width: 2.5rem;
9
+ font-size: 0.875rem;
10
+ font-weight: 500;
11
+ background-color: var(--secondary);
12
+ color: var(--on-secondary);
13
+ text-transform: none;
14
+ border-radius: 0.5em;
15
+ transition: var(--speed3) transform, var(--speed3) border-radius, var(--speed3) padding;
16
+ line-height: normal;
17
+ text-decoration: none;
18
+ cursor: pointer;
19
+ border: none;
20
+
21
+ @extend .ripple;
22
+ @extend .no-select;
23
+ @include padding("x", "md");
24
+ @include margin("x");
25
+ @include gap("md");
26
+ @include btn-image("chip");
27
+
28
+ &.q-chip--sm {
29
+ height: 2rem;
30
+ min-width: 2rem;
31
+ }
32
+
33
+ &.q-chip--lg {
34
+ height: 3rem;
35
+ min-width: 3rem;
36
+ }
37
+
38
+ &.q-chip--bordered {
39
+ @include transparent($ripple: true);
40
+ @include border(var(--secondary));
41
+ color: var(--secondary);
42
+ }
43
+
44
+ &.q-chip--rounded {
45
+ border-radius: 1.25rem;
46
+
47
+ &.q-chip--sm {
48
+ border-radius: 1rem;
49
+ }
50
+
51
+ &.q-chip--lg {
52
+ border-radius: 1.5rem;
53
+ }
54
+ }
55
+
56
+ &.q-chip--filled {
57
+ background-color: var(--secondary-container);
58
+ color: var(--on-secondary-container);
59
+ border: none;
60
+ }
61
+
62
+ &.q-chip--vertical {
63
+ flex-direction: column;
64
+ height: auto;
65
+ max-height: none;
66
+
67
+ @include padding("y");
68
+ @include gap("xs");
69
+ }
70
+
71
+ &.q-chip[aria-disabled="true"] {
72
+ @extend .disabled;
73
+ &.q-chip--bordered {
74
+ border-color: var(--on-surface);
75
+ }
76
+ }
77
+ }
78
+
79
+ // QChip icons
80
+ .q-chip > .q-icon {
81
+ --size: 1.25rem;
82
+ margin-inline: -0.5rem;
83
+ }
@@ -0,0 +1,59 @@
1
+ import type { NativeProps } from "../../utils/types";
2
+ export type QChipSizeOptions = "sm" | "md" | "lg";
3
+ export interface QChipProps extends NativeProps {
4
+ /**
5
+ * The content inside the chip. Will overwrite the default slot.
6
+ * @default undefined
7
+ */
8
+ content?: string;
9
+ /**
10
+ * Name of the leading icon to use for the chip. If starts with "img:", will be used as an image src instead.
11
+ * @default undefined
12
+ */
13
+ icon?: string;
14
+ /**
15
+ * Name of the trailing icon to use for the chip. If starts with "img:", will be used as an image src instead.
16
+ * @default undefined
17
+ */
18
+ iconRight?: string;
19
+ /**
20
+ * Puts the chip in a disabled state, making it unclickable.
21
+ * @default false
22
+ */
23
+ disable?: boolean;
24
+ /**
25
+ * Makes leading and trailing images responsive, making them take more space.
26
+ * @default false
27
+ */
28
+ responsive?: boolean;
29
+ /**
30
+ * If true, the chip will display its content vertically.
31
+ * @default false
32
+ */
33
+ vertical?: boolean;
34
+ /**
35
+ * Use round design for the chip, adding a large border-radius to it.
36
+ * @default false
37
+ */
38
+ round?: boolean;
39
+ /**
40
+ * Use outline design for the chip, adding a border around it.
41
+ * @default false
42
+ */
43
+ outlined?: boolean;
44
+ /**
45
+ * Size of the chip.
46
+ * @default small
47
+ */
48
+ size?: QChipSizeOptions;
49
+ /**
50
+ * Tabindex of the chip.
51
+ * @default undefined
52
+ */
53
+ tabindex?: number;
54
+ /**
55
+ * Makes the chip navigational. Can be used with the router (e.g to="/home") or as a normal href attribute (e.g to="#section-id").
56
+ * @default undefined
57
+ */
58
+ href?: string;
59
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,71 @@
1
+ <script>import Prism from "prismjs";
2
+ import "prismjs/themes/prism-twilight.css";
3
+ import "prismjs/components/prism-typescript";
4
+ import "prism-svelte";
5
+ import { QBtn } from "../..";
6
+ export let language, code = "/* No code found */", title = void 0, copiable = void 0;
7
+ let btnContent = "Copy";
8
+ let btnColor = "primary";
9
+ $:
10
+ highlighted = Prism.highlight(code, Prism.languages[language], language);
11
+ async function copyCode() {
12
+ try {
13
+ if (navigator.clipboard.write) {
14
+ let blob = new Blob([code], { type: "text/plain" });
15
+ let item = new ClipboardItem({ "text/plain": blob });
16
+ await navigator.clipboard.write([item]);
17
+ } else {
18
+ await navigator.clipboard.writeText(code);
19
+ }
20
+ btnContent = "Copied!";
21
+ btnColor = "green";
22
+ setTimeout(() => {
23
+ btnContent = "Copy";
24
+ btnColor = "primary";
25
+ }, 3e3);
26
+ } catch (e) {
27
+ btnContent = "Error while copying...";
28
+ btnColor = "error";
29
+ setTimeout(() => {
30
+ btnContent = "Copy";
31
+ btnColor = "primary";
32
+ }, 3e3);
33
+ }
34
+ }
35
+ </script>
36
+
37
+ <div class="q-code-block">
38
+ {#if copiable}
39
+ <div class="flex between-align middle-align q-pb-sm">
40
+ <h4 class="q-ma-none q-pr-lg">{title}</h4>
41
+ <QBtn
42
+ class="{btnColor}-border {btnColor}-text"
43
+ size="sm"
44
+ icon="content_copy"
45
+ outline
46
+ on:click={copyCode}
47
+ >
48
+ {btnContent}
49
+ </QBtn>
50
+ </div>
51
+ {:else if title}
52
+ <h4>{title}</h4>
53
+ {/if}
54
+ <pre class="language-svelte"><code>{@html highlighted}</code></pre>
55
+ </div>
56
+
57
+ <style>
58
+ .q-code-block {
59
+ border-radius: 0.5em;
60
+ }
61
+
62
+ pre {
63
+ max-height: 400px;
64
+ height: 100%;
65
+ margin: 0;
66
+ }
67
+
68
+ code {
69
+ white-space: pre-wrap;
70
+ }
71
+ </style>
@@ -0,0 +1,23 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import "prismjs/themes/prism-twilight.css";
3
+ import "prismjs/components/prism-typescript";
4
+ import "prism-svelte";
5
+ import type { QCodeBlockProps } from "./props";
6
+ declare const __propDef: {
7
+ props: {
8
+ language: QCodeBlockProps["language"];
9
+ code?: QCodeBlockProps["code"];
10
+ title?: QCodeBlockProps["title"];
11
+ copiable?: QCodeBlockProps["copiable"];
12
+ };
13
+ events: {
14
+ [evt: string]: CustomEvent<any>;
15
+ };
16
+ slots: {};
17
+ };
18
+ export type QCodeBlockProps = typeof __propDef.props;
19
+ export type QCodeBlockEvents = typeof __propDef.events;
20
+ export type QCodeBlockSlots = typeof __propDef.slots;
21
+ export default class QCodeBlock extends SvelteComponentTyped<QCodeBlockProps, QCodeBlockEvents, QCodeBlockSlots> {
22
+ }
23
+ export {};
@@ -0,0 +1,8 @@
1
+ export declare const QCodeBlockDocsProps: {
2
+ name: string;
3
+ type: string;
4
+ optional: boolean;
5
+ clickableType: boolean;
6
+ description: string;
7
+ default: string;
8
+ }[];