@quaffui/quaff 0.1.0-prealpha2 → 0.1.0-prealpha20

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 (355) 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 -41
  12. package/dist/components/avatar/QAvatar.svelte.d.ts +2 -26
  13. package/dist/components/avatar/docs.d.ts +2 -2
  14. package/dist/components/avatar/docs.js +1 -1
  15. package/dist/components/avatar/docs.props.js +22 -4
  16. package/dist/components/avatar/index.scss +6 -1
  17. package/dist/components/avatar/props.d.ts +25 -7
  18. package/dist/components/avatar/props.js +1 -1
  19. package/dist/components/breadcrumbs/QBreadcrumbs.scss +10 -0
  20. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +23 -14
  21. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +2 -22
  22. package/dist/components/breadcrumbs/QBreadcrumbsEl.scss +10 -0
  23. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +64 -48
  24. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +2 -25
  25. package/dist/components/breadcrumbs/docs.d.ts +2 -2
  26. package/dist/components/breadcrumbs/docs.js +1 -1
  27. package/dist/components/breadcrumbs/docs.props.js +28 -26
  28. package/dist/components/breadcrumbs/props.d.ts +26 -24
  29. package/dist/components/button/QBtn.scss +133 -0
  30. package/dist/components/button/QBtn.svelte +94 -41
  31. package/dist/components/button/QBtn.svelte.d.ts +2 -31
  32. package/dist/components/button/docs.d.ts +2 -2
  33. package/dist/components/button/docs.js +1 -1
  34. package/dist/components/button/docs.props.js +47 -13
  35. package/dist/components/button/props.d.ts +35 -13
  36. package/dist/components/card/QCard.scss +25 -0
  37. package/dist/components/card/QCard.svelte +27 -19
  38. package/dist/components/card/QCard.svelte.d.ts +2 -25
  39. package/dist/components/card/QCardActions.scss +10 -0
  40. package/dist/components/card/QCardActions.svelte +14 -15
  41. package/dist/components/card/QCardActions.svelte.d.ts +2 -21
  42. package/dist/components/card/QCardSection.scss +10 -0
  43. package/dist/components/card/QCardSection.svelte +11 -11
  44. package/dist/components/card/QCardSection.svelte.d.ts +2 -22
  45. package/dist/components/card/docs.d.ts +4 -4
  46. package/dist/components/card/docs.js +3 -3
  47. package/dist/components/card/docs.props.js +9 -15
  48. package/dist/components/card/props.d.ts +11 -16
  49. package/dist/components/checkbox/QCheckbox.svelte +8 -9
  50. package/dist/components/checkbox/QCheckbox.svelte.d.ts +2 -20
  51. package/dist/components/checkbox/docs.d.ts +2 -2
  52. package/dist/components/checkbox/docs.js +1 -1
  53. package/dist/components/checkbox/docs.props.js +2 -0
  54. package/dist/components/checkbox/index.scss +7 -1
  55. package/dist/components/checkbox/props.d.ts +2 -2
  56. package/dist/components/chip/QChip.scss +179 -0
  57. package/dist/components/chip/QChip.svelte +98 -55
  58. package/dist/components/chip/QChip.svelte.d.ts +2 -34
  59. package/dist/components/chip/docs.d.ts +2 -2
  60. package/dist/components/chip/docs.js +1 -1
  61. package/dist/components/chip/docs.props.js +28 -42
  62. package/dist/components/chip/props.d.ts +25 -32
  63. package/dist/components/codeBlock/QCodeBlock.svelte +64 -45
  64. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +2 -22
  65. package/dist/components/codeBlock/docs.props.js +11 -1
  66. package/dist/components/codeBlock/props.d.ts +8 -2
  67. package/dist/components/dialog/QDialog.scss +177 -0
  68. package/dist/components/dialog/QDialog.svelte +77 -70
  69. package/dist/components/dialog/QDialog.svelte.d.ts +6 -36
  70. package/dist/components/dialog/docs.d.ts +2 -2
  71. package/dist/components/dialog/docs.js +1 -1
  72. package/dist/components/dialog/docs.props.d.ts +0 -8
  73. package/dist/components/dialog/docs.props.js +4 -108
  74. package/dist/components/dialog/props.d.ts +3 -18
  75. package/dist/components/drawer/QDrawer.scss +45 -0
  76. package/dist/components/drawer/QDrawer.svelte +91 -81
  77. package/dist/components/drawer/QDrawer.svelte.d.ts +6 -38
  78. package/dist/components/drawer/docs.d.ts +2 -2
  79. package/dist/components/drawer/docs.js +1 -1
  80. package/dist/components/drawer/docs.props.js +4 -2
  81. package/dist/components/drawer/props.d.ts +4 -3
  82. package/dist/components/footer/QFooter.scss +42 -0
  83. package/dist/components/footer/QFooter.svelte +67 -12
  84. package/dist/components/footer/QFooter.svelte.d.ts +2 -23
  85. package/dist/components/footer/docs.d.ts +2 -2
  86. package/dist/components/footer/docs.js +1 -1
  87. package/dist/components/footer/docs.props.js +13 -3
  88. package/dist/components/footer/props.d.ts +9 -5
  89. package/dist/components/header/QHeader.scss +54 -0
  90. package/dist/components/header/QHeader.svelte +56 -0
  91. package/dist/components/header/QHeader.svelte.d.ts +3 -0
  92. package/dist/components/header/docs.props.d.ts +24 -0
  93. package/dist/components/header/docs.props.js +88 -0
  94. package/dist/components/header/props.d.ts +23 -0
  95. package/dist/components/header/props.js +1 -0
  96. package/dist/components/icon/QIcon.scss +73 -0
  97. package/dist/components/icon/QIcon.svelte +32 -30
  98. package/dist/components/icon/QIcon.svelte.d.ts +2 -27
  99. package/dist/components/icon/docs.d.ts +2 -2
  100. package/dist/components/icon/docs.js +1 -1
  101. package/dist/components/icon/docs.props.js +11 -9
  102. package/dist/components/icon/props.d.ts +9 -8
  103. package/dist/components/index.d.ts +5 -2
  104. package/dist/components/index.js +5 -2
  105. package/dist/components/input/QInput.svelte +88 -72
  106. package/dist/components/input/QInput.svelte.d.ts +3 -32
  107. package/dist/components/input/docs.d.ts +2 -2
  108. package/dist/components/input/docs.js +2 -8
  109. package/dist/components/input/docs.props.js +39 -13
  110. package/dist/components/input/index.scss +1 -3
  111. package/dist/components/input/props.d.ts +13 -21
  112. package/dist/components/input/props.js +1 -13
  113. package/dist/components/layout/QLayout.scss +178 -0
  114. package/dist/components/layout/QLayout.svelte +101 -81
  115. package/dist/components/layout/QLayout.svelte.d.ts +17 -43
  116. package/dist/components/layout/docs.d.ts +2 -2
  117. package/dist/components/layout/docs.js +1 -1
  118. package/dist/components/layout/docs.props.js +65 -7
  119. package/dist/components/layout/props.d.ts +18 -9
  120. package/dist/components/list/QItem.scss +61 -0
  121. package/dist/components/list/QItem.svelte +73 -51
  122. package/dist/components/list/QItem.svelte.d.ts +2 -33
  123. package/dist/components/list/QItemSection.scss +45 -0
  124. package/dist/components/list/QItemSection.svelte +50 -37
  125. package/dist/components/list/QItemSection.svelte.d.ts +2 -24
  126. package/dist/components/list/QList.scss +30 -0
  127. package/dist/components/list/QList.svelte +30 -20
  128. package/dist/components/list/QList.svelte.d.ts +2 -35
  129. package/dist/components/list/docs.d.ts +2 -0
  130. package/dist/components/list/docs.js +11 -0
  131. package/dist/components/list/docs.props.js +79 -29
  132. package/dist/components/list/props.d.ts +24 -20
  133. package/dist/components/list/props.js +1 -25
  134. package/dist/components/private/ContextReseter.svelte +6 -11
  135. package/dist/components/private/ContextReseter.svelte.d.ts +6 -18
  136. package/dist/components/private/QApi.svelte +117 -93
  137. package/dist/components/private/QApi.svelte.d.ts +5 -17
  138. package/dist/components/private/QDocs.svelte +78 -41
  139. package/dist/components/private/QDocs.svelte.d.ts +10 -21
  140. package/dist/components/private/QDocsSection.svelte +16 -24
  141. package/dist/components/private/QDocsSection.svelte.d.ts +7 -29
  142. package/dist/components/private/QIconSnippet.svelte +12 -0
  143. package/dist/components/private/QIconSnippet.svelte.d.ts +8 -0
  144. package/dist/components/progress/QCircularProgress.scss +63 -0
  145. package/dist/components/progress/QCircularProgress.svelte +106 -20
  146. package/dist/components/progress/QCircularProgress.svelte.d.ts +2 -21
  147. package/dist/components/progress/QLinearProgress.scss +75 -0
  148. package/dist/components/progress/QLinearProgress.svelte +59 -17
  149. package/dist/components/progress/QLinearProgress.svelte.d.ts +2 -21
  150. package/dist/components/progress/docs.d.ts +2 -0
  151. package/dist/components/progress/docs.js +11 -0
  152. package/dist/components/progress/docs.props.d.ts +8 -0
  153. package/dist/components/progress/docs.props.js +181 -9
  154. package/dist/components/progress/props.d.ts +98 -17
  155. package/dist/components/progress/props.js +1 -7
  156. package/dist/components/radio/QRadio.svelte +14 -9
  157. package/dist/components/radio/QRadio.svelte.d.ts +2 -21
  158. package/dist/components/radio/docs.d.ts +2 -2
  159. package/dist/components/radio/docs.js +1 -1
  160. package/dist/components/radio/docs.props.js +6 -4
  161. package/dist/components/radio/index.scss +3 -1
  162. package/dist/components/radio/props.d.ts +5 -6
  163. package/dist/components/radio/props.js +1 -8
  164. package/dist/components/railbar/QRailbar.scss +54 -0
  165. package/dist/components/railbar/QRailbar.svelte +45 -49
  166. package/dist/components/railbar/QRailbar.svelte.d.ts +2 -22
  167. package/dist/components/railbar/docs.d.ts +2 -0
  168. package/dist/components/railbar/docs.js +11 -0
  169. package/dist/components/railbar/docs.props.js +10 -8
  170. package/dist/components/railbar/props.d.ts +15 -6
  171. package/dist/components/railbar/props.js +1 -7
  172. package/dist/components/select/QSelect.svelte +171 -140
  173. package/dist/components/select/QSelect.svelte.d.ts +2 -33
  174. package/dist/components/select/docs.d.ts +2 -2
  175. package/dist/components/select/docs.js +9 -8
  176. package/dist/components/select/docs.props.js +47 -13
  177. package/dist/components/select/index.scss +28 -7
  178. package/dist/components/select/props.d.ts +16 -20
  179. package/dist/components/select/props.js +1 -14
  180. package/dist/components/separator/QSeparator.scss +54 -0
  181. package/dist/components/separator/QSeparator.svelte +39 -57
  182. package/dist/components/separator/QSeparator.svelte.d.ts +2 -24
  183. package/dist/components/separator/docs.d.ts +2 -0
  184. package/dist/components/separator/docs.js +11 -0
  185. package/dist/components/separator/docs.props.js +16 -14
  186. package/dist/components/separator/props.d.ts +13 -14
  187. package/dist/components/separator/props.js +1 -9
  188. package/dist/components/switch/QSwitch.scss +305 -0
  189. package/dist/components/switch/QSwitch.svelte +96 -0
  190. package/dist/components/switch/QSwitch.svelte.d.ts +3 -0
  191. package/dist/components/switch/docs.d.ts +2 -0
  192. package/dist/components/{toggle → switch}/docs.js +3 -3
  193. package/dist/components/{toggle → switch}/docs.props.d.ts +1 -1
  194. package/dist/components/switch/docs.props.js +68 -0
  195. package/dist/components/switch/props.d.ts +13 -0
  196. package/dist/components/switch/props.js +1 -0
  197. package/dist/components/table/QTable.svelte +99 -94
  198. package/dist/components/table/QTable.svelte.d.ts +2 -28
  199. package/dist/components/table/docs.d.ts +2 -2
  200. package/dist/components/table/docs.js +1 -1
  201. package/dist/components/table/docs.props.js +11 -1
  202. package/dist/components/table/index.scss +3 -1
  203. package/dist/components/table/props.d.ts +14 -3
  204. package/dist/components/tabs/QTab.scss +71 -0
  205. package/dist/components/tabs/QTab.svelte +80 -66
  206. package/dist/components/tabs/QTab.svelte.d.ts +2 -27
  207. package/dist/components/tabs/QTabs.scss +40 -0
  208. package/dist/components/tabs/QTabs.svelte +114 -51
  209. package/dist/components/tabs/QTabs.svelte.d.ts +7 -22
  210. package/dist/components/tabs/docs.d.ts +2 -0
  211. package/dist/components/tabs/docs.js +11 -0
  212. package/dist/components/tabs/docs.props.js +10 -16
  213. package/dist/components/tabs/index.scss +71 -28
  214. package/dist/components/tabs/props.d.ts +9 -9
  215. package/dist/components/tabs/props.js +1 -13
  216. package/dist/components/toolbar/QToolbar.svelte +20 -37
  217. package/dist/components/toolbar/QToolbar.svelte.d.ts +2 -22
  218. package/dist/components/toolbar/QToolbarTitle.svelte +11 -0
  219. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +3 -0
  220. package/dist/components/toolbar/docs.d.ts +2 -0
  221. package/dist/components/toolbar/docs.js +11 -0
  222. package/dist/components/toolbar/docs.props.d.ts +8 -0
  223. package/dist/components/toolbar/docs.props.js +33 -5
  224. package/dist/components/toolbar/index.scss +34 -1
  225. package/dist/components/toolbar/props.d.ts +24 -5
  226. package/dist/components/toolbar/props.js +1 -6
  227. package/dist/components/tooltip/QTooltip.svelte +8 -12
  228. package/dist/components/tooltip/QTooltip.svelte.d.ts +2 -21
  229. package/dist/components/tooltip/docs.d.ts +2 -0
  230. package/dist/components/tooltip/docs.js +11 -0
  231. package/dist/components/tooltip/docs.props.js +3 -1
  232. package/dist/components/tooltip/index.scss +80 -2
  233. package/dist/components/tooltip/props.d.ts +4 -3
  234. package/dist/components/tooltip/props.js +1 -1
  235. package/dist/composables/index.d.ts +3 -0
  236. package/dist/composables/index.js +3 -1
  237. package/dist/composables/{use-align.d.ts → useAlign.d.ts} +1 -1
  238. package/dist/composables/useAlign.js +23 -0
  239. package/dist/composables/{use-router-link.d.ts → useRouterLink.d.ts} +3 -3
  240. package/dist/composables/{use-router-link.js → useRouterLink.js} +4 -5
  241. package/dist/composables/useSize.d.ts +10 -0
  242. package/dist/composables/useSize.js +37 -0
  243. package/dist/composables/useSizeLegacy.d.ts +9 -0
  244. package/dist/composables/useSizeLegacy.js +25 -0
  245. package/dist/css/_components.scss +31 -0
  246. package/dist/css/_disabled.scss +18 -0
  247. package/dist/css/_ripple.scss +49 -0
  248. package/dist/css/_variables.scss +73 -0
  249. package/dist/css/classes/_design.scss +57 -0
  250. package/dist/css/classes/_flex.scss +62 -0
  251. package/dist/css/classes/_grid.scss +35 -0
  252. package/dist/css/classes/_index.scss +7 -0
  253. package/dist/css/classes/_overflow.scss +7 -0
  254. package/dist/css/classes/_position.scss +7 -0
  255. package/dist/css/classes/_select.scss +6 -0
  256. package/dist/css/classes/_spaces.scss +23 -0
  257. package/dist/css/flex.scss +41 -0
  258. package/dist/css/fonts.scss +17 -0
  259. package/dist/css/index.css +1 -0
  260. package/dist/css/index.scss +15 -111
  261. package/dist/css/mixins/_design.scss +63 -0
  262. package/dist/css/mixins/_field.scss +64 -0
  263. package/dist/css/mixins/_image.scss +63 -0
  264. package/dist/css/mixins/_index.scss +9 -0
  265. package/dist/css/mixins/_layout.scss +20 -0
  266. package/dist/css/mixins/{menu.scss → _menu.scss} +6 -2
  267. package/dist/css/mixins/{selection.scss → _selection.scss} +7 -67
  268. package/dist/css/mixins/_spaces.scss +36 -0
  269. package/dist/css/mixins/_typography.scss +7 -0
  270. package/dist/css/shared/q-field.scss +348 -0
  271. package/dist/css/theme/_colors.scss +173 -0
  272. package/dist/css/theme/colors.module.scss +261 -109
  273. package/dist/css/theme/css-variables.scss +5 -0
  274. package/dist/css/theme/elevate.scss +57 -0
  275. package/dist/css/theme/page.scss +16 -0
  276. package/dist/css/theme/palette.scss +653 -0
  277. package/dist/css/theme/reset.scss +56 -0
  278. package/dist/css/theme/theme.scss +7 -2
  279. package/dist/css/theme/tokens.scss +0 -159
  280. package/dist/css/theme/typography.scss +111 -0
  281. package/dist/global.d.ts +1 -2
  282. package/dist/helpers/clickOutside.d.ts +2 -2
  283. package/dist/helpers/clickOutside.js +5 -4
  284. package/dist/helpers/index.d.ts +1 -1
  285. package/dist/helpers/index.js +1 -1
  286. package/dist/helpers/ripple.d.ts +11 -0
  287. package/dist/helpers/ripple.js +90 -0
  288. package/dist/helpers/version.d.ts +2 -0
  289. package/dist/helpers/version.js +1 -0
  290. package/dist/index.d.ts +3 -1
  291. package/dist/index.js +3 -1
  292. package/dist/stores/index.d.ts +0 -0
  293. package/dist/stores/index.js +1 -0
  294. package/dist/utils/clipboard.d.ts +1 -1
  295. package/dist/utils/clipboard.js +3 -4
  296. package/dist/utils/colors.d.ts +71 -0
  297. package/dist/utils/colors.js +103 -15
  298. package/dist/utils/dom.d.ts +11 -0
  299. package/dist/utils/dom.js +81 -0
  300. package/dist/utils/events.d.ts +13 -0
  301. package/dist/utils/events.js +13 -0
  302. package/dist/utils/index.d.ts +8 -0
  303. package/dist/utils/index.js +8 -1
  304. package/dist/utils/number.d.ts +2 -0
  305. package/dist/utils/number.js +9 -0
  306. package/dist/utils/props.d.ts +4 -4
  307. package/dist/utils/props.js +9 -7
  308. package/dist/utils/router.d.ts +17 -0
  309. package/dist/utils/router.js +23 -0
  310. package/dist/utils/string.d.ts +1 -0
  311. package/dist/utils/string.js +4 -1
  312. package/dist/utils/types.d.ts +12 -4
  313. package/dist/utils/types.js +0 -3
  314. package/dist/utils/types.json +27 -1
  315. package/dist/utils/watchable.d.ts +0 -1
  316. package/dist/utils/watchable.js +1 -1
  317. package/package.json +45 -37
  318. package/dist/components/breadcrumbs/index.scss +0 -20
  319. package/dist/components/button/index.scss +0 -78
  320. package/dist/components/card/index.scss +0 -53
  321. package/dist/components/chip/index.scss +0 -83
  322. package/dist/components/dialog/index.scss +0 -27
  323. package/dist/components/drawer/index.scss +0 -54
  324. package/dist/components/footer/index.scss +0 -5
  325. package/dist/components/icon/index.scss +0 -18
  326. package/dist/components/layout/index.scss +0 -370
  327. package/dist/components/list/index.scss +0 -114
  328. package/dist/components/progress/index.scss +0 -50
  329. package/dist/components/toggle/QToggle.svelte +0 -35
  330. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  331. package/dist/components/toggle/docs.d.ts +0 -2
  332. package/dist/components/toggle/docs.props.js +0 -42
  333. package/dist/components/toggle/index.scss +0 -31
  334. package/dist/components/toggle/props.d.ts +0 -9
  335. package/dist/components/toggle/props.js +0 -9
  336. package/dist/composables/use-align.js +0 -12
  337. package/dist/composables/use-index.d.ts +0 -2
  338. package/dist/composables/use-index.js +0 -17
  339. package/dist/composables/use-size.d.ts +0 -11
  340. package/dist/composables/use-size.js +0 -13
  341. package/dist/css/grid.scss +0 -65
  342. package/dist/css/mixins/field.scss +0 -430
  343. package/dist/css/mixins.scss +0 -135
  344. package/dist/css/states.scss +0 -70
  345. package/dist/css/theme/theme.dark.scss +0 -36
  346. package/dist/css/theme/theme.light.scss +0 -36
  347. package/dist/helpers/activationHandler.d.ts +0 -9
  348. package/dist/helpers/activationHandler.js +0 -23
  349. package/dist/stores/QTheme.d.ts +0 -42
  350. package/dist/stores/QTheme.js +0 -53
  351. package/dist/stores/Quaff.d.ts +0 -32
  352. package/dist/stores/Quaff.js +0 -52
  353. package/dist/utils/fields.d.ts +0 -1
  354. package/dist/utils/fields.js +0 -14
  355. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
@@ -1,80 +1,87 @@
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;
1
+ <script lang="ts">
2
+ let {
3
+ value = $bindable(false),
4
+ position = "default",
5
+ modal = false,
6
+ fullscreen = false,
7
+ persistent = false,
8
+ children,
9
+ ...props
10
+ } = $props();
11
+ let dialogEl;
12
+ const canHide = $derived(value && !persistent);
13
+ $effect(() => {
14
+ if (value) {
15
+ dialogEl?.[modal ? "showModal" : "show"]();
16
+ setTimeout(() => {
17
+ window.addEventListener("click", tryCancel);
18
+ }, 150);
19
+ } else {
20
+ dialogEl?.close();
21
+ window.removeEventListener("click", tryCancel);
22
+ }
23
+ });
24
+ export function hide() {
25
+ if (dialogEl.open) {
26
+ value = false;
27
+ }
27
28
  }
28
- }
29
- export function show() {
30
- if (value === false) {
31
- value = true;
29
+ export function show() {
30
+ if (!dialogEl.open) {
31
+ value = true;
32
+ }
32
33
  }
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);
34
+ export function toggle() {
35
+ if (dialogEl.open) {
36
+ hide();
37
+ } else {
38
+ show();
39
+ }
44
40
  }
45
- }
46
- function handleKeyboardHide(e) {
47
- if (canHideOnClickOutside) {
48
- hide();
49
- } else {
50
- addAnimation();
51
- e.preventDefault();
41
+ function addAnimation() {
42
+ if (persistent && value) {
43
+ dialogEl.classList.add("q-dialog--animating");
44
+ setTimeout(() => {
45
+ dialogEl.classList.remove("q-dialog--animating");
46
+ }, 150);
47
+ }
52
48
  }
53
- }
54
- function handleClickHide() {
55
- if (canHideOnClickOutside) {
56
- hide();
57
- } else {
58
- addAnimation();
49
+ function handleClickInside(e) {
50
+ e.stopPropagation();
51
+ }
52
+ function onkeydown(e) {
53
+ if (e.key === "Escape") {
54
+ tryCancel(e);
55
+ }
56
+ }
57
+ function tryCancel(e) {
58
+ if (canHide) {
59
+ hide();
60
+ } else {
61
+ addAnimation();
62
+ e.preventDefault();
63
+ }
59
64
  }
60
- }
61
65
  </script>
62
66
 
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
67
  <dialog
72
- use:clickOutsideDialog={handleClickHide}
73
- class={classes}
74
- open={value}
75
- {...$$restProps}
76
- bind:this={dialogElement}
77
- on:cancel={handleKeyboardHide}
68
+ bind:this={dialogEl}
69
+ {...props}
70
+ class="q-dialog{props.class ? ` ${props.class}` : ''}{[
71
+ 'top',
72
+ 'right',
73
+ 'bottom',
74
+ 'left',
75
+ ].includes(position)
76
+ ? ` q-dialog--${position}`
77
+ : ''}"
78
+ class:q-dialog--active={value}
79
+ class:q-dialog--fullscreen={fullscreen}
80
+ class:q-dialog--modal={modal}
81
+ onclick={handleClickInside}
82
+ oncancel={tryCancel}
83
+ {onkeydown}
84
+ aria-hidden={!value || undefined}
78
85
  >
79
- <slot />
86
+ {@render children?.()}
80
87
  </dialog>
@@ -1,37 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  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
- type QDialogProps_ = typeof __propDef.props;
30
- export { QDialogProps_ as QDialogProps };
31
- export type QDialogEvents = typeof __propDef.events;
32
- export type QDialogSlots = typeof __propDef.slots;
33
- export default class QDialog extends SvelteComponent<QDialogProps, QDialogEvents, QDialogSlots> {
34
- get hide(): any;
35
- get show(): any;
36
- get toggle(): any;
37
- }
2
+ declare const QDialog: import("svelte").Component<QDialogProps, {
3
+ hide: () => void;
4
+ show: () => void;
5
+ toggle: () => void;
6
+ }, "value">;
7
+ export default QDialog;
@@ -1,2 +1,2 @@
1
- import type { QComponentDocs } from "$utils/types";
2
- export declare let QDialogDocs: QComponentDocs;
1
+ import type { QComponentDocs } from "../../utils";
2
+ export declare const QDialogDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QDialogDocsProps } from "./docs.props";
2
- export let QDialogDocs = {
2
+ export const QDialogDocs = {
3
3
  name: "QDialog",
4
4
  description: "Dialogs provide important prompts in a user flow.",
5
5
  docs: {
@@ -1,11 +1,3 @@
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
1
  export declare const QDialogDocsProps: {
10
2
  name: string;
11
3
  type: string;
@@ -1,117 +1,13 @@
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
- ];
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash a93df4aad7eee70fe7022c2eb26b6ef5
83
3
  export const QDialogDocsProps = [
84
4
  {
85
5
  name: "value",
86
6
  type: "boolean",
87
- optional: true,
7
+ optional: false,
88
8
  clickableType: false,
89
9
  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: "{}",
10
+ default: "true",
115
11
  },
116
12
  {
117
13
  name: "position",
@@ -1,27 +1,12 @@
1
- import type { NativeProps } from "../../utils/types";
2
- import type { QBtnProps } from "../button/props";
1
+ import type { NativeProps } from "../../utils";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
3
  export type QDialogPositionOptions = "default" | "top" | "right" | "bottom" | "left";
4
- export interface QDialogProps extends NativeProps {
4
+ export interface QDialogProps extends NativeProps, HTMLAttributes<HTMLDialogElement> {
5
5
  /**
6
6
  * The value indicating whether the dialog is visible or hidden.
7
7
  * @default true
8
8
  */
9
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
10
  /**
26
11
  * The position of the dialog relative to the viewport.
27
12
  * @default "default"
@@ -0,0 +1,45 @@
1
+ @use "$css/mixins";
2
+ @use "$css/variables";
3
+
4
+ .q-drawer {
5
+ z-index: 4;
6
+ position: absolute;
7
+ top: 0;
8
+ right: auto;
9
+ bottom: 0;
10
+ left: auto;
11
+
12
+ height: auto;
13
+ @include mixins.padding("a-sm");
14
+
15
+ background-color: var(--surface);
16
+ color: var(--on-surface);
17
+
18
+ overflow: auto;
19
+
20
+ transition:
21
+ border-radius variables.$speed3,
22
+ transform variables.$speed3,
23
+ top variables.$speed3,
24
+ bottom variables.$speed3;
25
+
26
+ &.q-drawer--overlay {
27
+ z-index: 6;
28
+ }
29
+
30
+ @each $side in ("left", "right") {
31
+ &.q-drawer--#{$side} {
32
+ #{$side}: 0;
33
+ width: var(--#{$side}-drawer-width);
34
+ transform: translate(if($side == "left", -100%, 100%));
35
+ }
36
+
37
+ &:not(.q-drawer--#{$side}).q-drawer--bordered {
38
+ @include mixins.border(var(--outline), $side);
39
+ }
40
+ }
41
+
42
+ &.q-drawer--active {
43
+ transform: translate(0);
44
+ }
45
+ }
@@ -1,87 +1,97 @@
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";
1
+ <script lang="ts">
2
+ import { getContext, onDestroy, untrack } from "svelte";
3
+ import { navigating } from "$app/stores";
4
+ import { useSize } from "../../composables";
5
+ import { clickOutside } from "../../helpers";
6
+ import QContext from "../../classes/QContext.svelte";
7
+ let {
8
+ value = $bindable(false),
9
+ side = "left",
10
+ width = 300,
11
+ bordered = false,
12
+ overlay = false,
13
+ persistent = false,
14
+ children,
15
+ ...props
16
+ } = $props();
17
+ const drawerContext = QContext.get(`QDrawer-${side}`);
18
+ const layoutView = getContext("view");
19
+ const ctx = QContext.get("layout");
20
+ const drawerType = $derived(side === "left" ? "drawerLeft" : "drawerRight");
21
+ const drawerCtx = $derived(ctx?.value?.[drawerType]);
22
+ const canHideOnClickOutside = $derived((value && !persistent) || overlay);
23
+ const hideOnRouteChange = $derived(!persistent || overlay);
24
+ const offsetTop = $derived.by(() => {
25
+ const charPos = side === "left" ? 0 : 2;
26
+ return layoutView?.value.charAt(charPos) === "h";
27
+ });
28
+ const offsetBottom = $derived.by(() => {
29
+ const charPos = side === "left" ? 8 : 10;
30
+ return layoutView?.value.charAt(charPos) === "f";
31
+ });
32
+ export const show = (e) => {
33
+ if (!value) {
34
+ value = true;
35
+ e?.stopPropagation();
43
36
  }
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");
37
+ };
38
+ export const hide = () => {
39
+ if (value) {
40
+ value = false;
41
+ }
42
+ };
43
+ export const toggle = (e) => {
44
+ value = !value;
45
+ e?.stopPropagation();
46
+ };
47
+ $effect(() => {
48
+ if ($navigating && hideOnRouteChange) {
49
+ hide();
50
+ }
51
+ });
52
+ onDestroy(() => {
53
+ drawerContext?.updateEntries({
54
+ width: 0,
55
+ takesSpace: false,
56
+ });
57
+ });
58
+ $effect(() => {
59
+ [value, overlay, width];
60
+ untrack(() =>
61
+ drawerContext?.updateEntries({
62
+ takesSpace: !!value && !overlay,
63
+ width,
64
+ }),
65
+ );
66
+ });
73
67
  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}`;
68
+ const appBarEl = pos === "top" ? ctx?.value?.header : ctx?.value?.footer;
69
+ return overlay || !appBarEl?.display || drawerCtx?.offset[pos];
80
70
  };
81
- return createClasses([shouldHaveRadius("top"), shouldHaveRadius("bottom")]);
82
- }
71
+ const widthStyle = $derived(!ctx ? useSize(width).style : null);
72
+ const drawerWidthStyle = $derived(
73
+ widthStyle === null ? "" : `--${side}-drawer-width: ${widthStyle};`,
74
+ );
75
+ const style = $derived(`${drawerWidthStyle}${props.style ?? ""}`);
83
76
  </script>
84
77
 
85
- <div use:clickOutside={hide} class={classes} {style}>
86
- <slot />
78
+ <div
79
+ {...props}
80
+ use:clickOutside={() => canHideOnClickOutside && hide()}
81
+ class="q-drawer{props.class ? ` ${props.class}` : ''} q-drawer--{side}"
82
+ class:q-drawer--active={value}
83
+ class:q-drawer--overlay={overlay}
84
+ class:q-drawer--bordered={bordered}
85
+ class:q-drawer--offset-top={offsetTop}
86
+ class:q-drawer--offset-bottom={offsetBottom}
87
+ class:q-drawer--fixed={drawerCtx?.fixed}
88
+ class:q-drawer--top-left-radius={side === "right" && shouldHaveRadius("top")}
89
+ class:q-drawer--bottom-left-radius={side === "right" &&
90
+ shouldHaveRadius("bottom")}
91
+ class:q-drawer--top-right-radius={side === "left" && shouldHaveRadius("top")}
92
+ class:q-drawer--bottom-right-radius={side === "left" &&
93
+ shouldHaveRadius("bottom")}
94
+ {style}
95
+ >
96
+ {@render children?.()}
87
97
  </div>
@@ -1,39 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  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
- type QDrawerProps_ = typeof __propDef.props;
32
- export { QDrawerProps_ as QDrawerProps };
33
- export type QDrawerEvents = typeof __propDef.events;
34
- export type QDrawerSlots = typeof __propDef.slots;
35
- export default class QDrawer extends SvelteComponent<QDrawerProps, QDrawerEvents, QDrawerSlots> {
36
- get show(): any;
37
- get hide(): any;
38
- get toggle(): any;
39
- }
2
+ declare const QDrawer: import("svelte").Component<QDrawerProps, {
3
+ show: (e?: MouseEvent) => void;
4
+ hide: () => void;
5
+ toggle: (e?: MouseEvent) => void;
6
+ }, "value">;
7
+ export default QDrawer;
@@ -1,2 +1,2 @@
1
- import type { QComponentDocs } from "$utils/types";
2
- export declare let QDrawerDocs: QComponentDocs;
1
+ import type { QComponentDocs } from "../../utils";
2
+ export declare const QDrawerDocs: QComponentDocs;
@@ -1,5 +1,5 @@
1
1
  import { QDrawerDocsProps } from "./docs.props";
2
- export let QDrawerDocs = {
2
+ export const QDrawerDocs = {
3
3
  name: "QDrawer",
4
4
  description: "Navigation drawers provide ergonomic access to destinations in an app",
5
5
  docs: {