quasar 2.15.1 → 2.15.3

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 (795) hide show
  1. package/dist/api/AddressbarColor.json +1 -1
  2. package/dist/api/AppFullscreen.json +1 -1
  3. package/dist/api/BottomSheet.json +1 -1
  4. package/dist/api/ClosePopup.json +1 -1
  5. package/dist/api/Cookies.json +1 -1
  6. package/dist/api/Dark.json +1 -1
  7. package/dist/api/Dialog.json +1 -1
  8. package/dist/api/IconSet.json +1 -0
  9. package/dist/api/Intersection.json +1 -1
  10. package/dist/api/Lang.json +1 -1
  11. package/dist/api/Loading.json +1 -1
  12. package/dist/api/LoadingBar.json +1 -1
  13. package/dist/api/LocalStorage.json +1 -1
  14. package/dist/api/Morph.json +1 -1
  15. package/dist/api/Mutation.json +1 -1
  16. package/dist/api/Notify.json +1 -1
  17. package/dist/api/Platform.json +1 -1
  18. package/dist/api/QAjaxBar.json +1 -1
  19. package/dist/api/QAvatar.json +1 -1
  20. package/dist/api/QBadge.json +1 -1
  21. package/dist/api/QBanner.json +1 -1
  22. package/dist/api/QBar.json +1 -1
  23. package/dist/api/QBreadcrumbs.json +1 -1
  24. package/dist/api/QBreadcrumbsEl.json +1 -1
  25. package/dist/api/QBtn.json +1 -1
  26. package/dist/api/QBtnDropdown.json +1 -1
  27. package/dist/api/QBtnToggle.json +1 -1
  28. package/dist/api/QCard.json +1 -1
  29. package/dist/api/QCardActions.json +1 -1
  30. package/dist/api/QCardSection.json +1 -1
  31. package/dist/api/QCarousel.json +1 -1
  32. package/dist/api/QCarouselControl.json +1 -1
  33. package/dist/api/QCarouselSlide.json +1 -1
  34. package/dist/api/QChatMessage.json +1 -1
  35. package/dist/api/QCheckbox.json +1 -1
  36. package/dist/api/QChip.json +1 -1
  37. package/dist/api/QCircularProgress.json +1 -1
  38. package/dist/api/QColor.json +1 -1
  39. package/dist/api/QDate.json +1 -1
  40. package/dist/api/QDialog.json +1 -1
  41. package/dist/api/QDrawer.json +1 -1
  42. package/dist/api/QEditor.json +1 -1
  43. package/dist/api/QExpansionItem.json +1 -1
  44. package/dist/api/QFab.json +1 -1
  45. package/dist/api/QFabAction.json +1 -1
  46. package/dist/api/QField.json +1 -1
  47. package/dist/api/QFile.json +1 -1
  48. package/dist/api/QFooter.json +1 -1
  49. package/dist/api/QForm.json +1 -1
  50. package/dist/api/QFormChildMixin.json +1 -1
  51. package/dist/api/QHeader.json +1 -1
  52. package/dist/api/QIcon.json +1 -1
  53. package/dist/api/QImg.json +1 -1
  54. package/dist/api/QInfiniteScroll.json +1 -1
  55. package/dist/api/QInnerLoading.json +1 -1
  56. package/dist/api/QInput.json +1 -1
  57. package/dist/api/QIntersection.json +1 -1
  58. package/dist/api/QItem.json +1 -1
  59. package/dist/api/QKnob.json +1 -1
  60. package/dist/api/QLayout.json +1 -1
  61. package/dist/api/QLinearProgress.json +1 -1
  62. package/dist/api/QList.json +1 -1
  63. package/dist/api/QMarkupTable.json +1 -1
  64. package/dist/api/QMenu.json +1 -1
  65. package/dist/api/QNoSsr.json +1 -1
  66. package/dist/api/QOptionGroup.json +1 -1
  67. package/dist/api/QPage.json +1 -1
  68. package/dist/api/QPageScroller.json +1 -1
  69. package/dist/api/QPageSticky.json +1 -1
  70. package/dist/api/QPagination.json +1 -1
  71. package/dist/api/QParallax.json +1 -1
  72. package/dist/api/QPopupEdit.json +1 -1
  73. package/dist/api/QPopupProxy.json +1 -1
  74. package/dist/api/QPullToRefresh.json +1 -1
  75. package/dist/api/QRadio.json +1 -1
  76. package/dist/api/QRange.json +1 -1
  77. package/dist/api/QRating.json +1 -1
  78. package/dist/api/QResizeObserver.json +1 -1
  79. package/dist/api/QResponsive.json +1 -1
  80. package/dist/api/QRouteTab.json +1 -1
  81. package/dist/api/QScrollArea.json +1 -1
  82. package/dist/api/QScrollObserver.json +1 -1
  83. package/dist/api/QSelect.json +1 -1
  84. package/dist/api/QSeparator.json +1 -1
  85. package/dist/api/QSkeleton.json +1 -1
  86. package/dist/api/QSlideItem.json +1 -1
  87. package/dist/api/QSlideTransition.json +1 -1
  88. package/dist/api/QSlider.json +1 -1
  89. package/dist/api/QSpinner.json +1 -1
  90. package/dist/api/QSpinnerAudio.json +1 -1
  91. package/dist/api/QSpinnerBall.json +1 -1
  92. package/dist/api/QSpinnerBars.json +1 -1
  93. package/dist/api/QSpinnerBox.json +1 -1
  94. package/dist/api/QSpinnerClock.json +1 -1
  95. package/dist/api/QSpinnerComment.json +1 -1
  96. package/dist/api/QSpinnerCube.json +1 -1
  97. package/dist/api/QSpinnerDots.json +1 -1
  98. package/dist/api/QSpinnerFacebook.json +1 -1
  99. package/dist/api/QSpinnerGears.json +1 -1
  100. package/dist/api/QSpinnerGrid.json +1 -1
  101. package/dist/api/QSpinnerHearts.json +1 -1
  102. package/dist/api/QSpinnerHourglass.json +1 -1
  103. package/dist/api/QSpinnerInfinity.json +1 -1
  104. package/dist/api/QSpinnerIos.json +1 -1
  105. package/dist/api/QSpinnerOrbit.json +1 -1
  106. package/dist/api/QSpinnerOval.json +1 -1
  107. package/dist/api/QSpinnerPie.json +1 -1
  108. package/dist/api/QSpinnerPuff.json +1 -1
  109. package/dist/api/QSpinnerRadio.json +1 -1
  110. package/dist/api/QSpinnerRings.json +1 -1
  111. package/dist/api/QSpinnerTail.json +1 -1
  112. package/dist/api/QSplitter.json +1 -1
  113. package/dist/api/QStep.json +1 -1
  114. package/dist/api/QStepper.json +1 -1
  115. package/dist/api/QTab.json +1 -1
  116. package/dist/api/QTabPanel.json +1 -1
  117. package/dist/api/QTabPanels.json +1 -1
  118. package/dist/api/QTable.json +1 -1
  119. package/dist/api/QTabs.json +1 -1
  120. package/dist/api/QTd.json +1 -1
  121. package/dist/api/QTh.json +1 -1
  122. package/dist/api/QTime.json +1 -1
  123. package/dist/api/QTimeline.json +1 -1
  124. package/dist/api/QTimelineEntry.json +1 -1
  125. package/dist/api/QToggle.json +1 -1
  126. package/dist/api/QTooltip.json +1 -1
  127. package/dist/api/QTr.json +1 -1
  128. package/dist/api/QTree.json +1 -1
  129. package/dist/api/QUploader.json +1 -1
  130. package/dist/api/QVideo.json +1 -1
  131. package/dist/api/QVirtualScroll.json +1 -1
  132. package/dist/api/Ripple.json +1 -1
  133. package/dist/api/Screen.json +1 -1
  134. package/dist/api/Scroll.json +1 -1
  135. package/dist/api/ScrollFire.json +1 -1
  136. package/dist/api/SessionStorage.json +1 -1
  137. package/dist/api/TouchHold.json +1 -1
  138. package/dist/api/TouchPan.json +1 -1
  139. package/dist/api/TouchRepeat.json +1 -1
  140. package/dist/api/TouchSwipe.json +1 -1
  141. package/dist/icon-set/bootstrap-icons.umd.prod.js +2 -2
  142. package/dist/icon-set/eva-icons.umd.prod.js +2 -2
  143. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +2 -2
  144. package/dist/icon-set/fontawesome-v5.umd.prod.js +2 -2
  145. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +2 -2
  146. package/dist/icon-set/fontawesome-v6.umd.prod.js +2 -2
  147. package/dist/icon-set/ionicons-v4.umd.prod.js +2 -2
  148. package/dist/icon-set/line-awesome.umd.prod.js +2 -2
  149. package/dist/icon-set/material-icons-outlined.umd.prod.js +2 -2
  150. package/dist/icon-set/material-icons-round.umd.prod.js +2 -2
  151. package/dist/icon-set/material-icons-sharp.umd.prod.js +2 -2
  152. package/dist/icon-set/material-icons.umd.prod.js +2 -2
  153. package/dist/icon-set/material-symbols-outlined.umd.prod.js +2 -2
  154. package/dist/icon-set/material-symbols-rounded.umd.prod.js +2 -2
  155. package/dist/icon-set/material-symbols-sharp.umd.prod.js +2 -2
  156. package/dist/icon-set/mdi-v3.umd.prod.js +2 -2
  157. package/dist/icon-set/mdi-v4.umd.prod.js +2 -2
  158. package/dist/icon-set/mdi-v5.umd.prod.js +2 -2
  159. package/dist/icon-set/mdi-v6.umd.prod.js +2 -2
  160. package/dist/icon-set/mdi-v7.umd.prod.js +2 -2
  161. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +2 -2
  162. package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
  163. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +2 -2
  164. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +2 -2
  165. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +2 -2
  166. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +2 -2
  167. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +2 -2
  168. package/dist/icon-set/svg-line-awesome.umd.prod.js +2 -2
  169. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +2 -2
  170. package/dist/icon-set/svg-material-icons-round.umd.prod.js +2 -2
  171. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +2 -2
  172. package/dist/icon-set/svg-material-icons.umd.prod.js +2 -2
  173. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  174. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  175. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  176. package/dist/icon-set/svg-mdi-v6.umd.prod.js +2 -2
  177. package/dist/icon-set/svg-mdi-v7.umd.prod.js +2 -2
  178. package/dist/icon-set/svg-themify.umd.prod.js +2 -2
  179. package/dist/icon-set/themify.umd.prod.js +2 -2
  180. package/dist/lang/ar-TN.umd.prod.js +2 -2
  181. package/dist/lang/ar.umd.prod.js +2 -2
  182. package/dist/lang/az-Latn.umd.prod.js +2 -2
  183. package/dist/lang/bg.umd.prod.js +2 -2
  184. package/dist/lang/bn.umd.prod.js +2 -2
  185. package/dist/lang/ca.umd.prod.js +2 -2
  186. package/dist/lang/cs.umd.prod.js +2 -2
  187. package/dist/lang/da.umd.prod.js +2 -2
  188. package/dist/lang/de-CH.umd.prod.js +2 -2
  189. package/dist/lang/de-DE.umd.prod.js +2 -2
  190. package/dist/lang/de.umd.prod.js +2 -2
  191. package/dist/lang/el.umd.prod.js +2 -2
  192. package/dist/lang/en-GB.umd.prod.js +2 -2
  193. package/dist/lang/en-US.umd.prod.js +2 -2
  194. package/dist/lang/eo.umd.prod.js +2 -2
  195. package/dist/lang/es.umd.prod.js +2 -2
  196. package/dist/lang/et.umd.prod.js +2 -2
  197. package/dist/lang/eu.umd.prod.js +2 -2
  198. package/dist/lang/fa-IR.umd.prod.js +2 -2
  199. package/dist/lang/fa.umd.prod.js +2 -2
  200. package/dist/lang/fi.umd.prod.js +2 -2
  201. package/dist/lang/fr.umd.prod.js +2 -2
  202. package/dist/lang/gn.umd.prod.js +2 -2
  203. package/dist/lang/he.umd.prod.js +2 -2
  204. package/dist/lang/hi.umd.prod.js +2 -2
  205. package/dist/lang/hr.umd.prod.js +2 -2
  206. package/dist/lang/hu.umd.prod.js +2 -2
  207. package/dist/lang/id.umd.prod.js +2 -2
  208. package/dist/lang/is.umd.prod.js +2 -2
  209. package/dist/lang/it.umd.prod.js +2 -2
  210. package/dist/lang/ja.umd.prod.js +2 -2
  211. package/dist/lang/kk.umd.prod.js +2 -2
  212. package/dist/lang/km.umd.prod.js +2 -2
  213. package/dist/lang/ko-KR.umd.prod.js +2 -2
  214. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  215. package/dist/lang/lt.umd.prod.js +2 -2
  216. package/dist/lang/lu.umd.prod.js +2 -2
  217. package/dist/lang/lv.umd.prod.js +2 -2
  218. package/dist/lang/mk.umd.prod.js +2 -2
  219. package/dist/lang/ml.umd.prod.js +2 -2
  220. package/dist/lang/mm.umd.prod.js +2 -2
  221. package/dist/lang/ms-MY.umd.prod.js +2 -2
  222. package/dist/lang/ms.umd.prod.js +2 -2
  223. package/dist/lang/my.umd.prod.js +2 -2
  224. package/dist/lang/nb-NO.umd.prod.js +2 -2
  225. package/dist/lang/nl.umd.prod.js +2 -2
  226. package/dist/lang/pl.umd.prod.js +2 -2
  227. package/dist/lang/pt-BR.umd.prod.js +2 -2
  228. package/dist/lang/pt.umd.prod.js +2 -2
  229. package/dist/lang/ro.umd.prod.js +2 -2
  230. package/dist/lang/ru.umd.prod.js +2 -2
  231. package/dist/lang/sk.umd.prod.js +2 -2
  232. package/dist/lang/sl.umd.prod.js +2 -2
  233. package/dist/lang/sm.umd.prod.js +2 -2
  234. package/dist/lang/sr-CYR.umd.prod.js +2 -2
  235. package/dist/lang/sr.umd.prod.js +2 -2
  236. package/dist/lang/sv.umd.prod.js +2 -2
  237. package/dist/lang/ta.umd.prod.js +2 -2
  238. package/dist/lang/th.umd.prod.js +2 -2
  239. package/dist/lang/tl.umd.prod.js +2 -2
  240. package/dist/lang/tr.umd.prod.js +2 -2
  241. package/dist/lang/ug.umd.prod.js +2 -2
  242. package/dist/lang/uk.umd.prod.js +2 -2
  243. package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
  244. package/dist/lang/uz-Latn.umd.prod.js +2 -2
  245. package/dist/lang/vi.umd.prod.js +2 -2
  246. package/dist/lang/zh-CN.umd.prod.js +2 -2
  247. package/dist/lang/zh-TW.umd.prod.js +2 -2
  248. package/dist/quasar.addon.prod.css +1 -1
  249. package/dist/quasar.addon.rtl.prod.css +1 -1
  250. package/dist/quasar.cjs.prod.js +19 -19
  251. package/dist/quasar.css +53 -53
  252. package/dist/quasar.esm.js +634 -559
  253. package/dist/quasar.esm.prod.js +14 -14
  254. package/dist/quasar.prod.css +1 -1
  255. package/dist/quasar.rtl.css +65 -65
  256. package/dist/quasar.rtl.prod.css +1 -1
  257. package/dist/quasar.sass +37 -37
  258. package/dist/quasar.umd.js +619 -544
  259. package/dist/quasar.umd.prod.js +23 -23
  260. package/dist/transforms/api-list.json +1 -1
  261. package/dist/transforms/import-map.json +1 -1
  262. package/dist/types/config.d.ts +3 -3
  263. package/dist/types/globals.d.ts +1 -1
  264. package/dist/types/index.d.ts +2245 -336
  265. package/dist/vetur/quasar-attributes.json +1 -1
  266. package/dist/vetur/quasar-tags.json +1 -1
  267. package/dist/web-types/web-types.json +1 -1
  268. package/lang/uk.js +1 -1
  269. package/lang/uk.mjs +1 -1
  270. package/package.json +28 -42
  271. package/src/api.extends.json +23 -21
  272. package/src/components/ajax-bar/QAjaxBar.js +2 -2
  273. package/src/components/ajax-bar/QAjaxBar.json +6 -5
  274. package/src/components/avatar/QAvatar.js +3 -3
  275. package/src/components/avatar/QAvatar.json +2 -2
  276. package/src/components/avatar/QAvatar.test.js +232 -0
  277. package/src/components/badge/QBadge.js +2 -2
  278. package/src/components/badge/QBadge.json +2 -2
  279. package/src/components/badge/QBadge.test.js +267 -0
  280. package/src/components/banner/QBanner.js +3 -3
  281. package/src/components/banner/QBanner.test.js +161 -0
  282. package/src/components/bar/QBar.js +3 -3
  283. package/src/components/bar/QBar.test.js +80 -0
  284. package/src/components/breadcrumbs/QBreadcrumbs.js +6 -4
  285. package/src/components/breadcrumbs/QBreadcrumbs.json +7 -7
  286. package/src/components/breadcrumbs/QBreadcrumbs.test.js +198 -0
  287. package/src/components/breadcrumbs/QBreadcrumbsEl.js +3 -3
  288. package/src/components/breadcrumbs/QBreadcrumbsEl.json +5 -5
  289. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +564 -0
  290. package/src/components/btn/QBtn.js +12 -6
  291. package/src/components/btn/QBtn.json +3 -2
  292. package/src/components/btn/QBtn.test.js +1529 -0
  293. package/src/components/btn/use-btn.js +8 -6
  294. package/src/components/btn/use-btn.json +14 -14
  295. package/src/components/btn/use-btn.test.js +134 -0
  296. package/src/components/btn-dropdown/QBtnDropdown.js +9 -10
  297. package/src/components/btn-dropdown/QBtnDropdown.json +16 -16
  298. package/src/components/btn-group/QBtnGroup.js +2 -2
  299. package/src/components/btn-toggle/QBtnToggle.js +3 -3
  300. package/src/components/btn-toggle/QBtnToggle.json +8 -8
  301. package/src/components/card/QCard.js +3 -3
  302. package/src/components/card/QCard.json +2 -2
  303. package/src/components/card/QCardActions.js +3 -3
  304. package/src/components/card/QCardActions.json +3 -3
  305. package/src/components/card/QCardSection.js +2 -2
  306. package/src/components/card/QCardSection.json +2 -2
  307. package/src/components/carousel/QCarousel.js +6 -6
  308. package/src/components/carousel/QCarousel.json +10 -10
  309. package/src/components/carousel/QCarouselControl.js +2 -2
  310. package/src/components/carousel/QCarouselControl.json +6 -6
  311. package/src/components/carousel/QCarouselSlide.js +3 -3
  312. package/src/components/carousel/QCarouselSlide.json +5 -8
  313. package/src/components/chat/QChatMessage.js +2 -2
  314. package/src/components/chat/QChatMessage.json +9 -9
  315. package/src/components/checkbox/QCheckbox.js +1 -1
  316. package/src/components/checkbox/use-checkbox.js +8 -8
  317. package/src/components/checkbox/use-checkbox.json +18 -16
  318. package/src/components/chip/QChip.js +7 -6
  319. package/src/components/chip/QChip.json +10 -8
  320. package/src/components/chip/QChip.test.js +902 -0
  321. package/src/components/circular-progress/QCircularProgress.js +5 -5
  322. package/src/components/circular-progress/QCircularProgress.json +9 -9
  323. package/src/components/circular-progress/{use-circular-progress.js → circular-progress.js} +1 -1
  324. package/src/components/circular-progress/circular-progress.test.js +14 -0
  325. package/src/components/color/QColor.js +10 -10
  326. package/src/components/color/QColor.json +9 -11
  327. package/src/components/date/QDate.js +9 -9
  328. package/src/components/date/QDate.json +42 -35
  329. package/src/components/date/use-datetime.js +2 -2
  330. package/src/components/date/use-datetime.json +8 -8
  331. package/src/components/dialog/QDialog.js +33 -22
  332. package/src/components/dialog/QDialog.json +18 -16
  333. package/src/components/dialog/QDialog.test.js +1264 -0
  334. package/src/components/dialog/test/DialogWrapper.vue +17 -0
  335. package/src/components/drawer/QDrawer.js +12 -12
  336. package/src/components/drawer/QDrawer.json +15 -16
  337. package/src/components/editor/QEditor.js +9 -9
  338. package/src/components/editor/QEditor.json +41 -49
  339. package/src/components/editor/editor-caret.js +1 -1
  340. package/src/components/editor/editor-utils.js +3 -3
  341. package/src/components/expansion-item/QExpansionItem.js +9 -9
  342. package/src/components/expansion-item/QExpansionItem.json +15 -15
  343. package/src/components/fab/QFab.js +5 -5
  344. package/src/components/fab/QFab.json +5 -5
  345. package/src/components/fab/QFabAction.js +4 -4
  346. package/src/components/fab/QFabAction.json +5 -6
  347. package/src/components/fab/use-fab.json +10 -12
  348. package/src/components/field/QField.js +2 -2
  349. package/src/components/field/QField.json +12 -8
  350. package/src/components/file/QFile.js +9 -9
  351. package/src/components/file/QFile.json +19 -14
  352. package/src/components/footer/QFooter.js +4 -4
  353. package/src/components/footer/QFooter.json +3 -5
  354. package/src/components/form/QForm.js +6 -6
  355. package/src/components/form/QForm.json +12 -7
  356. package/src/components/form/QFormChildMixin.js +2 -2
  357. package/src/components/form/QFormChildMixin.json +5 -4
  358. package/src/components/header/QHeader.js +3 -3
  359. package/src/components/header/QHeader.json +4 -6
  360. package/src/components/icon/QIcon.js +3 -3
  361. package/src/components/icon/QIcon.json +3 -3
  362. package/src/components/img/QImg.js +6 -6
  363. package/src/components/img/QImg.json +46 -60
  364. package/src/components/infinite-scroll/QInfiniteScroll.js +6 -6
  365. package/src/components/infinite-scroll/QInfiniteScroll.json +23 -10
  366. package/src/components/inner-loading/QInnerLoading.js +3 -3
  367. package/src/components/inner-loading/QInnerLoading.json +6 -8
  368. package/src/components/input/QInput.js +9 -9
  369. package/src/components/input/QInput.json +25 -14
  370. package/src/components/input/use-mask.js +1 -1
  371. package/src/components/input/use-mask.json +1 -1
  372. package/src/components/intersection/QIntersection.js +4 -4
  373. package/src/components/intersection/QIntersection.json +7 -7
  374. package/src/components/item/QItem.js +6 -6
  375. package/src/components/item/QItem.json +6 -6
  376. package/src/components/item/QItemLabel.js +2 -2
  377. package/src/components/item/QItemSection.js +2 -2
  378. package/src/components/item/QList.js +3 -3
  379. package/src/components/item/QList.json +2 -2
  380. package/src/components/knob/QKnob.js +7 -7
  381. package/src/components/knob/QKnob.json +7 -7
  382. package/src/components/layout/QLayout.js +5 -5
  383. package/src/components/layout/QLayout.json +3 -5
  384. package/src/components/linear-progress/QLinearProgress.js +4 -4
  385. package/src/components/linear-progress/QLinearProgress.json +3 -3
  386. package/src/components/markup-table/QMarkupTable.js +3 -3
  387. package/src/components/markup-table/QMarkupTable.json +3 -3
  388. package/src/components/menu/QMenu.js +20 -20
  389. package/src/components/menu/QMenu.json +16 -12
  390. package/src/components/no-ssr/QNoSsr.js +3 -3
  391. package/src/components/no-ssr/QNoSsr.json +3 -3
  392. package/src/components/option-group/QOptionGroup.js +2 -2
  393. package/src/components/option-group/QOptionGroup.json +15 -17
  394. package/src/components/page/QPage.js +3 -3
  395. package/src/components/page/QPage.json +2 -2
  396. package/src/components/page/QPageContainer.js +3 -3
  397. package/src/components/page-scroller/QPageScroller.js +2 -2
  398. package/src/components/page-scroller/QPageScroller.json +3 -3
  399. package/src/components/page-sticky/QPageSticky.js +1 -1
  400. package/src/components/page-sticky/QPageSticky.json +5 -5
  401. package/src/components/page-sticky/use-page-sticky.js +2 -2
  402. package/src/components/pagination/QPagination.js +4 -4
  403. package/src/components/pagination/QPagination.json +24 -22
  404. package/src/components/parallax/QParallax.js +6 -6
  405. package/src/components/parallax/QParallax.json +5 -5
  406. package/src/components/popup-edit/QPopupEdit.js +4 -4
  407. package/src/components/popup-edit/QPopupEdit.json +47 -33
  408. package/src/components/popup-proxy/QPopupProxy.js +3 -3
  409. package/src/components/popup-proxy/QPopupProxy.json +11 -7
  410. package/src/components/pull-to-refresh/QPullToRefresh.js +6 -6
  411. package/src/components/pull-to-refresh/QPullToRefresh.json +6 -2
  412. package/src/components/radio/QRadio.js +9 -9
  413. package/src/components/radio/QRadio.json +9 -7
  414. package/src/components/range/QRange.js +3 -3
  415. package/src/components/range/QRange.json +3 -7
  416. package/src/components/rating/QRating.js +6 -6
  417. package/src/components/rating/QRating.json +17 -20
  418. package/src/components/resize-observer/QResizeObserver.js +3 -3
  419. package/src/components/resize-observer/QResizeObserver.json +4 -3
  420. package/src/components/responsive/QResponsive.js +3 -3
  421. package/src/components/responsive/QResponsive.json +1 -1
  422. package/src/components/scroll-area/QScrollArea.js +7 -7
  423. package/src/components/scroll-area/QScrollArea.json +20 -14
  424. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  425. package/src/components/scroll-observer/QScrollObserver.json +9 -6
  426. package/src/components/select/QSelect.js +10 -10
  427. package/src/components/select/QSelect.json +89 -72
  428. package/src/components/select/__tests__/QSelect.cy.js +21 -1
  429. package/src/components/separator/QSeparator.js +2 -2
  430. package/src/components/separator/QSeparator.json +3 -5
  431. package/src/components/skeleton/QSkeleton.js +3 -3
  432. package/src/components/skeleton/QSkeleton.json +14 -16
  433. package/src/components/slide-item/QSlideItem.js +5 -5
  434. package/src/components/slide-item/QSlideItem.json +5 -3
  435. package/src/components/slide-transition/QSlideTransition.js +1 -1
  436. package/src/components/slide-transition/QSlideTransition.json +1 -1
  437. package/src/components/slider/QSlider.js +4 -4
  438. package/src/components/slider/QSlider.json +2 -4
  439. package/src/components/slider/use-slider.js +7 -7
  440. package/src/components/slider/use-slider.json +19 -23
  441. package/src/components/space/QSpace.js +1 -1
  442. package/src/components/space/QSpace.test.js +17 -0
  443. package/src/components/spinner/QSpinner.js +1 -1
  444. package/src/components/spinner/QSpinner.json +2 -2
  445. package/src/components/spinner/QSpinnerAudio.js +1 -1
  446. package/src/components/spinner/QSpinnerAudio.json +1 -1
  447. package/src/components/spinner/QSpinnerBall.js +1 -1
  448. package/src/components/spinner/QSpinnerBall.json +1 -1
  449. package/src/components/spinner/QSpinnerBars.js +1 -1
  450. package/src/components/spinner/QSpinnerBars.json +1 -1
  451. package/src/components/spinner/QSpinnerBox.js +1 -1
  452. package/src/components/spinner/QSpinnerBox.json +1 -1
  453. package/src/components/spinner/QSpinnerClock.js +1 -1
  454. package/src/components/spinner/QSpinnerClock.json +1 -1
  455. package/src/components/spinner/QSpinnerComment.js +1 -1
  456. package/src/components/spinner/QSpinnerComment.json +1 -1
  457. package/src/components/spinner/QSpinnerCube.js +1 -1
  458. package/src/components/spinner/QSpinnerCube.json +1 -1
  459. package/src/components/spinner/QSpinnerDots.js +1 -1
  460. package/src/components/spinner/QSpinnerDots.json +1 -1
  461. package/src/components/spinner/QSpinnerFacebook.js +1 -1
  462. package/src/components/spinner/QSpinnerFacebook.json +1 -1
  463. package/src/components/spinner/QSpinnerGears.js +1 -1
  464. package/src/components/spinner/QSpinnerGears.json +1 -1
  465. package/src/components/spinner/QSpinnerGrid.js +1 -1
  466. package/src/components/spinner/QSpinnerGrid.json +1 -1
  467. package/src/components/spinner/QSpinnerHearts.js +1 -1
  468. package/src/components/spinner/QSpinnerHearts.json +1 -1
  469. package/src/components/spinner/QSpinnerHourglass.js +1 -1
  470. package/src/components/spinner/QSpinnerHourglass.json +1 -1
  471. package/src/components/spinner/QSpinnerInfinity.js +1 -1
  472. package/src/components/spinner/QSpinnerInfinity.json +1 -1
  473. package/src/components/spinner/QSpinnerIos.js +1 -1
  474. package/src/components/spinner/QSpinnerIos.json +1 -1
  475. package/src/components/spinner/QSpinnerOrbit.js +1 -1
  476. package/src/components/spinner/QSpinnerOrbit.json +1 -1
  477. package/src/components/spinner/QSpinnerOval.js +1 -1
  478. package/src/components/spinner/QSpinnerOval.json +1 -1
  479. package/src/components/spinner/QSpinnerPie.js +1 -1
  480. package/src/components/spinner/QSpinnerPie.json +1 -1
  481. package/src/components/spinner/QSpinnerPuff.js +1 -1
  482. package/src/components/spinner/QSpinnerPuff.json +1 -1
  483. package/src/components/spinner/QSpinnerRadio.js +1 -1
  484. package/src/components/spinner/QSpinnerRadio.json +1 -1
  485. package/src/components/spinner/QSpinnerRings.js +1 -1
  486. package/src/components/spinner/QSpinnerRings.json +1 -1
  487. package/src/components/spinner/QSpinnerTail.js +1 -1
  488. package/src/components/spinner/QSpinnerTail.json +1 -1
  489. package/src/components/spinner/{__spinner-mixin.json → spinner.json} +1 -1
  490. package/src/components/spinner/use-spinner.js +1 -1
  491. package/src/components/splitter/QSplitter.js +4 -4
  492. package/src/components/splitter/QSplitter.json +14 -14
  493. package/src/components/stepper/QStep.js +5 -5
  494. package/src/components/stepper/QStep.json +5 -11
  495. package/src/components/stepper/QStepper.js +5 -5
  496. package/src/components/stepper/QStepper.json +2 -4
  497. package/src/components/stepper/QStepperNavigation.js +2 -2
  498. package/src/components/stepper/StepHeader.js +2 -2
  499. package/src/components/tab-panels/QTabPanel.js +3 -3
  500. package/src/components/tab-panels/QTabPanel.json +1 -7
  501. package/src/components/tab-panels/QTabPanels.js +4 -4
  502. package/src/components/tab-panels/QTabPanels.json +1 -1
  503. package/src/components/table/QTable.js +8 -8
  504. package/src/components/table/QTable.json +148 -142
  505. package/src/components/table/QTd.js +2 -2
  506. package/src/components/table/QTd.json +1 -1
  507. package/src/components/table/QTh.js +2 -2
  508. package/src/components/table/QTh.json +1 -1
  509. package/src/components/table/QTr.js +2 -2
  510. package/src/components/table/QTr.json +1 -1
  511. package/src/components/table/table-column-selection.js +1 -1
  512. package/src/components/table/table-sort.js +2 -2
  513. package/src/components/tabs/QRouteTab.js +2 -2
  514. package/src/components/tabs/QRouteTab.json +2 -2
  515. package/src/components/tabs/QTab.js +1 -1
  516. package/src/components/tabs/QTab.json +6 -13
  517. package/src/components/tabs/QTabs.js +6 -6
  518. package/src/components/tabs/QTabs.json +8 -8
  519. package/src/components/tabs/use-tab.js +8 -8
  520. package/src/components/time/QTime.js +9 -9
  521. package/src/components/time/QTime.json +13 -23
  522. package/src/components/timeline/QTimeline.js +4 -4
  523. package/src/components/timeline/QTimeline.json +4 -4
  524. package/src/components/timeline/QTimelineEntry.js +3 -3
  525. package/src/components/timeline/QTimelineEntry.json +11 -11
  526. package/src/components/toggle/QToggle.js +1 -1
  527. package/src/components/toolbar/QToolbar.js +2 -2
  528. package/src/components/toolbar/QToolbarTitle.js +2 -2
  529. package/src/components/tooltip/QTooltip.js +15 -15
  530. package/src/components/tooltip/QTooltip.json +22 -24
  531. package/src/components/tree/QTree.js +5 -5
  532. package/src/components/tree/QTree.json +38 -30
  533. package/src/components/uploader/QUploader.js +1 -1
  534. package/src/components/uploader/QUploader.json +29 -14
  535. package/src/components/uploader/QUploaderAddTrigger.js +2 -2
  536. package/src/components/uploader/uploader-core.js +8 -8
  537. package/src/components/uploader/xhr-uploader-plugin.js +3 -1
  538. package/src/components/uploader/xhr-uploader-plugin.json +19 -19
  539. package/src/components/video/QVideo.js +2 -2
  540. package/src/components/video/QVideo.json +16 -20
  541. package/src/components/video/QVideo.test.js +183 -0
  542. package/src/components/virtual-scroll/QVirtualScroll.js +4 -4
  543. package/src/components/virtual-scroll/QVirtualScroll.json +8 -10
  544. package/src/components/virtual-scroll/use-virtual-scroll.js +3 -3
  545. package/src/components/virtual-scroll/use-virtual-scroll.json +16 -11
  546. package/src/composables/private.use-align/use-align.test.js +62 -0
  547. package/src/composables/{private → private.use-anchor}/use-anchor.js +3 -3
  548. package/src/composables/{private → private.use-anchor}/use-anchor.json +5 -6
  549. package/src/composables/private.use-dark/use-dark.test.js +68 -0
  550. package/src/composables/{private → private.use-field}/use-field.js +8 -8
  551. package/src/composables/{private → private.use-field}/use-field.json +14 -20
  552. package/src/composables/{private → private.use-file}/use-file.js +2 -2
  553. package/src/composables/{private → private.use-file}/use-file.json +10 -10
  554. package/src/composables/{private → private.use-fullscreen}/use-fullscreen.js +2 -2
  555. package/src/composables/{private → private.use-fullscreen}/use-fullscreen.json +10 -6
  556. package/src/composables/{private → private.use-history}/use-history.js +1 -1
  557. package/src/composables/private.use-history/use-history.test.js +116 -0
  558. package/src/composables/{private → private.use-key-composition}/use-key-composition.js +1 -1
  559. package/src/composables/{private → private.use-model-toggle}/use-model-toggle.js +1 -1
  560. package/src/composables/{private → private.use-panel}/use-panel.child.json +1 -3
  561. package/src/composables/{private → private.use-panel}/use-panel.js +4 -4
  562. package/src/composables/{private → private.use-panel}/use-panel.json +20 -15
  563. package/src/composables/{private → private.use-portal}/use-portal.js +21 -6
  564. package/src/composables/{private → private.use-prevent-scroll}/use-prevent-scroll.js +1 -1
  565. package/src/composables/{private → private.use-ratio}/use-ratio.json +4 -3
  566. package/src/composables/private.use-ratio/use-ratio.test.js +40 -0
  567. package/src/composables/{private → private.use-router-link}/use-router-link.js +1 -1
  568. package/src/composables/{private → private.use-router-link}/use-router-link.json +6 -6
  569. package/src/composables/{private → private.use-scroll-target}/use-scroll-target.js +2 -5
  570. package/src/composables/{private → private.use-size}/use-size.json +1 -1
  571. package/src/composables/private.use-size/use-size.test.js +40 -0
  572. package/src/composables/{private → private.use-transition}/use-transition.json +3 -3
  573. package/src/composables/private.use-transition/use-transition.test.js +118 -0
  574. package/src/composables/{private → private.use-validate}/use-validate.js +4 -4
  575. package/src/composables/{private → private.use-validate}/use-validate.json +9 -7
  576. package/src/composables/{use-dialog-plugin-component.js → use-dialog-plugin-component/use-dialog-plugin-component.js} +2 -4
  577. package/src/composables/{private/use-form.json → use-form/private.use-form.json} +1 -1
  578. package/src/composables/use-form/private.use-form.test.js +107 -0
  579. package/src/composables/{use-form-child.js → use-form/use-form-child.js} +1 -1
  580. package/src/composables/{use-hydration.js → use-hydration/use-hydration.js} +1 -1
  581. package/src/composables/use-hydration/use-hydration.test.js +27 -0
  582. package/src/composables/{use-id.js → use-id/use-id.js} +2 -2
  583. package/src/composables/use-id/use-id.test.js +72 -0
  584. package/src/composables/{use-interval.js → use-interval/use-interval.js} +1 -1
  585. package/src/composables/{use-meta.js → use-meta/use-meta.js} +1 -1
  586. package/src/composables/{use-quasar.js → use-quasar/use-quasar.js} +2 -1
  587. package/src/composables/use-quasar/use-quasar.test.js +35 -0
  588. package/src/composables/{use-tick.js → use-tick/use-tick.js} +1 -1
  589. package/src/composables/{use-timeout.js → use-timeout/use-timeout.js} +1 -1
  590. package/src/composables.js +12 -10
  591. package/src/css/index.sass +7 -7
  592. package/src/directives/{ClosePopup.js → close-popup/ClosePopup.js} +4 -4
  593. package/src/directives/{ClosePopup.json → close-popup/ClosePopup.json} +5 -5
  594. package/src/directives/{Intersection.js → intersection/Intersection.js} +3 -3
  595. package/src/directives/{Intersection.json → intersection/Intersection.json} +4 -6
  596. package/src/directives/{Morph.js → morph/Morph.js} +2 -2
  597. package/src/directives/{Morph.json → morph/Morph.json} +21 -21
  598. package/src/directives/{Mutation.js → mutation/Mutation.js} +2 -2
  599. package/src/directives/{Mutation.json → mutation/Mutation.json} +10 -12
  600. package/src/directives/{Ripple.js → ripple/Ripple.js} +6 -6
  601. package/src/directives/{Ripple.json → ripple/Ripple.json} +9 -15
  602. package/src/directives/ripple/Ripple.test.js +340 -0
  603. package/src/directives/{Scroll.js → scroll/Scroll.js} +4 -4
  604. package/src/directives/{Scroll.json → scroll/Scroll.json} +2 -2
  605. package/src/directives/{ScrollFire.js → scroll-fire/ScrollFire.js} +6 -6
  606. package/src/directives/{ScrollFire.json → scroll-fire/ScrollFire.json} +1 -1
  607. package/src/directives/{TouchHold.js → touch-hold/TouchHold.js} +5 -5
  608. package/src/directives/{TouchHold.json → touch-hold/TouchHold.json} +6 -6
  609. package/src/directives/{TouchPan.js → touch-pan/TouchPan.js} +6 -6
  610. package/src/directives/{TouchPan.json → touch-pan/TouchPan.json} +4 -4
  611. package/src/directives/{TouchRepeat.js → touch-repeat/TouchRepeat.js} +6 -6
  612. package/src/directives/{TouchRepeat.json → touch-repeat/TouchRepeat.json} +4 -4
  613. package/src/directives/{TouchSwipe.js → touch-swipe/TouchSwipe.js} +6 -6
  614. package/src/directives/{TouchSwipe.json → touch-swipe/TouchSwipe.json} +4 -4
  615. package/src/directives.js +11 -11
  616. package/src/index.dev.js +10 -4
  617. package/src/index.prod.js +11 -4
  618. package/src/index.ssr.js +11 -4
  619. package/src/index.umd.js +12 -4
  620. package/src/install-quasar.js +17 -12
  621. package/src/plugins/{AddressbarColor.js → addressbar/AddressbarColor.js} +3 -3
  622. package/src/plugins/{AddressbarColor.json → addressbar/AddressbarColor.json} +3 -2
  623. package/src/plugins/{AppFullscreen.js → app-fullscreen/AppFullscreen.js} +3 -3
  624. package/src/plugins/{AppFullscreen.json → app-fullscreen/AppFullscreen.json} +1 -0
  625. package/src/plugins/{AppVisibility.js → app-visibility/AppVisibility.js} +3 -3
  626. package/src/plugins/bottom-sheet/BottomSheet.js +8 -0
  627. package/src/plugins/{BottomSheet.json → bottom-sheet/BottomSheet.json} +11 -11
  628. package/src/{components/dialog-bottom-sheet/BottomSheet.js → plugins/bottom-sheet/component/BottomSheetComponent.js} +10 -10
  629. package/src/plugins/{Cookies.json → cookies/Cookies.json} +19 -18
  630. package/src/plugins/{Dark.js → dark/Dark.js} +2 -2
  631. package/src/plugins/{Dark.json → dark/Dark.json} +8 -5
  632. package/src/plugins/dialog/Dialog.js +8 -0
  633. package/src/plugins/{Dialog.json → dialog/Dialog.json} +17 -17
  634. package/src/{components/dialog-plugin/DialogPlugin.js → plugins/dialog/component/DialogPluginComponent.js} +14 -14
  635. package/src/{icon-set.js → plugins/icon-set/IconSet.js} +29 -10
  636. package/src/plugins/icon-set/IconSet.json +1417 -0
  637. package/src/plugins/icon-set/IconSet.test.js +346 -0
  638. package/src/{lang.js → plugins/lang/Lang.js} +25 -15
  639. package/src/plugins/lang/Lang.json +1100 -0
  640. package/src/plugins/lang/Lang.test.js +267 -0
  641. package/src/plugins/{Loading.js → loading/Loading.js} +8 -7
  642. package/src/plugins/{Loading.json → loading/Loading.json} +19 -17
  643. package/src/plugins/{LoadingBar.js → loading-bar/LoadingBar.js} +7 -7
  644. package/src/plugins/{LoadingBar.json → loading-bar/LoadingBar.json} +10 -5
  645. package/src/plugins/{Meta.js → meta/Meta.js} +2 -2
  646. package/src/plugins/{Notify.js → notify/Notify.js} +11 -10
  647. package/src/plugins/{Notify.json → notify/Notify.json} +60 -74
  648. package/src/plugins/{Platform.js → platform/Platform.js} +5 -12
  649. package/src/plugins/{Platform.json → platform/Platform.json} +12 -10
  650. package/src/plugins/platform/Platform.test.js +104 -0
  651. package/src/{body.js → plugins/private.body/Body.js} +5 -4
  652. package/src/{history.js → plugins/private.history/History.js} +2 -2
  653. package/src/plugins/{Screen.js → screen/Screen.js} +5 -5
  654. package/src/plugins/{Screen.json → screen/Screen.json} +10 -14
  655. package/src/plugins/{LocalStorage.js → storage/LocalStorage.js} +2 -2
  656. package/src/plugins/storage/LocalStorage.json +5 -0
  657. package/src/plugins/storage/LocalStorage.test.js +323 -0
  658. package/src/plugins/{SessionStorage.js → storage/SessionStorage.js} +2 -2
  659. package/src/plugins/storage/SessionStorage.json +5 -0
  660. package/src/plugins/storage/SessionStorage.test.js +323 -0
  661. package/src/{utils/private → plugins/storage/engine}/web-storage.js +21 -10
  662. package/src/{utils/private → plugins/storage/engine}/web-storage.json +29 -20
  663. package/src/plugins/storage/engine/web-storage.test.js +43 -0
  664. package/src/plugins.js +20 -16
  665. package/src/utils/EventBus/EventBus.test.js +108 -0
  666. package/src/utils/clone/clone.test.js +111 -0
  667. package/src/utils/colors/colors.test.js +459 -0
  668. package/src/utils/{copy-to-clipboard.js → copy-to-clipboard/copy-to-clipboard.js} +1 -1
  669. package/src/utils/{create-meta-mixin.js → create-meta-mixin/create-meta-mixin.js} +1 -1
  670. package/src/utils/{create-uploader-component.js → create-uploader-component/create-uploader-component.js} +4 -4
  671. package/src/utils/css-var/get-css-var.test.js +32 -0
  672. package/src/utils/css-var/set-css-var.test.js +36 -0
  673. package/src/utils/{date.js → date/date.js} +6 -6
  674. package/src/utils/debounce/debounce.test.js +188 -0
  675. package/src/utils/extend/extend.test.js +93 -0
  676. package/src/utils/{format.js → format/format.js} +2 -2
  677. package/src/utils/format/format.test.js +107 -0
  678. package/src/utils/{frame-debounce.js → frame-debounce/frame-debounce.js} +1 -1
  679. package/src/utils/frame-debounce/frame-debounce.test.js +127 -0
  680. package/src/utils/is/is.test.js +125 -0
  681. package/src/utils/{morph.js → morph/morph.js} +1 -1
  682. package/src/utils/{open-url.js → open-url/open-url.js} +3 -3
  683. package/src/utils/patterns/patterns.test.js +403 -0
  684. package/src/utils/{private → private.click-outside}/click-outside.js +2 -2
  685. package/src/utils/{private/define-reactive-plugin.js → private.create/create.js} +6 -3
  686. package/src/utils/private.create/create.test.js +58 -0
  687. package/src/utils/private.focus/focus-manager.test.js +190 -0
  688. package/src/utils/{private → private.focus}/focusout.js +1 -1
  689. package/src/utils/private.focus/focusout.test.js +114 -0
  690. package/src/utils/private.get-emits-object/get-emits-object.test.js +29 -0
  691. package/src/utils/private.global/global-config.test.js +54 -0
  692. package/src/utils/{private → private.global}/global-dialog.js +1 -1
  693. package/src/utils/{private → private.global}/global-dialog.json +3 -3
  694. package/src/utils/{private → private.global}/global-nodes.js +1 -1
  695. package/src/utils/private.global/global-nodes.test.js +110 -0
  696. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +104 -0
  697. package/src/utils/{private → private.keyboard}/escape-key.js +2 -2
  698. package/src/utils/private.keyboard/escape-key.test.js +117 -0
  699. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +14 -0
  700. package/src/utils/{private → private.portal}/portal.js +1 -1
  701. package/src/utils/{private → private.position-engine}/position-engine.js +2 -2
  702. package/src/utils/private.rtl/rtl.test.js +13 -0
  703. package/src/utils/{private → private.selection}/selection.js +1 -1
  704. package/src/utils/private.sort/sort.test.js +25 -0
  705. package/src/utils/{private → private.symbols}/symbols.js +1 -1
  706. package/src/utils/private.touch/touch.test.js +102 -0
  707. package/src/utils/{prevent-scroll.js → scroll/prevent-scroll.js} +3 -3
  708. package/src/utils/{scroll.js → scroll/scroll.js} +1 -1
  709. package/src/utils/throttle/throttle.test.js +146 -0
  710. package/src/utils/uid/uid.test.js +17 -0
  711. package/src/utils.js +24 -24
  712. package/src/vue-plugin.js +12 -4
  713. package/src/Lang.json +0 -19
  714. package/src/api-file-example.json +0 -94
  715. package/src/components/avatar/__tests__/QAvatar.cy.js +0 -120
  716. package/src/components/badge/__tests__/QBadge.cy.js +0 -148
  717. package/src/components/banner/__tests__/QBanner.cy.js +0 -106
  718. package/src/components/bar/__tests__/QBar.cy.js +0 -45
  719. package/src/components/breadcrumbs/__tests__/QBreadcrumbs.cy.js +0 -111
  720. package/src/components/breadcrumbs/__tests__/QBreadcrumbsEl.cy.js +0 -87
  721. package/src/components/btn/__tests__/QBtn.cy.js +0 -128
  722. package/src/components/btn/__tests__/use-btn.cy.js +0 -517
  723. package/src/components/chip/__tests__/QChip.cy.js +0 -480
  724. package/src/components/dialog/__tests__/DialogWrapper.vue +0 -33
  725. package/src/components/dialog/__tests__/QDialog.cy.js +0 -543
  726. package/src/components/tabs/__tests__/QRouteTab.cy.js +0 -9
  727. package/src/composables/private/__tests__/use-form.cy.js +0 -11
  728. package/src/composables/private/__tests__/use-size.cy.js +0 -36
  729. package/src/composables/private/__tests__/use-transition.cy.js +0 -111
  730. package/src/plugins/BottomSheet.js +0 -11
  731. package/src/plugins/Dialog.js +0 -11
  732. package/src/plugins/LocalStorage.json +0 -5
  733. package/src/plugins/SessionStorage.json +0 -5
  734. package/src/utils/private/create.js +0 -4
  735. /package/src/components/breadcrumbs/{__tests__ → test}/BasicBreadcrumbs.vue +0 -0
  736. /package/src/components/breadcrumbs/{__tests__ → test}/BreadcrumbWithSeparatorSlot.vue +0 -0
  737. /package/src/composables/{private/__tests__ → __tests__}/FieldWrapper.vue +0 -0
  738. /package/src/composables/{private/__tests__ → __tests__}/use-anchor.cy.js +0 -0
  739. /package/src/composables/{private/__tests__ → __tests__}/use-field.cy.js +0 -0
  740. /package/src/composables/{private/__tests__ → __tests__}/use-file.cy.js +0 -0
  741. /package/src/composables/{private/__tests__ → __tests__}/use-fullscreen.cy.js +0 -0
  742. /package/src/composables/{private/__tests__ → __tests__}/use-model-toggle.cy.js +0 -0
  743. /package/src/composables/{private/__tests__ → __tests__}/use-portal.cy.js +0 -0
  744. /package/src/composables/{private/__tests__ → __tests__}/use-router-link.cy.js +0 -0
  745. /package/src/composables/{private/__tests__ → __tests__}/use-validate.cy.js +0 -0
  746. /package/src/composables/{private → private.use-align}/use-align.js +0 -0
  747. /package/src/composables/{private → private.use-dark}/use-dark.js +0 -0
  748. /package/src/composables/{private → private.use-file}/use-file-dom-props.js +0 -0
  749. /package/src/composables/{private → private.use-model-toggle}/use-model-toggle.json +0 -0
  750. /package/src/composables/{private → private.use-panel}/use-panel.sass +0 -0
  751. /package/src/composables/{private → private.use-portal}/use-portal.json +0 -0
  752. /package/src/composables/{private → private.use-ratio}/use-ratio.js +0 -0
  753. /package/src/composables/{private → private.use-refocus-target}/use-refocus-target.js +0 -0
  754. /package/src/composables/{private → private.use-size}/use-size.js +0 -0
  755. /package/src/composables/{private → private.use-transition}/use-transition.js +0 -0
  756. /package/src/composables/{private/use-form.js → use-form/private.use-form.js} +0 -0
  757. /package/src/composables/{use-render-cache.js → use-render-cache/use-render-cache.js} +0 -0
  758. /package/src/composables/{use-split-attrs.js → use-split-attrs/use-split-attrs.js} +0 -0
  759. /package/src/directives/{Morph.sass → morph/Morph.sass} +0 -0
  760. /package/src/directives/{Ripple.sass → ripple/Ripple.sass} +0 -0
  761. /package/src/plugins/{AppVisibility.json → app-visibility/AppVisibility.json} +0 -0
  762. /package/src/{components/dialog-bottom-sheet/BottomSheet.sass → plugins/bottom-sheet/component/BottomSheetComponent.sass} +0 -0
  763. /package/src/plugins/{Cookies.js → cookies/Cookies.js} +0 -0
  764. /package/src/{components/dialog-plugin/DialogPlugin.sass → plugins/dialog/component/DialogPluginComponent.sass} +0 -0
  765. /package/src/plugins/{Loading.sass → loading/Loading.sass} +0 -0
  766. /package/src/plugins/{Meta.json → meta/Meta.json} +0 -0
  767. /package/src/plugins/{Notify.sass → notify/Notify.sass} +0 -0
  768. /package/src/utils/{EventBus.js → EventBus/EventBus.js} +0 -0
  769. /package/src/utils/{clone.js → clone/clone.js} +0 -0
  770. /package/src/utils/{colors.js → colors/colors.js} +0 -0
  771. /package/src/utils/{get-css-var.js → css-var/get-css-var.js} +0 -0
  772. /package/src/utils/{set-css-var.js → css-var/set-css-var.js} +0 -0
  773. /package/src/utils/{private/date-persian.js → date/private.persian.js} +0 -0
  774. /package/src/utils/{debounce.js → debounce/debounce.js} +0 -0
  775. /package/src/utils/{dom.js → dom/dom.js} +0 -0
  776. /package/src/utils/{event.js → event/event.js} +0 -0
  777. /package/src/utils/{export-file.js → export-file/export-file.js} +0 -0
  778. /package/src/utils/{extend.js → extend/extend.js} +0 -0
  779. /package/src/utils/{is.js → is/is.js} +0 -0
  780. /package/src/utils/{patterns.js → patterns/patterns.js} +0 -0
  781. /package/src/utils/{private → private.focus}/focus-manager.js +0 -0
  782. /package/src/utils/{private → private.get-emits-object}/get-emits-object.js +0 -0
  783. /package/src/utils/{private → private.global}/global-config.js +0 -0
  784. /package/src/utils/{private → private.inject-obj-prop}/inject-obj-prop.js +0 -0
  785. /package/src/utils/{private → private.keyboard}/key-composition.js +0 -0
  786. /package/src/utils/{private → private.noop-ssr-directive-transform}/noop-ssr-directive-transform.js +0 -0
  787. /package/src/utils/{private → private.option-sizes}/option-sizes.js +0 -0
  788. /package/src/utils/{private → private.render}/render.js +0 -0
  789. /package/src/utils/{private → private.rtl}/rtl.js +0 -0
  790. /package/src/utils/{private → private.sort}/sort.js +0 -0
  791. /package/src/utils/{private → private.touch}/touch.js +0 -0
  792. /package/src/utils/{private → private.vm}/vm.js +0 -0
  793. /package/src/utils/{run-sequential-promises.js → run-sequential-promises/run-sequential-promises.js} +0 -0
  794. /package/src/utils/{throttle.js → throttle/throttle.js} +0 -0
  795. /package/src/utils/{uid.js → uid/uid.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.15.1
2
+ * Quasar Framework v2.15.3
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -263,10 +263,10 @@ var require_material_icons = __commonJS({
263
263
  // src/install-quasar.js
264
264
  import { createApp } from "vue";
265
265
 
266
- // src/plugins/Platform.js
266
+ // src/plugins/platform/Platform.js
267
267
  import { ref, reactive } from "vue";
268
268
 
269
- // src/utils/private/inject-obj-prop.js
269
+ // src/utils/private.inject-obj-prop/inject-obj-prop.js
270
270
  function injectProp(target2, propName, get2, set2) {
271
271
  Object.defineProperty(target2, propName, {
272
272
  get: get2,
@@ -282,7 +282,7 @@ function injectMultipleProps(target2, props4) {
282
282
  return target2;
283
283
  }
284
284
 
285
- // src/plugins/Platform.js
285
+ // src/plugins/platform/Platform.js
286
286
  var isRuntimeSsrPreHydration = false ? { value: true } : ref(
287
287
  __QUASAR_SSR_CLIENT__ && (__QUASAR_SSR_PWA__ ? document.body.getAttribute("data-server-rendered") !== null : true)
288
288
  );
@@ -291,8 +291,7 @@ function getMatch(userAgent2, platformMatch) {
291
291
  const match = /(edg|edge|edga|edgios)\/([\w.]+)/.exec(userAgent2) || /(opr)[\/]([\w.]+)/.exec(userAgent2) || /(vivaldi)[\/]([\w.]+)/.exec(userAgent2) || /(chrome|crios)[\/]([\w.]+)/.exec(userAgent2) || /(version)(applewebkit)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(userAgent2) || /(webkit)[\/]([\w.]+).*(version)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(userAgent2) || /(firefox|fxios)[\/]([\w.]+)/.exec(userAgent2) || /(webkit)[\/]([\w.]+)/.exec(userAgent2) || /(opera)(?:.*version|)[\/]([\w.]+)/.exec(userAgent2) || [];
292
292
  return {
293
293
  browser: match[5] || match[3] || match[1] || "",
294
- version: match[2] || match[4] || "0",
295
- versionNumber: match[4] || match[2] || "0",
294
+ version: match[4] || match[2] || "0",
296
295
  platform: platformMatch[0] || ""
297
296
  };
298
297
  }
@@ -305,7 +304,7 @@ function getPlatform(UA) {
305
304
  if (matched.browser) {
306
305
  browser[matched.browser] = true;
307
306
  browser.version = matched.version;
308
- browser.versionNumber = parseInt(matched.versionNumber, 10);
307
+ browser.versionNumber = parseInt(matched.version, 10);
309
308
  }
310
309
  if (matched.platform) {
311
310
  browser[matched.platform] = true;
@@ -320,7 +319,7 @@ function getPlatform(UA) {
320
319
  browser.winphone = true;
321
320
  delete browser["windows phone"];
322
321
  }
323
- if (browser.edga || browser.edgios) {
322
+ if (browser.edga || browser.edgios || browser.edg) {
324
323
  browser.edge = true;
325
324
  matched.browser = "edge";
326
325
  } else if (browser.crios) {
@@ -342,10 +341,7 @@ function getPlatform(UA) {
342
341
  ) {
343
342
  browser.webkit = true;
344
343
  }
345
- if (browser.edg) {
346
- matched.browser = "edgechromium";
347
- browser.edgeChromium = true;
348
- } else if (browser.opr) {
344
+ if (browser.opr) {
349
345
  matched.browser = "opera";
350
346
  browser.opera = true;
351
347
  }
@@ -473,27 +469,33 @@ if (false) {
473
469
  }
474
470
  var Platform_default = Platform;
475
471
 
476
- // src/utils/private/define-reactive-plugin.js
477
- import { reactive as reactive2 } from "vue";
478
- var define_reactive_plugin_default = false ? (state, plugin) => {
472
+ // src/utils/private.create/create.js
473
+ import { defineComponent, markRaw, reactive as reactive2 } from "vue";
474
+ function createComponent(raw) {
475
+ return markRaw(defineComponent(raw));
476
+ }
477
+ function createDirective(raw) {
478
+ return markRaw(raw);
479
+ }
480
+ var createReactivePlugin = false ? (state, plugin) => {
479
481
  Object.assign(plugin, state);
480
482
  return plugin;
481
483
  } : (state, plugin) => {
482
484
  const reactiveState = reactive2(state);
483
- for (const name in state) {
485
+ for (const name2 in state) {
484
486
  injectProp(
485
487
  plugin,
486
- name,
487
- () => reactiveState[name],
488
+ name2,
489
+ () => reactiveState[name2],
488
490
  (val) => {
489
- reactiveState[name] = val;
491
+ reactiveState[name2] = val;
490
492
  }
491
493
  );
492
494
  }
493
495
  return plugin;
494
496
  };
495
497
 
496
- // src/utils/event.js
498
+ // src/utils/event/event.js
497
499
  var listenOpts = {
498
500
  hasPassive: false,
499
501
  passiveCapture: true,
@@ -596,19 +598,19 @@ function preventDraggable(el, status) {
596
598
  el.querySelectorAll("a, img").forEach(fn);
597
599
  }
598
600
  function addEvt(ctx, targetName, events) {
599
- const name = `__q_${targetName}_evt`;
600
- ctx[name] = ctx[name] !== void 0 ? ctx[name].concat(events) : events;
601
+ const name2 = `__q_${targetName}_evt`;
602
+ ctx[name2] = ctx[name2] !== void 0 ? ctx[name2].concat(events) : events;
601
603
  events.forEach((evt) => {
602
604
  evt[0].addEventListener(evt[1], ctx[evt[2]], listenOpts[evt[3]]);
603
605
  });
604
606
  }
605
607
  function cleanEvt(ctx, targetName) {
606
- const name = `__q_${targetName}_evt`;
607
- if (ctx[name] !== void 0) {
608
- ctx[name].forEach((evt) => {
608
+ const name2 = `__q_${targetName}_evt`;
609
+ if (ctx[name2] !== void 0) {
610
+ ctx[name2].forEach((evt) => {
609
611
  evt[0].removeEventListener(evt[1], ctx[evt[2]], listenOpts[evt[3]]);
610
612
  });
611
- ctx[name] = void 0;
613
+ ctx[name2] = void 0;
612
614
  }
613
615
  }
614
616
  var event_default = {
@@ -625,7 +627,7 @@ var event_default = {
625
627
  preventDraggable
626
628
  };
627
629
 
628
- // src/utils/debounce.js
630
+ // src/utils/debounce/debounce.js
629
631
  function debounce_default(fn, wait = 250, immediate) {
630
632
  let timer2 = null;
631
633
  function debounced() {
@@ -649,10 +651,10 @@ function debounce_default(fn, wait = 250, immediate) {
649
651
  return debounced;
650
652
  }
651
653
 
652
- // src/plugins/Screen.js
654
+ // src/plugins/screen/Screen.js
653
655
  var SIZE_LIST = ["sm", "md", "lg", "xl"];
654
656
  var { passive } = listenOpts;
655
- var Screen_default = define_reactive_plugin_default({
657
+ var Screen_default = createReactivePlugin({
656
658
  width: 0,
657
659
  height: 0,
658
660
  name: "xs",
@@ -742,9 +744,9 @@ var Screen_default = define_reactive_plugin_default({
742
744
  };
743
745
  let updateEvt, updateSizes = {}, updateDebounce = 16;
744
746
  this.setSizes = (sizes) => {
745
- SIZE_LIST.forEach((name) => {
746
- if (sizes[name] !== void 0) {
747
- updateSizes[name] = sizes[name];
747
+ SIZE_LIST.forEach((name2) => {
748
+ if (sizes[name2] !== void 0) {
749
+ updateSizes[name2] = sizes[name2];
748
750
  }
749
751
  });
750
752
  };
@@ -754,14 +756,14 @@ var Screen_default = define_reactive_plugin_default({
754
756
  const start = () => {
755
757
  const style2 = getComputedStyle(document.body);
756
758
  if (style2.getPropertyValue("--q-size-sm")) {
757
- SIZE_LIST.forEach((name) => {
758
- this.sizes[name] = parseInt(style2.getPropertyValue(`--q-size-${name}`), 10);
759
+ SIZE_LIST.forEach((name2) => {
760
+ this.sizes[name2] = parseInt(style2.getPropertyValue(`--q-size-${name2}`), 10);
759
761
  });
760
762
  }
761
763
  this.setSizes = (sizes) => {
762
- SIZE_LIST.forEach((name) => {
763
- if (sizes[name]) {
764
- this.sizes[name] = sizes[name];
764
+ SIZE_LIST.forEach((name2) => {
765
+ if (sizes[name2]) {
766
+ this.sizes[name2] = sizes[name2];
765
767
  }
766
768
  });
767
769
  this.__update(true);
@@ -788,8 +790,8 @@ var Screen_default = define_reactive_plugin_default({
788
790
  }
789
791
  });
790
792
 
791
- // src/plugins/Dark.js
792
- var Plugin = define_reactive_plugin_default({
793
+ // src/plugins/dark/Dark.js
794
+ var Plugin = createReactivePlugin({
793
795
  isActive: false,
794
796
  mode: false
795
797
  }, {
@@ -847,7 +849,135 @@ var Plugin = define_reactive_plugin_default({
847
849
  });
848
850
  var Dark_default = Plugin;
849
851
 
850
- // src/history.js
852
+ // src/utils/css-var/set-css-var.js
853
+ function setCssVar(propName, value2, element = document.body) {
854
+ if (typeof propName !== "string") {
855
+ throw new TypeError("Expected a string as propName");
856
+ }
857
+ if (typeof value2 !== "string") {
858
+ throw new TypeError("Expected a string as value");
859
+ }
860
+ if (!(element instanceof Element)) {
861
+ throw new TypeError("Expected a DOM element");
862
+ }
863
+ element.style.setProperty(`--q-${propName}`, value2);
864
+ }
865
+
866
+ // src/utils/private.keyboard/key-composition.js
867
+ var lastKeyCompositionStatus = false;
868
+ function onKeyDownComposition(evt) {
869
+ lastKeyCompositionStatus = evt.isComposing === true;
870
+ }
871
+ function shouldIgnoreKey(evt) {
872
+ return lastKeyCompositionStatus === true || evt !== Object(evt) || evt.isComposing === true || evt.qKeyEvent === true;
873
+ }
874
+ function isKeyCode(evt, keyCodes4) {
875
+ return shouldIgnoreKey(evt) === true ? false : [].concat(keyCodes4).includes(evt.keyCode);
876
+ }
877
+
878
+ // src/plugins/private.body/Body.js
879
+ function getMobilePlatform(is) {
880
+ if (is.ios === true)
881
+ return "ios";
882
+ if (is.android === true)
883
+ return "android";
884
+ }
885
+ function getBodyClasses({ is, has: has2, within }, cfg) {
886
+ const cls = [
887
+ is.desktop === true ? "desktop" : "mobile",
888
+ `${has2.touch === false ? "no-" : ""}touch`
889
+ ];
890
+ if (is.mobile === true) {
891
+ const mobile = getMobilePlatform(is);
892
+ mobile !== void 0 && cls.push("platform-" + mobile);
893
+ }
894
+ if (is.nativeMobile === true) {
895
+ const type = is.nativeMobileWrapper;
896
+ cls.push(type);
897
+ cls.push("native-mobile");
898
+ if (is.ios === true && (cfg[type] === void 0 || cfg[type].iosStatusBarPadding !== false)) {
899
+ cls.push("q-ios-padding");
900
+ }
901
+ } else if (is.electron === true) {
902
+ cls.push("electron");
903
+ } else if (is.bex === true) {
904
+ cls.push("bex");
905
+ }
906
+ within.iframe === true && cls.push("within-iframe");
907
+ return cls;
908
+ }
909
+ function applyClientSsrCorrections() {
910
+ const { is } = client;
911
+ const classes = document.body.className;
912
+ const classList = new Set(classes.replace(/ {2}/g, " ").split(" "));
913
+ if (is.nativeMobile !== true && is.electron !== true && is.bex !== true) {
914
+ if (is.desktop === true) {
915
+ classList.delete("mobile");
916
+ classList.delete("platform-ios");
917
+ classList.delete("platform-android");
918
+ classList.add("desktop");
919
+ } else if (is.mobile === true) {
920
+ classList.delete("desktop");
921
+ classList.add("mobile");
922
+ classList.delete("platform-ios");
923
+ classList.delete("platform-android");
924
+ const mobile = getMobilePlatform(is);
925
+ if (mobile !== void 0) {
926
+ classList.add(`platform-${mobile}`);
927
+ }
928
+ }
929
+ }
930
+ if (client.has.touch === true) {
931
+ classList.delete("no-touch");
932
+ classList.add("touch");
933
+ }
934
+ if (client.within.iframe === true) {
935
+ classList.add("within-iframe");
936
+ }
937
+ const newCls = Array.from(classList).join(" ");
938
+ if (classes !== newCls) {
939
+ document.body.className = newCls;
940
+ }
941
+ }
942
+ function setColors(brand) {
943
+ for (const color in brand) {
944
+ setCssVar(color, brand[color]);
945
+ }
946
+ }
947
+ var Body_default = {
948
+ install(opts) {
949
+ if (false) {
950
+ const { $q, ssrContext } = opts;
951
+ const cls = getBodyClasses($q.platform, $q.config);
952
+ if ($q.config.screen !== void 0 && $q.config.screen.bodyClass === true) {
953
+ cls.push("screen--xs");
954
+ }
955
+ ssrContext._meta.bodyClasses += cls.join(" ");
956
+ const brand = $q.config.brand;
957
+ if (brand !== void 0) {
958
+ const vars = Object.keys(brand).map((key) => `--q-${key}:${brand[key]};`).join("");
959
+ ssrContext._meta.endingHeadTags += `<style>:root{${vars}}</style>`;
960
+ }
961
+ return;
962
+ }
963
+ if (this.__installed === true)
964
+ return;
965
+ if (isRuntimeSsrPreHydration.value === true) {
966
+ applyClientSsrCorrections();
967
+ } else {
968
+ const { $q } = opts;
969
+ $q.config.brand !== void 0 && setColors($q.config.brand);
970
+ const cls = getBodyClasses(client, $q.config);
971
+ document.body.classList.add.apply(document.body.classList, cls);
972
+ }
973
+ if (client.is.ios === true) {
974
+ document.body.addEventListener("touchstart", noop);
975
+ }
976
+ window.addEventListener("keydown", onKeyDownComposition, true);
977
+ }
978
+ };
979
+
980
+ // src/plugins/private.history/History.js
851
981
  var getTrue = () => true;
852
982
  function filterInvalidPath(path) {
853
983
  return typeof path === "string" && path !== "" && path !== "/" && path !== "#/";
@@ -871,7 +1001,7 @@ function getShouldExitFn(cfg) {
871
1001
  );
872
1002
  return () => exitPaths.includes(window.location.hash);
873
1003
  }
874
- var history_default = {
1004
+ var History_default = {
875
1005
  __history: [],
876
1006
  add: noop,
877
1007
  remove: noop,
@@ -933,7 +1063,7 @@ var history_default = {
933
1063
  }
934
1064
  };
935
1065
 
936
- // src/lang.js
1066
+ // src/plugins/lang/Lang.js
937
1067
  var import_en_US = __toESM(require_en_US());
938
1068
  function getLocale() {
939
1069
  if (false)
@@ -943,9 +1073,11 @@ function getLocale() {
943
1073
  return val.split(/[-_]/).map((v, i) => i === 0 ? v.toLowerCase() : i > 1 || v.length < 4 ? v.toUpperCase() : v[0].toUpperCase() + v.slice(1).toLowerCase()).join("-");
944
1074
  }
945
1075
  }
946
- var Plugin2 = define_reactive_plugin_default({
947
- __langPack: {}
1076
+ var Plugin2 = createReactivePlugin({
1077
+ __qLang: {}
948
1078
  }, {
1079
+ // props: object
1080
+ // __langConfig: object
949
1081
  getLocale,
950
1082
  set(langObject = import_en_US.default, ssrContext) {
951
1083
  const lang = {
@@ -955,7 +1087,7 @@ var Plugin2 = define_reactive_plugin_default({
955
1087
  };
956
1088
  if (false) {
957
1089
  if (ssrContext === void 0) {
958
- console.error("SSR ERROR: second param required: Quasar.lang.set(lang, ssrContext)");
1090
+ console.error("SSR ERROR: second param required: Lang.set(lang, ssrContext)");
959
1091
  return;
960
1092
  }
961
1093
  lang.set = ssrContext.$q.lang.set;
@@ -973,10 +1105,7 @@ var Plugin2 = define_reactive_plugin_default({
973
1105
  el.setAttribute("dir", lang.rtl === true ? "rtl" : "ltr");
974
1106
  el.setAttribute("lang", lang.isoName);
975
1107
  }
976
- Object.assign(Plugin2.__langPack, lang);
977
- Plugin2.props = lang;
978
- Plugin2.isoName = lang.isoName;
979
- Plugin2.nativeName = lang.nativeName;
1108
+ Object.assign(Plugin2.__qLang, lang);
980
1109
  }
981
1110
  },
982
1111
  install({ $q, lang, ssrContext }) {
@@ -987,170 +1116,49 @@ var Plugin2 = define_reactive_plugin_default({
987
1116
  this.set(langObject, ssrContext);
988
1117
  };
989
1118
  $q.lang.set(initialLang);
990
- if (this.isoName !== initialLang.isoName) {
991
- this.isoName = initialLang.isoName;
992
- this.nativeName = initialLang.nativeName;
993
- this.props = initialLang;
1119
+ if (this.props === void 0 || this.props.isoName !== initialLang.isoName) {
1120
+ this.props = { ...initialLang };
994
1121
  }
995
1122
  } else {
996
- $q.lang = Plugin2.__langPack;
1123
+ $q.lang = Plugin2.__qLang;
997
1124
  Plugin2.__langConfig = $q.config.lang;
998
1125
  if (this.__installed === true) {
999
1126
  lang !== void 0 && this.set(lang);
1000
1127
  } else {
1128
+ this.props = new Proxy(this.__qLang, {
1129
+ get() {
1130
+ return Reflect.get(...arguments);
1131
+ },
1132
+ ownKeys(target2) {
1133
+ return Reflect.ownKeys(target2).filter((key) => key !== "set" && key !== "getLocale");
1134
+ }
1135
+ });
1001
1136
  this.set(lang || import_en_US.default);
1002
1137
  }
1003
1138
  }
1004
1139
  }
1005
1140
  });
1006
- var lang_default = Plugin2;
1007
-
1008
- // src/utils/set-css-var.js
1009
- function setCssVar(propName, value2, element = document.body) {
1010
- if (typeof propName !== "string") {
1011
- throw new TypeError("Expected a string as propName");
1012
- }
1013
- if (typeof value2 !== "string") {
1014
- throw new TypeError("Expected a string as value");
1015
- }
1016
- if (!(element instanceof Element)) {
1017
- throw new TypeError("Expected a DOM element");
1018
- }
1019
- element.style.setProperty(`--q-${propName}`, value2);
1020
- }
1021
-
1022
- // src/utils/private/key-composition.js
1023
- var lastKeyCompositionStatus = false;
1024
- function onKeyDownComposition(evt) {
1025
- lastKeyCompositionStatus = evt.isComposing === true;
1026
- }
1027
- function shouldIgnoreKey(evt) {
1028
- return lastKeyCompositionStatus === true || evt !== Object(evt) || evt.isComposing === true || evt.qKeyEvent === true;
1029
- }
1030
- function isKeyCode(evt, keyCodes4) {
1031
- return shouldIgnoreKey(evt) === true ? false : [].concat(keyCodes4).includes(evt.keyCode);
1032
- }
1033
-
1034
- // src/body.js
1035
- function getMobilePlatform(is) {
1036
- if (is.ios === true)
1037
- return "ios";
1038
- if (is.android === true)
1039
- return "android";
1040
- }
1041
- function getBodyClasses({ is, has: has2, within }, cfg) {
1042
- const cls = [
1043
- is.desktop === true ? "desktop" : "mobile",
1044
- `${has2.touch === false ? "no-" : ""}touch`
1045
- ];
1046
- if (is.mobile === true) {
1047
- const mobile = getMobilePlatform(is);
1048
- mobile !== void 0 && cls.push("platform-" + mobile);
1049
- }
1050
- if (is.nativeMobile === true) {
1051
- const type = is.nativeMobileWrapper;
1052
- cls.push(type);
1053
- cls.push("native-mobile");
1054
- if (is.ios === true && (cfg[type] === void 0 || cfg[type].iosStatusBarPadding !== false)) {
1055
- cls.push("q-ios-padding");
1056
- }
1057
- } else if (is.electron === true) {
1058
- cls.push("electron");
1059
- } else if (is.bex === true) {
1060
- cls.push("bex");
1061
- }
1062
- within.iframe === true && cls.push("within-iframe");
1063
- return cls;
1064
- }
1065
- function applyClientSsrCorrections() {
1066
- const { is } = client;
1067
- const classes = document.body.className;
1068
- const classList = new Set(classes.replace(/ {2}/g, " ").split(" "));
1069
- if (is.nativeMobile !== true && is.electron !== true && is.bex !== true) {
1070
- if (is.desktop === true) {
1071
- classList.delete("mobile");
1072
- classList.delete("platform-ios");
1073
- classList.delete("platform-android");
1074
- classList.add("desktop");
1075
- } else if (is.mobile === true) {
1076
- classList.delete("desktop");
1077
- classList.add("mobile");
1078
- classList.delete("platform-ios");
1079
- classList.delete("platform-android");
1080
- const mobile = getMobilePlatform(is);
1081
- if (mobile !== void 0) {
1082
- classList.add(`platform-${mobile}`);
1083
- }
1084
- }
1085
- }
1086
- if (client.has.touch === true) {
1087
- classList.delete("no-touch");
1088
- classList.add("touch");
1089
- }
1090
- if (client.within.iframe === true) {
1091
- classList.add("within-iframe");
1092
- }
1093
- const newCls = Array.from(classList).join(" ");
1094
- if (classes !== newCls) {
1095
- document.body.className = newCls;
1096
- }
1097
- }
1098
- function setColors(brand) {
1099
- for (const color in brand) {
1100
- setCssVar(color, brand[color]);
1101
- }
1102
- }
1103
- var body_default = {
1104
- install(opts) {
1105
- if (false) {
1106
- const { $q, ssrContext } = opts;
1107
- const cls = getBodyClasses($q.platform, $q.config);
1108
- if ($q.config.screen !== void 0 && $q.config.screen.bodyClass === true) {
1109
- cls.push("screen--xs");
1110
- }
1111
- ssrContext._meta.bodyClasses += cls.join(" ");
1112
- const brand = $q.config.brand;
1113
- if (brand !== void 0) {
1114
- const vars = Object.keys(brand).map((key) => `--q-${key}:${brand[key]};`).join("");
1115
- ssrContext._meta.endingHeadTags += `<style>:root{${vars}}</style>`;
1116
- }
1117
- return;
1118
- }
1119
- if (this.__installed === true)
1120
- return;
1121
- if (isRuntimeSsrPreHydration.value === true) {
1122
- applyClientSsrCorrections();
1123
- } else {
1124
- const { $q } = opts;
1125
- $q.config.brand !== void 0 && setColors($q.config.brand);
1126
- const cls = getBodyClasses(client, $q.config);
1127
- document.body.classList.add.apply(document.body.classList, cls);
1128
- }
1129
- if (client.is.ios === true) {
1130
- document.body.addEventListener("touchstart", noop);
1131
- }
1132
- window.addEventListener("keydown", onKeyDownComposition, true);
1133
- }
1134
- };
1141
+ var Lang_default = Plugin2;
1135
1142
 
1136
- // src/icon-set.js
1143
+ // src/plugins/icon-set/IconSet.js
1137
1144
  var import_material_icons = __toESM(require_material_icons());
1138
- var Plugin3 = define_reactive_plugin_default({
1145
+ var Plugin3 = createReactivePlugin({
1139
1146
  iconMapFn: null,
1140
- __icons: {}
1147
+ __qIconSet: {}
1141
1148
  }, {
1149
+ // props: object
1142
1150
  set(setObject, ssrContext) {
1143
- const def = { ...setObject, rtl: setObject.rtl === true };
1151
+ const def = { ...setObject };
1144
1152
  if (false) {
1145
1153
  if (ssrContext === void 0) {
1146
- console.error("SSR ERROR: second param required: Quasar.iconSet.set(iconSet, ssrContext)");
1154
+ console.error("SSR ERROR: second param required: IconSet.set(iconSet, ssrContext)");
1147
1155
  return;
1148
1156
  }
1149
1157
  def.set = ssrContext.$q.iconSet.set;
1150
1158
  Object.assign(ssrContext.$q.iconSet, def);
1151
1159
  } else {
1152
1160
  def.set = Plugin3.set;
1153
- Object.assign(Plugin3.__icons, def);
1161
+ Object.assign(Plugin3.__qIconSet, def);
1154
1162
  }
1155
1163
  },
1156
1164
  install({ $q, iconSet, ssrContext }) {
@@ -1162,25 +1170,36 @@ var Plugin3 = define_reactive_plugin_default({
1162
1170
  this.set(setObject, ssrContext);
1163
1171
  };
1164
1172
  $q.iconSet.set(initialSet);
1173
+ if (this.props === void 0 || this.props.name !== initialSet.name) {
1174
+ this.props = { ...initialSet };
1175
+ }
1165
1176
  } else {
1166
1177
  if ($q.config.iconMapFn !== void 0) {
1167
1178
  this.iconMapFn = $q.config.iconMapFn;
1168
1179
  }
1169
- $q.iconSet = this.__icons;
1180
+ $q.iconSet = this.__qIconSet;
1170
1181
  injectProp($q, "iconMapFn", () => this.iconMapFn, (val) => {
1171
1182
  this.iconMapFn = val;
1172
1183
  });
1173
1184
  if (this.__installed === true) {
1174
1185
  iconSet !== void 0 && this.set(iconSet);
1175
1186
  } else {
1187
+ this.props = new Proxy(this.__qIconSet, {
1188
+ get() {
1189
+ return Reflect.get(...arguments);
1190
+ },
1191
+ ownKeys(target2) {
1192
+ return Reflect.ownKeys(target2).filter((key) => key !== "set");
1193
+ }
1194
+ });
1176
1195
  this.set(iconSet || import_material_icons.default);
1177
1196
  }
1178
1197
  }
1179
1198
  }
1180
1199
  });
1181
- var icon_set_default = Plugin3;
1200
+ var IconSet_default = Plugin3;
1182
1201
 
1183
- // src/utils/private/symbols.js
1202
+ // src/utils/private.symbols/symbols.js
1184
1203
  var quasarKey = "_q_";
1185
1204
  var timelineKey = "_q_t_";
1186
1205
  var stepperKey = "_q_s_";
@@ -1190,17 +1209,17 @@ var fabKey = "_q_f_";
1190
1209
  var formKey = "_q_fo_";
1191
1210
  var tabsKey = "_q_tabs_";
1192
1211
  var uploaderKey = "_q_u_";
1193
- var emptyRenderFn = () => {
1194
- };
1212
+ function emptyRenderFn() {
1213
+ }
1195
1214
 
1196
- // src/utils/private/global-config.js
1215
+ // src/utils/private.global/global-config.js
1197
1216
  var globalConfig = {};
1198
1217
  var globalConfigIsFrozen = false;
1199
1218
  function freezeGlobalConfig() {
1200
1219
  globalConfigIsFrozen = true;
1201
1220
  }
1202
1221
 
1203
- // src/utils/is.js
1222
+ // src/utils/is/is.js
1204
1223
  function isDeepEqual(a, b) {
1205
1224
  if (a === b) {
1206
1225
  return true;
@@ -1317,12 +1336,12 @@ var is_default = {
1317
1336
  // src/install-quasar.js
1318
1337
  var autoInstalledPlugins = [
1319
1338
  Platform_default,
1320
- body_default,
1339
+ Body_default,
1321
1340
  Dark_default,
1322
1341
  Screen_default,
1323
- history_default,
1324
- lang_default,
1325
- icon_set_default
1342
+ History_default,
1343
+ Lang_default,
1344
+ IconSet_default
1326
1345
  ];
1327
1346
  function createChildApp(appCfg, parentApp) {
1328
1347
  const app2 = createApp(appCfg);
@@ -1369,7 +1388,7 @@ function prepareApp(app2, uiOpts, pluginOpts) {
1369
1388
  }
1370
1389
  var install_quasar_default = false ? function(parentApp, opts = {}, ssrContext) {
1371
1390
  const $q = {
1372
- version: "2.15.1",
1391
+ version: "2.15.3",
1373
1392
  config: opts.config || {}
1374
1393
  };
1375
1394
  Object.assign(ssrContext, {
@@ -1399,7 +1418,7 @@ var install_quasar_default = false ? function(parentApp, opts = {}, ssrContext)
1399
1418
  ssrContext
1400
1419
  });
1401
1420
  } : function(parentApp, opts = {}) {
1402
- const $q = { version: "2.15.1" };
1421
+ const $q = { version: "2.15.3" };
1403
1422
  if (globalConfigIsFrozen === false) {
1404
1423
  if (opts.config !== void 0) {
1405
1424
  Object.assign(globalConfig, opts.config);
@@ -1421,20 +1440,15 @@ var install_quasar_default = false ? function(parentApp, opts = {}, ssrContext)
1421
1440
  // src/components/ajax-bar/QAjaxBar.js
1422
1441
  import { h, ref as ref2, computed, onMounted, onBeforeUnmount, getCurrentInstance } from "vue";
1423
1442
 
1424
- // src/utils/private/create.js
1425
- import { defineComponent, markRaw } from "vue";
1426
- var createComponent = (raw) => markRaw(defineComponent(raw));
1427
- var createDirective = (raw) => markRaw(raw);
1428
-
1429
- // src/utils/format.js
1443
+ // src/utils/format/format.js
1430
1444
  var units = ["B", "KB", "MB", "GB", "TB", "PB"];
1431
- function humanStorageSize(bytes) {
1445
+ function humanStorageSize(bytes, decimals = 1) {
1432
1446
  let u = 0;
1433
1447
  while (parseInt(bytes, 10) >= 1024 && u < units.length - 1) {
1434
1448
  bytes /= 1024;
1435
1449
  ++u;
1436
1450
  }
1437
- return `${bytes.toFixed(1)}${units[u]}`;
1451
+ return `${bytes.toFixed(decimals)}${units[u]}`;
1438
1452
  }
1439
1453
  function capitalize(str) {
1440
1454
  return str.charAt(0).toUpperCase() + str.slice(1);
@@ -1687,7 +1701,7 @@ import { h as h4, computed as computed4 } from "vue";
1687
1701
  // src/components/icon/QIcon.js
1688
1702
  import { h as h3, computed as computed3, getCurrentInstance as getCurrentInstance2 } from "vue";
1689
1703
 
1690
- // src/composables/private/use-size.js
1704
+ // src/composables/private.use-size/use-size.js
1691
1705
  import { computed as computed2 } from "vue";
1692
1706
  var useSizeDefaults = {
1693
1707
  xs: 18,
@@ -1703,7 +1717,7 @@ function use_size_default(props4, sizes = useSizeDefaults) {
1703
1717
  return computed2(() => props4.size !== void 0 ? { fontSize: props4.size in sizes ? `${sizes[props4.size]}px` : props4.size } : null);
1704
1718
  }
1705
1719
 
1706
- // src/utils/private/render.js
1720
+ // src/utils/private.render/render.js
1707
1721
  import { h as h2, withDirectives } from "vue";
1708
1722
  function hSlot(slot, otherwise) {
1709
1723
  return slot !== void 0 ? slot() || otherwise : otherwise;
@@ -1976,7 +1990,7 @@ var QBadge_default = createComponent({
1976
1990
  // src/components/banner/QBanner.js
1977
1991
  import { h as h6, computed as computed7, getCurrentInstance as getCurrentInstance3 } from "vue";
1978
1992
 
1979
- // src/composables/private/use-dark.js
1993
+ // src/composables/private.use-dark/use-dark.js
1980
1994
  import { computed as computed6 } from "vue";
1981
1995
  var useDarkProps = {
1982
1996
  dark: {
@@ -2051,7 +2065,7 @@ var QBar_default = createComponent({
2051
2065
  // src/components/breadcrumbs/QBreadcrumbs.js
2052
2066
  import { h as h8, computed as computed10 } from "vue";
2053
2067
 
2054
- // src/composables/private/use-align.js
2068
+ // src/composables/private.use-align/use-align.js
2055
2069
  import { computed as computed9 } from "vue";
2056
2070
  var alignMap = {
2057
2071
  left: "start",
@@ -2076,7 +2090,7 @@ function use_align_default(props4) {
2076
2090
  });
2077
2091
  }
2078
2092
 
2079
- // src/utils/private/vm.js
2093
+ // src/utils/private.vm/vm.js
2080
2094
  function getParentProxy(proxy) {
2081
2095
  if (Object(proxy.$parent) === proxy.$parent) {
2082
2096
  return proxy.$parent;
@@ -2143,6 +2157,8 @@ var QBreadcrumbs_default = createComponent({
2143
2157
  const sepClass = computed10(() => props4.separatorColor ? ` text-${props4.separatorColor}` : "");
2144
2158
  const activeClass = computed10(() => ` text-${props4.activeColor}`);
2145
2159
  return () => {
2160
+ if (slots.default === void 0)
2161
+ return;
2146
2162
  const vnodes = getNormalizedVNodes(
2147
2163
  hSlot(slots.default)
2148
2164
  );
@@ -2184,7 +2200,7 @@ var QBreadcrumbs_default = createComponent({
2184
2200
  // src/components/breadcrumbs/QBreadcrumbsEl.js
2185
2201
  import { h as h9, computed as computed12 } from "vue";
2186
2202
 
2187
- // src/composables/private/use-router-link.js
2203
+ // src/composables/private.use-router-link/use-router-link.js
2188
2204
  import { computed as computed11, getCurrentInstance as getCurrentInstance5 } from "vue";
2189
2205
  function getOriginalPath(record) {
2190
2206
  return record ? record.aliasOf ? record.aliasOf.path : record.path : "";
@@ -2444,7 +2460,7 @@ var QSpinner_default = createComponent({
2444
2460
  }
2445
2461
  });
2446
2462
 
2447
- // src/utils/dom.js
2463
+ // src/utils/dom/dom.js
2448
2464
  import { unref } from "vue";
2449
2465
  function offset(el) {
2450
2466
  if (el === window) {
@@ -2517,7 +2533,7 @@ var dom_default = {
2517
2533
  ready
2518
2534
  };
2519
2535
 
2520
- // src/utils/throttle.js
2536
+ // src/utils/throttle/throttle.js
2521
2537
  function throttle_default(fn, limit = 250) {
2522
2538
  let wait = false, result;
2523
2539
  return function() {
@@ -2532,7 +2548,7 @@ function throttle_default(fn, limit = 250) {
2532
2548
  };
2533
2549
  }
2534
2550
 
2535
- // src/directives/Ripple.js
2551
+ // src/directives/ripple/Ripple.js
2536
2552
  function showRipple(evt, el, ctx, forceCenter) {
2537
2553
  ctx.modifiers.stop === true && stop(evt);
2538
2554
  const color = ctx.modifiers.color;
@@ -2657,7 +2673,7 @@ var defaultSizes = {
2657
2673
  var formTypes = ["button", "submit", "reset"];
2658
2674
  var mediaTypeRE = /[^\s]\/[^\s]/;
2659
2675
  var btnDesignOptions = ["flat", "outline", "push", "unelevated"];
2660
- var getBtnDesign = (props4, defaultValue) => {
2676
+ function getBtnDesign(props4, defaultValue) {
2661
2677
  if (props4.flat === true)
2662
2678
  return "flat";
2663
2679
  if (props4.outline === true)
@@ -2667,11 +2683,11 @@ var getBtnDesign = (props4, defaultValue) => {
2667
2683
  if (props4.unelevated === true)
2668
2684
  return "unelevated";
2669
2685
  return defaultValue;
2670
- };
2671
- var getBtnDesignAttr = (props4) => {
2686
+ }
2687
+ function getBtnDesignAttr(props4) {
2672
2688
  const design = getBtnDesign(props4);
2673
2689
  return design !== void 0 ? { [design]: true } : {};
2674
- };
2690
+ }
2675
2691
  var useBtnProps = {
2676
2692
  ...useSizeProps,
2677
2693
  ...useRouterLinkProps,
@@ -2993,7 +3009,13 @@ var QBtn_default = createComponent({
2993
3009
  onBeforeUnmount2(() => {
2994
3010
  cleanup(true);
2995
3011
  });
2996
- Object.assign(proxy, { click: onClick });
3012
+ Object.assign(proxy, {
3013
+ click: (e) => {
3014
+ if (isActionable.value === true) {
3015
+ onClick(e);
3016
+ }
3017
+ }
3018
+ });
2997
3019
  return () => {
2998
3020
  let inner = [];
2999
3021
  props4.icon !== void 0 && inner.push(
@@ -3098,10 +3120,10 @@ var QBtnGroup_default = createComponent({
3098
3120
  // src/components/menu/QMenu.js
3099
3121
  import { h as h14, ref as ref7, computed as computed18, watch as watch4, Transition as Transition2, onBeforeUnmount as onBeforeUnmount7, getCurrentInstance as getCurrentInstance11 } from "vue";
3100
3122
 
3101
- // src/composables/private/use-anchor.js
3123
+ // src/composables/private.use-anchor/use-anchor.js
3102
3124
  import { ref as ref4, watch, onMounted as onMounted2, onBeforeUnmount as onBeforeUnmount3, nextTick, getCurrentInstance as getCurrentInstance7 } from "vue";
3103
3125
 
3104
- // src/utils/private/selection.js
3126
+ // src/utils/private.selection/selection.js
3105
3127
  function clearSelection() {
3106
3128
  if (window.getSelection !== void 0) {
3107
3129
  const selection = window.getSelection();
@@ -3116,7 +3138,7 @@ function clearSelection() {
3116
3138
  }
3117
3139
  }
3118
3140
 
3119
- // src/composables/private/use-anchor.js
3141
+ // src/composables/private.use-anchor/use-anchor.js
3120
3142
  var useAnchorProps = {
3121
3143
  target: {
3122
3144
  default: true
@@ -3285,7 +3307,7 @@ function use_anchor_default({
3285
3307
  };
3286
3308
  }
3287
3309
 
3288
- // src/composables/private/use-scroll-target.js
3310
+ // src/composables/private.use-scroll-target/use-scroll-target.js
3289
3311
  import { ref as ref5, watch as watch2, onBeforeUnmount as onBeforeUnmount4 } from "vue";
3290
3312
  function use_scroll_target_default(props4, configureScrollTarget) {
3291
3313
  const localScrollTarget = ref5(null);
@@ -3319,7 +3341,7 @@ function use_scroll_target_default(props4, configureScrollTarget) {
3319
3341
  };
3320
3342
  }
3321
3343
 
3322
- // src/composables/private/use-model-toggle.js
3344
+ // src/composables/private.use-model-toggle/use-model-toggle.js
3323
3345
  import { watch as watch3, nextTick as nextTick2, onMounted as onMounted3, getCurrentInstance as getCurrentInstance8 } from "vue";
3324
3346
  var useModelToggleProps = {
3325
3347
  modelValue: {
@@ -3443,10 +3465,10 @@ function use_model_toggle_default({
3443
3465
  return publicMethods;
3444
3466
  }
3445
3467
 
3446
- // src/composables/private/use-portal.js
3468
+ // src/composables/private.use-portal/use-portal.js
3447
3469
  import { h as h13, ref as ref6, onUnmounted, Teleport } from "vue";
3448
3470
 
3449
- // src/utils/private/focus-manager.js
3471
+ // src/utils/private.focus/focus-manager.js
3450
3472
  var queue = [];
3451
3473
  var waitFlags = [];
3452
3474
  function clearFlag(flag) {
@@ -3474,7 +3496,7 @@ function removeFocusFn(fn) {
3474
3496
  queue = queue.filter((entry) => entry !== fn);
3475
3497
  }
3476
3498
 
3477
- // src/utils/private/global-nodes.js
3499
+ // src/utils/private.global/global-nodes.js
3478
3500
  var nodesList = [];
3479
3501
  var portalTypeList = [];
3480
3502
  var portalIndex = 1;
@@ -3521,7 +3543,7 @@ function changeGlobalNodesTarget(newTarget) {
3521
3543
  }
3522
3544
  }
3523
3545
 
3524
- // src/utils/private/portal.js
3546
+ // src/utils/private.portal/portal.js
3525
3547
  var portalProxyList = [];
3526
3548
  function getPortalProxy(el) {
3527
3549
  return portalProxyList.find(
@@ -3561,7 +3583,13 @@ function closePortals(proxy, evt, depth) {
3561
3583
  }
3562
3584
  }
3563
3585
 
3564
- // src/composables/private/use-portal.js
3586
+ // src/composables/private.use-portal/use-portal.js
3587
+ var QPortal = createComponent({
3588
+ name: "QPortal",
3589
+ setup(_, { slots }) {
3590
+ return () => slots.default();
3591
+ }
3592
+ });
3565
3593
  function isOnGlobalDialog(vm2) {
3566
3594
  vm2 = vm2.parent;
3567
3595
  while (vm2 !== void 0 && vm2 !== null) {
@@ -3631,11 +3659,11 @@ function use_portal_default(vm2, innerRef, renderPortalContent, type) {
3631
3659
  hidePortal,
3632
3660
  portalIsActive,
3633
3661
  portalIsAccessible,
3634
- renderPortal: () => onGlobalDialog === true ? renderPortalContent() : portalIsActive.value === true ? [h13(Teleport, { to: portalEl }, renderPortalContent())] : void 0
3662
+ renderPortal: () => onGlobalDialog === true ? renderPortalContent() : portalIsActive.value === true ? [h13(Teleport, { to: portalEl }, h13(QPortal, renderPortalContent))] : void 0
3635
3663
  };
3636
3664
  }
3637
3665
 
3638
- // src/composables/private/use-transition.js
3666
+ // src/composables/private.use-transition/use-transition.js
3639
3667
  import { computed as computed17 } from "vue";
3640
3668
  var useTransitionProps = {
3641
3669
  transitionShow: {
@@ -3672,7 +3700,7 @@ function use_transition_default(props4, defaultShowFn = () => {
3672
3700
  };
3673
3701
  }
3674
3702
 
3675
- // src/composables/use-tick.js
3703
+ // src/composables/use-tick/use-tick.js
3676
3704
  import { nextTick as nextTick3, onDeactivated, onBeforeUnmount as onBeforeUnmount5, getCurrentInstance as getCurrentInstance9 } from "vue";
3677
3705
  function use_tick_default() {
3678
3706
  let tickFn;
@@ -3696,7 +3724,7 @@ function use_tick_default() {
3696
3724
  };
3697
3725
  }
3698
3726
 
3699
- // src/composables/use-timeout.js
3727
+ // src/composables/use-timeout/use-timeout.js
3700
3728
  import { onDeactivated as onDeactivated2, onBeforeUnmount as onBeforeUnmount6, getCurrentInstance as getCurrentInstance10 } from "vue";
3701
3729
  function use_timeout_default() {
3702
3730
  let timer2 = null;
@@ -3723,7 +3751,7 @@ function use_timeout_default() {
3723
3751
  };
3724
3752
  }
3725
3753
 
3726
- // src/utils/scroll.js
3754
+ // src/utils/scroll/scroll.js
3727
3755
  var scrollTargets = false ? [] : [null, document, document.body, document.scrollingElement, document.documentElement];
3728
3756
  function getScrollTarget(el, targetEl) {
3729
3757
  let target2 = getElement(targetEl);
@@ -3862,7 +3890,7 @@ var scroll_default = {
3862
3890
  hasScrollbar
3863
3891
  };
3864
3892
 
3865
- // src/utils/private/escape-key.js
3893
+ // src/utils/private.keyboard/escape-key.js
3866
3894
  var handlers = [];
3867
3895
  var escDown;
3868
3896
  function onKeydown(evt) {
@@ -3905,7 +3933,7 @@ function removeEscapeKey(fn) {
3905
3933
  }
3906
3934
  }
3907
3935
 
3908
- // src/utils/private/focusout.js
3936
+ // src/utils/private.focus/focusout.js
3909
3937
  var handlers2 = [];
3910
3938
  function trigger(e) {
3911
3939
  handlers2[handlers2.length - 1](e);
@@ -3928,7 +3956,7 @@ function removeFocusout(fn) {
3928
3956
  }
3929
3957
  }
3930
3958
 
3931
- // src/utils/private/click-outside.js
3959
+ // src/utils/private.click-outside/click-outside.js
3932
3960
  var timer = null;
3933
3961
  var { notPassiveCapture } = listenOpts;
3934
3962
  var registeredList = [];
@@ -3988,7 +4016,7 @@ function removeClickOutside(clickOutsideProps) {
3988
4016
  }
3989
4017
  }
3990
4018
 
3991
- // src/utils/private/position-engine.js
4019
+ // src/utils/private.position-engine/position-engine.js
3992
4020
  var vpLeft;
3993
4021
  var vpTop;
3994
4022
  function validatePosition(pos) {
@@ -4488,10 +4516,10 @@ var QMenu_default = createComponent({
4488
4516
  }
4489
4517
  });
4490
4518
 
4491
- // src/composables/use-id.js
4519
+ // src/composables/use-id/use-id.js
4492
4520
  import { ref as ref8, computed as computed19, watch as watch5, onMounted as onMounted4 } from "vue";
4493
4521
 
4494
- // src/utils/uid.js
4522
+ // src/utils/uid/uid.js
4495
4523
  var buf;
4496
4524
  var bufIdx = 0;
4497
4525
  var hexBytes = new Array(256);
@@ -4532,7 +4560,7 @@ function uid_default() {
4532
4560
  return hexBytes[b[0]] + hexBytes[b[1]] + hexBytes[b[2]] + hexBytes[b[3]] + "-" + hexBytes[b[4]] + hexBytes[b[5]] + "-" + hexBytes[b[6]] + hexBytes[b[7]] + "-" + hexBytes[b[8]] + hexBytes[b[9]] + "-" + hexBytes[b[10]] + hexBytes[b[11]] + hexBytes[b[12]] + hexBytes[b[13]] + hexBytes[b[14]] + hexBytes[b[15]];
4533
4561
  }
4534
4562
 
4535
- // src/composables/use-id.js
4563
+ // src/composables/use-id/use-id.js
4536
4564
  function parseValue(val) {
4537
4565
  return val === void 0 || val === null ? null : val;
4538
4566
  }
@@ -4559,16 +4587,15 @@ function use_id_default({ getValue, required = true } = {}) {
4559
4587
 
4560
4588
  // src/components/btn-dropdown/QBtnDropdown.js
4561
4589
  var btnPropsList = Object.keys(useBtnProps);
4562
- var passBtnProps = (props4) => btnPropsList.reduce(
4563
- (acc, key) => {
4590
+ function passBtnProps(props4) {
4591
+ return btnPropsList.reduce((acc, key) => {
4564
4592
  const val = props4[key];
4565
4593
  if (val !== void 0) {
4566
4594
  acc[key] = val;
4567
4595
  }
4568
4596
  return acc;
4569
- },
4570
- {}
4571
- );
4597
+ }, {});
4598
+ }
4572
4599
  var QBtnDropdown_default = createComponent({
4573
4600
  name: "QBtnDropdown",
4574
4601
  props: {
@@ -4750,7 +4777,7 @@ var QBtnDropdown_default = createComponent({
4750
4777
  // src/components/btn-toggle/QBtnToggle.js
4751
4778
  import { h as h17, computed as computed22 } from "vue";
4752
4779
 
4753
- // src/composables/private/use-form.js
4780
+ // src/composables/use-form/private.use-form.js
4754
4781
  import { h as h16, computed as computed21 } from "vue";
4755
4782
  var useFormProps = {
4756
4783
  name: String
@@ -4965,10 +4992,10 @@ var QCardActions_default = createComponent({
4965
4992
  // src/components/carousel/QCarousel.js
4966
4993
  import { h as h22, computed as computed27, watch as watch9, onMounted as onMounted7, onBeforeUnmount as onBeforeUnmount9, getCurrentInstance as getCurrentInstance16 } from "vue";
4967
4994
 
4968
- // src/composables/private/use-panel.js
4995
+ // src/composables/private.use-panel/use-panel.js
4969
4996
  import { h as h21, ref as ref10, computed as computed26, watch as watch7, nextTick as nextTick4, getCurrentInstance as getCurrentInstance14, Transition as Transition3, KeepAlive } from "vue";
4970
4997
 
4971
- // src/utils/private/touch.js
4998
+ // src/utils/private.touch/touch.js
4972
4999
  var modifiersAll = {
4973
5000
  left: true,
4974
5001
  right: true,
@@ -5009,7 +5036,7 @@ function shouldStart(evt, ctx) {
5009
5036
  return ctx.event === void 0 && evt.target !== void 0 && evt.target.draggable !== true && typeof ctx.handler === "function" && avoidNodeNamesList.includes(evt.target.nodeName.toUpperCase()) === false && (evt.qClonedBy === void 0 || evt.qClonedBy.indexOf(ctx.uid) === -1);
5010
5037
  }
5011
5038
 
5012
- // src/directives/TouchSwipe.js
5039
+ // src/directives/touch-swipe/TouchSwipe.js
5013
5040
  function parseArg(arg) {
5014
5041
  const data = [0.06, 6, 50];
5015
5042
  if (typeof arg === "string" && arg.length) {
@@ -5188,7 +5215,7 @@ var TouchSwipe_default = createDirective(
5188
5215
  }
5189
5216
  );
5190
5217
 
5191
- // src/composables/use-render-cache.js
5218
+ // src/composables/use-render-cache/use-render-cache.js
5192
5219
  function use_render_cache_default() {
5193
5220
  let cache = /* @__PURE__ */ Object.create(null);
5194
5221
  return {
@@ -5209,7 +5236,7 @@ function use_render_cache_default() {
5209
5236
  };
5210
5237
  }
5211
5238
 
5212
- // src/composables/private/use-panel.js
5239
+ // src/composables/private.use-panel/use-panel.js
5213
5240
  var usePanelChildProps = {
5214
5241
  name: { required: true },
5215
5242
  disable: Boolean
@@ -5303,15 +5330,15 @@ function use_panel_default() {
5303
5330
  function previousPanel() {
5304
5331
  goToPanelByOffset(-1);
5305
5332
  }
5306
- function goToPanel(name) {
5307
- emit("update:modelValue", name);
5333
+ function goToPanel(name2) {
5334
+ emit("update:modelValue", name2);
5308
5335
  }
5309
- function isValidPanelName(name) {
5310
- return name !== void 0 && name !== null && name !== "";
5336
+ function isValidPanelName(name2) {
5337
+ return name2 !== void 0 && name2 !== null && name2 !== "";
5311
5338
  }
5312
- function getPanelIndex(name) {
5339
+ function getPanelIndex(name2) {
5313
5340
  return panels.findIndex((panel) => {
5314
- return panel.props.name === name && panel.props.disable !== "" && panel.props.disable !== true;
5341
+ return panel.props.name === name2 && panel.props.disable !== "" && panel.props.disable !== true;
5315
5342
  });
5316
5343
  }
5317
5344
  function getEnabledPanels() {
@@ -5410,7 +5437,7 @@ function use_panel_default() {
5410
5437
  };
5411
5438
  }
5412
5439
 
5413
- // src/composables/private/use-fullscreen.js
5440
+ // src/composables/private.use-fullscreen/use-fullscreen.js
5414
5441
  import { ref as ref11, watch as watch8, onBeforeMount, onMounted as onMounted6, onBeforeUnmount as onBeforeUnmount8, getCurrentInstance as getCurrentInstance15 } from "vue";
5415
5442
  var counter = 0;
5416
5443
  var useFullscreenProps = {
@@ -5457,14 +5484,14 @@ function use_fullscreen_default() {
5457
5484
  historyEntry = {
5458
5485
  handler: exitFullscreen
5459
5486
  };
5460
- history_default.add(historyEntry);
5487
+ History_default.add(historyEntry);
5461
5488
  }
5462
5489
  function exitFullscreen() {
5463
5490
  if (inFullscreen.value !== true) {
5464
5491
  return;
5465
5492
  }
5466
5493
  if (historyEntry !== void 0) {
5467
- history_default.remove(historyEntry);
5494
+ History_default.remove(historyEntry);
5468
5495
  historyEntry = void 0;
5469
5496
  }
5470
5497
  container.replaceChild(proxy.$el, fullscreenFillerNode);
@@ -5633,12 +5660,12 @@ var QCarousel_default = createComponent({
5633
5660
  const maxIndex = panelsLen - 1;
5634
5661
  node.push(
5635
5662
  getNavigationContainer("buttons", (panel, index) => {
5636
- const name = panel.props.name;
5663
+ const name2 = panel.props.name;
5637
5664
  const active = panelIndex.value === index;
5638
5665
  return fn({
5639
5666
  index,
5640
5667
  maxIndex,
5641
- name,
5668
+ name: name2,
5642
5669
  active,
5643
5670
  btnProps: {
5644
5671
  icon: active === true ? navActiveIcon.value : navIcon.value,
@@ -5646,7 +5673,7 @@ var QCarousel_default = createComponent({
5646
5673
  ...controlProps.value
5647
5674
  },
5648
5675
  onClick: () => {
5649
- goToPanel(name);
5676
+ goToPanel(name2);
5650
5677
  }
5651
5678
  });
5652
5679
  })
@@ -5899,7 +5926,7 @@ import { h as h28, computed as computed33 } from "vue";
5899
5926
  // src/components/checkbox/use-checkbox.js
5900
5927
  import { h as h27, ref as ref13, computed as computed32, getCurrentInstance as getCurrentInstance17, toRaw } from "vue";
5901
5928
 
5902
- // src/composables/private/use-refocus-target.js
5929
+ // src/composables/private.use-refocus-target/use-refocus-target.js
5903
5930
  import { h as h26, computed as computed31, ref as ref12 } from "vue";
5904
5931
  function use_refocus_target_default(props4, rootRef) {
5905
5932
  const refocusRef = ref12(null);
@@ -5929,7 +5956,7 @@ function use_refocus_target_default(props4, rootRef) {
5929
5956
  };
5930
5957
  }
5931
5958
 
5932
- // src/utils/private/option-sizes.js
5959
+ // src/utils/private.option-sizes/option-sizes.js
5933
5960
  var option_sizes_default = {
5934
5961
  xs: 30,
5935
5962
  sm: 35,
@@ -6288,7 +6315,7 @@ var QChip_default = createComponent({
6288
6315
  // src/components/circular-progress/QCircularProgress.js
6289
6316
  import { h as h30, computed as computed35, getCurrentInstance as getCurrentInstance19 } from "vue";
6290
6317
 
6291
- // src/components/circular-progress/use-circular-progress.js
6318
+ // src/components/circular-progress/circular-progress.js
6292
6319
  var useCircularCommonProps = {
6293
6320
  ...useSizeProps,
6294
6321
  min: {
@@ -6432,7 +6459,7 @@ var QCircularProgress_default = createComponent({
6432
6459
  // src/components/color/QColor.js
6433
6460
  import { h as h37, ref as ref19, computed as computed41, watch as watch12, nextTick as nextTick6, getCurrentInstance as getCurrentInstance26 } from "vue";
6434
6461
 
6435
- // src/directives/TouchPan.js
6462
+ // src/directives/touch-pan/TouchPan.js
6436
6463
  function getChanges(evt, ctx, isFinal) {
6437
6464
  const pos = position(evt);
6438
6465
  let dir, distX = pos.left - ctx.event.x, distY = pos.top - ctx.event.y, absX = Math.abs(distX), absY = Math.abs(distY);
@@ -6858,12 +6885,12 @@ function use_slider_default({ updateValue: updateValue2, updatePosition, getDrag
6858
6885
  const classes = computed36(
6859
6886
  () => `q-slider q-slider${axis.value} q-slider--${active.value === true ? "" : "in"}active inline no-wrap ` + (props4.vertical === true ? "row" : "column") + (props4.disable === true ? " disabled" : " q-slider--enabled" + (editable.value === true ? " q-slider--editable" : "")) + (focus.value === "both" ? " q-slider--focus" : "") + (props4.label || props4.labelAlways === true ? " q-slider--label" : "") + (props4.labelAlways === true ? " q-slider--label-always" : "") + (isDark.value === true ? " q-slider--dark" : "") + (props4.dense === true ? " q-slider--dense q-slider--dense" + axis.value : "")
6860
6887
  );
6861
- function getPositionClass(name) {
6862
- const cls = "q-slider__" + name;
6888
+ function getPositionClass(name2) {
6889
+ const cls = "q-slider__" + name2;
6863
6890
  return `${cls} ${cls}${axis.value} ${cls}${axis.value}${labelSide.value}`;
6864
6891
  }
6865
- function getAxisClass(name) {
6866
- const cls = "q-slider__" + name;
6892
+ function getAxisClass(name2) {
6893
+ const cls = "q-slider__" + name2;
6867
6894
  return `${cls} ${cls}${axis.value}`;
6868
6895
  }
6869
6896
  const selectionBarClass = computed36(() => {
@@ -7355,7 +7382,7 @@ import { h as h34, ref as ref17, computed as computed38, watch as watch11, onBef
7355
7382
  // src/components/resize-observer/QResizeObserver.js
7356
7383
  import { h as h33, onMounted as onMounted9, onBeforeUnmount as onBeforeUnmount11, getCurrentInstance as getCurrentInstance22, nextTick as nextTick5 } from "vue";
7357
7384
 
7358
- // src/composables/use-hydration.js
7385
+ // src/composables/use-hydration/use-hydration.js
7359
7386
  import { ref as ref16, onMounted as onMounted8 } from "vue";
7360
7387
  function use_hydration_default() {
7361
7388
  const isHydrated = ref16(!isRuntimeSsrPreHydration.value);
@@ -7484,7 +7511,7 @@ var QResizeObserver_default = createComponent({
7484
7511
  }
7485
7512
  });
7486
7513
 
7487
- // src/utils/private/rtl.js
7514
+ // src/utils/private.rtl/rtl.js
7488
7515
  var rtlHasScrollBug = false;
7489
7516
  if (!__QUASAR_SSR__) {
7490
7517
  const scroller = document.createElement("div");
@@ -7600,18 +7627,18 @@ var QTabs_default = createComponent({
7600
7627
  const isRTL = computed38(() => props4.vertical !== true && $q.lang.rtl === true);
7601
7628
  const rtlPosCorrection = computed38(() => rtlHasScrollBug === false && isRTL.value === true);
7602
7629
  watch11(isRTL, updateArrows);
7603
- watch11(() => props4.modelValue, (name) => {
7604
- updateModel2({ name, setCurrent: true, skipEmit: true });
7630
+ watch11(() => props4.modelValue, (name2) => {
7631
+ updateModel2({ name: name2, setCurrent: true, skipEmit: true });
7605
7632
  });
7606
7633
  watch11(() => props4.outsideArrows, recalculateScroll);
7607
- function updateModel2({ name, setCurrent, skipEmit }) {
7608
- if (currentModel.value !== name) {
7634
+ function updateModel2({ name: name2, setCurrent, skipEmit }) {
7635
+ if (currentModel.value !== name2) {
7609
7636
  if (skipEmit !== true && props4["onUpdate:modelValue"] !== void 0) {
7610
- emit("update:modelValue", name);
7637
+ emit("update:modelValue", name2);
7611
7638
  }
7612
7639
  if (setCurrent === true || props4["onUpdate:modelValue"] === void 0) {
7613
- animate(currentModel.value, name);
7614
- currentModel.value = name;
7640
+ animate(currentModel.value, name2);
7641
+ currentModel.value = name2;
7615
7642
  }
7616
7643
  }
7617
7644
  }
@@ -7774,7 +7801,7 @@ var QTabs_default = createComponent({
7774
7801
  return true;
7775
7802
  }
7776
7803
  function updateActiveRoute() {
7777
- let name = null, bestScore = { matchedLen: 0, queryDiff: 9999, hrefLen: 0 };
7804
+ let name2 = null, bestScore = { matchedLen: 0, queryDiff: 9999, hrefLen: 0 };
7778
7805
  const list = tabDataList.filter((tab) => tab.routeData !== void 0 && tab.routeData.hasRouterLink.value === true);
7779
7806
  const { hash: currentHash, query: currentQuery } = proxy.$route;
7780
7807
  const currentQueryLen = Object.keys(currentQuery).length;
@@ -7792,7 +7819,7 @@ var QTabs_default = createComponent({
7792
7819
  if (queryLen !== currentQueryLen || hasQueryIncluded(currentQuery, query) === false) {
7793
7820
  continue;
7794
7821
  }
7795
- name = tab.name.value;
7822
+ name2 = tab.name.value;
7796
7823
  break;
7797
7824
  }
7798
7825
  if (hash !== "" && hash !== currentHash) {
@@ -7807,27 +7834,27 @@ var QTabs_default = createComponent({
7807
7834
  hrefLen: href2.length - hash.length
7808
7835
  };
7809
7836
  if (newScore.matchedLen > bestScore.matchedLen) {
7810
- name = tab.name.value;
7837
+ name2 = tab.name.value;
7811
7838
  bestScore = newScore;
7812
7839
  continue;
7813
7840
  } else if (newScore.matchedLen !== bestScore.matchedLen) {
7814
7841
  continue;
7815
7842
  }
7816
7843
  if (newScore.queryDiff < bestScore.queryDiff) {
7817
- name = tab.name.value;
7844
+ name2 = tab.name.value;
7818
7845
  bestScore = newScore;
7819
7846
  } else if (newScore.queryDiff !== bestScore.queryDiff) {
7820
7847
  continue;
7821
7848
  }
7822
7849
  if (newScore.hrefLen > bestScore.hrefLen) {
7823
- name = tab.name.value;
7850
+ name2 = tab.name.value;
7824
7851
  bestScore = newScore;
7825
7852
  }
7826
7853
  }
7827
- if (name === null && tabDataList.some((tab) => tab.routeData === void 0 && tab.name.value === currentModel.value) === true) {
7854
+ if (name2 === null && tabDataList.some((tab) => tab.routeData === void 0 && tab.name.value === currentModel.value) === true) {
7828
7855
  return;
7829
7856
  }
7830
- updateModel2({ name, setCurrent: true });
7857
+ updateModel2({ name: name2, setCurrent: true });
7831
7858
  }
7832
7859
  function onFocusin(e) {
7833
7860
  removeFocusTimeout();
@@ -8164,7 +8191,7 @@ var QTabPanel_default = createComponent({
8164
8191
  }
8165
8192
  });
8166
8193
 
8167
- // src/utils/patterns.js
8194
+ // src/utils/patterns/patterns.js
8168
8195
  var hex = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/;
8169
8196
  var hexa = /^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/;
8170
8197
  var hexOrHexa = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;
@@ -8196,7 +8223,7 @@ var patterns_default = {
8196
8223
  testPattern
8197
8224
  };
8198
8225
 
8199
- // src/utils/colors.js
8226
+ // src/utils/colors/colors.js
8200
8227
  var reRGBA = /^rgb(a)?\((\d{1,3}),(\d{1,3}),(\d{1,3}),?([01]?\.?\d*?)?\)$/;
8201
8228
  function rgbToHex({ r, g, b, a }) {
8202
8229
  const alpha = a !== void 0;
@@ -9113,7 +9140,7 @@ import { h as h38, ref as ref20, computed as computed43, watch as watch13, Trans
9113
9140
  // src/components/date/use-datetime.js
9114
9141
  import { computed as computed42 } from "vue";
9115
9142
 
9116
- // src/utils/private/date-persian.js
9143
+ // src/utils/date/private.persian.js
9117
9144
  var breaks = [
9118
9145
  -61,
9119
9146
  9,
@@ -9352,7 +9379,7 @@ function use_datetime_default(props4, $q) {
9352
9379
  };
9353
9380
  }
9354
9381
 
9355
- // src/utils/date.js
9382
+ // src/utils/date/date.js
9356
9383
  var MILLISECONDS_IN_DAY = 864e5;
9357
9384
  var MILLISECONDS_IN_HOUR = 36e5;
9358
9385
  var MILLISECONDS_IN_MINUTE = 6e4;
@@ -9608,7 +9635,7 @@ function __splitDate(str, mask, dateLocale, calendar, defaultModel) {
9608
9635
  if (mask === void 0) {
9609
9636
  mask = defaultMask;
9610
9637
  }
9611
- const langOpts = getDateLocale(dateLocale, lang_default.props), months = langOpts.months, monthsShort = langOpts.monthsShort;
9638
+ const langOpts = getDateLocale(dateLocale, Lang_default.props), months = langOpts.months, monthsShort = langOpts.monthsShort;
9612
9639
  const { regex, map } = getRegexData(mask, langOpts);
9613
9640
  const match = str.match(regex);
9614
9641
  if (match === null) {
@@ -10061,7 +10088,7 @@ function formatDate(val, mask, dateLocale, __forcedYear, __forcedTimezoneOffset)
10061
10088
  if (mask === void 0) {
10062
10089
  mask = defaultMask;
10063
10090
  }
10064
- const locale = getDateLocale(dateLocale, lang_default.props);
10091
+ const locale = getDateLocale(dateLocale, Lang_default.props);
10065
10092
  return mask.replace(
10066
10093
  token,
10067
10094
  (match, text) => match in formatter ? formatter[match](date, locale, __forcedYear, __forcedTimezoneOffset) : text === void 0 ? match : text.split("\\]").join("]")
@@ -11214,13 +11241,13 @@ var QDate_default = createComponent({
11214
11241
  // src/components/dialog/QDialog.js
11215
11242
  import { h as h39, ref as ref21, computed as computed44, watch as watch14, onBeforeUnmount as onBeforeUnmount15, Transition as Transition5, getCurrentInstance as getCurrentInstance28 } from "vue";
11216
11243
 
11217
- // src/composables/private/use-history.js
11244
+ // src/composables/private.use-history/use-history.js
11218
11245
  import { onBeforeUnmount as onBeforeUnmount14 } from "vue";
11219
11246
  function use_history_default(showing, hide, hideOnRouteChange) {
11220
11247
  let historyEntry;
11221
11248
  function removeFromHistory() {
11222
11249
  if (historyEntry !== void 0) {
11223
- history_default.remove(historyEntry);
11250
+ History_default.remove(historyEntry);
11224
11251
  historyEntry = void 0;
11225
11252
  }
11226
11253
  }
@@ -11234,12 +11261,12 @@ function use_history_default(showing, hide, hideOnRouteChange) {
11234
11261
  condition: () => hideOnRouteChange.value === true,
11235
11262
  handler: hide
11236
11263
  };
11237
- history_default.add(historyEntry);
11264
+ History_default.add(historyEntry);
11238
11265
  }
11239
11266
  };
11240
11267
  }
11241
11268
 
11242
- // src/utils/prevent-scroll.js
11269
+ // src/utils/scroll/prevent-scroll.js
11243
11270
  var registered = 0;
11244
11271
  var scrollPositionX;
11245
11272
  var scrollPositionY;
@@ -11376,7 +11403,7 @@ function prevent_scroll_default(state) {
11376
11403
  apply(action);
11377
11404
  }
11378
11405
 
11379
- // src/composables/private/use-prevent-scroll.js
11406
+ // src/composables/private.use-prevent-scroll/use-prevent-scroll.js
11380
11407
  function use_prevent_scroll_default() {
11381
11408
  let currentState;
11382
11409
  return {
@@ -11548,11 +11575,19 @@ var QDialog_default = createComponent({
11548
11575
  function focus(selector) {
11549
11576
  addFocusFn(() => {
11550
11577
  let node = innerRef.value;
11551
- if (node === null || node.contains(document.activeElement) === true) {
11578
+ if (node === null)
11552
11579
  return;
11580
+ if (selector !== void 0) {
11581
+ const target2 = node.querySelector(selector);
11582
+ if (target2 !== null) {
11583
+ target2.focus({ preventScroll: true });
11584
+ return;
11585
+ }
11586
+ }
11587
+ if (node.contains(document.activeElement) !== true) {
11588
+ node = node.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]") || node.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]") || node.querySelector("[autofocus], [data-autofocus]") || node;
11589
+ node.focus({ preventScroll: true });
11553
11590
  }
11554
- node = (selector !== "" ? node.querySelector(selector) : null) || node.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]") || node.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]") || node.querySelector("[autofocus], [data-autofocus]") || node;
11555
- node.focus({ preventScroll: true });
11556
11591
  });
11557
11592
  }
11558
11593
  function shake(focusTarget) {
@@ -12311,9 +12346,9 @@ var Caret = class {
12311
12346
  }
12312
12347
  }
12313
12348
  }
12314
- hasParent(name, spanLevel) {
12349
+ hasParent(name2, spanLevel) {
12315
12350
  const el = spanLevel ? this.parent : this.blockParent;
12316
- return el !== null ? el.nodeName.toLowerCase() === name.toLowerCase() : false;
12351
+ return el !== null ? el.nodeName.toLowerCase() === name2.toLowerCase() : false;
12317
12352
  }
12318
12353
  hasParents(list, recursive, el = this.parent) {
12319
12354
  if (el === null) {
@@ -12355,14 +12390,14 @@ var Caret = class {
12355
12390
  }
12356
12391
  return null;
12357
12392
  }
12358
- can(name) {
12359
- if (name === "outdent") {
12393
+ can(name2) {
12394
+ if (name2 === "outdent") {
12360
12395
  return this.hasParents(["blockquote", "li"], true);
12361
12396
  }
12362
- if (name === "indent") {
12397
+ if (name2 === "indent") {
12363
12398
  return this.hasParents(["li"], true);
12364
12399
  }
12365
- if (name === "link") {
12400
+ if (name2 === "link") {
12366
12401
  return this.selection !== null || this.is("link");
12367
12402
  }
12368
12403
  }
@@ -12938,13 +12973,13 @@ function getFonts(defaultFont, defaultFontLabel, defaultFontIcon, fonts = {}) {
12938
12973
  }
12939
12974
  };
12940
12975
  aliases.forEach((alias) => {
12941
- const name = fonts[alias];
12976
+ const name2 = fonts[alias];
12942
12977
  def[alias] = {
12943
12978
  cmd: "fontName",
12944
- param: name,
12979
+ param: name2,
12945
12980
  icon: defaultFontIcon,
12946
- tip: name,
12947
- htmlTip: `<font face="${name}">${name}</font>`
12981
+ tip: name2,
12982
+ htmlTip: `<font face="${name2}">${name2}</font>`
12948
12983
  };
12949
12984
  });
12950
12985
  return def;
@@ -13014,7 +13049,7 @@ function getLinkEditor(eVm) {
13014
13049
  }
13015
13050
  }
13016
13051
 
13017
- // src/composables/use-split-attrs.js
13052
+ // src/composables/use-split-attrs/use-split-attrs.js
13018
13053
  import { ref as ref25, onBeforeUpdate, getCurrentInstance as getCurrentInstance32 } from "vue";
13019
13054
  var listenerRE = /^on[A-Z]/;
13020
13055
  function use_split_attrs_default() {
@@ -13044,11 +13079,11 @@ function use_split_attrs_default() {
13044
13079
  return acc;
13045
13080
  }
13046
13081
 
13047
- // src/utils/extend.js
13082
+ // src/utils/extend/extend.js
13048
13083
  var toString = Object.prototype.toString;
13049
13084
  var hasOwn = Object.prototype.hasOwnProperty;
13050
13085
  var notPlainObject = new Set(
13051
- ["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp"].map((name) => "[object " + name + "]")
13086
+ ["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp"].map((name2) => "[object " + name2 + "]")
13052
13087
  );
13053
13088
  function isPlainObject(obj) {
13054
13089
  if (obj !== Object(obj) || notPlainObject.has(toString.call(obj)) === true) {
@@ -13063,7 +13098,7 @@ function isPlainObject(obj) {
13063
13098
  return key === void 0 || hasOwn.call(obj, key);
13064
13099
  }
13065
13100
  function extend() {
13066
- let options, name, src, copy, copyIsArray, clone2, target2 = arguments[0] || {}, i = 1, deep = false;
13101
+ let options, name2, src, copy, copyIsArray, clone2, target2 = arguments[0] || {}, i = 1, deep = false;
13067
13102
  const length = arguments.length;
13068
13103
  if (typeof target2 === "boolean") {
13069
13104
  deep = target2;
@@ -13079,9 +13114,9 @@ function extend() {
13079
13114
  }
13080
13115
  for (; i < length; i++) {
13081
13116
  if ((options = arguments[i]) !== null) {
13082
- for (name in options) {
13083
- src = target2[name];
13084
- copy = options[name];
13117
+ for (name2 in options) {
13118
+ src = target2[name2];
13119
+ copy = options[name2];
13085
13120
  if (target2 === copy) {
13086
13121
  continue;
13087
13122
  }
@@ -13091,9 +13126,9 @@ function extend() {
13091
13126
  } else {
13092
13127
  clone2 = isPlainObject(src) === true ? src : {};
13093
13128
  }
13094
- target2[name] = extend(deep, clone2, copy);
13129
+ target2[name2] = extend(deep, clone2, copy);
13095
13130
  } else if (copy !== void 0) {
13096
- target2[name] = copy;
13131
+ target2[name2] = copy;
13097
13132
  }
13098
13133
  }
13099
13134
  }
@@ -13793,7 +13828,7 @@ var QExpansionItem_default = createComponent({
13793
13828
  );
13794
13829
  const headerSlotScope = computed52(() => ({
13795
13830
  expanded: showing.value === true,
13796
- detailsId: props4.targetUid,
13831
+ detailsId: targetUid.value,
13797
13832
  toggle,
13798
13833
  show,
13799
13834
  hide
@@ -13807,9 +13842,9 @@ var QExpansionItem_default = createComponent({
13807
13842
  "aria-label": toggleAriaLabel
13808
13843
  };
13809
13844
  });
13810
- watch18(() => props4.group, (name) => {
13845
+ watch18(() => props4.group, (name2) => {
13811
13846
  exitGroup !== void 0 && exitGroup();
13812
- name !== void 0 && enterGroup();
13847
+ name2 !== void 0 && enterGroup();
13813
13848
  });
13814
13849
  function onHeaderClick(e) {
13815
13850
  hasLink.value !== true && toggle(e);
@@ -14243,13 +14278,13 @@ var QFabAction_default = createComponent({
14243
14278
  }
14244
14279
  });
14245
14280
 
14246
- // src/composables/private/use-field.js
14281
+ // src/composables/private.use-field/use-field.js
14247
14282
  import { h as h52, ref as ref30, computed as computed57, Transition as Transition8, nextTick as nextTick10, onActivated as onActivated2, onDeactivated as onDeactivated4, onBeforeUnmount as onBeforeUnmount23, onMounted as onMounted14, getCurrentInstance as getCurrentInstance40 } from "vue";
14248
14283
 
14249
- // src/composables/private/use-validate.js
14284
+ // src/composables/private.use-validate/use-validate.js
14250
14285
  import { ref as ref29, computed as computed56, watch as watch20, onBeforeUnmount as onBeforeUnmount22, getCurrentInstance as getCurrentInstance39 } from "vue";
14251
14286
 
14252
- // src/composables/use-form-child.js
14287
+ // src/composables/use-form/use-form-child.js
14253
14288
  import { inject as inject4, watch as watch19, getCurrentInstance as getCurrentInstance38, onMounted as onMounted13, onBeforeUnmount as onBeforeUnmount21 } from "vue";
14254
14289
  function use_form_child_default({ validate, resetValidation, requiresQForm }) {
14255
14290
  const $form = inject4(formKey, false);
@@ -14275,7 +14310,7 @@ function use_form_child_default({ validate, resetValidation, requiresQForm }) {
14275
14310
  }
14276
14311
  }
14277
14312
 
14278
- // src/composables/private/use-validate.js
14313
+ // src/composables/private.use-validate/use-validate.js
14279
14314
  var lazyRulesValues = [true, false, "ondemand"];
14280
14315
  var useValidateProps = {
14281
14316
  modelValue: {},
@@ -14418,7 +14453,7 @@ function use_validate_default(focused, innerLoading) {
14418
14453
  };
14419
14454
  }
14420
14455
 
14421
- // src/composables/private/use-field.js
14456
+ // src/composables/private.use-field/use-field.js
14422
14457
  function fieldValueIsFilled(val) {
14423
14458
  return val !== void 0 && val !== null && ("" + val).length !== 0;
14424
14459
  }
@@ -14866,7 +14901,7 @@ var QField_default = createComponent({
14866
14901
  // src/components/file/QFile.js
14867
14902
  import { h as h54, ref as ref32, computed as computed60, getCurrentInstance as getCurrentInstance42 } from "vue";
14868
14903
 
14869
- // src/composables/private/use-file.js
14904
+ // src/composables/private.use-file/use-file.js
14870
14905
  import { h as h53, ref as ref31, computed as computed58, getCurrentInstance as getCurrentInstance41 } from "vue";
14871
14906
  function filterFiles(files, rejectedFiles, failedPropValidation, filterFn) {
14872
14907
  const acceptedFiles = [];
@@ -15043,7 +15078,7 @@ function use_file_default({
15043
15078
  };
15044
15079
  }
15045
15080
 
15046
- // src/composables/private/use-file-dom-props.js
15081
+ // src/composables/private.use-file/use-file-dom-props.js
15047
15082
  import { computed as computed59 } from "vue";
15048
15083
  function use_file_dom_props_default(props4, typeGuard) {
15049
15084
  function getFormDomProps() {
@@ -15728,7 +15763,7 @@ var QHeader_default = createComponent({
15728
15763
  // src/components/img/QImg.js
15729
15764
  import { h as h58, ref as ref36, computed as computed64, watch as watch23, onMounted as onMounted16, Transition as Transition9, getCurrentInstance as getCurrentInstance46 } from "vue";
15730
15765
 
15731
- // src/composables/private/use-ratio.js
15766
+ // src/composables/private.use-ratio/use-ratio.js
15732
15767
  import { computed as computed63 } from "vue";
15733
15768
  var useRatioProps = {
15734
15769
  ratio: [String, Number]
@@ -16602,7 +16637,7 @@ function use_mask_default(props4, emit, emitValue, inputRef) {
16602
16637
  };
16603
16638
  }
16604
16639
 
16605
- // src/composables/private/use-key-composition.js
16640
+ // src/composables/private.use-key-composition/use-key-composition.js
16606
16641
  var isJapanese = /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/;
16607
16642
  var isChinese = /[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u;
16608
16643
  var isKorean = /[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/;
@@ -16943,7 +16978,7 @@ var QInput_default = createComponent({
16943
16978
  // src/components/intersection/QIntersection.js
16944
16979
  import { h as h62, ref as ref40, computed as computed68, Transition as Transition11 } from "vue";
16945
16980
 
16946
- // src/directives/Intersection.js
16981
+ // src/directives/intersection/Intersection.js
16947
16982
  var defaultCfg = {
16948
16983
  threshold: 0,
16949
16984
  root: null,
@@ -17172,8 +17207,8 @@ var QKnob_default = createComponent({
17172
17207
  const attrs = computed70(() => editable.value === true ? { tabindex: props4.tabindex } : { [`aria-${props4.disable === true ? "disabled" : "readonly"}`]: "true" });
17173
17208
  const circularProps = computed70(() => {
17174
17209
  const agg = {};
17175
- commonPropsName.forEach((name) => {
17176
- agg[name] = props4[name];
17210
+ commonPropsName.forEach((name2) => {
17211
+ agg[name2] = props4[name2];
17177
17212
  });
17178
17213
  return agg;
17179
17214
  });
@@ -18543,7 +18578,7 @@ var QPagination_default = createComponent({
18543
18578
  // src/components/parallax/QParallax.js
18544
18579
  import { h as h76, ref as ref46, watch as watch32, onMounted as onMounted20, onBeforeUnmount as onBeforeUnmount30 } from "vue";
18545
18580
 
18546
- // src/utils/frame-debounce.js
18581
+ // src/utils/frame-debounce/frame-debounce.js
18547
18582
  function frame_debounce_default(fn) {
18548
18583
  let wait = false, frame, callArgs;
18549
18584
  function debounced() {
@@ -18551,7 +18586,7 @@ function frame_debounce_default(fn) {
18551
18586
  if (wait === true)
18552
18587
  return;
18553
18588
  wait = true;
18554
- frame = requestAnimationFrame(() => {
18589
+ frame = window.requestAnimationFrame(() => {
18555
18590
  fn.apply(this, callArgs);
18556
18591
  callArgs = void 0;
18557
18592
  wait = false;
@@ -18697,7 +18732,7 @@ var QParallax_default = createComponent({
18697
18732
  // src/components/popup-edit/QPopupEdit.js
18698
18733
  import { h as h77, ref as ref47, computed as computed81, nextTick as nextTick15, getCurrentInstance as getCurrentInstance62 } from "vue";
18699
18734
 
18700
- // src/utils/clone.js
18735
+ // src/utils/clone/clone.js
18701
18736
  function cloneDeep(data, hash = /* @__PURE__ */ new WeakMap()) {
18702
18737
  if (Object(data) !== data)
18703
18738
  return data;
@@ -19574,14 +19609,14 @@ var QRating_default = createComponent({
19574
19609
  const acc = [], icons = iconData.value, ceil = Math.ceil(props4.modelValue), tabindex = editable.value === true ? 0 : null;
19575
19610
  const halfIndex = props4.iconHalf === void 0 || ceil === props4.modelValue ? -1 : ceil;
19576
19611
  for (let i = 1; i <= props4.max; i++) {
19577
- const active = mouseModel.value === 0 && props4.modelValue >= i || mouseModel.value > 0 && mouseModel.value >= i, half = halfIndex === i && mouseModel.value < i, exSelected = mouseModel.value > 0 && (half === true ? ceil : props4.modelValue) >= i && mouseModel.value < i, color = half === true ? i <= icons.halfColorLen ? props4.colorHalf[i - 1] : icons.halfColor : icons.selColor !== void 0 && active === true ? i <= icons.selColorLen ? props4.colorSelected[i - 1] : icons.selColor : i <= icons.colorLen ? props4.color[i - 1] : icons.color, name = (half === true ? i <= icons.halfIconLen ? props4.iconHalf[i - 1] : icons.halfIcon : icons.selIcon !== void 0 && (active === true || exSelected === true) ? i <= icons.selIconLen ? props4.iconSelected[i - 1] : icons.selIcon : i <= icons.iconLen ? props4.icon[i - 1] : icons.icon) || $q.iconSet.rating.icon;
19612
+ const active = mouseModel.value === 0 && props4.modelValue >= i || mouseModel.value > 0 && mouseModel.value >= i, half = halfIndex === i && mouseModel.value < i, exSelected = mouseModel.value > 0 && (half === true ? ceil : props4.modelValue) >= i && mouseModel.value < i, color = half === true ? i <= icons.halfColorLen ? props4.colorHalf[i - 1] : icons.halfColor : icons.selColor !== void 0 && active === true ? i <= icons.selColorLen ? props4.colorSelected[i - 1] : icons.selColor : i <= icons.colorLen ? props4.color[i - 1] : icons.color, name2 = (half === true ? i <= icons.halfIconLen ? props4.iconHalf[i - 1] : icons.halfIcon : icons.selIcon !== void 0 && (active === true || exSelected === true) ? i <= icons.selIconLen ? props4.iconSelected[i - 1] : icons.selIcon : i <= icons.iconLen ? props4.icon[i - 1] : icons.icon) || $q.iconSet.rating.icon;
19578
19613
  acc.push({
19579
19614
  name: (half === true ? i <= icons.halfIconLen ? props4.iconHalf[i - 1] : icons.halfIcon : icons.selIcon !== void 0 && (active === true || exSelected === true) ? i <= icons.selIconLen ? props4.iconSelected[i - 1] : icons.selIcon : i <= icons.iconLen ? props4.icon[i - 1] : icons.icon) || $q.iconSet.rating.icon,
19580
19615
  attrs: {
19581
19616
  tabindex,
19582
19617
  role: "radio",
19583
19618
  "aria-checked": props4.modelValue === i ? "true" : "false",
19584
- "aria-label": iconLabel.value(i, name)
19619
+ "aria-label": iconLabel.value(i, name2)
19585
19620
  },
19586
19621
  iconClass: "q-rating__icon" + (active === true || half === true ? " q-rating__icon--active" : "") + (exSelected === true ? " q-rating__icon--exselected" : "") + (mouseModel.value === i ? " q-rating__icon--hovered" : "") + (color !== void 0 ? ` text-${color}` : "")
19587
19622
  });
@@ -19638,7 +19673,7 @@ var QRating_default = createComponent({
19638
19673
  });
19639
19674
  return () => {
19640
19675
  const child = [];
19641
- stars.value.forEach(({ iconClass, name, attrs }, index) => {
19676
+ stars.value.forEach(({ iconClass, name: name2, attrs }, index) => {
19642
19677
  const i = index + 1;
19643
19678
  child.push(
19644
19679
  h82("div", {
@@ -19664,7 +19699,7 @@ var QRating_default = createComponent({
19664
19699
  }
19665
19700
  }, hMergeSlot(
19666
19701
  slots[`tip-${i}`],
19667
- [h82(QIcon_default, { class: iconClass, name })]
19702
+ [h82(QIcon_default, { class: iconClass, name: name2 })]
19668
19703
  ))
19669
19704
  );
19670
19705
  });
@@ -20724,7 +20759,6 @@ var QSelect_default = createComponent({
20724
20759
  "add",
20725
20760
  "remove",
20726
20761
  "inputValue",
20727
- "newValue",
20728
20762
  "keyup",
20729
20763
  "keypress",
20730
20764
  "keydown",
@@ -24424,9 +24458,9 @@ var QTh_default = createComponent({
24424
24458
  }, hSlot(slots.default));
24425
24459
  }
24426
24460
  let col, child;
24427
- const name = vm2.vnode.key;
24428
- if (name) {
24429
- col = props4.props.colsMap[name];
24461
+ const name2 = vm2.vnode.key;
24462
+ if (name2) {
24463
+ col = props4.props.colsMap[name2];
24430
24464
  if (col === void 0)
24431
24465
  return;
24432
24466
  } else {
@@ -24590,7 +24624,7 @@ var QVirtualScroll_default = createComponent({
24590
24624
  // src/components/table/table-sort.js
24591
24625
  import { computed as computed97 } from "vue";
24592
24626
 
24593
- // src/utils/private/sort.js
24627
+ // src/utils/private.sort/sort.js
24594
24628
  function sortDate(a, b) {
24595
24629
  return new Date(a) - new Date(b);
24596
24630
  }
@@ -24992,11 +25026,11 @@ function useTableColumnSelection(props4, computedPagination, hasSelectionMode) {
24992
25026
  return props4.columns;
24993
25027
  }
24994
25028
  const row = props4.rows[0];
24995
- return row !== void 0 ? Object.keys(row).map((name) => ({
24996
- name,
24997
- label: name.toUpperCase(),
24998
- field: name,
24999
- align: isNumber(row[name]) ? "right" : "left",
25029
+ return row !== void 0 ? Object.keys(row).map((name2) => ({
25030
+ name: name2,
25031
+ label: name2.toUpperCase(),
25032
+ field: name2,
25033
+ align: isNumber(row[name2]) ? "right" : "left",
25000
25034
  sortable: true
25001
25035
  })) : [];
25002
25036
  });
@@ -25045,7 +25079,7 @@ var QTable_default = createComponent({
25045
25079
  props: {
25046
25080
  rows: {
25047
25081
  type: Array,
25048
- default: () => []
25082
+ required: true
25049
25083
  },
25050
25084
  rowKey: {
25051
25085
  type: [String, Function],
@@ -25344,19 +25378,19 @@ var QTable_default = createComponent({
25344
25378
  if (props4.onRowClick !== void 0) {
25345
25379
  data.class["cursor-pointer"] = true;
25346
25380
  data.onClick = (evt) => {
25347
- emit("RowClick", evt, row, pageIndex);
25381
+ emit("rowClick", evt, row, pageIndex);
25348
25382
  };
25349
25383
  }
25350
25384
  if (props4.onRowDblclick !== void 0) {
25351
25385
  data.class["cursor-pointer"] = true;
25352
25386
  data.onDblclick = (evt) => {
25353
- emit("RowDblclick", evt, row, pageIndex);
25387
+ emit("rowDblclick", evt, row, pageIndex);
25354
25388
  };
25355
25389
  }
25356
25390
  if (props4.onRowContextmenu !== void 0) {
25357
25391
  data.class["cursor-pointer"] = true;
25358
25392
  data.onContextmenu = (evt) => {
25359
- emit("RowContextmenu", evt, row, pageIndex);
25393
+ emit("rowContextmenu", evt, row, pageIndex);
25360
25394
  };
25361
25395
  }
25362
25396
  return h120("tr", data, child);
@@ -25853,8 +25887,8 @@ var QTd_default = createComponent({
25853
25887
  if (props4.props === void 0) {
25854
25888
  return h122("td", { class: classes.value }, hSlot(slots.default));
25855
25889
  }
25856
- const name = vm2.vnode.key;
25857
- const col = (props4.props.colsMap !== void 0 ? props4.props.colsMap[name] : null) || props4.props.col;
25890
+ const name2 = vm2.vnode.key;
25891
+ const col = (props4.props.colsMap !== void 0 ? props4.props.colsMap[name2] : null) || props4.props.col;
25858
25892
  if (col === void 0)
25859
25893
  return;
25860
25894
  const { row } = props4.props;
@@ -27584,7 +27618,7 @@ function getRenderer(getPlugin, expose) {
27584
27618
  };
27585
27619
  }
27586
27620
 
27587
- // src/utils/private/get-emits-object.js
27621
+ // src/utils/private.get-emits-object/get-emits-object.js
27588
27622
  var trueFn = () => true;
27589
27623
  function get_emits_object_default(emitsArray) {
27590
27624
  const emitsObject = {};
@@ -27594,10 +27628,10 @@ function get_emits_object_default(emitsArray) {
27594
27628
  return emitsObject;
27595
27629
  }
27596
27630
 
27597
- // src/utils/create-uploader-component.js
27631
+ // src/utils/create-uploader-component/create-uploader-component.js
27598
27632
  var coreEmitsObject = get_emits_object_default(coreEmits);
27599
- var create_uploader_component_default = ({ name, props: props4, emits: emits3, injectPlugin: injectPlugin2 }) => createComponent({
27600
- name,
27633
+ var create_uploader_component_default = ({ name: name2, props: props4, emits: emits3, injectPlugin: injectPlugin2 }) => createComponent({
27634
+ name: name2,
27601
27635
  props: {
27602
27636
  ...coreProps,
27603
27637
  ...props4
@@ -27613,6 +27647,7 @@ import { ref as ref66, computed as computed113 } from "vue";
27613
27647
  function getFn(prop) {
27614
27648
  return typeof prop === "function" ? prop : () => prop;
27615
27649
  }
27650
+ var name = "QUploader";
27616
27651
  var props = {
27617
27652
  url: [Function, String],
27618
27653
  method: {
@@ -27713,8 +27748,8 @@ function injectPlugin({ props: props4, emit, helpers }) {
27713
27748
  }
27714
27749
  function performUpload(files, factory) {
27715
27750
  const form = new FormData(), xhr2 = new XMLHttpRequest();
27716
- const getProp2 = (name, arg) => {
27717
- return factory[name] !== void 0 ? getFn(factory[name])(arg) : xhrProps.value[name](arg);
27751
+ const getProp2 = (name2, arg) => {
27752
+ return factory[name2] !== void 0 ? getFn(factory[name2])(arg) : xhrProps.value[name2](arg);
27718
27753
  };
27719
27754
  const url = getProp2("url", files);
27720
27755
  if (!url) {
@@ -27808,7 +27843,7 @@ function injectPlugin({ props: props4, emit, helpers }) {
27808
27843
  };
27809
27844
  }
27810
27845
  var xhr_uploader_plugin_default = {
27811
- name: "QUploader",
27846
+ name,
27812
27847
  props,
27813
27848
  emits,
27814
27849
  injectPlugin
@@ -27876,7 +27911,7 @@ var QVideo_default = createComponent({
27876
27911
  }
27877
27912
  });
27878
27913
 
27879
- // src/directives/ClosePopup.js
27914
+ // src/directives/close-popup/ClosePopup.js
27880
27915
  function getDepth(value2) {
27881
27916
  if (value2 === false) {
27882
27917
  return 0;
@@ -27923,7 +27958,7 @@ var ClosePopup_default = createDirective(
27923
27958
  }
27924
27959
  );
27925
27960
 
27926
- // src/utils/morph.js
27961
+ // src/utils/morph/morph.js
27927
27962
  var id2 = 0;
27928
27963
  var offsetBase = void 0;
27929
27964
  function getAbsolutePosition(el, resize) {
@@ -28662,7 +28697,7 @@ function morph(_options) {
28662
28697
  return (abort) => cancel(abort);
28663
28698
  }
28664
28699
 
28665
- // src/directives/Morph.js
28700
+ // src/directives/morph/Morph.js
28666
28701
  var morphGroups = {};
28667
28702
  var props2 = [
28668
28703
  "duration",
@@ -28733,8 +28768,8 @@ function trigger2(group) {
28733
28768
  }
28734
28769
  function updateModifiers2(mod2, ctx) {
28735
28770
  const opts = ctx.opts;
28736
- mods.forEach((name) => {
28737
- opts[name] = mod2[name] === true;
28771
+ mods.forEach((name2) => {
28772
+ opts[name2] = mod2[name2] === true;
28738
28773
  });
28739
28774
  }
28740
28775
  function insertArgs(arg, ctx) {
@@ -28754,25 +28789,25 @@ function updateArgs(arg, ctx) {
28754
28789
  ctx.name = arg.name;
28755
28790
  }
28756
28791
  const opts = ctx.opts;
28757
- props2.forEach((name) => {
28758
- if (arg[name] !== void 0) {
28759
- opts[name] = arg[name];
28792
+ props2.forEach((name2) => {
28793
+ if (arg[name2] !== void 0) {
28794
+ opts[name2] = arg[name2];
28760
28795
  }
28761
28796
  });
28762
28797
  }
28763
- function updateModel(name, ctx) {
28764
- if (ctx.name === name) {
28798
+ function updateModel(name2, ctx) {
28799
+ if (ctx.name === name2) {
28765
28800
  const group = morphGroups[ctx.group];
28766
28801
  if (group === void 0) {
28767
28802
  morphGroups[ctx.group] = {
28768
28803
  name: ctx.group,
28769
- model: name,
28804
+ model: name2,
28770
28805
  queue: [ctx],
28771
28806
  animating: false
28772
28807
  };
28773
28808
  changeClass(ctx, "remove");
28774
- } else if (group.model !== name) {
28775
- group.model = name;
28809
+ } else if (group.model !== name2) {
28810
+ group.model = name2;
28776
28811
  group.queue.push(ctx);
28777
28812
  if (group.animating === false && group.queue.length === 2) {
28778
28813
  trigger2(group);
@@ -28804,9 +28839,9 @@ var Morph_default = createDirective(
28804
28839
  false ? {
28805
28840
  name: "morph",
28806
28841
  getSSRProps: (binding) => {
28807
- const name = binding.arg ? binding.arg.split(":")[0] : false;
28842
+ const name2 = binding.arg ? binding.arg.split(":")[0] : false;
28808
28843
  return {
28809
- class: name === binding.value ? "" : "q-morph--invisible"
28844
+ class: name2 === binding.value ? "" : "q-morph--invisible"
28810
28845
  };
28811
28846
  }
28812
28847
  } : {
@@ -28846,7 +28881,7 @@ var Morph_default = createDirective(
28846
28881
  }
28847
28882
  );
28848
28883
 
28849
- // src/directives/Mutation.js
28884
+ // src/directives/mutation/Mutation.js
28850
28885
  var defaultCfg2 = {
28851
28886
  childList: true,
28852
28887
  subtree: true,
@@ -28896,7 +28931,7 @@ var Mutation_default = createDirective(
28896
28931
  }
28897
28932
  );
28898
28933
 
28899
- // src/directives/ScrollFire.js
28934
+ // src/directives/scroll-fire/ScrollFire.js
28900
28935
  var { passive: passive5 } = listenOpts;
28901
28936
  function update4(ctx, { value: value2, oldValue }) {
28902
28937
  if (typeof value2 !== "function") {
@@ -28947,7 +28982,7 @@ var ScrollFire_default = createDirective(
28947
28982
  }
28948
28983
  );
28949
28984
 
28950
- // src/directives/Scroll.js
28985
+ // src/directives/scroll/Scroll.js
28951
28986
  function update5(ctx, { value: value2, oldValue }) {
28952
28987
  if (typeof value2 !== "function") {
28953
28988
  ctx.scrollTarget.removeEventListener("scroll", ctx.scroll, listenOpts.passive);
@@ -28987,7 +29022,7 @@ var Scroll_default = createDirective(
28987
29022
  }
28988
29023
  );
28989
29024
 
28990
- // src/directives/TouchHold.js
29025
+ // src/directives/touch-hold/TouchHold.js
28991
29026
  var TouchHold_default = createDirective(
28992
29027
  false ? { name: "touch-hold", getSSRProps: noop_ssr_directive_transform_default } : {
28993
29028
  name: "touch-hold",
@@ -29111,7 +29146,7 @@ var TouchHold_default = createDirective(
29111
29146
  }
29112
29147
  );
29113
29148
 
29114
- // src/directives/TouchRepeat.js
29149
+ // src/directives/touch-repeat/TouchRepeat.js
29115
29150
  var keyCodes3 = {
29116
29151
  esc: 27,
29117
29152
  tab: 9,
@@ -29302,7 +29337,7 @@ var TouchRepeat_default = createDirective(
29302
29337
  }
29303
29338
  );
29304
29339
 
29305
- // src/utils/get-css-var.js
29340
+ // src/utils/css-var/get-css-var.js
29306
29341
  function getCssVar(propName, element = document.body) {
29307
29342
  if (typeof propName !== "string") {
29308
29343
  throw new TypeError("Expected a string as propName");
@@ -29313,7 +29348,7 @@ function getCssVar(propName, element = document.body) {
29313
29348
  return getComputedStyle(element).getPropertyValue(`--q-${propName}`).trim() || null;
29314
29349
  }
29315
29350
 
29316
- // src/plugins/AddressbarColor.js
29351
+ // src/plugins/addressbar/AddressbarColor.js
29317
29352
  var metaValue;
29318
29353
  function getProp() {
29319
29354
  return client.is.winphone ? "msapplication-navbutton-color" : client.is.safari ? "apple-mobile-web-app-status-bar-style" : "theme-color";
@@ -29356,7 +29391,7 @@ var AddressbarColor_default = {
29356
29391
  }
29357
29392
  };
29358
29393
 
29359
- // src/plugins/AppFullscreen.js
29394
+ // src/plugins/app-fullscreen/AppFullscreen.js
29360
29395
  var prefixes = {};
29361
29396
  function assignFn(fn) {
29362
29397
  Object.assign(Plugin4, {
@@ -29386,7 +29421,7 @@ function promisify(target2, fn) {
29386
29421
  return Promise.reject(err);
29387
29422
  }
29388
29423
  }
29389
- var Plugin4 = define_reactive_plugin_default({
29424
+ var Plugin4 = createReactivePlugin({
29390
29425
  isActive: false,
29391
29426
  activeEl: null
29392
29427
  }, {
@@ -29444,8 +29479,8 @@ if (false) {
29444
29479
  }
29445
29480
  var AppFullscreen_default = Plugin4;
29446
29481
 
29447
- // src/plugins/AppVisibility.js
29448
- var Plugin5 = define_reactive_plugin_default({
29482
+ // src/plugins/app-visibility/AppVisibility.js
29483
+ var Plugin5 = createReactivePlugin({
29449
29484
  appVisible: true
29450
29485
  }, {
29451
29486
  install({ $q }) {
@@ -29477,10 +29512,10 @@ if (true) {
29477
29512
  }
29478
29513
  var AppVisibility_default = Plugin5;
29479
29514
 
29480
- // src/components/dialog-bottom-sheet/BottomSheet.js
29515
+ // src/plugins/bottom-sheet/component/BottomSheetComponent.js
29481
29516
  import { h as h131, ref as ref67, getCurrentInstance as getCurrentInstance84 } from "vue";
29482
- var BottomSheet_default = createComponent({
29483
- name: "BottomSheetPlugin",
29517
+ var BottomSheetComponent_default = createComponent({
29518
+ name: "BottomSheetComponent",
29484
29519
  props: {
29485
29520
  ...useDarkProps,
29486
29521
  title: String,
@@ -29605,7 +29640,7 @@ var BottomSheet_default = createComponent({
29605
29640
  }
29606
29641
  });
29607
29642
 
29608
- // src/utils/private/global-dialog.js
29643
+ // src/utils/private.global/global-dialog.js
29609
29644
  import { h as h132, ref as ref68, nextTick as nextTick23 } from "vue";
29610
29645
  function merge(target2, source) {
29611
29646
  for (const key in source) {
@@ -29726,17 +29761,14 @@ function global_dialog_default(DefaultComponent, supportsCustomComponent, parent
29726
29761
  };
29727
29762
  }
29728
29763
 
29729
- // src/plugins/BottomSheet.js
29730
- var BottomSheet_default2 = {
29764
+ // src/plugins/bottom-sheet/BottomSheet.js
29765
+ var BottomSheet_default = {
29731
29766
  install({ $q, parentApp }) {
29732
- $q.bottomSheet = global_dialog_default(BottomSheet_default, false, parentApp);
29733
- if (this.__installed !== true) {
29734
- this.create = $q.bottomSheet;
29735
- }
29767
+ $q.bottomSheet = this.create = global_dialog_default(BottomSheetComponent_default, false, parentApp);
29736
29768
  }
29737
29769
  };
29738
29770
 
29739
- // src/plugins/Cookies.js
29771
+ // src/plugins/cookies/Cookies.js
29740
29772
  function encode(string) {
29741
29773
  return encodeURIComponent(string);
29742
29774
  }
@@ -29835,14 +29867,14 @@ function set(key, val, opts = {}, ssr) {
29835
29867
  }
29836
29868
  function get(key, ssr) {
29837
29869
  const cookieSource = ssr ? ssr.req.headers : document, cookies = cookieSource.cookie ? cookieSource.cookie.split("; ") : [], l = cookies.length;
29838
- let result = key ? null : {}, i = 0, parts, name, cookie;
29870
+ let result = key ? null : {}, i = 0, parts, name2, cookie;
29839
29871
  for (; i < l; i++) {
29840
29872
  parts = cookies[i].split("=");
29841
- name = decode(parts.shift());
29873
+ name2 = decode(parts.shift());
29842
29874
  cookie = parts.join("=");
29843
29875
  if (!key) {
29844
- result[name] = cookie;
29845
- } else if (key === name) {
29876
+ result[name2] = cookie;
29877
+ } else if (key === name2) {
29846
29878
  result = read(cookie);
29847
29879
  break;
29848
29880
  }
@@ -29886,10 +29918,10 @@ if (true) {
29886
29918
  }
29887
29919
  var Cookies_default = Plugin6;
29888
29920
 
29889
- // src/components/dialog-plugin/DialogPlugin.js
29921
+ // src/plugins/dialog/component/DialogPluginComponent.js
29890
29922
  import { h as h133, ref as ref69, computed as computed115, watch as watch49, toRaw as toRaw3, getCurrentInstance as getCurrentInstance85 } from "vue";
29891
- var DialogPlugin_default = createComponent({
29892
- name: "DialogPlugin",
29923
+ var DialogPluginComponent_default = createComponent({
29924
+ name: "DialogPluginComponent",
29893
29925
  props: {
29894
29926
  ...useDarkProps,
29895
29927
  title: String,
@@ -30104,74 +30136,15 @@ var DialogPlugin_default = createComponent({
30104
30136
  }
30105
30137
  });
30106
30138
 
30107
- // src/plugins/Dialog.js
30139
+ // src/plugins/dialog/Dialog.js
30108
30140
  var Dialog_default = {
30109
30141
  install({ $q, parentApp }) {
30110
- $q.dialog = global_dialog_default(DialogPlugin_default, true, parentApp);
30111
- if (this.__installed !== true) {
30112
- this.create = $q.dialog;
30113
- }
30142
+ $q.dialog = this.create = global_dialog_default(DialogPluginComponent_default, true, parentApp);
30114
30143
  }
30115
30144
  };
30116
30145
 
30117
- // src/plugins/LoadingBar.js
30118
- import { h as h134, ref as ref70 } from "vue";
30119
- var barRef = ref70(null);
30120
- var Plugin7 = define_reactive_plugin_default({
30121
- isActive: false
30122
- }, {
30123
- start: noop,
30124
- stop: noop,
30125
- increment: noop,
30126
- setDefaults: noop,
30127
- install({ $q, parentApp }) {
30128
- $q.loadingBar = this;
30129
- if (false)
30130
- return;
30131
- if (this.__installed === true) {
30132
- if ($q.config.loadingBar !== void 0) {
30133
- this.setDefaults($q.config.loadingBar);
30134
- }
30135
- return;
30136
- }
30137
- const props4 = ref70(
30138
- $q.config.loadingBar !== void 0 ? { ...$q.config.loadingBar } : {}
30139
- );
30140
- function onStart() {
30141
- Plugin7.isActive = true;
30142
- }
30143
- function onStop() {
30144
- Plugin7.isActive = false;
30145
- }
30146
- const el = createGlobalNode("q-loading-bar");
30147
- createChildApp({
30148
- name: "LoadingBar",
30149
- // hide App from Vue devtools
30150
- devtools: { hide: true },
30151
- setup: () => () => h134(QAjaxBar_default, { ...props4.value, onStart, onStop, ref: barRef })
30152
- }, parentApp).mount(el);
30153
- Object.assign(this, {
30154
- start(speed) {
30155
- barRef.value.start(speed);
30156
- },
30157
- stop() {
30158
- barRef.value.stop();
30159
- },
30160
- increment() {
30161
- barRef.value.increment.apply(null, arguments);
30162
- },
30163
- setDefaults(opts) {
30164
- if (isObject(opts) === true) {
30165
- Object.assign(props4.value, opts);
30166
- }
30167
- }
30168
- });
30169
- }
30170
- });
30171
- var LoadingBar_default = Plugin7;
30172
-
30173
- // src/plugins/Loading.js
30174
- import { h as h135, Transition as Transition14, onMounted as onMounted23 } from "vue";
30146
+ // src/plugins/loading/Loading.js
30147
+ import { h as h134, Transition as Transition14, onMounted as onMounted23 } from "vue";
30175
30148
  var app;
30176
30149
  var vm;
30177
30150
  var uid2 = 0;
@@ -30200,7 +30173,7 @@ function registerProps(opts) {
30200
30173
  activeGroups[newProps.group] = newProps;
30201
30174
  return newProps;
30202
30175
  }
30203
- var Plugin8 = define_reactive_plugin_default({
30176
+ var Plugin7 = createReactivePlugin({
30204
30177
  isActive: false
30205
30178
  }, {
30206
30179
  show(opts) {
@@ -30208,7 +30181,7 @@ var Plugin8 = define_reactive_plugin_default({
30208
30181
  return;
30209
30182
  props3 = registerProps(opts);
30210
30183
  const { group } = props3;
30211
- Plugin8.isActive = true;
30184
+ Plugin7.isActive = true;
30212
30185
  if (app !== void 0) {
30213
30186
  props3.uid = uid2;
30214
30187
  vm.$forceUpdate();
@@ -30225,7 +30198,7 @@ var Plugin8 = define_reactive_plugin_default({
30225
30198
  prevent_scroll_default(true);
30226
30199
  });
30227
30200
  function onAfterLeave() {
30228
- if (Plugin8.isActive !== true && app !== void 0) {
30201
+ if (Plugin7.isActive !== true && app !== void 0) {
30229
30202
  prevent_scroll_default(false);
30230
30203
  app.unmount(el);
30231
30204
  removeGlobalNode(el);
@@ -30234,54 +30207,54 @@ var Plugin8 = define_reactive_plugin_default({
30234
30207
  }
30235
30208
  }
30236
30209
  function getContent() {
30237
- if (Plugin8.isActive !== true) {
30210
+ if (Plugin7.isActive !== true) {
30238
30211
  return null;
30239
30212
  }
30240
30213
  const content = [
30241
- h135(props3.spinner, {
30214
+ h134(props3.spinner, {
30242
30215
  class: "q-loading__spinner",
30243
30216
  color: props3.spinnerColor,
30244
30217
  size: props3.spinnerSize
30245
30218
  })
30246
30219
  ];
30247
30220
  props3.message && content.push(
30248
- h135("div", {
30221
+ h134("div", {
30249
30222
  class: "q-loading__message" + (props3.messageColor ? ` text-${props3.messageColor}` : ""),
30250
30223
  [props3.html === true ? "innerHTML" : "textContent"]: props3.message
30251
30224
  })
30252
30225
  );
30253
- return h135("div", {
30226
+ return h134("div", {
30254
30227
  class: "q-loading fullscreen flex flex-center z-max " + props3.customClass.trim(),
30255
30228
  key: props3.uid
30256
30229
  }, [
30257
- h135("div", {
30230
+ h134("div", {
30258
30231
  class: "q-loading__backdrop" + (props3.backgroundColor ? ` bg-${props3.backgroundColor}` : "")
30259
30232
  }),
30260
- h135("div", {
30233
+ h134("div", {
30261
30234
  class: "q-loading__box column items-center " + props3.boxClass
30262
30235
  }, content)
30263
30236
  ]);
30264
30237
  }
30265
- return () => h135(Transition14, {
30238
+ return () => h134(Transition14, {
30266
30239
  name: "q-transition--fade",
30267
30240
  appear: true,
30268
30241
  onAfterLeave
30269
30242
  }, getContent);
30270
30243
  }
30271
- }, Plugin8.__parentApp);
30244
+ }, Plugin7.__parentApp);
30272
30245
  vm = app.mount(el);
30273
30246
  }, props3.delay);
30274
30247
  }
30275
30248
  return (paramProps) => {
30276
30249
  if (paramProps === void 0 || Object(paramProps) !== paramProps) {
30277
- Plugin8.hide(group);
30250
+ Plugin7.hide(group);
30278
30251
  return;
30279
30252
  }
30280
- Plugin8.show({ ...paramProps, group });
30253
+ Plugin7.show({ ...paramProps, group });
30281
30254
  };
30282
30255
  },
30283
30256
  hide(group) {
30284
- if (Plugin8.isActive === true) {
30257
+ if (Plugin7.isActive === true) {
30285
30258
  if (group === void 0) {
30286
30259
  activeGroups = {};
30287
30260
  } else if (activeGroups[group] === void 0) {
@@ -30291,7 +30264,7 @@ var Plugin8 = define_reactive_plugin_default({
30291
30264
  const keys = Object.keys(activeGroups);
30292
30265
  if (keys.length !== 0) {
30293
30266
  const lastGroup = keys[keys.length - 1];
30294
- Plugin8.show({ group: lastGroup });
30267
+ Plugin7.show({ group: lastGroup });
30295
30268
  return;
30296
30269
  }
30297
30270
  }
@@ -30299,7 +30272,7 @@ var Plugin8 = define_reactive_plugin_default({
30299
30272
  clearTimeout(timeout);
30300
30273
  timeout = null;
30301
30274
  }
30302
- Plugin8.isActive = false;
30275
+ Plugin7.isActive = false;
30303
30276
  }
30304
30277
  },
30305
30278
  setDefaults(opts) {
@@ -30310,16 +30283,72 @@ var Plugin8 = define_reactive_plugin_default({
30310
30283
  install({ $q, parentApp }) {
30311
30284
  $q.loading = this;
30312
30285
  if (true) {
30313
- Plugin8.__parentApp = parentApp;
30286
+ Plugin7.__parentApp = parentApp;
30314
30287
  if ($q.config.loading !== void 0) {
30315
30288
  this.setDefaults($q.config.loading);
30316
30289
  }
30317
30290
  }
30318
30291
  }
30319
30292
  });
30320
- var Loading_default = Plugin8;
30293
+ var Loading_default = Plugin7;
30321
30294
 
30322
- // src/plugins/Meta.js
30295
+ // src/plugins/loading-bar/LoadingBar.js
30296
+ import { h as h135, ref as ref70 } from "vue";
30297
+ var barRef = ref70(null);
30298
+ var Plugin8 = createReactivePlugin({
30299
+ isActive: false
30300
+ }, {
30301
+ start: noop,
30302
+ stop: noop,
30303
+ increment: noop,
30304
+ setDefaults: noop,
30305
+ install({ $q, parentApp }) {
30306
+ $q.loadingBar = this;
30307
+ if (false)
30308
+ return;
30309
+ if (this.__installed === true) {
30310
+ if ($q.config.loadingBar !== void 0) {
30311
+ this.setDefaults($q.config.loadingBar);
30312
+ }
30313
+ return;
30314
+ }
30315
+ const props4 = ref70(
30316
+ $q.config.loadingBar !== void 0 ? { ...$q.config.loadingBar } : {}
30317
+ );
30318
+ function onStart() {
30319
+ Plugin8.isActive = true;
30320
+ }
30321
+ function onStop() {
30322
+ Plugin8.isActive = false;
30323
+ }
30324
+ const el = createGlobalNode("q-loading-bar");
30325
+ createChildApp({
30326
+ name: "LoadingBar",
30327
+ // hide App from Vue devtools
30328
+ devtools: { hide: true },
30329
+ setup: () => () => h135(QAjaxBar_default, { ...props4.value, onStart, onStop, ref: barRef })
30330
+ }, parentApp).mount(el);
30331
+ Object.assign(this, {
30332
+ start(speed) {
30333
+ barRef.value.start(speed);
30334
+ },
30335
+ stop() {
30336
+ barRef.value.stop();
30337
+ },
30338
+ increment() {
30339
+ barRef.value.increment.apply(null, arguments);
30340
+ },
30341
+ setDefaults(opts) {
30342
+ if (isObject(opts) === true) {
30343
+ Object.assign(props4.value, opts);
30344
+ }
30345
+ }
30346
+ });
30347
+ }
30348
+ });
30349
+ var LoadingBar_default = Plugin8;
30350
+
30351
+ // src/plugins/meta/Meta.js
30323
30352
  var updateId = null;
30324
30353
  var currentClientMeta;
30325
30354
  var clientList = [];
@@ -30331,11 +30360,11 @@ function normalize(meta) {
30331
30360
  ;
30332
30361
  [["meta", "content"], ["link", "href"]].forEach((type) => {
30333
30362
  const metaType = meta[type[0]], metaProp = type[1];
30334
- for (const name in metaType) {
30335
- const metaLink = metaType[name];
30363
+ for (const name2 in metaType) {
30364
+ const metaLink = metaType[name2];
30336
30365
  if (metaLink.template) {
30337
30366
  if (Object.keys(metaLink).length === 1) {
30338
- delete metaType[name];
30367
+ delete metaType[name2];
30339
30368
  } else {
30340
30369
  metaLink[metaProp] = metaLink.template(metaLink[metaProp] || "");
30341
30370
  delete metaLink.template;
@@ -30354,11 +30383,11 @@ function changed(old, def) {
30354
30383
  }
30355
30384
  }
30356
30385
  }
30357
- function bodyFilter(name) {
30358
- return ["class", "style"].includes(name) === false;
30386
+ function bodyFilter(name2) {
30387
+ return ["class", "style"].includes(name2) === false;
30359
30388
  }
30360
- function htmlFilter(name) {
30361
- return ["lang", "dir"].includes(name) === false;
30389
+ function htmlFilter(name2) {
30390
+ return ["lang", "dir"].includes(name2) === false;
30362
30391
  }
30363
30392
  function diff(meta, other) {
30364
30393
  const add = {}, remove2 = {};
@@ -30399,39 +30428,39 @@ function apply2({ add, remove: remove2 }) {
30399
30428
  }
30400
30429
  if (Object.keys(remove2).length !== 0) {
30401
30430
  ["meta", "link", "script"].forEach((type) => {
30402
- remove2[type].forEach((name) => {
30403
- document.head.querySelector(`${type}[data-qmeta="${name}"]`).remove();
30431
+ remove2[type].forEach((name2) => {
30432
+ document.head.querySelector(`${type}[data-qmeta="${name2}"]`).remove();
30404
30433
  });
30405
30434
  });
30406
- remove2.htmlAttr.filter(htmlFilter).forEach((name) => {
30407
- document.documentElement.removeAttribute(name);
30435
+ remove2.htmlAttr.filter(htmlFilter).forEach((name2) => {
30436
+ document.documentElement.removeAttribute(name2);
30408
30437
  });
30409
- remove2.bodyAttr.filter(bodyFilter).forEach((name) => {
30410
- document.body.removeAttribute(name);
30438
+ remove2.bodyAttr.filter(bodyFilter).forEach((name2) => {
30439
+ document.body.removeAttribute(name2);
30411
30440
  });
30412
30441
  }
30413
30442
  ;
30414
30443
  ["meta", "link", "script"].forEach((type) => {
30415
30444
  const metaType = add[type];
30416
- for (const name in metaType) {
30445
+ for (const name2 in metaType) {
30417
30446
  const tag = document.createElement(type);
30418
- for (const att in metaType[name]) {
30447
+ for (const att in metaType[name2]) {
30419
30448
  if (att !== "innerHTML") {
30420
- tag.setAttribute(att, metaType[name][att]);
30449
+ tag.setAttribute(att, metaType[name2][att]);
30421
30450
  }
30422
30451
  }
30423
- tag.setAttribute("data-qmeta", name);
30452
+ tag.setAttribute("data-qmeta", name2);
30424
30453
  if (type === "script") {
30425
- tag.innerHTML = metaType[name].innerHTML || "";
30454
+ tag.innerHTML = metaType[name2].innerHTML || "";
30426
30455
  }
30427
30456
  document.head.appendChild(tag);
30428
30457
  }
30429
30458
  });
30430
- Object.keys(add.htmlAttr).filter(htmlFilter).forEach((name) => {
30431
- document.documentElement.setAttribute(name, add.htmlAttr[name] || "");
30459
+ Object.keys(add.htmlAttr).filter(htmlFilter).forEach((name2) => {
30460
+ document.documentElement.setAttribute(name2, add.htmlAttr[name2] || "");
30432
30461
  });
30433
- Object.keys(add.bodyAttr).filter(bodyFilter).forEach((name) => {
30434
- document.body.setAttribute(name, add.bodyAttr[name] || "");
30462
+ Object.keys(add.bodyAttr).filter(bodyFilter).forEach((name2) => {
30463
+ document.body.setAttribute(name2, add.bodyAttr[name2] || "");
30435
30464
  });
30436
30465
  }
30437
30466
  function updateClientMeta() {
@@ -30474,7 +30503,7 @@ var Meta_default = {
30474
30503
  }
30475
30504
  };
30476
30505
 
30477
- // src/plugins/Notify.js
30506
+ // src/plugins/notify/Notify.js
30478
30507
  import { h as h136, ref as ref71, markRaw as markRaw2, TransitionGroup } from "vue";
30479
30508
  var uid3 = 0;
30480
30509
  var defaults2 = {};
@@ -30876,10 +30905,10 @@ var Notify_default = {
30876
30905
  }
30877
30906
  };
30878
30907
 
30879
- // src/utils/private/web-storage.js
30908
+ // src/plugins/storage/engine/web-storage.js
30880
30909
  function encode2(value2) {
30881
30910
  if (isDate(value2) === true) {
30882
- return "__q_date|" + value2.toUTCString();
30911
+ return "__q_date|" + value2.getTime();
30883
30912
  }
30884
30913
  if (isRegexp(value2) === true) {
30885
30914
  return "__q_expr|" + value2.source;
@@ -30910,7 +30939,8 @@ function decode2(value2) {
30910
30939
  const source = value2.substring(9);
30911
30940
  switch (type) {
30912
30941
  case "__q_date":
30913
- return new Date(source);
30942
+ const number = Number(source);
30943
+ return new Date(Number.isNaN(number) === true ? source : number);
30914
30944
  case "__q_expr":
30915
30945
  return new RegExp(source);
30916
30946
  case "__q_numb":
@@ -30929,6 +30959,8 @@ function getEmptyStorage() {
30929
30959
  const getVal2 = () => null;
30930
30960
  return {
30931
30961
  has: () => false,
30962
+ // alias for hasItem; TODO: remove in Qv3
30963
+ hasItem: () => false,
30932
30964
  getLength: () => 0,
30933
30965
  getItem: getVal2,
30934
30966
  getIndex: getVal2,
@@ -30937,7 +30969,11 @@ function getEmptyStorage() {
30937
30969
  },
30938
30970
  getAllKeys: () => [],
30939
30971
  set: noop,
30972
+ // alias for setItem; TODO: remove in Qv3
30973
+ setItem: noop,
30940
30974
  remove: noop,
30975
+ // alias for removeItem; TODO: remove in Qv3
30976
+ removeItem: noop,
30941
30977
  clear: noop,
30942
30978
  isEmpty: () => true
30943
30979
  };
@@ -30947,8 +30983,17 @@ function getStorage(type) {
30947
30983
  const item = webStorage.getItem(key);
30948
30984
  return item ? decode2(item) : null;
30949
30985
  };
30986
+ const hasItem = (key) => webStorage.getItem(key) !== null;
30987
+ const setItem = (key, value2) => {
30988
+ webStorage.setItem(key, encode2(value2));
30989
+ };
30990
+ const removeItem = (key) => {
30991
+ webStorage.removeItem(key);
30992
+ };
30950
30993
  return {
30951
- has: (key) => webStorage.getItem(key) !== null,
30994
+ has: hasItem,
30995
+ // TODO: remove in Qv3
30996
+ hasItem,
30952
30997
  getLength: () => webStorage.length,
30953
30998
  getItem: get2,
30954
30999
  getIndex: (index) => {
@@ -30973,12 +31018,12 @@ function getStorage(type) {
30973
31018
  }
30974
31019
  return result;
30975
31020
  },
30976
- set: (key, value2) => {
30977
- webStorage.setItem(key, encode2(value2));
30978
- },
30979
- remove: (key) => {
30980
- webStorage.removeItem(key);
30981
- },
31021
+ set: setItem,
31022
+ // TODO: remove in Qv3
31023
+ setItem,
31024
+ remove: removeItem,
31025
+ // TODO: remove in Qv3
31026
+ removeItem,
30982
31027
  clear: () => {
30983
31028
  webStorage.clear();
30984
31029
  },
@@ -30986,7 +31031,7 @@ function getStorage(type) {
30986
31031
  };
30987
31032
  }
30988
31033
 
30989
- // src/plugins/LocalStorage.js
31034
+ // src/plugins/storage/LocalStorage.js
30990
31035
  var storage = client.has.webStorage === false ? getEmptyStorage() : getStorage("local");
30991
31036
  var Plugin9 = {
30992
31037
  install({ $q }) {
@@ -30996,7 +31041,7 @@ var Plugin9 = {
30996
31041
  Object.assign(Plugin9, storage);
30997
31042
  var LocalStorage_default = Plugin9;
30998
31043
 
30999
- // src/plugins/SessionStorage.js
31044
+ // src/plugins/storage/SessionStorage.js
31000
31045
  var storage2 = client.has.webStorage === false ? getEmptyStorage() : getStorage("session");
31001
31046
  var Plugin10 = {
31002
31047
  install({ $q }) {
@@ -31006,7 +31051,7 @@ var Plugin10 = {
31006
31051
  Object.assign(Plugin10, storage2);
31007
31052
  var SessionStorage_default = Plugin10;
31008
31053
 
31009
- // src/composables/use-dialog-plugin-component.js
31054
+ // src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js
31010
31055
  import { ref as ref72, getCurrentInstance as getCurrentInstance86 } from "vue";
31011
31056
  function useDialogPluginComponent() {
31012
31057
  const { emit, proxy } = getCurrentInstance86();
@@ -31035,9 +31080,8 @@ function useDialogPluginComponent() {
31035
31080
  var emits2 = ["ok", "hide"];
31036
31081
  useDialogPluginComponent.emits = emits2;
31037
31082
  useDialogPluginComponent.emitsObject = get_emits_object_default(emits2);
31038
- var use_dialog_plugin_component_default = useDialogPluginComponent;
31039
31083
 
31040
- // src/composables/use-meta.js
31084
+ // src/composables/use-meta/use-meta.js
31041
31085
  import { computed as computed116, watch as watch50, onActivated as onActivated8, onDeactivated as onDeactivated10, onUnmounted as onUnmounted3, useSSRContext } from "vue";
31042
31086
  function use_meta_default(metaOptions) {
31043
31087
  if (false) {
@@ -31074,13 +31118,37 @@ function use_meta_default(metaOptions) {
31074
31118
  }
31075
31119
  }
31076
31120
 
31077
- // src/composables/use-quasar.js
31121
+ // src/composables/use-quasar/use-quasar.js
31078
31122
  import { inject as inject13 } from "vue";
31079
31123
  function useQuasar() {
31080
31124
  return inject13(quasarKey);
31081
31125
  }
31082
31126
 
31083
- // src/utils/copy-to-clipboard.js
31127
+ // src/composables/use-interval/use-interval.js
31128
+ import { onDeactivated as onDeactivated11, onBeforeUnmount as onBeforeUnmount38, getCurrentInstance as getCurrentInstance87 } from "vue";
31129
+ function use_interval_default() {
31130
+ let timer2 = null;
31131
+ const vm2 = getCurrentInstance87();
31132
+ function removeInterval() {
31133
+ if (timer2 !== null) {
31134
+ clearInterval(timer2);
31135
+ timer2 = null;
31136
+ }
31137
+ }
31138
+ onDeactivated11(removeInterval);
31139
+ onBeforeUnmount38(removeInterval);
31140
+ return {
31141
+ removeInterval,
31142
+ registerInterval(fn, delay) {
31143
+ removeInterval(timer2);
31144
+ if (vmIsDestroyed(vm2) === false) {
31145
+ timer2 = setInterval(fn, delay);
31146
+ }
31147
+ }
31148
+ };
31149
+ }
31150
+
31151
+ // src/utils/copy-to-clipboard/copy-to-clipboard.js
31084
31152
  function fallback(text) {
31085
31153
  const area = document.createElement("textarea");
31086
31154
  area.value = text;
@@ -31108,7 +31176,7 @@ function copy_to_clipboard_default(text) {
31108
31176
  });
31109
31177
  }
31110
31178
 
31111
- // src/utils/create-meta-mixin.js
31179
+ // src/utils/create-meta-mixin/create-meta-mixin.js
31112
31180
  var create_meta_mixin_default = (metaOptions) => {
31113
31181
  if (false) {
31114
31182
  return {
@@ -31165,28 +31233,28 @@ var create_meta_mixin_default = (metaOptions) => {
31165
31233
  return mixin;
31166
31234
  };
31167
31235
 
31168
- // src/utils/EventBus.js
31236
+ // src/utils/EventBus/EventBus.js
31169
31237
  var EventBus = class {
31170
31238
  constructor() {
31171
31239
  this.__stack = {};
31172
31240
  }
31173
- on(name, callback, ctx) {
31174
- (this.__stack[name] || (this.__stack[name] = [])).push({
31241
+ on(name2, callback, ctx) {
31242
+ (this.__stack[name2] || (this.__stack[name2] = [])).push({
31175
31243
  fn: callback,
31176
31244
  ctx
31177
31245
  });
31178
31246
  return this;
31179
31247
  }
31180
- once(name, callback, ctx) {
31248
+ once(name2, callback, ctx) {
31181
31249
  const listener = (...args) => {
31182
- this.off(name, listener);
31250
+ this.off(name2, listener);
31183
31251
  callback.apply(ctx, args);
31184
31252
  };
31185
31253
  listener.__callback = callback;
31186
- return this.on(name, listener, ctx);
31254
+ return this.on(name2, listener, ctx);
31187
31255
  }
31188
- emit(name) {
31189
- const list = this.__stack[name];
31256
+ emit(name2) {
31257
+ const list = this.__stack[name2];
31190
31258
  if (list !== void 0) {
31191
31259
  const params = [].slice.call(arguments, 1);
31192
31260
  list.forEach((entry) => {
@@ -31195,28 +31263,28 @@ var EventBus = class {
31195
31263
  }
31196
31264
  return this;
31197
31265
  }
31198
- off(name, callback) {
31199
- const list = this.__stack[name];
31266
+ off(name2, callback) {
31267
+ const list = this.__stack[name2];
31200
31268
  if (list === void 0) {
31201
31269
  return this;
31202
31270
  }
31203
31271
  if (callback === void 0) {
31204
- delete this.__stack[name];
31272
+ delete this.__stack[name2];
31205
31273
  return this;
31206
31274
  }
31207
31275
  const liveEvents = list.filter(
31208
31276
  (entry) => entry.fn !== callback && entry.fn.__callback !== callback
31209
31277
  );
31210
31278
  if (liveEvents.length !== 0) {
31211
- this.__stack[name] = liveEvents;
31279
+ this.__stack[name2] = liveEvents;
31212
31280
  } else {
31213
- delete this.__stack[name];
31281
+ delete this.__stack[name2];
31214
31282
  }
31215
31283
  return this;
31216
31284
  }
31217
31285
  };
31218
31286
 
31219
- // src/utils/export-file.js
31287
+ // src/utils/export-file/export-file.js
31220
31288
  function clean(link) {
31221
31289
  setTimeout(() => {
31222
31290
  window.URL.revokeObjectURL(link.href);
@@ -31247,7 +31315,7 @@ function export_file_default(fileName, rawData, opts = {}) {
31247
31315
  }
31248
31316
  }
31249
31317
 
31250
- // src/utils/open-url.js
31318
+ // src/utils/open-url/open-url.js
31251
31319
  function parseFeatures(winFeatures) {
31252
31320
  const cfg = Object.assign({ noopener: true }, winFeatures);
31253
31321
  const feat = [];
@@ -31298,7 +31366,7 @@ var open_url_default = (url, reject, windowFeatures) => {
31298
31366
  return openWindow(url, reject, windowFeatures);
31299
31367
  };
31300
31368
 
31301
- // src/utils/run-sequential-promises.js
31369
+ // src/utils/run-sequential-promises/run-sequential-promises.js
31302
31370
  function parsePromises(sequentialPromises) {
31303
31371
  const isList = Array.isArray(sequentialPromises);
31304
31372
  if (isList === true) {
@@ -31362,22 +31430,28 @@ function runSequentialPromises(sequentialPromises, { threadsNumber = 1, abortOnF
31362
31430
 
31363
31431
  // src/index.dev.js
31364
31432
  var Quasar = {
31365
- version: "2.15.1",
31433
+ version: "2.15.3",
31366
31434
  install: install_quasar_default,
31367
- lang: lang_default,
31368
- iconSet: icon_set_default
31435
+ // TODO: remove in Qv3 (should only be used through the plugin)
31436
+ // We provide a deprecated fallback here
31437
+ lang: Lang_default,
31438
+ // TODO: remove in Qv3 (should only be used through the plugin)
31439
+ // We provide a deprecated fallback here
31440
+ iconSet: IconSet_default
31369
31441
  };
31370
31442
  export {
31371
31443
  AddressbarColor_default as AddressbarColor,
31372
31444
  AppFullscreen_default as AppFullscreen,
31373
31445
  AppVisibility_default as AppVisibility,
31374
- BottomSheet_default2 as BottomSheet,
31446
+ BottomSheet_default as BottomSheet,
31375
31447
  ClosePopup_default as ClosePopup,
31376
31448
  Cookies_default as Cookies,
31377
31449
  Dark_default as Dark,
31378
31450
  Dialog_default as Dialog,
31379
31451
  EventBus,
31452
+ IconSet_default as IconSet,
31380
31453
  Intersection_default as Intersection,
31454
+ Lang_default as Lang,
31381
31455
  Loading_default as Loading,
31382
31456
  LoadingBar_default as LoadingBar,
31383
31457
  LocalStorage_default as LocalStorage,
@@ -31543,10 +31617,11 @@ export {
31543
31617
  setCssVar,
31544
31618
  throttle_default as throttle,
31545
31619
  uid_default as uid,
31546
- use_dialog_plugin_component_default as useDialogPluginComponent,
31620
+ useDialogPluginComponent,
31547
31621
  use_form_child_default as useFormChild,
31548
31622
  use_hydration_default as useHydration,
31549
31623
  use_id_default as useId,
31624
+ use_interval_default as useInterval,
31550
31625
  use_meta_default as useMeta,
31551
31626
  useQuasar,
31552
31627
  use_render_cache_default as useRenderCache,