@quaffui/quaff 0.1.0-prealpha9 → 1.0.0-alpha2

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 (388) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +47 -14
  3. package/dist/classes/QContext.svelte.d.ts +42 -0
  4. package/dist/classes/QContext.svelte.js +63 -0
  5. package/dist/classes/QScrollObserver.svelte.d.ts +48 -0
  6. package/dist/classes/QScrollObserver.svelte.js +107 -0
  7. package/dist/classes/QTheme.svelte.d.ts +13 -0
  8. package/dist/classes/QTheme.svelte.js +62 -0
  9. package/dist/classes/Quaff.svelte.d.ts +27 -0
  10. package/dist/classes/Quaff.svelte.js +91 -0
  11. package/dist/components/avatar/QAvatar.scss +101 -0
  12. package/dist/components/avatar/QAvatar.svelte +42 -42
  13. package/dist/components/avatar/QAvatar.svelte.d.ts +4 -17
  14. package/dist/components/avatar/docs.d.ts +2 -2
  15. package/dist/components/avatar/docs.js +3 -8
  16. package/dist/components/avatar/docs.props.d.ts +3 -8
  17. package/dist/components/avatar/docs.props.js +68 -15
  18. package/dist/components/avatar/index.scss +5 -3
  19. package/dist/components/avatar/props.d.ts +51 -8
  20. package/dist/components/breadcrumbs/QBreadcrumbs.scss +10 -0
  21. package/dist/components/breadcrumbs/QBreadcrumbs.svelte +32 -14
  22. package/dist/components/breadcrumbs/QBreadcrumbs.svelte.d.ts +4 -13
  23. package/dist/components/breadcrumbs/QBreadcrumbsEl.scss +10 -0
  24. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte +65 -48
  25. package/dist/components/breadcrumbs/QBreadcrumbsEl.svelte.d.ts +4 -16
  26. package/dist/components/breadcrumbs/docs.d.ts +2 -2
  27. package/dist/components/breadcrumbs/docs.js +3 -8
  28. package/dist/components/breadcrumbs/docs.props.d.ts +5 -16
  29. package/dist/components/breadcrumbs/docs.props.js +105 -45
  30. package/dist/components/breadcrumbs/props.d.ts +26 -24
  31. package/dist/components/button/QBtn.scss +136 -0
  32. package/dist/components/button/QBtn.svelte +156 -52
  33. package/dist/components/button/QBtn.svelte.d.ts +4 -23
  34. package/dist/components/button/docs.d.ts +2 -2
  35. package/dist/components/button/docs.js +3 -8
  36. package/dist/components/button/docs.props.d.ts +3 -8
  37. package/dist/components/button/docs.props.js +174 -37
  38. package/dist/components/button/props.d.ts +48 -11
  39. package/dist/components/card/QCard.scss +47 -0
  40. package/dist/components/card/QCard.svelte +42 -19
  41. package/dist/components/card/QCard.svelte.d.ts +4 -16
  42. package/dist/components/card/QCardActions.scss +10 -0
  43. package/dist/components/card/QCardActions.svelte +23 -15
  44. package/dist/components/card/QCardActions.svelte.d.ts +4 -12
  45. package/dist/components/card/QCardSection.scss +10 -0
  46. package/dist/components/card/QCardSection.svelte +15 -11
  47. package/dist/components/card/QCardSection.svelte.d.ts +4 -13
  48. package/dist/components/card/docs.d.ts +4 -4
  49. package/dist/components/card/docs.js +7 -22
  50. package/dist/components/card/docs.props.d.ts +7 -24
  51. package/dist/components/card/docs.props.js +57 -30
  52. package/dist/components/card/props.d.ts +11 -16
  53. package/dist/components/checkbox/QCheckbox.svelte +15 -9
  54. package/dist/components/checkbox/QCheckbox.svelte.d.ts +3 -10
  55. package/dist/components/checkbox/docs.d.ts +2 -2
  56. package/dist/components/checkbox/docs.js +3 -3
  57. package/dist/components/checkbox/docs.props.d.ts +3 -8
  58. package/dist/components/checkbox/docs.props.js +24 -9
  59. package/dist/components/checkbox/index.scss +3 -1
  60. package/dist/components/checkbox/props.d.ts +2 -2
  61. package/dist/components/chip/QChip.scss +179 -0
  62. package/dist/components/chip/QChip.svelte +130 -60
  63. package/dist/components/chip/QChip.svelte.d.ts +4 -25
  64. package/dist/components/chip/docs.d.ts +2 -2
  65. package/dist/components/chip/docs.js +3 -16
  66. package/dist/components/chip/docs.props.d.ts +3 -8
  67. package/dist/components/chip/docs.props.js +96 -49
  68. package/dist/components/chip/props.d.ts +27 -29
  69. package/dist/components/codeBlock/QCodeBlock.svelte +101 -42
  70. package/dist/components/codeBlock/QCodeBlock.svelte.d.ts +3 -10
  71. package/dist/components/codeBlock/docs.props.d.ts +3 -8
  72. package/dist/components/codeBlock/docs.props.js +61 -12
  73. package/dist/components/codeBlock/props.d.ts +12 -2
  74. package/dist/components/dialog/{index.scss → QDialog.scss} +12 -14
  75. package/dist/components/dialog/QDialog.svelte +85 -78
  76. package/dist/components/dialog/QDialog.svelte.d.ts +9 -24
  77. package/dist/components/dialog/docs.d.ts +2 -2
  78. package/dist/components/dialog/docs.js +3 -3
  79. package/dist/components/dialog/docs.props.d.ts +3 -16
  80. package/dist/components/dialog/docs.props.js +37 -128
  81. package/dist/components/dialog/props.d.ts +4 -19
  82. package/dist/components/drawer/QDrawer.scss +55 -0
  83. package/dist/components/drawer/QDrawer.svelte +334 -88
  84. package/dist/components/drawer/QDrawer.svelte.d.ts +9 -28
  85. package/dist/components/drawer/docs.d.ts +2 -2
  86. package/dist/components/drawer/docs.js +3 -3
  87. package/dist/components/drawer/docs.props.d.ts +3 -8
  88. package/dist/components/drawer/docs.props.js +90 -47
  89. package/dist/components/drawer/props.d.ts +10 -13
  90. package/dist/components/footer/QFooter.scss +42 -0
  91. package/dist/components/footer/QFooter.svelte +99 -24
  92. package/dist/components/footer/QFooter.svelte.d.ts +4 -14
  93. package/dist/components/footer/docs.d.ts +2 -2
  94. package/dist/components/footer/docs.js +3 -3
  95. package/dist/components/footer/docs.props.d.ts +3 -8
  96. package/dist/components/footer/docs.props.js +47 -16
  97. package/dist/components/footer/props.d.ts +15 -9
  98. package/dist/components/header/QHeader.scss +53 -0
  99. package/dist/components/header/QHeader.svelte +90 -23
  100. package/dist/components/header/QHeader.svelte.d.ts +4 -14
  101. package/dist/components/header/docs.d.ts +2 -0
  102. package/dist/components/header/docs.js +11 -0
  103. package/dist/components/header/docs.props.d.ts +7 -0
  104. package/dist/components/header/docs.props.js +131 -0
  105. package/dist/components/header/props.d.ts +13 -5
  106. package/dist/components/icon/{index.scss → QIcon.scss} +2 -4
  107. package/dist/components/icon/QIcon.svelte +44 -28
  108. package/dist/components/icon/QIcon.svelte.d.ts +4 -18
  109. package/dist/components/icon/docs.d.ts +2 -2
  110. package/dist/components/icon/docs.js +3 -3
  111. package/dist/components/icon/docs.props.d.ts +3 -8
  112. package/dist/components/icon/docs.props.js +65 -24
  113. package/dist/components/icon/props.d.ts +9 -8
  114. package/dist/components/index.d.ts +5 -2
  115. package/dist/components/index.js +5 -2
  116. package/dist/components/input/QInput.svelte +106 -72
  117. package/dist/components/input/QInput.svelte.d.ts +4 -22
  118. package/dist/components/input/docs.d.ts +2 -2
  119. package/dist/components/input/docs.js +5 -71
  120. package/dist/components/input/docs.props.d.ts +3 -8
  121. package/dist/components/input/docs.props.js +129 -57
  122. package/dist/components/input/index.scss +1 -3
  123. package/dist/components/input/props.d.ts +81 -21
  124. package/dist/components/input/props.js +1 -13
  125. package/dist/components/layout/QLayout.scss +184 -0
  126. package/dist/components/layout/QLayout.svelte +178 -79
  127. package/dist/components/layout/QLayout.svelte.d.ts +12 -45
  128. package/dist/components/layout/docs.d.ts +2 -2
  129. package/dist/components/layout/docs.js +3 -3
  130. package/dist/components/layout/docs.props.d.ts +3 -8
  131. package/dist/components/layout/docs.props.js +62 -39
  132. package/dist/components/layout/props.d.ts +29 -21
  133. package/dist/components/list/QItem.scss +69 -0
  134. package/dist/components/list/QItem.svelte +99 -51
  135. package/dist/components/list/QItem.svelte.d.ts +4 -24
  136. package/dist/components/list/QItemSection.scss +60 -0
  137. package/dist/components/list/QItemSection.svelte +63 -37
  138. package/dist/components/list/QItemSection.svelte.d.ts +4 -15
  139. package/dist/components/list/QList.scss +30 -0
  140. package/dist/components/list/QList.svelte +43 -20
  141. package/dist/components/list/QList.svelte.d.ts +4 -26
  142. package/dist/components/list/docs.d.ts +4 -2
  143. package/dist/components/list/docs.js +23 -3
  144. package/dist/components/list/docs.props.d.ts +11 -40
  145. package/dist/components/list/docs.props.js +344 -136
  146. package/dist/components/list/props.d.ts +126 -28
  147. package/dist/components/list/props.js +1 -25
  148. package/dist/components/private/ContextReseter.svelte +15 -11
  149. package/dist/components/private/ContextReseter.svelte.d.ts +4 -8
  150. package/dist/components/private/QApi.svelte +264 -113
  151. package/dist/components/private/QApi.svelte.d.ts +3 -6
  152. package/dist/components/private/QDocs.svelte +131 -70
  153. package/dist/components/private/QDocs.svelte.d.ts +4 -11
  154. package/dist/components/private/QDocsSection.svelte +48 -18
  155. package/dist/components/private/QDocsSection.svelte.d.ts +9 -24
  156. package/dist/components/private/QIconSnippet.svelte +22 -0
  157. package/dist/components/private/QIconSnippet.svelte.d.ts +14 -0
  158. package/dist/components/private/index.d.ts +6 -0
  159. package/dist/components/private/index.js +6 -0
  160. package/dist/components/progress/QCircularProgress.scss +63 -0
  161. package/dist/components/progress/QCircularProgress.svelte +134 -21
  162. package/dist/components/progress/QCircularProgress.svelte.d.ts +3 -11
  163. package/dist/components/progress/QLinearProgress.scss +75 -0
  164. package/dist/components/progress/QLinearProgress.svelte +80 -23
  165. package/dist/components/progress/QLinearProgress.svelte.d.ts +3 -11
  166. package/dist/components/progress/docs.d.ts +3 -2
  167. package/dist/components/progress/docs.js +15 -5
  168. package/dist/components/progress/docs.props.d.ts +5 -16
  169. package/dist/components/progress/docs.props.js +287 -41
  170. package/dist/components/progress/props.d.ts +126 -14
  171. package/dist/components/radio/QRadio.svelte +16 -9
  172. package/dist/components/radio/QRadio.svelte.d.ts +3 -11
  173. package/dist/components/radio/docs.d.ts +2 -2
  174. package/dist/components/radio/docs.js +4 -26
  175. package/dist/components/radio/docs.props.d.ts +3 -8
  176. package/dist/components/radio/docs.props.js +39 -20
  177. package/dist/components/radio/index.scss +3 -1
  178. package/dist/components/radio/props.d.ts +26 -6
  179. package/dist/components/radio/props.js +1 -8
  180. package/dist/components/railbar/QRailbar.scss +54 -0
  181. package/dist/components/railbar/QRailbar.svelte +71 -65
  182. package/dist/components/railbar/QRailbar.svelte.d.ts +4 -13
  183. package/dist/components/railbar/docs.d.ts +2 -2
  184. package/dist/components/railbar/docs.js +3 -3
  185. package/dist/components/railbar/docs.props.d.ts +3 -8
  186. package/dist/components/railbar/docs.props.js +36 -15
  187. package/dist/components/railbar/props.d.ts +13 -6
  188. package/dist/components/select/QSelect.svelte +222 -146
  189. package/dist/components/select/QSelect.svelte.d.ts +4 -24
  190. package/dist/components/select/docs.d.ts +2 -2
  191. package/dist/components/select/docs.js +5 -83
  192. package/dist/components/select/docs.props.d.ts +3 -8
  193. package/dist/components/select/docs.props.js +156 -64
  194. package/dist/components/select/index.scss +25 -10
  195. package/dist/components/select/props.d.ts +100 -20
  196. package/dist/components/select/props.js +1 -14
  197. package/dist/components/separator/QSeparator.scss +54 -0
  198. package/dist/components/separator/QSeparator.svelte +50 -57
  199. package/dist/components/separator/QSeparator.svelte.d.ts +3 -14
  200. package/dist/components/separator/docs.d.ts +3 -2
  201. package/dist/components/separator/docs.js +14 -4
  202. package/dist/components/separator/docs.props.d.ts +5 -16
  203. package/dist/components/separator/docs.props.js +152 -72
  204. package/dist/components/separator/props.d.ts +84 -16
  205. package/dist/components/separator/props.js +1 -9
  206. package/dist/components/switch/QSwitch.scss +305 -0
  207. package/dist/components/switch/QSwitch.svelte +115 -0
  208. package/dist/components/switch/QSwitch.svelte.d.ts +14 -0
  209. package/dist/components/switch/docs.d.ts +2 -0
  210. package/dist/components/switch/docs.js +17 -0
  211. package/dist/components/switch/docs.props.d.ts +3 -0
  212. package/dist/components/switch/docs.props.js +119 -0
  213. package/dist/components/switch/props.d.ts +53 -0
  214. package/dist/components/switch/props.js +1 -0
  215. package/dist/components/table/QTable.svelte +133 -97
  216. package/dist/components/table/QTable.svelte.d.ts +4 -19
  217. package/dist/components/table/docs.d.ts +2 -2
  218. package/dist/components/table/docs.js +3 -3
  219. package/dist/components/table/docs.props.d.ts +3 -8
  220. package/dist/components/table/docs.props.js +67 -15
  221. package/dist/components/table/index.scss +3 -1
  222. package/dist/components/table/props.d.ts +14 -3
  223. package/dist/components/tabs/QTab.scss +71 -0
  224. package/dist/components/tabs/QTab.svelte +101 -88
  225. package/dist/components/tabs/QTab.svelte.d.ts +4 -16
  226. package/dist/components/tabs/QTabs.scss +53 -0
  227. package/dist/components/tabs/QTabs.svelte +163 -46
  228. package/dist/components/tabs/QTabs.svelte.d.ts +9 -13
  229. package/dist/components/tabs/docs.d.ts +3 -2
  230. package/dist/components/tabs/docs.js +13 -3
  231. package/dist/components/tabs/docs.props.d.ts +5 -16
  232. package/dist/components/tabs/docs.props.js +64 -30
  233. package/dist/components/tabs/index.scss +36 -24
  234. package/dist/components/tabs/props.d.ts +38 -9
  235. package/dist/components/tabs/props.js +1 -13
  236. package/dist/components/toolbar/{index.scss → QToolbar.scss} +10 -16
  237. package/dist/components/toolbar/QToolbar.svelte +26 -21
  238. package/dist/components/toolbar/QToolbar.svelte.d.ts +4 -15
  239. package/dist/components/toolbar/QToolbarTitle.svelte +10 -7
  240. package/dist/components/toolbar/QToolbarTitle.svelte.d.ts +4 -12
  241. package/dist/components/toolbar/docs.d.ts +3 -2
  242. package/dist/components/toolbar/docs.js +13 -3
  243. package/dist/components/toolbar/docs.props.d.ts +5 -16
  244. package/dist/components/toolbar/docs.props.js +55 -15
  245. package/dist/components/toolbar/props.d.ts +19 -9
  246. package/dist/components/tooltip/QTooltip.scss +40 -0
  247. package/dist/components/tooltip/QTooltip.svelte +200 -10
  248. package/dist/components/tooltip/QTooltip.svelte.d.ts +17 -18
  249. package/dist/components/tooltip/QTooltipBase.svelte +86 -0
  250. package/dist/components/tooltip/QTooltipBase.svelte.d.ts +14 -0
  251. package/dist/components/tooltip/docs.d.ts +2 -2
  252. package/dist/components/tooltip/docs.js +3 -2
  253. package/dist/components/tooltip/docs.props.d.ts +3 -8
  254. package/dist/components/tooltip/docs.props.js +69 -10
  255. package/dist/components/tooltip/props.d.ts +36 -4
  256. package/dist/components/tooltip/props.js +1 -6
  257. package/dist/composables/index.d.ts +3 -0
  258. package/dist/composables/index.js +3 -1
  259. package/dist/composables/{use-align.d.ts → useAlign.d.ts} +1 -1
  260. package/dist/composables/{use-align.js → useAlign.js} +1 -1
  261. package/dist/composables/{use-router-link.d.ts → useRouterLink.d.ts} +3 -3
  262. package/dist/composables/{use-router-link.js → useRouterLink.js} +4 -4
  263. package/dist/composables/useSize.d.ts +10 -0
  264. package/dist/composables/useSize.js +37 -0
  265. package/dist/css/_components.scss +31 -0
  266. package/dist/css/_disabled.scss +18 -0
  267. package/dist/css/{ripple.scss → _ripple.scss} +10 -3
  268. package/dist/css/_variables.scss +73 -0
  269. package/dist/css/classes/_design.scss +57 -0
  270. package/dist/css/{flex.scss → classes/_flex.scss} +23 -2
  271. package/dist/css/classes/_grid.scss +35 -0
  272. package/dist/css/classes/_index.scss +7 -0
  273. package/dist/css/classes/_overflow.scss +7 -0
  274. package/dist/css/classes/_position.scss +7 -0
  275. package/dist/css/classes/_select.scss +6 -0
  276. package/dist/css/classes/_spaces.scss +23 -0
  277. package/dist/css/fonts.scss +18 -4
  278. package/dist/css/index.css +1 -1
  279. package/dist/css/index.scss +13 -93
  280. package/dist/css/mixins/_design.scss +64 -0
  281. package/dist/css/mixins/_field.scss +64 -0
  282. package/dist/css/mixins/_image.scss +64 -0
  283. package/dist/css/mixins/_index.scss +11 -0
  284. package/dist/css/mixins/_layout.scss +20 -0
  285. package/dist/css/mixins/{menu.scss → _menu.scss} +4 -2
  286. package/dist/css/mixins/_responsive.scss +56 -0
  287. package/dist/css/mixins/{selection.scss → _selection.scss} +10 -70
  288. package/dist/css/mixins/_spaces.scss +36 -0
  289. package/dist/css/mixins/_toolbar.scss +7 -0
  290. package/dist/css/mixins/_typography.scss +7 -0
  291. package/dist/css/shared/q-field.scss +351 -0
  292. package/dist/css/theme/_color-classes.scss +332 -0
  293. package/dist/css/theme/_colors.scss +205 -0
  294. package/dist/css/theme/_css-variables.scss +5 -0
  295. package/dist/css/theme/_index.scss +12 -0
  296. package/dist/css/theme/_page.scss +17 -0
  297. package/dist/css/theme/{palette.scss → _palette.scss} +27 -5
  298. package/dist/css/theme/{reset.scss → _reset.scss} +11 -2
  299. package/dist/css/theme/_typography-variables.scss +107 -0
  300. package/dist/global.d.ts +1 -1
  301. package/dist/helpers/clickOutside.d.ts +2 -2
  302. package/dist/helpers/clickOutside.js +5 -4
  303. package/dist/helpers/index.d.ts +2 -1
  304. package/dist/helpers/index.js +2 -1
  305. package/dist/helpers/pageTitle.d.ts +1 -0
  306. package/dist/helpers/pageTitle.js +3 -0
  307. package/dist/helpers/ripple.d.ts +1 -0
  308. package/dist/helpers/ripple.js +31 -16
  309. package/dist/helpers/version.d.ts +1 -1
  310. package/dist/helpers/version.js +1 -1
  311. package/dist/index.d.ts +4 -1
  312. package/dist/index.js +4 -1
  313. package/dist/stores/index.d.ts +0 -0
  314. package/dist/stores/index.js +1 -0
  315. package/dist/utils/clipboard.d.ts +1 -1
  316. package/dist/utils/clipboard.js +3 -4
  317. package/dist/utils/colors.d.ts +69 -0
  318. package/dist/utils/colors.js +141 -15
  319. package/dist/utils/context.d.ts +33 -0
  320. package/dist/utils/context.js +33 -0
  321. package/dist/utils/dom.d.ts +3 -0
  322. package/dist/utils/dom.js +14 -4
  323. package/dist/utils/events.d.ts +24 -0
  324. package/dist/utils/events.js +24 -0
  325. package/dist/utils/index.d.ts +11 -0
  326. package/dist/utils/index.js +11 -1
  327. package/dist/utils/number.d.ts +2 -0
  328. package/dist/utils/number.js +9 -0
  329. package/dist/utils/props.d.ts +4 -4
  330. package/dist/utils/props.js +8 -6
  331. package/dist/utils/router.d.ts +16 -0
  332. package/dist/utils/router.js +20 -0
  333. package/dist/utils/string.d.ts +2 -0
  334. package/dist/utils/string.js +12 -1
  335. package/dist/utils/types.d.ts +12 -18
  336. package/dist/utils/types.js +0 -3
  337. package/dist/utils/types.json +31 -1
  338. package/package.json +44 -39
  339. package/dist/components/breadcrumbs/index.scss +0 -20
  340. package/dist/components/button/index.scss +0 -98
  341. package/dist/components/card/index.scss +0 -56
  342. package/dist/components/chip/index.scss +0 -86
  343. package/dist/components/drawer/index.scss +0 -59
  344. package/dist/components/footer/index.scss +0 -28
  345. package/dist/components/layout/index.scss +0 -387
  346. package/dist/components/list/index.scss +0 -121
  347. package/dist/components/progress/index.scss +0 -65
  348. package/dist/components/railbar/index.scss +0 -39
  349. package/dist/components/toggle/QToggle.svelte +0 -35
  350. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  351. package/dist/components/toggle/docs.d.ts +0 -2
  352. package/dist/components/toggle/docs.js +0 -47
  353. package/dist/components/toggle/docs.props.d.ts +0 -8
  354. package/dist/components/toggle/docs.props.js +0 -42
  355. package/dist/components/toggle/index.scss +0 -31
  356. package/dist/components/toggle/props.d.ts +0 -9
  357. package/dist/components/toggle/props.js +0 -9
  358. package/dist/components/tooltip/index.scss +0 -82
  359. package/dist/composables/use-index.d.ts +0 -2
  360. package/dist/composables/use-index.js +0 -17
  361. package/dist/composables/use-size.d.ts +0 -9
  362. package/dist/composables/use-size.js +0 -25
  363. package/dist/css/grid.scss +0 -50
  364. package/dist/css/mixins/field.scss +0 -432
  365. package/dist/css/mixins.scss +0 -136
  366. package/dist/css/states.scss +0 -75
  367. package/dist/css/theme/bridge.scss +0 -15
  368. package/dist/css/theme/colors.module.scss +0 -180
  369. package/dist/css/theme/page.scss +0 -16
  370. package/dist/css/theme/theme.dark.scss +0 -37
  371. package/dist/css/theme/theme.light.scss +0 -37
  372. package/dist/css/theme/theme.scss +0 -11
  373. package/dist/css/theme/tokens.scss +0 -266
  374. package/dist/css/variables-sass.scss +0 -16
  375. package/dist/helpers/activationHandler.d.ts +0 -9
  376. package/dist/helpers/activationHandler.js +0 -23
  377. package/dist/stores/QTheme.d.ts +0 -42
  378. package/dist/stores/QTheme.js +0 -53
  379. package/dist/stores/Quaff.d.ts +0 -32
  380. package/dist/stores/Quaff.js +0 -53
  381. package/dist/utils/fields.d.ts +0 -1
  382. package/dist/utils/fields.js +0 -14
  383. package/dist/utils/watchable.d.ts +0 -3
  384. package/dist/utils/watchable.js +0 -22
  385. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
  386. /package/dist/css/theme/{elevate.scss → _elevate.scss} +0 -0
  387. /package/dist/css/theme/{typography.module.scss → _typography-classes.scss} +0 -0
  388. /package/dist/css/theme/{typography.scss → _typography.scss} +0 -0
@@ -1,99 +1,345 @@
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
- import { useSize } from "../../composables/use-size";
6
- import { derived } from "svelte/store";
7
- 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;
8
- export { userClasses as class, userStyles as style };
9
- $:
10
- canHideOnClickOutside = value === true && persistent === false || overlay === true;
11
- $:
12
- belowBreakpoint = behavior === "mobile" === true || behavior !== "desktop" && /** TODO: Get Layout width */
13
- 1300 <= breakpoint;
14
- $:
15
- widthStyle = !$ctx && useSize(width).style;
16
- $:
17
- hideOnRouteChange = persistent !== true || overlay === true;
18
- export const show = (e) => {
19
- if (value !== true) {
20
- value = true;
21
- e && e.stopPropagation();
22
- }
23
- };
24
- export const hide = () => {
25
- if (value === true && canHideOnClickOutside === true) {
26
- value = false;
27
- }
28
- };
29
- export const toggle = (e) => {
30
- value = !value;
31
- e && e.stopPropagation();
32
- };
33
- $:
34
- if ($navigating && hideOnRouteChange) {
35
- hide();
36
- }
37
- let ctx = getContext("layout");
38
- let drawerType;
39
- $:
40
- drawerType = side === "left" ? "drawerLeft" : "drawerRight";
41
- $:
42
- classes = createClasses(
43
- [
44
- side,
45
- value && "active",
46
- overlay && "overlay",
47
- bordered && "bordered",
48
- $ctx && $ctx[drawerType].offset.top && "offset-top",
49
- $ctx && $ctx[drawerType].offset.bottom && "offset-bottom",
50
- $ctx && $ctx[drawerType].fixed && "fixed",
51
- $borderRadiusClasses,
52
- $zIndexClass
53
- ],
54
- {
55
- component: "q-drawer",
56
- userClasses
57
- }
1
+ <script lang="ts">
2
+ import { getContext, onMount, untrack } from "svelte";
3
+ import { on } from "svelte/events";
4
+ import { navigating } from "$app/state";
5
+ import { useSize } from "../../composables";
6
+ import { QContext } from "../../classes/QContext.svelte";
7
+ import { QLayoutCtxName } from "../../utils";
8
+ import type { QLayoutProps } from "../layout/props";
9
+ import type { DrawerContext } from "../layout/QLayout.svelte";
10
+ import type { QDrawerProps } from "./props";
11
+
12
+ let {
13
+ value = $bindable(false),
14
+ side = "left",
15
+ width = 300,
16
+ bordered = false,
17
+ overlay = false,
18
+ persistent = false,
19
+ noSwipe = false,
20
+ swipeThreshold = "30%",
21
+ children,
22
+ ...props
23
+ }: QDrawerProps = $props();
24
+
25
+ const PEEK_THRESHOLD = 30; // How far the drawer peeks out when cursor is near the edge
26
+ const TRANSITION = "top 0.3s, bottom 0.3s, transform 0.3s";
27
+
28
+ let unlistenClick: () => void;
29
+ let unlistenPointerdown: () => void;
30
+ let unlistenPointermove: () => void;
31
+ let unlistenPointerup: () => void;
32
+ let unlistenPointercancel: () => void;
33
+
34
+ let drawerEl = $state<HTMLDivElement>();
35
+ let swipeAreaEl = $state<HTMLDivElement>();
36
+
37
+ let isSwiping = $state(false);
38
+ let startX = $state(0);
39
+ let dragOffset = $state(0);
40
+
41
+ const drawerContext = QContext.get<DrawerContext>(
42
+ QLayoutCtxName.drawer[side],
58
43
  );
59
- $:
60
- style = createStyles(
61
- {
62
- [side === "left" ? "--leftDrawerWidth" : "--rightDrawerWidth"]: widthStyle
63
- },
64
- userStyles
44
+ const layoutView = getContext<{ value: NonNullable<QLayoutProps["view"]> }>(
45
+ QLayoutCtxName.view,
65
46
  );
66
- $:
67
- borderRadiusClasses = ctx && // No border radius if this isn't a layout drawer
68
- derived(ctx, (context) => {
69
- const borderSide = side === "left" ? "right" : "left";
70
- const shouldHaveRadius = (pos) => {
71
- let appBarEl = pos === "top" ? context["header"] : context["footer"];
72
- return overlay || !appBarEl?.display || context[drawerType].offset[pos];
47
+
48
+ const canHideOnClickOutside = $derived((value && !persistent) || overlay);
49
+
50
+ const hideOnRouteChange = $derived(!persistent || overlay);
51
+
52
+ const offsetTop = $derived.by(() => {
53
+ const charPos = side === "left" ? 0 : 2;
54
+ return layoutView?.value.charAt(charPos) === "h";
55
+ });
56
+ const offsetBottom = $derived.by(() => {
57
+ const charPos = side === "left" ? 8 : 10;
58
+ return layoutView?.value.charAt(charPos) === "f";
59
+ });
60
+
61
+ export const show = (e?: MouseEvent) => {
62
+ if (!value) {
63
+ value = true;
64
+ e?.stopPropagation();
65
+ }
66
+ };
67
+
68
+ export const hide = () => {
69
+ if (value) {
70
+ value = false;
71
+ }
72
+ };
73
+
74
+ export const toggle = (e?: MouseEvent) => {
75
+ value = !value;
76
+ e?.stopPropagation();
77
+ };
78
+
79
+ onMount(() => {
80
+ setTimeout(() => {
81
+ drawerEl?.style.setProperty("transition", TRANSITION);
82
+ }, 100);
83
+
84
+ return () => {
85
+ unlistenClick?.();
86
+ unlistenPointerdown?.();
87
+
88
+ if (isSwiping) {
89
+ unlistenPointermove?.();
90
+ unlistenPointerup?.();
91
+ unlistenPointercancel?.();
92
+
93
+ resetBodyStyles();
94
+ }
95
+
96
+ drawerContext?.updateEntries({
97
+ width: 0,
98
+ takesSpace: false,
99
+ ready: false,
100
+ });
73
101
  };
74
- return createClasses(
75
- [
76
- shouldHaveRadius("top") && `top-${borderSide}-radius`,
77
- shouldHaveRadius("bottom") && `bottom-${borderSide}-radius`
78
- ],
79
- {
80
- component: "q-drawer"
102
+ });
103
+
104
+ $effect(() => {
105
+ if (navigating.type && hideOnRouteChange) {
106
+ hide();
107
+ }
108
+ });
109
+
110
+ $effect(() => {
111
+ if (value) {
112
+ setTimeout(() => {
113
+ unlistenClick = on(window, "click", tryClose);
114
+ }, 150);
115
+
116
+ untrack(() => {
117
+ if (!noSwipe && !persistent) {
118
+ unlistenPointerdown = on(drawerEl!, "pointerdown", handlePointerDown);
119
+ swipeAreaEl?.style.setProperty("z-index", "-1");
120
+ }
121
+ });
122
+ } else {
123
+ unlistenClick?.();
124
+
125
+ if (!noSwipe) {
126
+ unlistenPointerdown = on(
127
+ swipeAreaEl!,
128
+ "pointerdown",
129
+ handlePointerDown,
130
+ );
131
+ swipeAreaEl?.style.setProperty("z-index", "10");
81
132
  }
133
+ }
134
+ });
135
+
136
+ $effect(() => {
137
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
138
+ [value, overlay, width];
139
+
140
+ untrack(() =>
141
+ drawerContext?.updateEntries({
142
+ takesSpace: !!value && !overlay,
143
+ width,
144
+ ready: true,
145
+ }),
82
146
  );
83
147
  });
84
- $:
85
- zIndexClass = ctx && derived(ctx, (context) => {
86
- const drawer = side === "left" ? context.drawerLeft : context.drawerRight;
87
- let pos;
88
- for (pos of ["top", "bottom"]) {
89
- if (!drawer.offset[pos] && overlay) {
90
- drawer.overlay = true;
91
- return "above";
148
+
149
+ const widthStyle = $derived(!drawerContext ? useSize(width).style : null);
150
+
151
+ const drawerWidthStyle = $derived(
152
+ widthStyle === null ? "" : `--${side}-drawer-width: ${widthStyle};`,
153
+ );
154
+
155
+ const style = $derived(`${drawerWidthStyle}${props.style ?? ""}`);
156
+
157
+ function tryClose(e: MouseEvent) {
158
+ const isTargetDrawer = e.target === drawerEl;
159
+ const isTargetInsideDrawer = drawerEl?.contains(e.target as Node);
160
+
161
+ if (canHideOnClickOutside && !isTargetDrawer && !isTargetInsideDrawer) {
162
+ e.stopPropagation();
163
+ hide();
164
+ }
165
+ }
166
+
167
+ function handlePointerDown(e: PointerEvent) {
168
+ if (
169
+ noSwipe ||
170
+ !drawerEl ||
171
+ !swipeAreaEl ||
172
+ (e.pointerType === "mouse" && e.buttons !== 1) ||
173
+ (value && persistent)
174
+ ) {
175
+ return;
176
+ }
177
+
178
+ const drawerRect = drawerEl.getBoundingClientRect();
179
+ const y = e.clientY;
180
+
181
+ if (y < drawerRect.top || y > drawerRect.bottom) {
182
+ // Ignore pointer events outside the vertical bounds of the drawer
183
+ return;
184
+ }
185
+
186
+ let swipeAllowed = false;
187
+ startX = e.clientX;
188
+
189
+ if (!value) {
190
+ swipeAllowed = true;
191
+
192
+ const baseWidth = side === "left" ? -width : width;
193
+
194
+ dragOffset =
195
+ baseWidth + (side === "left" ? PEEK_THRESHOLD : -PEEK_THRESHOLD);
196
+
197
+ drawerEl.style.transform = `translateX(${dragOffset}px)`;
198
+ } else {
199
+ // If drawer is open, allow swipe from anywhere
200
+ swipeAllowed = true;
201
+
202
+ // No initial dragOffset change or transform needed as it's already open.
203
+ // dragOffset will be calculated fresh in handlePointerMove.
204
+ }
205
+
206
+ if (!swipeAllowed) {
207
+ return;
208
+ }
209
+
210
+ isSwiping = true;
211
+
212
+ e.stopPropagation();
213
+ e.preventDefault();
214
+
215
+ document.body.style.setProperty("cursor", "grabbing");
216
+ document.body.style.setProperty("user-select", "none"); // Disable text selection
217
+
218
+ drawerEl.style.transition = "none"; // Disable CSS transitions for smooth dragging
219
+ drawerEl.style.touchAction = "none"; // Disable touch actions
220
+
221
+ swipeAreaEl?.style.setProperty("width", "100vw"); // Expand swipe area to full width
222
+
223
+ unlistenPointermove = on(
224
+ e.target as HTMLElement,
225
+ "pointermove",
226
+ handlePointerMove,
227
+ );
228
+ unlistenPointerup = on(
229
+ e.target as HTMLElement,
230
+ "pointerup",
231
+ handlePointerUp,
232
+ {
233
+ passive: true,
234
+ },
235
+ );
236
+ unlistenPointercancel = on(
237
+ e.target as HTMLElement,
238
+ "pointercancel",
239
+ handlePointerUp,
240
+ {
241
+ passive: true,
242
+ },
243
+ );
244
+ }
245
+
246
+ function handlePointerMove(e: PointerEvent) {
247
+ if (noSwipe || !drawerEl || !swipeAreaEl || !isSwiping) {
248
+ return;
249
+ }
250
+
251
+ e.preventDefault();
252
+
253
+ let deltaX = e.clientX - startX;
254
+
255
+ let newPosition: number;
256
+ // basePosition is the starting translation before applying the current deltaX.
257
+ let basePosition: number;
258
+
259
+ if (side === "left") {
260
+ // For a left-side drawer, dragOffset is between -width (fully closed) and 0 (fully open).
261
+ basePosition = value ? 0 : PEEK_THRESHOLD - width;
262
+ newPosition = basePosition + deltaX;
263
+ // Clamp newPosition to be within [-width, 0]
264
+ dragOffset = Math.max(-width, Math.min(0, newPosition));
265
+ } else {
266
+ // For a right-side drawer, dragOffset is between width (fully closed) and 0 (fully open).
267
+ basePosition = value ? 0 : width - PEEK_THRESHOLD;
268
+ newPosition = basePosition + deltaX;
269
+ // Clamp newPosition to be within [0, width]
270
+ dragOffset = Math.max(0, Math.min(width, newPosition));
271
+ }
272
+
273
+ drawerEl.style.transform = `translateX(${dragOffset}px)`;
274
+ }
275
+
276
+ function handlePointerUp() {
277
+ if (noSwipe || !drawerEl || !swipeAreaEl || !isSwiping) {
278
+ return;
279
+ }
280
+
281
+ isSwiping = false;
282
+
283
+ resetBodyStyles();
284
+
285
+ drawerEl.style.transition = TRANSITION;
286
+ drawerEl.style.transform = "";
287
+ drawerEl.style.touchAction = ""; // Re-enable touch actions
288
+
289
+ swipeAreaEl?.style.removeProperty("width"); // Reset swipe area width
290
+
291
+ const thresholdWidth =
292
+ (width * parseInt(swipeThreshold.replace("%", ""))) / 100;
293
+ const realThreshold = value ? width - thresholdWidth : thresholdWidth;
294
+
295
+ const swiped = width + (side === "left" ? dragOffset : -dragOffset);
296
+
297
+ if (swiped >= realThreshold) {
298
+ if (!value) {
299
+ show(); // Snap open
300
+ }
301
+ } else {
302
+ if (value) {
303
+ hide(); // Snap closed
92
304
  }
93
305
  }
94
- });
306
+
307
+ dragOffset = 0;
308
+
309
+ unlistenPointercancel?.();
310
+ unlistenPointermove?.();
311
+ unlistenPointerup?.();
312
+ }
313
+
314
+ function resetBodyStyles() {
315
+ document.body.style.removeProperty("cursor");
316
+ document.body.style.removeProperty("user-select");
317
+ }
95
318
  </script>
96
319
 
97
- <div use:clickOutside={hide} class={classes} {style} {...$$restProps}>
98
- <slot />
320
+ <div
321
+ bind:this={drawerEl}
322
+ {...props}
323
+ class={[
324
+ "q-drawer",
325
+ props.class,
326
+ `q-drawer--${side}`,
327
+ value && "q-drawer--active",
328
+ overlay && "q-drawer--overlay",
329
+ bordered && "q-drawer--bordered",
330
+ offsetTop && "q-drawer--offset-top",
331
+ offsetBottom && "q-drawer--offset-bottom",
332
+ ]}
333
+ {style}
334
+ data-quaff
335
+ >
336
+ {@render children?.()}
99
337
  </div>
338
+
339
+ {#if !noSwipe}
340
+ <div
341
+ bind:this={swipeAreaEl}
342
+ class="q-drawer__swipearea q-drawer__swipearea--{side}"
343
+ onpointerdown={handlePointerDown}
344
+ ></div>
345
+ {/if}
@@ -1,40 +1,21 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { QDrawerProps } from "./props";
1
+ import { SvelteComponentTyped } from "svelte";
3
2
  declare const __propDef: {
4
3
  props: {
5
- [x: string]: any;
6
- value?: QDrawerProps["value"];
7
- side?: QDrawerProps["side"];
8
- width?: QDrawerProps["width"];
9
- breakpoint?: QDrawerProps["breakpoint"];
10
- showIfAbove?: QDrawerProps["showIfAbove"];
11
- behavior?: QDrawerProps["behavior"];
12
- bordered?: QDrawerProps["bordered"];
13
- elevated?: QDrawerProps["elevated"];
14
- overlay?: QDrawerProps["overlay"];
15
- persistent?: QDrawerProps["persistent"];
16
- noSwipeOpen?: QDrawerProps["noSwipeOpen"];
17
- noSwipeClose?: QDrawerProps["noSwipeClose"];
18
- noSwipeBackdrop?: QDrawerProps["noSwipeBackdrop"];
19
- class?: string | undefined;
20
- style?: string | undefined;
21
- show?: ((e?: MouseEvent) => void) | undefined;
22
- hide?: (() => void) | undefined;
23
- toggle?: ((e?: MouseEvent) => void) | undefined;
4
+ show?: (e?: MouseEvent) => void;
5
+ hide?: () => void;
6
+ toggle?: (e?: MouseEvent) => void;
24
7
  };
25
8
  events: {
26
9
  [evt: string]: CustomEvent<any>;
27
10
  };
28
- slots: {
29
- default: {};
30
- };
11
+ slots: {};
31
12
  };
32
13
  type QDrawerProps_ = typeof __propDef.props;
33
14
  export { QDrawerProps_ as QDrawerProps };
34
15
  export type QDrawerEvents = typeof __propDef.events;
35
16
  export type QDrawerSlots = typeof __propDef.slots;
36
- export default class QDrawer extends SvelteComponent<QDrawerProps, QDrawerEvents, QDrawerSlots> {
37
- get show(): any;
38
- get hide(): any;
39
- get toggle(): any;
17
+ export default class QDrawer extends SvelteComponentTyped<QDrawerProps_, QDrawerEvents, QDrawerSlots> {
18
+ get show(): (e?: MouseEvent) => void;
19
+ get hide(): () => void;
20
+ get toggle(): (e?: MouseEvent) => void;
40
21
  }
@@ -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,10 +1,10 @@
1
- import { QDrawerDocsProps } from "./docs.props";
2
- export let QDrawerDocs = {
1
+ import { QDrawerDocsProps, QDrawerDocsSnippets } from "./docs.props";
2
+ export const QDrawerDocs = {
3
3
  name: "QDrawer",
4
4
  description: "Navigation drawers provide ergonomic access to destinations in an app",
5
5
  docs: {
6
6
  props: QDrawerDocsProps,
7
- slots: [],
7
+ snippets: QDrawerDocsSnippets,
8
8
  methods: [],
9
9
  events: [],
10
10
  },
@@ -1,8 +1,3 @@
1
- export declare const QDrawerDocsProps: {
2
- name: string;
3
- type: string;
4
- optional: boolean;
5
- clickableType: boolean;
6
- description: string;
7
- default: string;
8
- }[];
1
+ import { ParsedProp, ParsedSnippet } from "../../../../docgen/props/parseInterface";
2
+ export declare const QDrawerDocsProps: ParsedProp[];
3
+ export declare const QDrawerDocsSnippets: ParsedSnippet[];