@quaffui/quaff 0.1.0-prealpha9 → 1.0.0-alpha1

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 (387) 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 +15 -0
  10. package/dist/classes/Quaff.svelte.js +45 -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 +25 -0
  40. package/dist/components/card/QCard.svelte +34 -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 +90 -44
  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 +39 -0
  83. package/dist/components/drawer/QDrawer.svelte +138 -90
  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 +94 -39
  89. package/dist/components/drawer/props.d.ts +4 -3
  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 +174 -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 +59 -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 +119 -68
  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 +16 -92
  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 +10 -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/{selection.scss → _selection.scss} +10 -70
  287. package/dist/css/mixins/_spaces.scss +36 -0
  288. package/dist/css/mixins/_toolbar.scss +7 -0
  289. package/dist/css/mixins/_typography.scss +7 -0
  290. package/dist/css/shared/q-field.scss +348 -0
  291. package/dist/css/theme/_color-classes.scss +332 -0
  292. package/dist/css/theme/_colors.scss +205 -0
  293. package/dist/css/theme/_css-variables.scss +5 -0
  294. package/dist/css/theme/_index.scss +12 -0
  295. package/dist/css/theme/_page.scss +17 -0
  296. package/dist/css/theme/{palette.scss → _palette.scss} +27 -5
  297. package/dist/css/theme/{reset.scss → _reset.scss} +11 -2
  298. package/dist/css/theme/_typography-variables.scss +107 -0
  299. package/dist/global.d.ts +1 -1
  300. package/dist/helpers/clickOutside.d.ts +2 -2
  301. package/dist/helpers/clickOutside.js +5 -4
  302. package/dist/helpers/index.d.ts +2 -1
  303. package/dist/helpers/index.js +2 -1
  304. package/dist/helpers/pageTitle.d.ts +1 -0
  305. package/dist/helpers/pageTitle.js +3 -0
  306. package/dist/helpers/ripple.d.ts +1 -0
  307. package/dist/helpers/ripple.js +31 -16
  308. package/dist/helpers/version.d.ts +1 -1
  309. package/dist/helpers/version.js +1 -1
  310. package/dist/index.d.ts +4 -1
  311. package/dist/index.js +4 -1
  312. package/dist/stores/index.d.ts +0 -0
  313. package/dist/stores/index.js +1 -0
  314. package/dist/utils/clipboard.d.ts +1 -1
  315. package/dist/utils/clipboard.js +3 -4
  316. package/dist/utils/colors.d.ts +69 -0
  317. package/dist/utils/colors.js +141 -15
  318. package/dist/utils/context.d.ts +33 -0
  319. package/dist/utils/context.js +33 -0
  320. package/dist/utils/dom.d.ts +3 -0
  321. package/dist/utils/dom.js +14 -4
  322. package/dist/utils/events.d.ts +24 -0
  323. package/dist/utils/events.js +24 -0
  324. package/dist/utils/index.d.ts +11 -0
  325. package/dist/utils/index.js +11 -1
  326. package/dist/utils/number.d.ts +2 -0
  327. package/dist/utils/number.js +9 -0
  328. package/dist/utils/props.d.ts +4 -4
  329. package/dist/utils/props.js +8 -6
  330. package/dist/utils/router.d.ts +16 -0
  331. package/dist/utils/router.js +20 -0
  332. package/dist/utils/string.d.ts +2 -0
  333. package/dist/utils/string.js +12 -1
  334. package/dist/utils/types.d.ts +12 -18
  335. package/dist/utils/types.js +0 -3
  336. package/dist/utils/types.json +31 -1
  337. package/package.json +44 -39
  338. package/dist/components/breadcrumbs/index.scss +0 -20
  339. package/dist/components/button/index.scss +0 -98
  340. package/dist/components/card/index.scss +0 -56
  341. package/dist/components/chip/index.scss +0 -86
  342. package/dist/components/drawer/index.scss +0 -59
  343. package/dist/components/footer/index.scss +0 -28
  344. package/dist/components/layout/index.scss +0 -387
  345. package/dist/components/list/index.scss +0 -121
  346. package/dist/components/progress/index.scss +0 -65
  347. package/dist/components/railbar/index.scss +0 -39
  348. package/dist/components/toggle/QToggle.svelte +0 -35
  349. package/dist/components/toggle/QToggle.svelte.d.ts +0 -23
  350. package/dist/components/toggle/docs.d.ts +0 -2
  351. package/dist/components/toggle/docs.js +0 -47
  352. package/dist/components/toggle/docs.props.d.ts +0 -8
  353. package/dist/components/toggle/docs.props.js +0 -42
  354. package/dist/components/toggle/index.scss +0 -31
  355. package/dist/components/toggle/props.d.ts +0 -9
  356. package/dist/components/toggle/props.js +0 -9
  357. package/dist/components/tooltip/index.scss +0 -82
  358. package/dist/composables/use-index.d.ts +0 -2
  359. package/dist/composables/use-index.js +0 -17
  360. package/dist/composables/use-size.d.ts +0 -9
  361. package/dist/composables/use-size.js +0 -25
  362. package/dist/css/grid.scss +0 -50
  363. package/dist/css/mixins/field.scss +0 -432
  364. package/dist/css/mixins.scss +0 -136
  365. package/dist/css/states.scss +0 -75
  366. package/dist/css/theme/bridge.scss +0 -15
  367. package/dist/css/theme/colors.module.scss +0 -180
  368. package/dist/css/theme/page.scss +0 -16
  369. package/dist/css/theme/theme.dark.scss +0 -37
  370. package/dist/css/theme/theme.light.scss +0 -37
  371. package/dist/css/theme/theme.scss +0 -11
  372. package/dist/css/theme/tokens.scss +0 -266
  373. package/dist/css/variables-sass.scss +0 -16
  374. package/dist/helpers/activationHandler.d.ts +0 -9
  375. package/dist/helpers/activationHandler.js +0 -23
  376. package/dist/stores/QTheme.d.ts +0 -42
  377. package/dist/stores/QTheme.js +0 -53
  378. package/dist/stores/Quaff.d.ts +0 -32
  379. package/dist/stores/Quaff.js +0 -53
  380. package/dist/utils/fields.d.ts +0 -1
  381. package/dist/utils/fields.js +0 -14
  382. package/dist/utils/watchable.d.ts +0 -3
  383. package/dist/utils/watchable.js +0 -22
  384. /package/dist/css/mixins/{table.scss → _table.scss} +0 -0
  385. /package/dist/css/theme/{elevate.scss → _elevate.scss} +0 -0
  386. /package/dist/css/theme/{typography.module.scss → _typography-classes.scss} +0 -0
  387. /package/dist/css/theme/{typography.scss → _typography.scss} +0 -0
@@ -1,106 +1,140 @@
1
- <script>import { createClasses } from "../../utils/props";
2
- import QBtn from "../button/QBtn.svelte";
3
- import QIcon from "../icon/QIcon.svelte";
4
- import QSelect from "../select/QSelect.svelte";
5
- export let columns = [], rows = [], flat = void 0, bordered = void 0, dense = false, userClasses = "";
6
- export { userClasses as class };
7
- function getField(fieldRaw, row) {
8
- return typeof fieldRaw === "function" ? fieldRaw(row) : row[fieldRaw];
9
- }
10
- let page = 1;
11
- let rowsPerPage = 5;
12
- let rowsPerPageOptions = [5, 10, 25, 50].map((e) => ({
13
- label: e.toString(),
14
- value: e.toString()
15
- }));
16
- $:
17
- classes = createClasses([], {
18
- component: "q-table",
19
- userClasses
1
+ <script lang="ts">
2
+ import { QIcon, QSelect, QBtn } from "../..";
3
+ import type {
4
+ QTableProps,
5
+ QTableColumn,
6
+ QTableRow,
7
+ QTableSort,
8
+ } from "./props";
9
+
10
+ let {
11
+ columns = [],
12
+ rows = [],
13
+ flat,
14
+ bordered,
15
+ dense = false,
16
+ bodyCell,
17
+ ...props
18
+ }: QTableProps = $props();
19
+
20
+ function getField(
21
+ fieldRaw: QTableColumn["field"],
22
+ row: QTableRow,
23
+ ): string | number {
24
+ return typeof fieldRaw === "function" ? fieldRaw(row) : row[fieldRaw];
25
+ }
26
+
27
+ let page = $state(1);
28
+ let rowsPerPage = $state(5);
29
+ let rowsPerPageOptions = $state(
30
+ [5, 10, 25, 50].map((e) => ({
31
+ label: e.toString(),
32
+ value: e.toString(),
33
+ })),
34
+ );
35
+ let sort: QTableSort = $state(null);
36
+
37
+ const numberFrom: number = $derived(rowsPerPage * page - rowsPerPage + 1);
38
+ const numberTo: number = $derived(
39
+ rowsPerPage * page > rows.length ? rows.length : rowsPerPage * page,
40
+ );
41
+ const numberOf: number = $derived(rows.length);
42
+
43
+ $effect(() => {
44
+ if (rowsPerPage * (page - 1) >= rows.length) {
45
+ page = 1;
46
+ }
20
47
  });
21
- $:
22
- classesTable = createClasses([flat && "flat", bordered && "bordered", dense && "dense"], {
23
- component: "q-table",
24
- element: "table",
25
- userClasses
48
+
49
+ const rowsSorted: QTableRow[] = $derived.by(() => {
50
+ if (sort) {
51
+ return structuredClone(rows).sort((a: QTableRow, b: QTableRow) => {
52
+ const valA = getField(sort!.columnField, a);
53
+ const valB = getField(sort!.columnField, b);
54
+
55
+ if (typeof valA === "string" && typeof valB === "string") {
56
+ return sort?.type === "desc"
57
+ ? valB.localeCompare(valA)
58
+ : valA.localeCompare(valB);
59
+ }
60
+
61
+ return sort?.type === "desc"
62
+ ? parseFloat(valA.toString()) > parseFloat(valB.toString())
63
+ ? -1
64
+ : 1
65
+ : parseFloat(valB.toString()) > parseFloat(valA.toString())
66
+ ? -1
67
+ : 1;
68
+ });
69
+ }
70
+
71
+ return rows;
26
72
  });
27
- let sort = null;
28
- let rowsSorted = rows;
29
- let rowsPaginated = [];
30
- let numberFrom = 1;
31
- let numberTo = 5;
32
- let numberOf = rows.length;
33
- $:
34
- numberFrom = rowsPerPage * page - rowsPerPage + 1;
35
- $:
36
- numberTo = rowsPerPage * page > rows.length ? rows.length : rowsPerPage * page;
37
- $:
38
- numberOf = rows.length;
39
- $:
40
- rowsPaginated = rowsSorted.slice(numberFrom - 1, numberTo);
41
- $: {
42
- if (rowsPerPage * (page - 1) >= rows.length) {
43
- page = 1;
73
+
74
+ const rowsPaginated: QTableRow[] = $derived(
75
+ rowsSorted.slice(numberFrom - 1, numberTo),
76
+ );
77
+
78
+ function getThStyle(column: QTableColumn) {
79
+ let style = allowsSort(column) ? "cursor: pointer; " : "";
80
+ return style + getCellStyle(column);
81
+ }
82
+
83
+ function getCellStyle(column: QTableColumn) {
84
+ if (column.align === "center") {
85
+ return "text-align: center";
86
+ } else if (column.align === "right") {
87
+ return "text-align: right";
88
+ }
89
+
90
+ return "";
44
91
  }
45
- }
46
- $: {
47
- if (sort) {
48
- rowsSorted = structuredClone(rows).sort((a, b) => {
49
- const valA = getField(sort.columnField, a);
50
- const valB = getField(sort.columnField, b);
51
- if (typeof valA === "string" && typeof valB === "string") {
52
- return sort?.type === "desc" ? valB.localeCompare(valA) : valA.localeCompare(valB);
53
- }
54
- return sort?.type === "desc" ? parseFloat(valA.toString()) > parseFloat(valB.toString()) ? -1 : 1 : parseFloat(valB.toString()) > parseFloat(valA.toString()) ? -1 : 1;
55
- });
56
- } else {
57
- rowsSorted = rows;
92
+
93
+ function allowsSort(column: QTableColumn) {
94
+ return columns.find((col) => col.name === column.name)?.sortable;
58
95
  }
59
- }
60
- function getThStyle(column) {
61
- let style = allowsSort(column) ? "cursor: pointer; " : "";
62
- return style + getCellStyle(column);
63
- }
64
- function getCellStyle(column) {
65
- if (column.align === "center") {
66
- return "text-align: center";
67
- } else if (column.align === "right") {
68
- return "text-align: right";
96
+
97
+ function hasSort(column: QTableColumn, sort: QTableSort) {
98
+ return sort?.columnField === column.field;
69
99
  }
70
- return "";
71
- }
72
- function allowsSort(column) {
73
- return columns.find((col) => col.name === column.name)?.sortable;
74
- }
75
- function hasSort(column, sort2) {
76
- return sort2?.columnField === column.field;
77
- }
78
- function setSort(column) {
79
- const shouldRemove = hasSort(column, sort) && sort?.type === "desc";
80
- if (shouldRemove) {
81
- sort = null;
82
- return;
100
+
101
+ function setSort(column: QTableColumn) {
102
+ const shouldRemove = hasSort(column, sort) && sort?.type === "desc";
103
+ if (shouldRemove) {
104
+ sort = null;
105
+ return;
106
+ }
107
+
108
+ sort = {
109
+ columnField: column.field,
110
+ type: !sort?.type || sort?.type === "desc" ? "asc" : "desc",
111
+ };
83
112
  }
84
- sort = {
85
- columnField: column.field,
86
- type: !sort?.type || sort?.type === "desc" ? "asc" : "desc"
87
- };
88
- }
89
113
  </script>
90
114
 
91
- <div class={classes}>
92
- <table class={classesTable}>
115
+ <div {...props} class="q-table" data-quaff>
116
+ <table
117
+ class={[
118
+ "q-table__table",
119
+ props.class,
120
+ flat && "q-table__table--flat",
121
+ bordered && "q-table__table--bordered",
122
+ dense && "q-table__table--dense",
123
+ ]}
124
+ >
93
125
  <thead>
94
126
  <tr>
95
- {#each columns as column}
96
- <th style={getThStyle(column)} on:click={() => setSort(column)}>
127
+ {#each columns as column (column)}
128
+ <th style={getThStyle(column)} onclick={() => setSort(column)}>
97
129
  {#if column.align === "left"}
98
130
  {column.label}
99
131
  {/if}
100
132
 
101
133
  {#if allowsSort(column)}
102
134
  <QIcon
103
- name={sort?.type !== "desc" ? "keyboard_arrow_up" : "keyboard_arrow_down"}
135
+ name={sort?.type !== "desc"
136
+ ? "keyboard_arrow_up"
137
+ : "keyboard_arrow_down"}
104
138
  class="q-icon {hasSort(column, sort) ? 'q-icon--sort' : ''}"
105
139
  />
106
140
  {/if}
@@ -113,14 +147,16 @@ function setSort(column) {
113
147
  </tr>
114
148
  </thead>
115
149
  <tbody>
116
- {#each rowsPaginated as row}
150
+ {#each rowsPaginated as row (row)}
117
151
  <tr>
118
- {#each columns as column}
119
- <slot name="body-cell" {column} {row} style={getCellStyle(column)}>
152
+ {#each columns as column (column)}
153
+ {#if bodyCell}
154
+ {@render bodyCell({ column, row, style: getCellStyle(column) })}
155
+ {:else}
120
156
  <td class="q-table__body-cell" style={getCellStyle(column)}
121
157
  >{getField(column.field, row)}</td
122
158
  >
123
- </slot>
159
+ {/if}
124
160
  {/each}
125
161
  </tr>
126
162
  {/each}
@@ -139,16 +175,16 @@ function setSort(column) {
139
175
  <QBtn
140
176
  icon="chevron_left"
141
177
  size="sm"
142
- flat
143
- disable={page === 1}
144
- on:click={() => (page = page - 1)}
178
+ variant="flat"
179
+ disabled={page === 1}
180
+ onclick={() => page--}
145
181
  />
146
182
  <QBtn
147
183
  icon="chevron_right"
148
184
  size="sm"
149
- flat
150
- disable={page * rowsPerPage >= rows.length}
151
- on:click={() => (page = page + 1)}
185
+ variant="flat"
186
+ disabled={page * rowsPerPage >= rows.length}
187
+ onclick={() => page++}
152
188
  />
153
189
  </div>
154
190
  </div>
@@ -1,29 +1,14 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { QTableProps } from "./props";
3
- import type { QTableColumn, QTableRow } from "./props";
1
+ import { SvelteComponentTyped } from "svelte";
4
2
  declare const __propDef: {
5
- props: {
6
- columns?: QTableColumn[] | undefined;
7
- rows?: QTableRow[] | undefined;
8
- flat?: QTableProps["flat"];
9
- bordered?: QTableProps["bordered"];
10
- dense?: boolean | undefined;
11
- class?: string | undefined;
12
- };
3
+ props: Record<string, never>;
13
4
  events: {
14
5
  [evt: string]: CustomEvent<any>;
15
6
  };
16
- slots: {
17
- 'body-cell': {
18
- column: QTableColumn;
19
- row: QTableRow;
20
- style: string;
21
- };
22
- };
7
+ slots: {};
23
8
  };
24
9
  type QTableProps_ = typeof __propDef.props;
25
10
  export { QTableProps_ as QTableProps };
26
11
  export type QTableEvents = typeof __propDef.events;
27
12
  export type QTableSlots = typeof __propDef.slots;
28
- export default class QTable extends SvelteComponent<QTableProps, QTableEvents, QTableSlots> {
13
+ export default class QTable extends SvelteComponentTyped<QTableProps_, QTableEvents, QTableSlots> {
29
14
  }
@@ -1,2 +1,2 @@
1
- import type { QComponentDocs } from "../../utils/types";
2
- export declare let QTableDocs: QComponentDocs;
1
+ import type { QComponentDocs } from "../../utils";
2
+ export declare const QTableDocs: QComponentDocs;
@@ -1,10 +1,10 @@
1
- import { QTableDocsProps } from "./docs.props";
2
- export let QTableDocs = {
1
+ import { QTableDocsProps, QTableDocsSnippets } from "./docs.props";
2
+ export const QTableDocs = {
3
3
  name: "QTable",
4
4
  description: "Tables allow for a clear presentation of data sets.",
5
5
  docs: {
6
6
  props: QTableDocsProps,
7
- slots: [],
7
+ snippets: QTableDocsSnippets,
8
8
  methods: [],
9
9
  events: [],
10
10
  },
@@ -1,8 +1,3 @@
1
- export declare const QTableDocsProps: {
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 QTableDocsProps: ParsedProp[];
3
+ export declare const QTableDocsSnippets: ParsedSnippet[];
@@ -1,42 +1,94 @@
1
+ // AUTO GENERATED FILE - DO NOT MODIFY OR DELETE
2
+ // @quaffHash 12beb243872d289efedb5d3b19be611d
1
3
  export const QTableDocsProps = [
2
4
  {
3
- name: "columns",
4
- type: "QTableColumn[]",
5
+ isArray: true,
5
6
  optional: false,
6
- clickableType: true,
7
+ isSnippet: false,
8
+ name: "columns",
9
+ type: {
10
+ name: "QTableColumn",
11
+ isClickable: true,
12
+ },
7
13
  description: "Column definitions of the table.",
8
14
  default: "[]",
9
15
  },
10
16
  {
11
- name: "rows",
12
- type: "QTableRow[]",
17
+ isArray: true,
13
18
  optional: false,
14
- clickableType: true,
19
+ isSnippet: false,
20
+ name: "rows",
21
+ type: {
22
+ name: "QTableRow",
23
+ isClickable: true,
24
+ },
15
25
  description: "Rows of the table.",
16
26
  default: "[]",
17
27
  },
18
28
  {
19
- name: "flat",
20
- type: "boolean",
29
+ isArray: false,
21
30
  optional: true,
22
- clickableType: false,
31
+ isSnippet: false,
32
+ name: "flat",
33
+ type: {
34
+ name: "boolean",
35
+ isClickable: false,
36
+ },
23
37
  description: "Uses flat design, removing the box-shadow around the table.",
24
38
  default: "false",
25
39
  },
26
40
  {
27
- name: "bordered",
28
- type: "boolean",
41
+ isArray: false,
29
42
  optional: true,
30
- clickableType: false,
43
+ isSnippet: false,
44
+ name: "bordered",
45
+ type: {
46
+ name: "boolean",
47
+ isClickable: false,
48
+ },
31
49
  description: "Adds a border around the table.",
32
50
  default: "false",
33
51
  },
34
52
  {
53
+ isArray: false,
54
+ optional: true,
55
+ isSnippet: false,
35
56
  name: "dense",
36
- type: "boolean",
37
- optional: false,
38
- clickableType: false,
57
+ type: {
58
+ name: "boolean",
59
+ isClickable: false,
60
+ },
39
61
  description: "Shows the Table in dense mode (takes up less space).",
40
62
  default: "false",
41
63
  },
42
64
  ];
65
+ export const QTableDocsSnippets = [
66
+ {
67
+ isArray: false,
68
+ optional: true,
69
+ isSnippet: true,
70
+ name: "bodyCell",
71
+ type: [
72
+ {
73
+ propName: "column",
74
+ isClickable: true,
75
+ optional: false,
76
+ name: "QTableColumn",
77
+ },
78
+ {
79
+ propName: "row",
80
+ isClickable: true,
81
+ optional: false,
82
+ name: "QTableRow",
83
+ },
84
+ {
85
+ propName: "style",
86
+ isClickable: false,
87
+ optional: false,
88
+ name: "string",
89
+ },
90
+ ],
91
+ description: "Optionally pass a snippet to render each table cell.",
92
+ default: "undefined",
93
+ },
94
+ ];
@@ -1,6 +1,8 @@
1
+ @use "$css/mixins";
2
+
1
3
  .q-table {
2
4
  &__table {
3
- @include table;
5
+ @include mixins.table;
4
6
 
5
7
  border-radius: 0.75rem;
6
8
  box-shadow: var(--elevate1);
@@ -1,4 +1,6 @@
1
- import type { NativeProps } from "../../utils/types";
1
+ import type { NativeProps } from "../../utils";
2
+ import type { Snippet } from "svelte";
3
+ import type { HTMLAttributes } from "svelte/elements";
2
4
  export type QTableColumn = {
3
5
  name: string;
4
6
  required?: boolean;
@@ -16,7 +18,7 @@ export type QTableSort = {
16
18
  columnField: string | ((row: QTableRow) => string);
17
19
  type: "asc" | "desc";
18
20
  } | null;
19
- export interface QTableProps extends NativeProps {
21
+ export interface QTableProps extends NativeProps, HTMLAttributes<HTMLDivElement> {
20
22
  /**
21
23
  * Column definitions of the table.
22
24
  * @default []
@@ -41,5 +43,14 @@ export interface QTableProps extends NativeProps {
41
43
  * Shows the Table in dense mode (takes up less space).
42
44
  * @default false
43
45
  */
44
- dense: boolean;
46
+ dense?: boolean;
47
+ /**
48
+ * Optionally pass a snippet to render each table cell.
49
+ * @default undefined
50
+ */
51
+ bodyCell?: Snippet<[{
52
+ column: QTableColumn;
53
+ row: QTableRow;
54
+ style: string;
55
+ }]>;
45
56
  }
@@ -0,0 +1,71 @@
1
+ @use "$css/mixins";
2
+
3
+ .q-tab {
4
+ position: relative;
5
+ box-sizing: border-box;
6
+ min-height: 3rem;
7
+ height: 3rem;
8
+ min-width: max-content;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ flex: 1;
13
+ background-color: var(--surface);
14
+ color: var(--on-surface);
15
+ border-radius: 0;
16
+ gap: 0;
17
+ overflow: visible;
18
+ @include mixins.padding("x-md");
19
+
20
+ & .q-tab__icon + span {
21
+ margin-left: 0.5rem;
22
+ }
23
+
24
+ &.q-tab--active {
25
+ color: var(--primary);
26
+
27
+ & .q-tab__indicator {
28
+ opacity: 1;
29
+ }
30
+ }
31
+
32
+ &:is(:hover, :focus):not([aria-disabled])::after {
33
+ content: "";
34
+ position: absolute;
35
+ top: 0;
36
+ left: 0;
37
+ width: 100%;
38
+ height: 100%;
39
+ background-color: var(--on-surface);
40
+ border-radius: none;
41
+ overflow: hidden;
42
+ }
43
+
44
+ &:hover:not([aria-disabled])::after {
45
+ opacity: 0.08;
46
+ }
47
+
48
+ &:focus:not([aria-disabled])::after {
49
+ opacity: 0.16;
50
+ }
51
+
52
+ & .q-tab__content {
53
+ height: 100%;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ }
58
+
59
+ & .q-tab__indicator {
60
+ position: absolute;
61
+ box-sizing: border-box;
62
+ transform-origin: bottom left;
63
+ background: var(--primary);
64
+ border-radius: 0.1875rem 0.1875rem 0 0;
65
+ height: 0.1875rem;
66
+ inset: auto 0 0 0;
67
+ // hidden unless the tab is selected
68
+ opacity: 0;
69
+ z-index: 1;
70
+ }
71
+ }