quasar 2.15.2 → 2.15.4

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 (665) 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/Cookies.json +1 -1
  5. package/dist/api/Dark.json +1 -1
  6. package/dist/api/Dialog.json +1 -1
  7. package/dist/api/IconSet.json +1 -0
  8. package/dist/api/Lang.json +1 -1
  9. package/dist/api/Loading.json +1 -1
  10. package/dist/api/LoadingBar.json +1 -1
  11. package/dist/api/LocalStorage.json +1 -1
  12. package/dist/api/Morph.json +1 -1
  13. package/dist/api/Notify.json +1 -1
  14. package/dist/api/Platform.json +1 -1
  15. package/dist/api/QAjaxBar.json +1 -1
  16. package/dist/api/QBreadcrumbsEl.json +1 -1
  17. package/dist/api/QBtn.json +1 -1
  18. package/dist/api/QBtnDropdown.json +1 -1
  19. package/dist/api/QBtnToggle.json +1 -1
  20. package/dist/api/QCard.json +1 -1
  21. package/dist/api/QCardSection.json +1 -1
  22. package/dist/api/QCarousel.json +1 -1
  23. package/dist/api/QCarouselControl.json +1 -1
  24. package/dist/api/QCheckbox.json +1 -1
  25. package/dist/api/QChip.json +1 -1
  26. package/dist/api/QDate.json +1 -1
  27. package/dist/api/QDialog.json +1 -1
  28. package/dist/api/QDrawer.json +1 -1
  29. package/dist/api/QEditor.json +1 -1
  30. package/dist/api/QExpansionItem.json +1 -1
  31. package/dist/api/QFab.json +1 -1
  32. package/dist/api/QFabAction.json +1 -1
  33. package/dist/api/QField.json +1 -1
  34. package/dist/api/QFile.json +1 -1
  35. package/dist/api/QForm.json +1 -1
  36. package/dist/api/QFormChildMixin.json +1 -1
  37. package/dist/api/QIcon.json +1 -1
  38. package/dist/api/QInfiniteScroll.json +1 -1
  39. package/dist/api/QInput.json +1 -1
  40. package/dist/api/QIntersection.json +1 -1
  41. package/dist/api/QItem.json +1 -1
  42. package/dist/api/QList.json +1 -1
  43. package/dist/api/QMenu.json +1 -1
  44. package/dist/api/QNoSsr.json +1 -1
  45. package/dist/api/QOptionGroup.json +1 -1
  46. package/dist/api/QPageScroller.json +1 -1
  47. package/dist/api/QPageSticky.json +1 -1
  48. package/dist/api/QPagination.json +1 -1
  49. package/dist/api/QParallax.json +1 -1
  50. package/dist/api/QPopupEdit.json +1 -1
  51. package/dist/api/QPopupProxy.json +1 -1
  52. package/dist/api/QPullToRefresh.json +1 -1
  53. package/dist/api/QRadio.json +1 -1
  54. package/dist/api/QRating.json +1 -1
  55. package/dist/api/QResizeObserver.json +1 -1
  56. package/dist/api/QScrollArea.json +1 -1
  57. package/dist/api/QScrollObserver.json +1 -1
  58. package/dist/api/QSelect.json +1 -1
  59. package/dist/api/QSkeleton.json +1 -1
  60. package/dist/api/QSlideItem.json +1 -1
  61. package/dist/api/QSplitter.json +1 -1
  62. package/dist/api/QStepper.json +1 -1
  63. package/dist/api/QTabPanel.json +1 -1
  64. package/dist/api/QTabPanels.json +1 -1
  65. package/dist/api/QTable.json +1 -1
  66. package/dist/api/QTime.json +1 -1
  67. package/dist/api/QTimelineEntry.json +1 -1
  68. package/dist/api/QToggle.json +1 -1
  69. package/dist/api/QTooltip.json +1 -1
  70. package/dist/api/QTree.json +1 -1
  71. package/dist/api/QUploader.json +1 -1
  72. package/dist/api/QVirtualScroll.json +1 -1
  73. package/dist/api/Ripple.json +1 -1
  74. package/dist/api/Screen.json +1 -1
  75. package/dist/api/ScrollFire.json +1 -1
  76. package/dist/api/SessionStorage.json +1 -1
  77. package/dist/icon-set/bootstrap-icons.umd.prod.js +2 -2
  78. package/dist/icon-set/eva-icons.umd.prod.js +2 -2
  79. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +2 -2
  80. package/dist/icon-set/fontawesome-v5.umd.prod.js +2 -2
  81. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +2 -2
  82. package/dist/icon-set/fontawesome-v6.umd.prod.js +2 -2
  83. package/dist/icon-set/ionicons-v4.umd.prod.js +2 -2
  84. package/dist/icon-set/line-awesome.umd.prod.js +2 -2
  85. package/dist/icon-set/material-icons-outlined.umd.prod.js +2 -2
  86. package/dist/icon-set/material-icons-round.umd.prod.js +2 -2
  87. package/dist/icon-set/material-icons-sharp.umd.prod.js +2 -2
  88. package/dist/icon-set/material-icons.umd.prod.js +2 -2
  89. package/dist/icon-set/material-symbols-outlined.umd.prod.js +2 -2
  90. package/dist/icon-set/material-symbols-rounded.umd.prod.js +2 -2
  91. package/dist/icon-set/material-symbols-sharp.umd.prod.js +2 -2
  92. package/dist/icon-set/mdi-v3.umd.prod.js +2 -2
  93. package/dist/icon-set/mdi-v4.umd.prod.js +2 -2
  94. package/dist/icon-set/mdi-v5.umd.prod.js +2 -2
  95. package/dist/icon-set/mdi-v6.umd.prod.js +2 -2
  96. package/dist/icon-set/mdi-v7.umd.prod.js +2 -2
  97. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +2 -2
  98. package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
  99. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +2 -2
  100. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +2 -2
  101. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +2 -2
  102. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +2 -2
  103. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +2 -2
  104. package/dist/icon-set/svg-line-awesome.umd.prod.js +2 -2
  105. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +2 -2
  106. package/dist/icon-set/svg-material-icons-round.umd.prod.js +2 -2
  107. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +2 -2
  108. package/dist/icon-set/svg-material-icons.umd.prod.js +2 -2
  109. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  110. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  111. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  112. package/dist/icon-set/svg-mdi-v6.umd.prod.js +2 -2
  113. package/dist/icon-set/svg-mdi-v7.umd.prod.js +2 -2
  114. package/dist/icon-set/svg-themify.umd.prod.js +2 -2
  115. package/dist/icon-set/themify.umd.prod.js +2 -2
  116. package/dist/lang/ar-TN.umd.prod.js +2 -2
  117. package/dist/lang/ar.umd.prod.js +2 -2
  118. package/dist/lang/az-Latn.umd.prod.js +2 -2
  119. package/dist/lang/bg.umd.prod.js +2 -2
  120. package/dist/lang/bn.umd.prod.js +2 -2
  121. package/dist/lang/ca.umd.prod.js +2 -2
  122. package/dist/lang/cs.umd.prod.js +2 -2
  123. package/dist/lang/da.umd.prod.js +2 -2
  124. package/dist/lang/de-CH.umd.prod.js +2 -2
  125. package/dist/lang/de-DE.umd.prod.js +2 -2
  126. package/dist/lang/de.umd.prod.js +2 -2
  127. package/dist/lang/el.umd.prod.js +2 -2
  128. package/dist/lang/en-GB.umd.prod.js +2 -2
  129. package/dist/lang/en-US.umd.prod.js +2 -2
  130. package/dist/lang/eo.umd.prod.js +2 -2
  131. package/dist/lang/es.umd.prod.js +2 -2
  132. package/dist/lang/et.umd.prod.js +2 -2
  133. package/dist/lang/eu.umd.prod.js +2 -2
  134. package/dist/lang/fa-IR.umd.prod.js +2 -2
  135. package/dist/lang/fa.umd.prod.js +2 -2
  136. package/dist/lang/fi.umd.prod.js +2 -2
  137. package/dist/lang/fr.umd.prod.js +2 -2
  138. package/dist/lang/gn.umd.prod.js +2 -2
  139. package/dist/lang/he.umd.prod.js +2 -2
  140. package/dist/lang/hi.umd.prod.js +2 -2
  141. package/dist/lang/hr.umd.prod.js +2 -2
  142. package/dist/lang/hu.umd.prod.js +2 -2
  143. package/dist/lang/id.umd.prod.js +2 -2
  144. package/dist/lang/is.umd.prod.js +2 -2
  145. package/dist/lang/it.umd.prod.js +2 -2
  146. package/dist/lang/ja.umd.prod.js +2 -2
  147. package/dist/lang/kk.umd.prod.js +2 -2
  148. package/dist/lang/km.umd.prod.js +2 -2
  149. package/dist/lang/ko-KR.umd.prod.js +2 -2
  150. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  151. package/dist/lang/lt.umd.prod.js +2 -2
  152. package/dist/lang/lu.umd.prod.js +2 -2
  153. package/dist/lang/lv.umd.prod.js +2 -2
  154. package/dist/lang/mk.umd.prod.js +2 -2
  155. package/dist/lang/ml.umd.prod.js +2 -2
  156. package/dist/lang/mm.umd.prod.js +2 -2
  157. package/dist/lang/ms-MY.umd.prod.js +2 -2
  158. package/dist/lang/ms.umd.prod.js +2 -2
  159. package/dist/lang/my.umd.prod.js +2 -2
  160. package/dist/lang/nb-NO.umd.prod.js +2 -2
  161. package/dist/lang/nl.umd.prod.js +2 -2
  162. package/dist/lang/pl.umd.prod.js +2 -2
  163. package/dist/lang/pt-BR.umd.prod.js +2 -2
  164. package/dist/lang/pt.umd.prod.js +2 -2
  165. package/dist/lang/ro.umd.prod.js +2 -2
  166. package/dist/lang/ru.umd.prod.js +2 -2
  167. package/dist/lang/sk.umd.prod.js +2 -2
  168. package/dist/lang/sl.umd.prod.js +2 -2
  169. package/dist/lang/sm.umd.prod.js +2 -2
  170. package/dist/lang/sr-CYR.umd.prod.js +2 -2
  171. package/dist/lang/sr.umd.prod.js +2 -2
  172. package/dist/lang/sv.umd.prod.js +2 -2
  173. package/dist/lang/ta.umd.prod.js +2 -2
  174. package/dist/lang/th.umd.prod.js +2 -2
  175. package/dist/lang/tl.umd.prod.js +2 -2
  176. package/dist/lang/tr.umd.prod.js +2 -2
  177. package/dist/lang/ug.umd.prod.js +2 -2
  178. package/dist/lang/uk.umd.prod.js +2 -2
  179. package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
  180. package/dist/lang/uz-Latn.umd.prod.js +2 -2
  181. package/dist/lang/vi.umd.prod.js +2 -2
  182. package/dist/lang/zh-CN.umd.prod.js +2 -2
  183. package/dist/lang/zh-TW.umd.prod.js +2 -2
  184. package/dist/quasar.addon.prod.css +1 -1
  185. package/dist/quasar.addon.rtl.prod.css +1 -1
  186. package/dist/quasar.cjs.prod.js +12 -12
  187. package/dist/quasar.esm.js +571 -523
  188. package/dist/quasar.esm.prod.js +17 -17
  189. package/dist/quasar.prod.css +1 -1
  190. package/dist/quasar.rtl.prod.css +1 -1
  191. package/dist/quasar.sass +1 -1
  192. package/dist/quasar.umd.js +558 -509
  193. package/dist/quasar.umd.prod.js +22 -22
  194. package/dist/transforms/api-list.json +1 -1
  195. package/dist/transforms/import-map.json +1 -1
  196. package/dist/types/config.d.ts +3 -3
  197. package/dist/types/globals.d.ts +1 -1
  198. package/dist/types/index.d.ts +1921 -102
  199. package/dist/vetur/quasar-attributes.json +1 -1
  200. package/dist/vetur/quasar-tags.json +1 -1
  201. package/dist/web-types/web-types.json +1 -1
  202. package/lang/uk.js +1 -1
  203. package/lang/uk.mjs +1 -1
  204. package/package.json +18 -17
  205. package/src/api.extends.json +7 -5
  206. package/src/components/ajax-bar/QAjaxBar.js +2 -2
  207. package/src/components/ajax-bar/QAjaxBar.json +1 -0
  208. package/src/components/avatar/QAvatar.js +3 -3
  209. package/src/components/avatar/QAvatar.json +1 -1
  210. package/src/components/avatar/QAvatar.test.js +169 -83
  211. package/src/components/badge/QBadge.js +2 -2
  212. package/src/components/badge/QBadge.test.js +200 -100
  213. package/src/components/banner/QBanner.js +3 -3
  214. package/src/components/banner/QBanner.test.js +88 -50
  215. package/src/components/bar/QBar.js +3 -3
  216. package/src/components/bar/QBar.test.js +44 -19
  217. package/src/components/breadcrumbs/QBreadcrumbs.js +6 -4
  218. package/src/components/breadcrumbs/QBreadcrumbs.test.js +134 -59
  219. package/src/components/breadcrumbs/QBreadcrumbsEl.js +3 -3
  220. package/src/components/breadcrumbs/QBreadcrumbsEl.json +1 -1
  221. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +491 -61
  222. package/src/components/btn/QBtn.js +11 -5
  223. package/src/components/btn/QBtn.json +2 -1
  224. package/src/components/btn/QBtn.test.js +1391 -212
  225. package/src/components/btn/use-btn.js +8 -6
  226. package/src/components/btn/use-btn.json +1 -1
  227. package/src/components/btn/use-btn.test.js +86 -542
  228. package/src/components/btn-dropdown/QBtnDropdown.js +9 -10
  229. package/src/components/btn-dropdown/QBtnDropdown.json +3 -3
  230. package/src/components/btn-group/QBtnGroup.js +2 -2
  231. package/src/components/btn-toggle/QBtnToggle.js +3 -3
  232. package/src/components/btn-toggle/QBtnToggle.json +2 -2
  233. package/src/components/card/QCard.js +3 -3
  234. package/src/components/card/QCardActions.js +3 -3
  235. package/src/components/card/QCardSection.js +2 -2
  236. package/src/components/carousel/QCarousel.js +6 -6
  237. package/src/components/carousel/QCarousel.json +1 -1
  238. package/src/components/carousel/QCarouselControl.js +2 -2
  239. package/src/components/carousel/QCarouselControl.json +1 -1
  240. package/src/components/carousel/QCarouselSlide.js +3 -3
  241. package/src/components/carousel/QCarouselSlide.json +1 -1
  242. package/src/components/chat/QChatMessage.js +2 -2
  243. package/src/components/checkbox/QCheckbox.js +1 -1
  244. package/src/components/checkbox/use-checkbox.js +8 -8
  245. package/src/components/checkbox/use-checkbox.json +5 -3
  246. package/src/components/chip/QChip.js +6 -5
  247. package/src/components/chip/QChip.json +4 -0
  248. package/src/components/chip/QChip.test.js +685 -317
  249. package/src/components/circular-progress/QCircularProgress.js +5 -5
  250. package/src/components/circular-progress/QCircularProgress.json +1 -1
  251. package/src/components/circular-progress/{use-circular-progress.js → circular-progress.js} +1 -1
  252. package/src/components/circular-progress/circular-progress.test.js +14 -0
  253. package/src/components/color/QColor.js +10 -10
  254. package/src/components/color/QColor.json +1 -1
  255. package/src/components/date/QDate.js +9 -9
  256. package/src/components/date/QDate.json +17 -11
  257. package/src/components/date/use-datetime.js +2 -2
  258. package/src/components/date/use-datetime.json +6 -6
  259. package/src/components/dialog/QDialog.js +33 -22
  260. package/src/components/dialog/QDialog.json +5 -3
  261. package/src/components/dialog/QDialog.test.js +1094 -220
  262. package/src/components/drawer/QDrawer.js +9 -9
  263. package/src/components/drawer/QDrawer.json +7 -4
  264. package/src/components/editor/QEditor.js +9 -9
  265. package/src/components/editor/QEditor.json +11 -5
  266. package/src/components/editor/editor-caret.js +1 -1
  267. package/src/components/editor/editor-utils.js +3 -3
  268. package/src/components/expansion-item/QExpansionItem.js +9 -9
  269. package/src/components/expansion-item/QExpansionItem.json +2 -2
  270. package/src/components/fab/QFab.js +5 -5
  271. package/src/components/fab/QFab.json +1 -1
  272. package/src/components/fab/QFabAction.js +4 -4
  273. package/src/components/fab/QFabAction.json +2 -1
  274. package/src/components/fab/use-fab.json +1 -1
  275. package/src/components/field/QField.js +2 -2
  276. package/src/components/field/QField.json +7 -3
  277. package/src/components/file/QFile.js +9 -9
  278. package/src/components/file/QFile.json +11 -4
  279. package/src/components/footer/QFooter.js +3 -3
  280. package/src/components/form/QForm.js +6 -6
  281. package/src/components/form/QForm.json +11 -4
  282. package/src/components/form/QFormChildMixin.js +2 -2
  283. package/src/components/form/QFormChildMixin.json +4 -1
  284. package/src/components/header/QHeader.js +3 -3
  285. package/src/components/icon/QIcon.js +3 -3
  286. package/src/components/icon/QIcon.json +1 -1
  287. package/src/components/img/QImg.js +5 -5
  288. package/src/components/img/QImg.json +1 -1
  289. package/src/components/infinite-scroll/QInfiniteScroll.js +6 -6
  290. package/src/components/infinite-scroll/QInfiniteScroll.json +20 -7
  291. package/src/components/inner-loading/QInnerLoading.js +3 -3
  292. package/src/components/inner-loading/QInnerLoading.json +1 -1
  293. package/src/components/input/QInput.js +9 -9
  294. package/src/components/input/QInput.json +16 -5
  295. package/src/components/input/use-mask.js +1 -1
  296. package/src/components/intersection/QIntersection.js +2 -2
  297. package/src/components/item/QItem.js +6 -6
  298. package/src/components/item/QItem.json +1 -1
  299. package/src/components/item/QItemLabel.js +2 -2
  300. package/src/components/item/QItemSection.js +2 -2
  301. package/src/components/item/QList.js +3 -3
  302. package/src/components/knob/QKnob.js +6 -6
  303. package/src/components/knob/QKnob.json +1 -1
  304. package/src/components/layout/QLayout.js +4 -4
  305. package/src/components/linear-progress/QLinearProgress.js +4 -4
  306. package/src/components/linear-progress/QLinearProgress.json +1 -1
  307. package/src/components/markup-table/QMarkupTable.js +3 -3
  308. package/src/components/menu/QMenu.js +20 -20
  309. package/src/components/menu/QMenu.json +8 -4
  310. package/src/components/no-ssr/QNoSsr.js +3 -3
  311. package/src/components/option-group/QOptionGroup.js +2 -2
  312. package/src/components/option-group/QOptionGroup.json +4 -4
  313. package/src/components/page/QPage.js +3 -3
  314. package/src/components/page/QPageContainer.js +3 -3
  315. package/src/components/page-scroller/QPageScroller.js +2 -2
  316. package/src/components/page-sticky/QPageSticky.js +1 -1
  317. package/src/components/page-sticky/QPageSticky.json +1 -1
  318. package/src/components/page-sticky/use-page-sticky.js +2 -2
  319. package/src/components/pagination/QPagination.js +4 -4
  320. package/src/components/pagination/QPagination.json +5 -3
  321. package/src/components/parallax/QParallax.js +6 -6
  322. package/src/components/popup-edit/QPopupEdit.js +4 -4
  323. package/src/components/popup-edit/QPopupEdit.json +30 -14
  324. package/src/components/popup-proxy/QPopupProxy.js +3 -3
  325. package/src/components/popup-proxy/QPopupProxy.json +9 -5
  326. package/src/components/pull-to-refresh/QPullToRefresh.js +5 -5
  327. package/src/components/pull-to-refresh/QPullToRefresh.json +6 -2
  328. package/src/components/radio/QRadio.js +9 -9
  329. package/src/components/radio/QRadio.json +4 -2
  330. package/src/components/range/QRange.js +3 -3
  331. package/src/components/rating/QRating.js +6 -6
  332. package/src/components/rating/QRating.json +2 -2
  333. package/src/components/resize-observer/QResizeObserver.js +3 -3
  334. package/src/components/resize-observer/QResizeObserver.json +2 -1
  335. package/src/components/responsive/QResponsive.js +3 -3
  336. package/src/components/responsive/QResponsive.json +1 -1
  337. package/src/components/scroll-area/QScrollArea.js +6 -6
  338. package/src/components/scroll-area/QScrollArea.json +8 -2
  339. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  340. package/src/components/scroll-observer/QScrollObserver.json +5 -2
  341. package/src/components/select/QSelect.js +10 -10
  342. package/src/components/select/QSelect.json +38 -17
  343. package/src/components/separator/QSeparator.js +2 -2
  344. package/src/components/skeleton/QSkeleton.js +3 -3
  345. package/src/components/slide-item/QSlideItem.js +4 -4
  346. package/src/components/slide-item/QSlideItem.json +3 -1
  347. package/src/components/slide-transition/QSlideTransition.js +1 -1
  348. package/src/components/slider/QSlider.js +4 -4
  349. package/src/components/slider/use-slider.js +6 -6
  350. package/src/components/slider/use-slider.json +1 -1
  351. package/src/components/space/QSpace.js +1 -1
  352. package/src/components/space/QSpace.test.js +17 -0
  353. package/src/components/spinner/QSpinner.js +1 -1
  354. package/src/components/spinner/QSpinner.json +1 -1
  355. package/src/components/spinner/QSpinnerAudio.js +1 -1
  356. package/src/components/spinner/QSpinnerBall.js +1 -1
  357. package/src/components/spinner/QSpinnerBars.js +1 -1
  358. package/src/components/spinner/QSpinnerBox.js +1 -1
  359. package/src/components/spinner/QSpinnerClock.js +1 -1
  360. package/src/components/spinner/QSpinnerComment.js +1 -1
  361. package/src/components/spinner/QSpinnerCube.js +1 -1
  362. package/src/components/spinner/QSpinnerDots.js +1 -1
  363. package/src/components/spinner/QSpinnerFacebook.js +1 -1
  364. package/src/components/spinner/QSpinnerGears.js +1 -1
  365. package/src/components/spinner/QSpinnerGrid.js +1 -1
  366. package/src/components/spinner/QSpinnerHearts.js +1 -1
  367. package/src/components/spinner/QSpinnerHourglass.js +1 -1
  368. package/src/components/spinner/QSpinnerInfinity.js +1 -1
  369. package/src/components/spinner/QSpinnerIos.js +1 -1
  370. package/src/components/spinner/QSpinnerOrbit.js +1 -1
  371. package/src/components/spinner/QSpinnerOval.js +1 -1
  372. package/src/components/spinner/QSpinnerPie.js +1 -1
  373. package/src/components/spinner/QSpinnerPuff.js +1 -1
  374. package/src/components/spinner/QSpinnerRadio.js +1 -1
  375. package/src/components/spinner/QSpinnerRings.js +1 -1
  376. package/src/components/spinner/QSpinnerTail.js +1 -1
  377. package/src/components/spinner/spinner.json +1 -1
  378. package/src/components/spinner/use-spinner.js +1 -1
  379. package/src/components/splitter/QSplitter.js +3 -3
  380. package/src/components/splitter/QSplitter.json +4 -4
  381. package/src/components/stepper/QStep.js +5 -5
  382. package/src/components/stepper/QStep.json +1 -1
  383. package/src/components/stepper/QStepper.js +5 -5
  384. package/src/components/stepper/QStepper.json +1 -1
  385. package/src/components/stepper/QStepperNavigation.js +2 -2
  386. package/src/components/stepper/StepHeader.js +1 -1
  387. package/src/components/tab-panels/QTabPanel.js +3 -3
  388. package/src/components/tab-panels/QTabPanel.json +1 -7
  389. package/src/components/tab-panels/QTabPanels.js +4 -4
  390. package/src/components/tab-panels/QTabPanels.json +1 -1
  391. package/src/components/table/QTable.js +7 -7
  392. package/src/components/table/QTable.json +41 -22
  393. package/src/components/table/QTd.js +2 -2
  394. package/src/components/table/QTh.js +2 -2
  395. package/src/components/table/QTr.js +2 -2
  396. package/src/components/table/table-column-selection.js +1 -1
  397. package/src/components/table/table-sort.js +2 -2
  398. package/src/components/tabs/QRouteTab.js +2 -2
  399. package/src/components/tabs/QRouteTab.json +1 -1
  400. package/src/components/tabs/QTab.js +1 -1
  401. package/src/components/tabs/QTabs.js +6 -6
  402. package/src/components/tabs/use-tab.js +6 -6
  403. package/src/components/time/QTime.js +8 -8
  404. package/src/components/time/QTime.json +5 -3
  405. package/src/components/timeline/QTimeline.js +4 -4
  406. package/src/components/timeline/QTimelineEntry.js +3 -3
  407. package/src/components/toggle/QToggle.js +1 -1
  408. package/src/components/toolbar/QToolbar.js +2 -2
  409. package/src/components/toolbar/QToolbar.test.js +45 -0
  410. package/src/components/toolbar/QToolbarTitle.js +2 -2
  411. package/src/components/toolbar/QToolbarTitle.test.js +45 -0
  412. package/src/components/tooltip/QTooltip.js +15 -15
  413. package/src/components/tooltip/QTooltip.json +6 -5
  414. package/src/components/tree/QTree.js +5 -5
  415. package/src/components/tree/QTree.json +12 -4
  416. package/src/components/uploader/QUploader.js +1 -1
  417. package/src/components/uploader/QUploader.json +25 -10
  418. package/src/components/uploader/QUploaderAddTrigger.js +2 -2
  419. package/src/components/uploader/uploader-core.js +8 -8
  420. package/src/components/uploader/xhr-uploader-plugin.js +3 -1
  421. package/src/components/uploader/xhr-uploader-plugin.json +9 -9
  422. package/src/components/video/QVideo.js +2 -2
  423. package/src/components/video/QVideo.json +1 -1
  424. package/src/components/video/QVideo.test.js +183 -0
  425. package/src/components/virtual-scroll/QVirtualScroll.js +4 -4
  426. package/src/components/virtual-scroll/QVirtualScroll.json +1 -0
  427. package/src/components/virtual-scroll/use-virtual-scroll.js +3 -3
  428. package/src/components/virtual-scroll/use-virtual-scroll.json +7 -3
  429. package/src/composables/private.use-align/use-align.test.js +62 -0
  430. package/src/composables/{private → private.use-anchor}/use-anchor.js +3 -3
  431. package/src/composables/{private → private.use-anchor}/use-anchor.json +0 -1
  432. package/src/composables/private.use-dark/use-dark.test.js +68 -0
  433. package/src/composables/{private → private.use-field}/use-field.js +8 -8
  434. package/src/composables/{private → private.use-field}/use-field.json +7 -10
  435. package/src/composables/{private → private.use-file}/use-file.js +1 -1
  436. package/src/composables/{private → private.use-file}/use-file.json +4 -2
  437. package/src/composables/{private → private.use-fullscreen}/use-fullscreen.js +2 -2
  438. package/src/composables/{private → private.use-fullscreen}/use-fullscreen.json +9 -3
  439. package/src/composables/{private → private.use-history}/use-history.js +1 -1
  440. package/src/composables/private.use-history/use-history.test.js +116 -0
  441. package/src/composables/{private → private.use-model-toggle}/use-model-toggle.js +1 -1
  442. package/src/composables/{private → private.use-panel}/use-panel.js +3 -3
  443. package/src/composables/{private → private.use-panel}/use-panel.json +10 -5
  444. package/src/composables/{private → private.use-portal}/use-portal.js +6 -6
  445. package/src/composables/{private → private.use-prevent-scroll}/use-prevent-scroll.js +1 -1
  446. package/src/composables/private.use-ratio/use-ratio.test.js +40 -0
  447. package/src/composables/{private → private.use-router-link}/use-router-link.js +1 -1
  448. package/src/composables/{private → private.use-scroll-target}/use-scroll-target.js +2 -5
  449. package/src/composables/private.use-size/use-size.test.js +40 -0
  450. package/src/composables/private.use-transition/use-transition.test.js +118 -0
  451. package/src/composables/{private → private.use-validate}/use-validate.js +4 -4
  452. package/src/composables/{private → private.use-validate}/use-validate.json +3 -1
  453. package/src/composables/{use-dialog-plugin-component.js → use-dialog-plugin-component/use-dialog-plugin-component.js} +2 -4
  454. package/src/composables/use-form/private.use-form.test.js +107 -0
  455. package/src/composables/{use-form-child.js → use-form/use-form-child.js} +1 -1
  456. package/src/composables/{use-hydration.js → use-hydration/use-hydration.js} +1 -1
  457. package/src/composables/use-hydration/use-hydration.test.js +27 -0
  458. package/src/composables/{use-id.js → use-id/use-id.js} +2 -2
  459. package/src/composables/use-id/use-id.test.js +72 -0
  460. package/src/composables/{use-interval.js → use-interval/use-interval.js} +1 -1
  461. package/src/composables/use-interval/use-interval.test.js +173 -0
  462. package/src/composables/{use-meta.js → use-meta/use-meta.js} +1 -1
  463. package/src/composables/{use-quasar.js → use-quasar/use-quasar.js} +2 -1
  464. package/src/composables/use-quasar/use-quasar.test.js +35 -0
  465. package/src/composables/{use-render-cache.js → use-render-cache/use-render-cache.js} +2 -2
  466. package/src/composables/use-render-cache/use-render-cache.test.js +73 -0
  467. package/src/composables/use-split-attrs/use-split-attrs.test.js +55 -0
  468. package/src/composables/{use-tick.js → use-tick/use-tick.js} +1 -1
  469. package/src/composables/use-tick/use-tick.test.js +118 -0
  470. package/src/composables/{use-timeout.js → use-timeout/use-timeout.js} +1 -1
  471. package/src/composables/use-timeout/use-timeout.test.js +169 -0
  472. package/src/composables.js +11 -11
  473. package/src/css/index.sass +1 -1
  474. package/src/directives/close-popup/ClosePopup.js +4 -4
  475. package/src/directives/intersection/Intersection.js +3 -3
  476. package/src/directives/morph/Morph.js +2 -2
  477. package/src/directives/morph/Morph.json +1 -1
  478. package/src/directives/mutation/Mutation.js +2 -2
  479. package/src/directives/ripple/Ripple.js +6 -6
  480. package/src/directives/ripple/Ripple.json +2 -2
  481. package/src/directives/ripple/Ripple.test.js +340 -0
  482. package/src/directives/scroll/Scroll.js +4 -4
  483. package/src/directives/scroll-fire/ScrollFire.js +6 -6
  484. package/src/directives/scroll-fire/ScrollFire.json +1 -1
  485. package/src/directives/touch-hold/TouchHold.js +4 -4
  486. package/src/directives/touch-pan/TouchPan.js +5 -5
  487. package/src/directives/touch-repeat/TouchRepeat.js +5 -5
  488. package/src/directives/touch-swipe/TouchSwipe.js +5 -5
  489. package/src/index.dev.js +10 -4
  490. package/src/index.prod.js +11 -4
  491. package/src/index.ssr.js +11 -4
  492. package/src/index.umd.js +12 -4
  493. package/src/install-quasar.js +14 -9
  494. package/src/plugins/addressbar/AddressbarColor.js +2 -2
  495. package/src/plugins/addressbar/AddressbarColor.json +2 -1
  496. package/src/plugins/addressbar/AddressbarColor.test.js +53 -0
  497. package/src/plugins/app-fullscreen/AppFullscreen.js +3 -3
  498. package/src/plugins/app-fullscreen/AppFullscreen.json +4 -1
  499. package/src/plugins/app-fullscreen/AppFullscreen.test.js +206 -0
  500. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +43 -0
  501. package/src/plugins/app-visibility/AppVisibility.js +3 -3
  502. package/src/plugins/app-visibility/AppVisibility.test.js +45 -0
  503. package/src/plugins/bottom-sheet/BottomSheet.js +2 -5
  504. package/src/plugins/bottom-sheet/BottomSheet.json +1 -1
  505. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +2 -2
  506. package/src/plugins/cookies/Cookies.json +5 -2
  507. package/src/plugins/dark/Dark.js +2 -2
  508. package/src/plugins/dark/Dark.json +5 -2
  509. package/src/plugins/dark/Dark.test.js +158 -0
  510. package/src/plugins/dialog/Dialog.js +2 -5
  511. package/src/plugins/dialog/Dialog.json +3 -3
  512. package/src/plugins/dialog/component/DialogPluginComponent.js +4 -4
  513. package/src/{icon-set.js → plugins/icon-set/IconSet.js} +29 -10
  514. package/src/plugins/icon-set/IconSet.json +1417 -0
  515. package/src/plugins/icon-set/IconSet.test.js +346 -0
  516. package/src/{lang.js → plugins/lang/Lang.js} +25 -15
  517. package/src/plugins/lang/Lang.json +1100 -0
  518. package/src/plugins/lang/Lang.test.js +267 -0
  519. package/src/plugins/loading/Loading.js +5 -5
  520. package/src/plugins/loading/Loading.json +4 -2
  521. package/src/plugins/loading-bar/LoadingBar.js +5 -5
  522. package/src/plugins/loading-bar/LoadingBar.json +9 -4
  523. package/src/plugins/meta/Meta.js +1 -1
  524. package/src/plugins/notify/Notify.js +4 -4
  525. package/src/plugins/notify/Notify.json +8 -6
  526. package/src/plugins/platform/Platform.js +5 -5
  527. package/src/plugins/platform/Platform.json +6 -0
  528. package/src/plugins/platform/Platform.test.js +104 -0
  529. package/src/{body.js → plugins/private.body/Body.js} +5 -4
  530. package/src/plugins/private.body/Body.test.js +28 -0
  531. package/src/{history.js → plugins/private.history/History.js} +2 -2
  532. package/src/plugins/private.history/History.test.js +38 -0
  533. package/src/plugins/screen/Screen.js +4 -4
  534. package/src/plugins/screen/Screen.json +4 -2
  535. package/src/plugins/screen/Screen.test.js +453 -0
  536. package/src/plugins/{local-storage → storage}/LocalStorage.js +1 -1
  537. package/src/plugins/storage/LocalStorage.json +5 -0
  538. package/src/plugins/storage/LocalStorage.test.js +323 -0
  539. package/src/plugins/{session-storage → storage}/SessionStorage.js +1 -1
  540. package/src/plugins/storage/SessionStorage.json +5 -0
  541. package/src/plugins/storage/SessionStorage.test.js +323 -0
  542. package/src/{utils/private → plugins/storage/engine}/web-storage.js +21 -10
  543. package/src/{utils/private → plugins/storage/engine}/web-storage.json +22 -11
  544. package/src/plugins/storage/engine/web-storage.test.js +43 -0
  545. package/src/plugins.js +8 -4
  546. package/src/utils/EventBus/EventBus.test.js +108 -0
  547. package/src/utils/clone/clone.test.js +111 -0
  548. package/src/utils/colors/colors.test.js +459 -0
  549. package/src/utils/{copy-to-clipboard.js → copy-to-clipboard/copy-to-clipboard.js} +1 -1
  550. package/src/utils/{create-meta-mixin.js → create-meta-mixin/create-meta-mixin.js} +1 -1
  551. package/src/utils/{create-uploader-component.js → create-uploader-component/create-uploader-component.js} +4 -4
  552. package/src/utils/css-var/get-css-var.test.js +44 -0
  553. package/src/utils/css-var/set-css-var.test.js +54 -0
  554. package/src/utils/{date.js → date/date.js} +6 -6
  555. package/src/utils/debounce/debounce.test.js +188 -0
  556. package/src/utils/dom/dom.test.js +222 -0
  557. package/src/utils/extend/extend.test.js +93 -0
  558. package/src/utils/{format.js → format/format.js} +2 -2
  559. package/src/utils/format/format.test.js +107 -0
  560. package/src/utils/{frame-debounce.js → frame-debounce/frame-debounce.js} +1 -1
  561. package/src/utils/frame-debounce/frame-debounce.test.js +127 -0
  562. package/src/utils/is/is.test.js +125 -0
  563. package/src/utils/{morph.js → morph/morph.js} +1 -1
  564. package/src/utils/{open-url.js → open-url/open-url.js} +3 -3
  565. package/src/utils/patterns/patterns.test.js +403 -0
  566. package/src/utils/{private → private.click-outside}/click-outside.js +2 -2
  567. package/src/utils/{private/define-reactive-plugin.js → private.create/create.js} +6 -3
  568. package/src/utils/private.create/create.test.js +58 -0
  569. package/src/utils/private.focus/focus-manager.test.js +190 -0
  570. package/src/utils/private.focus/focusout.test.js +114 -0
  571. package/src/utils/private.get-emits-object/get-emits-object.test.js +29 -0
  572. package/src/utils/private.global/global-config.test.js +54 -0
  573. package/src/utils/{private → private.global}/global-dialog.js +1 -1
  574. package/src/utils/{private → private.global}/global-dialog.json +1 -1
  575. package/src/utils/{private → private.global}/global-nodes.js +1 -1
  576. package/src/utils/private.global/global-nodes.test.js +110 -0
  577. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +104 -0
  578. package/src/utils/{private → private.keyboard}/escape-key.js +1 -1
  579. package/src/utils/private.keyboard/escape-key.test.js +117 -0
  580. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +14 -0
  581. package/src/utils/{private → private.portal}/portal.js +1 -1
  582. package/src/utils/{private → private.position-engine}/position-engine.js +1 -1
  583. package/src/utils/private.render/render.test.js +187 -0
  584. package/src/utils/private.rtl/rtl.test.js +13 -0
  585. package/src/utils/private.selection/selection.test.js +40 -0
  586. package/src/utils/private.sort/sort.test.js +25 -0
  587. package/src/utils/{private → private.symbols}/symbols.js +1 -1
  588. package/src/utils/private.touch/touch.test.js +102 -0
  589. package/src/utils/private.vm/vm.test.js +175 -0
  590. package/src/utils/{prevent-scroll.js → scroll/prevent-scroll.js} +3 -3
  591. package/src/utils/{scroll.js → scroll/scroll.js} +1 -1
  592. package/src/utils/throttle/throttle.test.js +146 -0
  593. package/src/utils/uid/uid.test.js +17 -0
  594. package/src/utils.js +24 -24
  595. package/src/vue-plugin.js +12 -4
  596. package/src/Lang.json +0 -19
  597. package/src/api-file-example.json +0 -94
  598. package/src/composables/private/__tests__/use-form.cy.js +0 -11
  599. package/src/composables/private/__tests__/use-size.cy.js +0 -36
  600. package/src/composables/private/__tests__/use-transition.cy.js +0 -111
  601. package/src/composables/private/use-form.test.js +0 -93
  602. package/src/composables/private/use-ratio.test.js +0 -27
  603. package/src/composables/private/use-size.test.js +0 -22
  604. package/src/composables/use-id.test.js +0 -55
  605. package/src/plugins/local-storage/LocalStorage.json +0 -5
  606. package/src/plugins/session-storage/SessionStorage.json +0 -5
  607. package/src/utils/private/create.js +0 -4
  608. /package/src/composables/{private/__tests__ → __tests__}/FieldWrapper.vue +0 -0
  609. /package/src/composables/{private/__tests__ → __tests__}/use-anchor.cy.js +0 -0
  610. /package/src/composables/{private/__tests__ → __tests__}/use-field.cy.js +0 -0
  611. /package/src/composables/{private/__tests__ → __tests__}/use-file.cy.js +0 -0
  612. /package/src/composables/{private/__tests__ → __tests__}/use-fullscreen.cy.js +0 -0
  613. /package/src/composables/{private/__tests__ → __tests__}/use-model-toggle.cy.js +0 -0
  614. /package/src/composables/{private/__tests__ → __tests__}/use-portal.cy.js +0 -0
  615. /package/src/composables/{private/__tests__ → __tests__}/use-router-link.cy.js +0 -0
  616. /package/src/composables/{private/__tests__ → __tests__}/use-validate.cy.js +0 -0
  617. /package/src/composables/{private → private.use-align}/use-align.js +0 -0
  618. /package/src/composables/{private → private.use-dark}/use-dark.js +0 -0
  619. /package/src/composables/{private → private.use-file}/use-file-dom-props.js +0 -0
  620. /package/src/composables/{private → private.use-key-composition}/use-key-composition.js +0 -0
  621. /package/src/composables/{private → private.use-model-toggle}/use-model-toggle.json +0 -0
  622. /package/src/composables/{private → private.use-panel}/use-panel.child.json +0 -0
  623. /package/src/composables/{private → private.use-panel}/use-panel.sass +0 -0
  624. /package/src/composables/{private → private.use-portal}/use-portal.json +0 -0
  625. /package/src/composables/{private → private.use-ratio}/use-ratio.js +0 -0
  626. /package/src/composables/{private → private.use-ratio}/use-ratio.json +0 -0
  627. /package/src/composables/{private → private.use-refocus-target}/use-refocus-target.js +0 -0
  628. /package/src/composables/{private → private.use-router-link}/use-router-link.json +0 -0
  629. /package/src/composables/{private → private.use-size}/use-size.js +0 -0
  630. /package/src/composables/{private → private.use-size}/use-size.json +0 -0
  631. /package/src/composables/{private → private.use-transition}/use-transition.js +0 -0
  632. /package/src/composables/{private → private.use-transition}/use-transition.json +0 -0
  633. /package/src/composables/{private/use-form.js → use-form/private.use-form.js} +0 -0
  634. /package/src/composables/{private/use-form.json → use-form/private.use-form.json} +0 -0
  635. /package/src/composables/{use-split-attrs.js → use-split-attrs/use-split-attrs.js} +0 -0
  636. /package/src/utils/{EventBus.js → EventBus/EventBus.js} +0 -0
  637. /package/src/utils/{clone.js → clone/clone.js} +0 -0
  638. /package/src/utils/{colors.js → colors/colors.js} +0 -0
  639. /package/src/utils/{get-css-var.js → css-var/get-css-var.js} +0 -0
  640. /package/src/utils/{set-css-var.js → css-var/set-css-var.js} +0 -0
  641. /package/src/utils/{private/date-persian.js → date/private.persian.js} +0 -0
  642. /package/src/utils/{debounce.js → debounce/debounce.js} +0 -0
  643. /package/src/utils/{dom.js → dom/dom.js} +0 -0
  644. /package/src/utils/{event.js → event/event.js} +0 -0
  645. /package/src/utils/{export-file.js → export-file/export-file.js} +0 -0
  646. /package/src/utils/{extend.js → extend/extend.js} +0 -0
  647. /package/src/utils/{is.js → is/is.js} +0 -0
  648. /package/src/utils/{patterns.js → patterns/patterns.js} +0 -0
  649. /package/src/utils/{private → private.focus}/focus-manager.js +0 -0
  650. /package/src/utils/{private → private.focus}/focusout.js +0 -0
  651. /package/src/utils/{private → private.get-emits-object}/get-emits-object.js +0 -0
  652. /package/src/utils/{private → private.global}/global-config.js +0 -0
  653. /package/src/utils/{private → private.inject-obj-prop}/inject-obj-prop.js +0 -0
  654. /package/src/utils/{private → private.keyboard}/key-composition.js +0 -0
  655. /package/src/utils/{private → private.noop-ssr-directive-transform}/noop-ssr-directive-transform.js +0 -0
  656. /package/src/utils/{private → private.option-sizes}/option-sizes.js +0 -0
  657. /package/src/utils/{private → private.render}/render.js +0 -0
  658. /package/src/utils/{private → private.rtl}/rtl.js +0 -0
  659. /package/src/utils/{private → private.selection}/selection.js +0 -0
  660. /package/src/utils/{private → private.sort}/sort.js +0 -0
  661. /package/src/utils/{private → private.touch}/touch.js +0 -0
  662. /package/src/utils/{private → private.vm}/vm.js +0 -0
  663. /package/src/utils/{run-sequential-promises.js → run-sequential-promises/run-sequential-promises.js} +0 -0
  664. /package/src/utils/{throttle.js → throttle/throttle.js} +0 -0
  665. /package/src/utils/{uid.js → uid/uid.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.15.2
2
+ * Quasar Framework v2.15.4
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -266,7 +266,7 @@ import { createApp } from "vue";
266
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,
@@ -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;
@@ -329,7 +328,8 @@ function getPlatform(UA) {
329
328
  } else if (browser.fxios) {
330
329
  browser.firefox = true;
331
330
  matched.browser = "firefox";
332
- } else if (browser.ipod || browser.ipad || browser.iphone) {
331
+ }
332
+ if (browser.ipod || browser.ipad || browser.iphone) {
333
333
  browser.ios = true;
334
334
  }
335
335
  if (browser.vivaldi) {
@@ -470,27 +470,33 @@ if (false) {
470
470
  }
471
471
  var Platform_default = Platform;
472
472
 
473
- // src/utils/private/define-reactive-plugin.js
474
- import { reactive as reactive2 } from "vue";
475
- var define_reactive_plugin_default = false ? (state, plugin) => {
473
+ // src/utils/private.create/create.js
474
+ import { defineComponent, markRaw, reactive as reactive2 } from "vue";
475
+ function createComponent(raw) {
476
+ return markRaw(defineComponent(raw));
477
+ }
478
+ function createDirective(raw) {
479
+ return markRaw(raw);
480
+ }
481
+ var createReactivePlugin = false ? (state, plugin) => {
476
482
  Object.assign(plugin, state);
477
483
  return plugin;
478
484
  } : (state, plugin) => {
479
485
  const reactiveState = reactive2(state);
480
- for (const name in state) {
486
+ for (const name2 in state) {
481
487
  injectProp(
482
488
  plugin,
483
- name,
484
- () => reactiveState[name],
489
+ name2,
490
+ () => reactiveState[name2],
485
491
  (val) => {
486
- reactiveState[name] = val;
492
+ reactiveState[name2] = val;
487
493
  }
488
494
  );
489
495
  }
490
496
  return plugin;
491
497
  };
492
498
 
493
- // src/utils/event.js
499
+ // src/utils/event/event.js
494
500
  var listenOpts = {
495
501
  hasPassive: false,
496
502
  passiveCapture: true,
@@ -593,19 +599,19 @@ function preventDraggable(el, status) {
593
599
  el.querySelectorAll("a, img").forEach(fn);
594
600
  }
595
601
  function addEvt(ctx, targetName, events) {
596
- const name = `__q_${targetName}_evt`;
597
- ctx[name] = ctx[name] !== void 0 ? ctx[name].concat(events) : events;
602
+ const name2 = `__q_${targetName}_evt`;
603
+ ctx[name2] = ctx[name2] !== void 0 ? ctx[name2].concat(events) : events;
598
604
  events.forEach((evt) => {
599
605
  evt[0].addEventListener(evt[1], ctx[evt[2]], listenOpts[evt[3]]);
600
606
  });
601
607
  }
602
608
  function cleanEvt(ctx, targetName) {
603
- const name = `__q_${targetName}_evt`;
604
- if (ctx[name] !== void 0) {
605
- ctx[name].forEach((evt) => {
609
+ const name2 = `__q_${targetName}_evt`;
610
+ if (ctx[name2] !== void 0) {
611
+ ctx[name2].forEach((evt) => {
606
612
  evt[0].removeEventListener(evt[1], ctx[evt[2]], listenOpts[evt[3]]);
607
613
  });
608
- ctx[name] = void 0;
614
+ ctx[name2] = void 0;
609
615
  }
610
616
  }
611
617
  var event_default = {
@@ -622,7 +628,7 @@ var event_default = {
622
628
  preventDraggable
623
629
  };
624
630
 
625
- // src/utils/debounce.js
631
+ // src/utils/debounce/debounce.js
626
632
  function debounce_default(fn, wait = 250, immediate) {
627
633
  let timer2 = null;
628
634
  function debounced() {
@@ -649,7 +655,7 @@ function debounce_default(fn, wait = 250, immediate) {
649
655
  // src/plugins/screen/Screen.js
650
656
  var SIZE_LIST = ["sm", "md", "lg", "xl"];
651
657
  var { passive } = listenOpts;
652
- var Screen_default = define_reactive_plugin_default({
658
+ var Screen_default = createReactivePlugin({
653
659
  width: 0,
654
660
  height: 0,
655
661
  name: "xs",
@@ -739,9 +745,9 @@ var Screen_default = define_reactive_plugin_default({
739
745
  };
740
746
  let updateEvt, updateSizes = {}, updateDebounce = 16;
741
747
  this.setSizes = (sizes) => {
742
- SIZE_LIST.forEach((name) => {
743
- if (sizes[name] !== void 0) {
744
- updateSizes[name] = sizes[name];
748
+ SIZE_LIST.forEach((name2) => {
749
+ if (sizes[name2] !== void 0) {
750
+ updateSizes[name2] = sizes[name2];
745
751
  }
746
752
  });
747
753
  };
@@ -751,14 +757,14 @@ var Screen_default = define_reactive_plugin_default({
751
757
  const start = () => {
752
758
  const style2 = getComputedStyle(document.body);
753
759
  if (style2.getPropertyValue("--q-size-sm")) {
754
- SIZE_LIST.forEach((name) => {
755
- this.sizes[name] = parseInt(style2.getPropertyValue(`--q-size-${name}`), 10);
760
+ SIZE_LIST.forEach((name2) => {
761
+ this.sizes[name2] = parseInt(style2.getPropertyValue(`--q-size-${name2}`), 10);
756
762
  });
757
763
  }
758
764
  this.setSizes = (sizes) => {
759
- SIZE_LIST.forEach((name) => {
760
- if (sizes[name]) {
761
- this.sizes[name] = sizes[name];
765
+ SIZE_LIST.forEach((name2) => {
766
+ if (sizes[name2]) {
767
+ this.sizes[name2] = sizes[name2];
762
768
  }
763
769
  });
764
770
  this.__update(true);
@@ -786,7 +792,7 @@ var Screen_default = define_reactive_plugin_default({
786
792
  });
787
793
 
788
794
  // src/plugins/dark/Dark.js
789
- var Plugin = define_reactive_plugin_default({
795
+ var Plugin = createReactivePlugin({
790
796
  isActive: false,
791
797
  mode: false
792
798
  }, {
@@ -844,7 +850,135 @@ var Plugin = define_reactive_plugin_default({
844
850
  });
845
851
  var Dark_default = Plugin;
846
852
 
847
- // src/history.js
853
+ // src/utils/css-var/set-css-var.js
854
+ function setCssVar(propName, value2, element = document.body) {
855
+ if (typeof propName !== "string") {
856
+ throw new TypeError("Expected a string as propName");
857
+ }
858
+ if (typeof value2 !== "string") {
859
+ throw new TypeError("Expected a string as value");
860
+ }
861
+ if (!(element instanceof Element)) {
862
+ throw new TypeError("Expected a DOM element");
863
+ }
864
+ element.style.setProperty(`--q-${propName}`, value2);
865
+ }
866
+
867
+ // src/utils/private.keyboard/key-composition.js
868
+ var lastKeyCompositionStatus = false;
869
+ function onKeyDownComposition(evt) {
870
+ lastKeyCompositionStatus = evt.isComposing === true;
871
+ }
872
+ function shouldIgnoreKey(evt) {
873
+ return lastKeyCompositionStatus === true || evt !== Object(evt) || evt.isComposing === true || evt.qKeyEvent === true;
874
+ }
875
+ function isKeyCode(evt, keyCodes4) {
876
+ return shouldIgnoreKey(evt) === true ? false : [].concat(keyCodes4).includes(evt.keyCode);
877
+ }
878
+
879
+ // src/plugins/private.body/Body.js
880
+ function getMobilePlatform(is) {
881
+ if (is.ios === true)
882
+ return "ios";
883
+ if (is.android === true)
884
+ return "android";
885
+ }
886
+ function getBodyClasses({ is, has: has2, within }, cfg) {
887
+ const cls = [
888
+ is.desktop === true ? "desktop" : "mobile",
889
+ `${has2.touch === false ? "no-" : ""}touch`
890
+ ];
891
+ if (is.mobile === true) {
892
+ const mobile = getMobilePlatform(is);
893
+ mobile !== void 0 && cls.push("platform-" + mobile);
894
+ }
895
+ if (is.nativeMobile === true) {
896
+ const type = is.nativeMobileWrapper;
897
+ cls.push(type);
898
+ cls.push("native-mobile");
899
+ if (is.ios === true && (cfg[type] === void 0 || cfg[type].iosStatusBarPadding !== false)) {
900
+ cls.push("q-ios-padding");
901
+ }
902
+ } else if (is.electron === true) {
903
+ cls.push("electron");
904
+ } else if (is.bex === true) {
905
+ cls.push("bex");
906
+ }
907
+ within.iframe === true && cls.push("within-iframe");
908
+ return cls;
909
+ }
910
+ function applyClientSsrCorrections() {
911
+ const { is } = client;
912
+ const classes = document.body.className;
913
+ const classList = new Set(classes.replace(/ {2}/g, " ").split(" "));
914
+ if (is.nativeMobile !== true && is.electron !== true && is.bex !== true) {
915
+ if (is.desktop === true) {
916
+ classList.delete("mobile");
917
+ classList.delete("platform-ios");
918
+ classList.delete("platform-android");
919
+ classList.add("desktop");
920
+ } else if (is.mobile === true) {
921
+ classList.delete("desktop");
922
+ classList.add("mobile");
923
+ classList.delete("platform-ios");
924
+ classList.delete("platform-android");
925
+ const mobile = getMobilePlatform(is);
926
+ if (mobile !== void 0) {
927
+ classList.add(`platform-${mobile}`);
928
+ }
929
+ }
930
+ }
931
+ if (client.has.touch === true) {
932
+ classList.delete("no-touch");
933
+ classList.add("touch");
934
+ }
935
+ if (client.within.iframe === true) {
936
+ classList.add("within-iframe");
937
+ }
938
+ const newCls = Array.from(classList).join(" ");
939
+ if (classes !== newCls) {
940
+ document.body.className = newCls;
941
+ }
942
+ }
943
+ function setColors(brand) {
944
+ for (const color in brand) {
945
+ setCssVar(color, brand[color]);
946
+ }
947
+ }
948
+ var Body_default = {
949
+ install(opts) {
950
+ if (false) {
951
+ const { $q, ssrContext } = opts;
952
+ const cls = getBodyClasses($q.platform, $q.config);
953
+ if ($q.config.screen !== void 0 && $q.config.screen.bodyClass === true) {
954
+ cls.push("screen--xs");
955
+ }
956
+ ssrContext._meta.bodyClasses += cls.join(" ");
957
+ const brand = $q.config.brand;
958
+ if (brand !== void 0) {
959
+ const vars = Object.keys(brand).map((key) => `--q-${key}:${brand[key]};`).join("");
960
+ ssrContext._meta.endingHeadTags += `<style>:root{${vars}}</style>`;
961
+ }
962
+ return;
963
+ }
964
+ if (this.__installed === true)
965
+ return;
966
+ if (isRuntimeSsrPreHydration.value === true) {
967
+ applyClientSsrCorrections();
968
+ } else {
969
+ const { $q } = opts;
970
+ $q.config.brand !== void 0 && setColors($q.config.brand);
971
+ const cls = getBodyClasses(client, $q.config);
972
+ document.body.classList.add.apply(document.body.classList, cls);
973
+ }
974
+ if (client.is.ios === true) {
975
+ document.body.addEventListener("touchstart", noop);
976
+ }
977
+ window.addEventListener("keydown", onKeyDownComposition, true);
978
+ }
979
+ };
980
+
981
+ // src/plugins/private.history/History.js
848
982
  var getTrue = () => true;
849
983
  function filterInvalidPath(path) {
850
984
  return typeof path === "string" && path !== "" && path !== "/" && path !== "#/";
@@ -868,7 +1002,7 @@ function getShouldExitFn(cfg) {
868
1002
  );
869
1003
  return () => exitPaths.includes(window.location.hash);
870
1004
  }
871
- var history_default = {
1005
+ var History_default = {
872
1006
  __history: [],
873
1007
  add: noop,
874
1008
  remove: noop,
@@ -930,7 +1064,7 @@ var history_default = {
930
1064
  }
931
1065
  };
932
1066
 
933
- // src/lang.js
1067
+ // src/plugins/lang/Lang.js
934
1068
  var import_en_US = __toESM(require_en_US());
935
1069
  function getLocale() {
936
1070
  if (false)
@@ -940,9 +1074,11 @@ function getLocale() {
940
1074
  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("-");
941
1075
  }
942
1076
  }
943
- var Plugin2 = define_reactive_plugin_default({
944
- __langPack: {}
1077
+ var Plugin2 = createReactivePlugin({
1078
+ __qLang: {}
945
1079
  }, {
1080
+ // props: object
1081
+ // __langConfig: object
946
1082
  getLocale,
947
1083
  set(langObject = import_en_US.default, ssrContext) {
948
1084
  const lang = {
@@ -952,7 +1088,7 @@ var Plugin2 = define_reactive_plugin_default({
952
1088
  };
953
1089
  if (false) {
954
1090
  if (ssrContext === void 0) {
955
- console.error("SSR ERROR: second param required: Quasar.lang.set(lang, ssrContext)");
1091
+ console.error("SSR ERROR: second param required: Lang.set(lang, ssrContext)");
956
1092
  return;
957
1093
  }
958
1094
  lang.set = ssrContext.$q.lang.set;
@@ -970,10 +1106,7 @@ var Plugin2 = define_reactive_plugin_default({
970
1106
  el.setAttribute("dir", lang.rtl === true ? "rtl" : "ltr");
971
1107
  el.setAttribute("lang", lang.isoName);
972
1108
  }
973
- Object.assign(Plugin2.__langPack, lang);
974
- Plugin2.props = lang;
975
- Plugin2.isoName = lang.isoName;
976
- Plugin2.nativeName = lang.nativeName;
1109
+ Object.assign(Plugin2.__qLang, lang);
977
1110
  }
978
1111
  },
979
1112
  install({ $q, lang, ssrContext }) {
@@ -984,170 +1117,49 @@ var Plugin2 = define_reactive_plugin_default({
984
1117
  this.set(langObject, ssrContext);
985
1118
  };
986
1119
  $q.lang.set(initialLang);
987
- if (this.isoName !== initialLang.isoName) {
988
- this.isoName = initialLang.isoName;
989
- this.nativeName = initialLang.nativeName;
990
- this.props = initialLang;
1120
+ if (this.props === void 0 || this.props.isoName !== initialLang.isoName) {
1121
+ this.props = { ...initialLang };
991
1122
  }
992
1123
  } else {
993
- $q.lang = Plugin2.__langPack;
1124
+ $q.lang = Plugin2.__qLang;
994
1125
  Plugin2.__langConfig = $q.config.lang;
995
1126
  if (this.__installed === true) {
996
1127
  lang !== void 0 && this.set(lang);
997
1128
  } else {
1129
+ this.props = new Proxy(this.__qLang, {
1130
+ get() {
1131
+ return Reflect.get(...arguments);
1132
+ },
1133
+ ownKeys(target2) {
1134
+ return Reflect.ownKeys(target2).filter((key) => key !== "set" && key !== "getLocale");
1135
+ }
1136
+ });
998
1137
  this.set(lang || import_en_US.default);
999
1138
  }
1000
1139
  }
1001
1140
  }
1002
1141
  });
1003
- var lang_default = Plugin2;
1004
-
1005
- // src/utils/set-css-var.js
1006
- function setCssVar(propName, value2, element = document.body) {
1007
- if (typeof propName !== "string") {
1008
- throw new TypeError("Expected a string as propName");
1009
- }
1010
- if (typeof value2 !== "string") {
1011
- throw new TypeError("Expected a string as value");
1012
- }
1013
- if (!(element instanceof Element)) {
1014
- throw new TypeError("Expected a DOM element");
1015
- }
1016
- element.style.setProperty(`--q-${propName}`, value2);
1017
- }
1018
-
1019
- // src/utils/private/key-composition.js
1020
- var lastKeyCompositionStatus = false;
1021
- function onKeyDownComposition(evt) {
1022
- lastKeyCompositionStatus = evt.isComposing === true;
1023
- }
1024
- function shouldIgnoreKey(evt) {
1025
- return lastKeyCompositionStatus === true || evt !== Object(evt) || evt.isComposing === true || evt.qKeyEvent === true;
1026
- }
1027
- function isKeyCode(evt, keyCodes4) {
1028
- return shouldIgnoreKey(evt) === true ? false : [].concat(keyCodes4).includes(evt.keyCode);
1029
- }
1030
-
1031
- // src/body.js
1032
- function getMobilePlatform(is) {
1033
- if (is.ios === true)
1034
- return "ios";
1035
- if (is.android === true)
1036
- return "android";
1037
- }
1038
- function getBodyClasses({ is, has: has2, within }, cfg) {
1039
- const cls = [
1040
- is.desktop === true ? "desktop" : "mobile",
1041
- `${has2.touch === false ? "no-" : ""}touch`
1042
- ];
1043
- if (is.mobile === true) {
1044
- const mobile = getMobilePlatform(is);
1045
- mobile !== void 0 && cls.push("platform-" + mobile);
1046
- }
1047
- if (is.nativeMobile === true) {
1048
- const type = is.nativeMobileWrapper;
1049
- cls.push(type);
1050
- cls.push("native-mobile");
1051
- if (is.ios === true && (cfg[type] === void 0 || cfg[type].iosStatusBarPadding !== false)) {
1052
- cls.push("q-ios-padding");
1053
- }
1054
- } else if (is.electron === true) {
1055
- cls.push("electron");
1056
- } else if (is.bex === true) {
1057
- cls.push("bex");
1058
- }
1059
- within.iframe === true && cls.push("within-iframe");
1060
- return cls;
1061
- }
1062
- function applyClientSsrCorrections() {
1063
- const { is } = client;
1064
- const classes = document.body.className;
1065
- const classList = new Set(classes.replace(/ {2}/g, " ").split(" "));
1066
- if (is.nativeMobile !== true && is.electron !== true && is.bex !== true) {
1067
- if (is.desktop === true) {
1068
- classList.delete("mobile");
1069
- classList.delete("platform-ios");
1070
- classList.delete("platform-android");
1071
- classList.add("desktop");
1072
- } else if (is.mobile === true) {
1073
- classList.delete("desktop");
1074
- classList.add("mobile");
1075
- classList.delete("platform-ios");
1076
- classList.delete("platform-android");
1077
- const mobile = getMobilePlatform(is);
1078
- if (mobile !== void 0) {
1079
- classList.add(`platform-${mobile}`);
1080
- }
1081
- }
1082
- }
1083
- if (client.has.touch === true) {
1084
- classList.delete("no-touch");
1085
- classList.add("touch");
1086
- }
1087
- if (client.within.iframe === true) {
1088
- classList.add("within-iframe");
1089
- }
1090
- const newCls = Array.from(classList).join(" ");
1091
- if (classes !== newCls) {
1092
- document.body.className = newCls;
1093
- }
1094
- }
1095
- function setColors(brand) {
1096
- for (const color in brand) {
1097
- setCssVar(color, brand[color]);
1098
- }
1099
- }
1100
- var body_default = {
1101
- install(opts) {
1102
- if (false) {
1103
- const { $q, ssrContext } = opts;
1104
- const cls = getBodyClasses($q.platform, $q.config);
1105
- if ($q.config.screen !== void 0 && $q.config.screen.bodyClass === true) {
1106
- cls.push("screen--xs");
1107
- }
1108
- ssrContext._meta.bodyClasses += cls.join(" ");
1109
- const brand = $q.config.brand;
1110
- if (brand !== void 0) {
1111
- const vars = Object.keys(brand).map((key) => `--q-${key}:${brand[key]};`).join("");
1112
- ssrContext._meta.endingHeadTags += `<style>:root{${vars}}</style>`;
1113
- }
1114
- return;
1115
- }
1116
- if (this.__installed === true)
1117
- return;
1118
- if (isRuntimeSsrPreHydration.value === true) {
1119
- applyClientSsrCorrections();
1120
- } else {
1121
- const { $q } = opts;
1122
- $q.config.brand !== void 0 && setColors($q.config.brand);
1123
- const cls = getBodyClasses(client, $q.config);
1124
- document.body.classList.add.apply(document.body.classList, cls);
1125
- }
1126
- if (client.is.ios === true) {
1127
- document.body.addEventListener("touchstart", noop);
1128
- }
1129
- window.addEventListener("keydown", onKeyDownComposition, true);
1130
- }
1131
- };
1142
+ var Lang_default = Plugin2;
1132
1143
 
1133
- // src/icon-set.js
1144
+ // src/plugins/icon-set/IconSet.js
1134
1145
  var import_material_icons = __toESM(require_material_icons());
1135
- var Plugin3 = define_reactive_plugin_default({
1146
+ var Plugin3 = createReactivePlugin({
1136
1147
  iconMapFn: null,
1137
- __icons: {}
1148
+ __qIconSet: {}
1138
1149
  }, {
1150
+ // props: object
1139
1151
  set(setObject, ssrContext) {
1140
- const def = { ...setObject, rtl: setObject.rtl === true };
1152
+ const def = { ...setObject };
1141
1153
  if (false) {
1142
1154
  if (ssrContext === void 0) {
1143
- console.error("SSR ERROR: second param required: Quasar.iconSet.set(iconSet, ssrContext)");
1155
+ console.error("SSR ERROR: second param required: IconSet.set(iconSet, ssrContext)");
1144
1156
  return;
1145
1157
  }
1146
1158
  def.set = ssrContext.$q.iconSet.set;
1147
1159
  Object.assign(ssrContext.$q.iconSet, def);
1148
1160
  } else {
1149
1161
  def.set = Plugin3.set;
1150
- Object.assign(Plugin3.__icons, def);
1162
+ Object.assign(Plugin3.__qIconSet, def);
1151
1163
  }
1152
1164
  },
1153
1165
  install({ $q, iconSet, ssrContext }) {
@@ -1159,25 +1171,36 @@ var Plugin3 = define_reactive_plugin_default({
1159
1171
  this.set(setObject, ssrContext);
1160
1172
  };
1161
1173
  $q.iconSet.set(initialSet);
1174
+ if (this.props === void 0 || this.props.name !== initialSet.name) {
1175
+ this.props = { ...initialSet };
1176
+ }
1162
1177
  } else {
1163
1178
  if ($q.config.iconMapFn !== void 0) {
1164
1179
  this.iconMapFn = $q.config.iconMapFn;
1165
1180
  }
1166
- $q.iconSet = this.__icons;
1181
+ $q.iconSet = this.__qIconSet;
1167
1182
  injectProp($q, "iconMapFn", () => this.iconMapFn, (val) => {
1168
1183
  this.iconMapFn = val;
1169
1184
  });
1170
1185
  if (this.__installed === true) {
1171
1186
  iconSet !== void 0 && this.set(iconSet);
1172
1187
  } else {
1188
+ this.props = new Proxy(this.__qIconSet, {
1189
+ get() {
1190
+ return Reflect.get(...arguments);
1191
+ },
1192
+ ownKeys(target2) {
1193
+ return Reflect.ownKeys(target2).filter((key) => key !== "set");
1194
+ }
1195
+ });
1173
1196
  this.set(iconSet || import_material_icons.default);
1174
1197
  }
1175
1198
  }
1176
1199
  }
1177
1200
  });
1178
- var icon_set_default = Plugin3;
1201
+ var IconSet_default = Plugin3;
1179
1202
 
1180
- // src/utils/private/symbols.js
1203
+ // src/utils/private.symbols/symbols.js
1181
1204
  var quasarKey = "_q_";
1182
1205
  var timelineKey = "_q_t_";
1183
1206
  var stepperKey = "_q_s_";
@@ -1187,17 +1210,17 @@ var fabKey = "_q_f_";
1187
1210
  var formKey = "_q_fo_";
1188
1211
  var tabsKey = "_q_tabs_";
1189
1212
  var uploaderKey = "_q_u_";
1190
- var emptyRenderFn = () => {
1191
- };
1213
+ function emptyRenderFn() {
1214
+ }
1192
1215
 
1193
- // src/utils/private/global-config.js
1216
+ // src/utils/private.global/global-config.js
1194
1217
  var globalConfig = {};
1195
1218
  var globalConfigIsFrozen = false;
1196
1219
  function freezeGlobalConfig() {
1197
1220
  globalConfigIsFrozen = true;
1198
1221
  }
1199
1222
 
1200
- // src/utils/is.js
1223
+ // src/utils/is/is.js
1201
1224
  function isDeepEqual(a, b) {
1202
1225
  if (a === b) {
1203
1226
  return true;
@@ -1314,12 +1337,12 @@ var is_default = {
1314
1337
  // src/install-quasar.js
1315
1338
  var autoInstalledPlugins = [
1316
1339
  Platform_default,
1317
- body_default,
1340
+ Body_default,
1318
1341
  Dark_default,
1319
1342
  Screen_default,
1320
- history_default,
1321
- lang_default,
1322
- icon_set_default
1343
+ History_default,
1344
+ Lang_default,
1345
+ IconSet_default
1323
1346
  ];
1324
1347
  function createChildApp(appCfg, parentApp) {
1325
1348
  const app2 = createApp(appCfg);
@@ -1366,7 +1389,7 @@ function prepareApp(app2, uiOpts, pluginOpts) {
1366
1389
  }
1367
1390
  var install_quasar_default = false ? function(parentApp, opts = {}, ssrContext) {
1368
1391
  const $q = {
1369
- version: "2.15.2",
1392
+ version: "2.15.4",
1370
1393
  config: opts.config || {}
1371
1394
  };
1372
1395
  Object.assign(ssrContext, {
@@ -1396,7 +1419,7 @@ var install_quasar_default = false ? function(parentApp, opts = {}, ssrContext)
1396
1419
  ssrContext
1397
1420
  });
1398
1421
  } : function(parentApp, opts = {}) {
1399
- const $q = { version: "2.15.2" };
1422
+ const $q = { version: "2.15.4" };
1400
1423
  if (globalConfigIsFrozen === false) {
1401
1424
  if (opts.config !== void 0) {
1402
1425
  Object.assign(globalConfig, opts.config);
@@ -1418,20 +1441,15 @@ var install_quasar_default = false ? function(parentApp, opts = {}, ssrContext)
1418
1441
  // src/components/ajax-bar/QAjaxBar.js
1419
1442
  import { h, ref as ref2, computed, onMounted, onBeforeUnmount, getCurrentInstance } from "vue";
1420
1443
 
1421
- // src/utils/private/create.js
1422
- import { defineComponent, markRaw } from "vue";
1423
- var createComponent = (raw) => markRaw(defineComponent(raw));
1424
- var createDirective = (raw) => markRaw(raw);
1425
-
1426
- // src/utils/format.js
1444
+ // src/utils/format/format.js
1427
1445
  var units = ["B", "KB", "MB", "GB", "TB", "PB"];
1428
- function humanStorageSize(bytes) {
1446
+ function humanStorageSize(bytes, decimals = 1) {
1429
1447
  let u = 0;
1430
1448
  while (parseInt(bytes, 10) >= 1024 && u < units.length - 1) {
1431
1449
  bytes /= 1024;
1432
1450
  ++u;
1433
1451
  }
1434
- return `${bytes.toFixed(1)}${units[u]}`;
1452
+ return `${bytes.toFixed(decimals)}${units[u]}`;
1435
1453
  }
1436
1454
  function capitalize(str) {
1437
1455
  return str.charAt(0).toUpperCase() + str.slice(1);
@@ -1684,7 +1702,7 @@ import { h as h4, computed as computed4 } from "vue";
1684
1702
  // src/components/icon/QIcon.js
1685
1703
  import { h as h3, computed as computed3, getCurrentInstance as getCurrentInstance2 } from "vue";
1686
1704
 
1687
- // src/composables/private/use-size.js
1705
+ // src/composables/private.use-size/use-size.js
1688
1706
  import { computed as computed2 } from "vue";
1689
1707
  var useSizeDefaults = {
1690
1708
  xs: 18,
@@ -1700,7 +1718,7 @@ function use_size_default(props4, sizes = useSizeDefaults) {
1700
1718
  return computed2(() => props4.size !== void 0 ? { fontSize: props4.size in sizes ? `${sizes[props4.size]}px` : props4.size } : null);
1701
1719
  }
1702
1720
 
1703
- // src/utils/private/render.js
1721
+ // src/utils/private.render/render.js
1704
1722
  import { h as h2, withDirectives } from "vue";
1705
1723
  function hSlot(slot, otherwise) {
1706
1724
  return slot !== void 0 ? slot() || otherwise : otherwise;
@@ -1973,7 +1991,7 @@ var QBadge_default = createComponent({
1973
1991
  // src/components/banner/QBanner.js
1974
1992
  import { h as h6, computed as computed7, getCurrentInstance as getCurrentInstance3 } from "vue";
1975
1993
 
1976
- // src/composables/private/use-dark.js
1994
+ // src/composables/private.use-dark/use-dark.js
1977
1995
  import { computed as computed6 } from "vue";
1978
1996
  var useDarkProps = {
1979
1997
  dark: {
@@ -2048,7 +2066,7 @@ var QBar_default = createComponent({
2048
2066
  // src/components/breadcrumbs/QBreadcrumbs.js
2049
2067
  import { h as h8, computed as computed10 } from "vue";
2050
2068
 
2051
- // src/composables/private/use-align.js
2069
+ // src/composables/private.use-align/use-align.js
2052
2070
  import { computed as computed9 } from "vue";
2053
2071
  var alignMap = {
2054
2072
  left: "start",
@@ -2073,7 +2091,7 @@ function use_align_default(props4) {
2073
2091
  });
2074
2092
  }
2075
2093
 
2076
- // src/utils/private/vm.js
2094
+ // src/utils/private.vm/vm.js
2077
2095
  function getParentProxy(proxy) {
2078
2096
  if (Object(proxy.$parent) === proxy.$parent) {
2079
2097
  return proxy.$parent;
@@ -2140,6 +2158,8 @@ var QBreadcrumbs_default = createComponent({
2140
2158
  const sepClass = computed10(() => props4.separatorColor ? ` text-${props4.separatorColor}` : "");
2141
2159
  const activeClass = computed10(() => ` text-${props4.activeColor}`);
2142
2160
  return () => {
2161
+ if (slots.default === void 0)
2162
+ return;
2143
2163
  const vnodes = getNormalizedVNodes(
2144
2164
  hSlot(slots.default)
2145
2165
  );
@@ -2181,7 +2201,7 @@ var QBreadcrumbs_default = createComponent({
2181
2201
  // src/components/breadcrumbs/QBreadcrumbsEl.js
2182
2202
  import { h as h9, computed as computed12 } from "vue";
2183
2203
 
2184
- // src/composables/private/use-router-link.js
2204
+ // src/composables/private.use-router-link/use-router-link.js
2185
2205
  import { computed as computed11, getCurrentInstance as getCurrentInstance5 } from "vue";
2186
2206
  function getOriginalPath(record) {
2187
2207
  return record ? record.aliasOf ? record.aliasOf.path : record.path : "";
@@ -2441,7 +2461,7 @@ var QSpinner_default = createComponent({
2441
2461
  }
2442
2462
  });
2443
2463
 
2444
- // src/utils/dom.js
2464
+ // src/utils/dom/dom.js
2445
2465
  import { unref } from "vue";
2446
2466
  function offset(el) {
2447
2467
  if (el === window) {
@@ -2514,7 +2534,7 @@ var dom_default = {
2514
2534
  ready
2515
2535
  };
2516
2536
 
2517
- // src/utils/throttle.js
2537
+ // src/utils/throttle/throttle.js
2518
2538
  function throttle_default(fn, limit = 250) {
2519
2539
  let wait = false, result;
2520
2540
  return function() {
@@ -2654,7 +2674,7 @@ var defaultSizes = {
2654
2674
  var formTypes = ["button", "submit", "reset"];
2655
2675
  var mediaTypeRE = /[^\s]\/[^\s]/;
2656
2676
  var btnDesignOptions = ["flat", "outline", "push", "unelevated"];
2657
- var getBtnDesign = (props4, defaultValue) => {
2677
+ function getBtnDesign(props4, defaultValue) {
2658
2678
  if (props4.flat === true)
2659
2679
  return "flat";
2660
2680
  if (props4.outline === true)
@@ -2664,11 +2684,11 @@ var getBtnDesign = (props4, defaultValue) => {
2664
2684
  if (props4.unelevated === true)
2665
2685
  return "unelevated";
2666
2686
  return defaultValue;
2667
- };
2668
- var getBtnDesignAttr = (props4) => {
2687
+ }
2688
+ function getBtnDesignAttr(props4) {
2669
2689
  const design = getBtnDesign(props4);
2670
2690
  return design !== void 0 ? { [design]: true } : {};
2671
- };
2691
+ }
2672
2692
  var useBtnProps = {
2673
2693
  ...useSizeProps,
2674
2694
  ...useRouterLinkProps,
@@ -2990,7 +3010,13 @@ var QBtn_default = createComponent({
2990
3010
  onBeforeUnmount2(() => {
2991
3011
  cleanup(true);
2992
3012
  });
2993
- Object.assign(proxy, { click: onClick });
3013
+ Object.assign(proxy, {
3014
+ click: (e) => {
3015
+ if (isActionable.value === true) {
3016
+ onClick(e);
3017
+ }
3018
+ }
3019
+ });
2994
3020
  return () => {
2995
3021
  let inner = [];
2996
3022
  props4.icon !== void 0 && inner.push(
@@ -3095,10 +3121,10 @@ var QBtnGroup_default = createComponent({
3095
3121
  // src/components/menu/QMenu.js
3096
3122
  import { h as h14, ref as ref7, computed as computed18, watch as watch4, Transition as Transition2, onBeforeUnmount as onBeforeUnmount7, getCurrentInstance as getCurrentInstance11 } from "vue";
3097
3123
 
3098
- // src/composables/private/use-anchor.js
3124
+ // src/composables/private.use-anchor/use-anchor.js
3099
3125
  import { ref as ref4, watch, onMounted as onMounted2, onBeforeUnmount as onBeforeUnmount3, nextTick, getCurrentInstance as getCurrentInstance7 } from "vue";
3100
3126
 
3101
- // src/utils/private/selection.js
3127
+ // src/utils/private.selection/selection.js
3102
3128
  function clearSelection() {
3103
3129
  if (window.getSelection !== void 0) {
3104
3130
  const selection = window.getSelection();
@@ -3113,7 +3139,7 @@ function clearSelection() {
3113
3139
  }
3114
3140
  }
3115
3141
 
3116
- // src/composables/private/use-anchor.js
3142
+ // src/composables/private.use-anchor/use-anchor.js
3117
3143
  var useAnchorProps = {
3118
3144
  target: {
3119
3145
  default: true
@@ -3282,7 +3308,7 @@ function use_anchor_default({
3282
3308
  };
3283
3309
  }
3284
3310
 
3285
- // src/composables/private/use-scroll-target.js
3311
+ // src/composables/private.use-scroll-target/use-scroll-target.js
3286
3312
  import { ref as ref5, watch as watch2, onBeforeUnmount as onBeforeUnmount4 } from "vue";
3287
3313
  function use_scroll_target_default(props4, configureScrollTarget) {
3288
3314
  const localScrollTarget = ref5(null);
@@ -3316,7 +3342,7 @@ function use_scroll_target_default(props4, configureScrollTarget) {
3316
3342
  };
3317
3343
  }
3318
3344
 
3319
- // src/composables/private/use-model-toggle.js
3345
+ // src/composables/private.use-model-toggle/use-model-toggle.js
3320
3346
  import { watch as watch3, nextTick as nextTick2, onMounted as onMounted3, getCurrentInstance as getCurrentInstance8 } from "vue";
3321
3347
  var useModelToggleProps = {
3322
3348
  modelValue: {
@@ -3440,10 +3466,10 @@ function use_model_toggle_default({
3440
3466
  return publicMethods;
3441
3467
  }
3442
3468
 
3443
- // src/composables/private/use-portal.js
3469
+ // src/composables/private.use-portal/use-portal.js
3444
3470
  import { h as h13, ref as ref6, onUnmounted, Teleport } from "vue";
3445
3471
 
3446
- // src/utils/private/focus-manager.js
3472
+ // src/utils/private.focus/focus-manager.js
3447
3473
  var queue = [];
3448
3474
  var waitFlags = [];
3449
3475
  function clearFlag(flag) {
@@ -3471,7 +3497,7 @@ function removeFocusFn(fn) {
3471
3497
  queue = queue.filter((entry) => entry !== fn);
3472
3498
  }
3473
3499
 
3474
- // src/utils/private/global-nodes.js
3500
+ // src/utils/private.global/global-nodes.js
3475
3501
  var nodesList = [];
3476
3502
  var portalTypeList = [];
3477
3503
  var portalIndex = 1;
@@ -3518,7 +3544,7 @@ function changeGlobalNodesTarget(newTarget) {
3518
3544
  }
3519
3545
  }
3520
3546
 
3521
- // src/utils/private/portal.js
3547
+ // src/utils/private.portal/portal.js
3522
3548
  var portalProxyList = [];
3523
3549
  function getPortalProxy(el) {
3524
3550
  return portalProxyList.find(
@@ -3558,7 +3584,7 @@ function closePortals(proxy, evt, depth) {
3558
3584
  }
3559
3585
  }
3560
3586
 
3561
- // src/composables/private/use-portal.js
3587
+ // src/composables/private.use-portal/use-portal.js
3562
3588
  var QPortal = createComponent({
3563
3589
  name: "QPortal",
3564
3590
  setup(_, { slots }) {
@@ -3638,7 +3664,7 @@ function use_portal_default(vm2, innerRef, renderPortalContent, type) {
3638
3664
  };
3639
3665
  }
3640
3666
 
3641
- // src/composables/private/use-transition.js
3667
+ // src/composables/private.use-transition/use-transition.js
3642
3668
  import { computed as computed17 } from "vue";
3643
3669
  var useTransitionProps = {
3644
3670
  transitionShow: {
@@ -3675,7 +3701,7 @@ function use_transition_default(props4, defaultShowFn = () => {
3675
3701
  };
3676
3702
  }
3677
3703
 
3678
- // src/composables/use-tick.js
3704
+ // src/composables/use-tick/use-tick.js
3679
3705
  import { nextTick as nextTick3, onDeactivated, onBeforeUnmount as onBeforeUnmount5, getCurrentInstance as getCurrentInstance9 } from "vue";
3680
3706
  function use_tick_default() {
3681
3707
  let tickFn;
@@ -3699,7 +3725,7 @@ function use_tick_default() {
3699
3725
  };
3700
3726
  }
3701
3727
 
3702
- // src/composables/use-timeout.js
3728
+ // src/composables/use-timeout/use-timeout.js
3703
3729
  import { onDeactivated as onDeactivated2, onBeforeUnmount as onBeforeUnmount6, getCurrentInstance as getCurrentInstance10 } from "vue";
3704
3730
  function use_timeout_default() {
3705
3731
  let timer2 = null;
@@ -3726,7 +3752,7 @@ function use_timeout_default() {
3726
3752
  };
3727
3753
  }
3728
3754
 
3729
- // src/utils/scroll.js
3755
+ // src/utils/scroll/scroll.js
3730
3756
  var scrollTargets = false ? [] : [null, document, document.body, document.scrollingElement, document.documentElement];
3731
3757
  function getScrollTarget(el, targetEl) {
3732
3758
  let target2 = getElement(targetEl);
@@ -3865,7 +3891,7 @@ var scroll_default = {
3865
3891
  hasScrollbar
3866
3892
  };
3867
3893
 
3868
- // src/utils/private/escape-key.js
3894
+ // src/utils/private.keyboard/escape-key.js
3869
3895
  var handlers = [];
3870
3896
  var escDown;
3871
3897
  function onKeydown(evt) {
@@ -3908,7 +3934,7 @@ function removeEscapeKey(fn) {
3908
3934
  }
3909
3935
  }
3910
3936
 
3911
- // src/utils/private/focusout.js
3937
+ // src/utils/private.focus/focusout.js
3912
3938
  var handlers2 = [];
3913
3939
  function trigger(e) {
3914
3940
  handlers2[handlers2.length - 1](e);
@@ -3931,7 +3957,7 @@ function removeFocusout(fn) {
3931
3957
  }
3932
3958
  }
3933
3959
 
3934
- // src/utils/private/click-outside.js
3960
+ // src/utils/private.click-outside/click-outside.js
3935
3961
  var timer = null;
3936
3962
  var { notPassiveCapture } = listenOpts;
3937
3963
  var registeredList = [];
@@ -3991,7 +4017,7 @@ function removeClickOutside(clickOutsideProps) {
3991
4017
  }
3992
4018
  }
3993
4019
 
3994
- // src/utils/private/position-engine.js
4020
+ // src/utils/private.position-engine/position-engine.js
3995
4021
  var vpLeft;
3996
4022
  var vpTop;
3997
4023
  function validatePosition(pos) {
@@ -4491,10 +4517,10 @@ var QMenu_default = createComponent({
4491
4517
  }
4492
4518
  });
4493
4519
 
4494
- // src/composables/use-id.js
4520
+ // src/composables/use-id/use-id.js
4495
4521
  import { ref as ref8, computed as computed19, watch as watch5, onMounted as onMounted4 } from "vue";
4496
4522
 
4497
- // src/utils/uid.js
4523
+ // src/utils/uid/uid.js
4498
4524
  var buf;
4499
4525
  var bufIdx = 0;
4500
4526
  var hexBytes = new Array(256);
@@ -4535,7 +4561,7 @@ function uid_default() {
4535
4561
  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]];
4536
4562
  }
4537
4563
 
4538
- // src/composables/use-id.js
4564
+ // src/composables/use-id/use-id.js
4539
4565
  function parseValue(val) {
4540
4566
  return val === void 0 || val === null ? null : val;
4541
4567
  }
@@ -4562,16 +4588,15 @@ function use_id_default({ getValue, required = true } = {}) {
4562
4588
 
4563
4589
  // src/components/btn-dropdown/QBtnDropdown.js
4564
4590
  var btnPropsList = Object.keys(useBtnProps);
4565
- var passBtnProps = (props4) => btnPropsList.reduce(
4566
- (acc, key) => {
4591
+ function passBtnProps(props4) {
4592
+ return btnPropsList.reduce((acc, key) => {
4567
4593
  const val = props4[key];
4568
4594
  if (val !== void 0) {
4569
4595
  acc[key] = val;
4570
4596
  }
4571
4597
  return acc;
4572
- },
4573
- {}
4574
- );
4598
+ }, {});
4599
+ }
4575
4600
  var QBtnDropdown_default = createComponent({
4576
4601
  name: "QBtnDropdown",
4577
4602
  props: {
@@ -4753,7 +4778,7 @@ var QBtnDropdown_default = createComponent({
4753
4778
  // src/components/btn-toggle/QBtnToggle.js
4754
4779
  import { h as h17, computed as computed22 } from "vue";
4755
4780
 
4756
- // src/composables/private/use-form.js
4781
+ // src/composables/use-form/private.use-form.js
4757
4782
  import { h as h16, computed as computed21 } from "vue";
4758
4783
  var useFormProps = {
4759
4784
  name: String
@@ -4968,10 +4993,10 @@ var QCardActions_default = createComponent({
4968
4993
  // src/components/carousel/QCarousel.js
4969
4994
  import { h as h22, computed as computed27, watch as watch9, onMounted as onMounted7, onBeforeUnmount as onBeforeUnmount9, getCurrentInstance as getCurrentInstance16 } from "vue";
4970
4995
 
4971
- // src/composables/private/use-panel.js
4996
+ // src/composables/private.use-panel/use-panel.js
4972
4997
  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";
4973
4998
 
4974
- // src/utils/private/touch.js
4999
+ // src/utils/private.touch/touch.js
4975
5000
  var modifiersAll = {
4976
5001
  left: true,
4977
5002
  right: true,
@@ -5191,7 +5216,7 @@ var TouchSwipe_default = createDirective(
5191
5216
  }
5192
5217
  );
5193
5218
 
5194
- // src/composables/use-render-cache.js
5219
+ // src/composables/use-render-cache/use-render-cache.js
5195
5220
  function use_render_cache_default() {
5196
5221
  let cache = /* @__PURE__ */ Object.create(null);
5197
5222
  return {
@@ -5200,19 +5225,19 @@ function use_render_cache_default() {
5200
5225
  cache[key] = obj;
5201
5226
  },
5202
5227
  hasCache(key) {
5203
- return cache.hasOwnProperty(key);
5228
+ return Object.hasOwnProperty.call(cache, key);
5204
5229
  },
5205
5230
  clearCache(key) {
5206
5231
  if (key !== void 0) {
5207
5232
  delete cache[key];
5208
5233
  } else {
5209
- cache = {};
5234
+ cache = /* @__PURE__ */ Object.create(null);
5210
5235
  }
5211
5236
  }
5212
5237
  };
5213
5238
  }
5214
5239
 
5215
- // src/composables/private/use-panel.js
5240
+ // src/composables/private.use-panel/use-panel.js
5216
5241
  var usePanelChildProps = {
5217
5242
  name: { required: true },
5218
5243
  disable: Boolean
@@ -5306,15 +5331,15 @@ function use_panel_default() {
5306
5331
  function previousPanel() {
5307
5332
  goToPanelByOffset(-1);
5308
5333
  }
5309
- function goToPanel(name) {
5310
- emit("update:modelValue", name);
5334
+ function goToPanel(name2) {
5335
+ emit("update:modelValue", name2);
5311
5336
  }
5312
- function isValidPanelName(name) {
5313
- return name !== void 0 && name !== null && name !== "";
5337
+ function isValidPanelName(name2) {
5338
+ return name2 !== void 0 && name2 !== null && name2 !== "";
5314
5339
  }
5315
- function getPanelIndex(name) {
5340
+ function getPanelIndex(name2) {
5316
5341
  return panels.findIndex((panel) => {
5317
- return panel.props.name === name && panel.props.disable !== "" && panel.props.disable !== true;
5342
+ return panel.props.name === name2 && panel.props.disable !== "" && panel.props.disable !== true;
5318
5343
  });
5319
5344
  }
5320
5345
  function getEnabledPanels() {
@@ -5413,7 +5438,7 @@ function use_panel_default() {
5413
5438
  };
5414
5439
  }
5415
5440
 
5416
- // src/composables/private/use-fullscreen.js
5441
+ // src/composables/private.use-fullscreen/use-fullscreen.js
5417
5442
  import { ref as ref11, watch as watch8, onBeforeMount, onMounted as onMounted6, onBeforeUnmount as onBeforeUnmount8, getCurrentInstance as getCurrentInstance15 } from "vue";
5418
5443
  var counter = 0;
5419
5444
  var useFullscreenProps = {
@@ -5460,14 +5485,14 @@ function use_fullscreen_default() {
5460
5485
  historyEntry = {
5461
5486
  handler: exitFullscreen
5462
5487
  };
5463
- history_default.add(historyEntry);
5488
+ History_default.add(historyEntry);
5464
5489
  }
5465
5490
  function exitFullscreen() {
5466
5491
  if (inFullscreen.value !== true) {
5467
5492
  return;
5468
5493
  }
5469
5494
  if (historyEntry !== void 0) {
5470
- history_default.remove(historyEntry);
5495
+ History_default.remove(historyEntry);
5471
5496
  historyEntry = void 0;
5472
5497
  }
5473
5498
  container.replaceChild(proxy.$el, fullscreenFillerNode);
@@ -5636,12 +5661,12 @@ var QCarousel_default = createComponent({
5636
5661
  const maxIndex = panelsLen - 1;
5637
5662
  node.push(
5638
5663
  getNavigationContainer("buttons", (panel, index) => {
5639
- const name = panel.props.name;
5664
+ const name2 = panel.props.name;
5640
5665
  const active = panelIndex.value === index;
5641
5666
  return fn({
5642
5667
  index,
5643
5668
  maxIndex,
5644
- name,
5669
+ name: name2,
5645
5670
  active,
5646
5671
  btnProps: {
5647
5672
  icon: active === true ? navActiveIcon.value : navIcon.value,
@@ -5649,7 +5674,7 @@ var QCarousel_default = createComponent({
5649
5674
  ...controlProps.value
5650
5675
  },
5651
5676
  onClick: () => {
5652
- goToPanel(name);
5677
+ goToPanel(name2);
5653
5678
  }
5654
5679
  });
5655
5680
  })
@@ -5902,7 +5927,7 @@ import { h as h28, computed as computed33 } from "vue";
5902
5927
  // src/components/checkbox/use-checkbox.js
5903
5928
  import { h as h27, ref as ref13, computed as computed32, getCurrentInstance as getCurrentInstance17, toRaw } from "vue";
5904
5929
 
5905
- // src/composables/private/use-refocus-target.js
5930
+ // src/composables/private.use-refocus-target/use-refocus-target.js
5906
5931
  import { h as h26, computed as computed31, ref as ref12 } from "vue";
5907
5932
  function use_refocus_target_default(props4, rootRef) {
5908
5933
  const refocusRef = ref12(null);
@@ -5932,7 +5957,7 @@ function use_refocus_target_default(props4, rootRef) {
5932
5957
  };
5933
5958
  }
5934
5959
 
5935
- // src/utils/private/option-sizes.js
5960
+ // src/utils/private.option-sizes/option-sizes.js
5936
5961
  var option_sizes_default = {
5937
5962
  xs: 30,
5938
5963
  sm: 35,
@@ -6291,7 +6316,7 @@ var QChip_default = createComponent({
6291
6316
  // src/components/circular-progress/QCircularProgress.js
6292
6317
  import { h as h30, computed as computed35, getCurrentInstance as getCurrentInstance19 } from "vue";
6293
6318
 
6294
- // src/components/circular-progress/use-circular-progress.js
6319
+ // src/components/circular-progress/circular-progress.js
6295
6320
  var useCircularCommonProps = {
6296
6321
  ...useSizeProps,
6297
6322
  min: {
@@ -6861,12 +6886,12 @@ function use_slider_default({ updateValue: updateValue2, updatePosition, getDrag
6861
6886
  const classes = computed36(
6862
6887
  () => `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 : "")
6863
6888
  );
6864
- function getPositionClass(name) {
6865
- const cls = "q-slider__" + name;
6889
+ function getPositionClass(name2) {
6890
+ const cls = "q-slider__" + name2;
6866
6891
  return `${cls} ${cls}${axis.value} ${cls}${axis.value}${labelSide.value}`;
6867
6892
  }
6868
- function getAxisClass(name) {
6869
- const cls = "q-slider__" + name;
6893
+ function getAxisClass(name2) {
6894
+ const cls = "q-slider__" + name2;
6870
6895
  return `${cls} ${cls}${axis.value}`;
6871
6896
  }
6872
6897
  const selectionBarClass = computed36(() => {
@@ -7358,7 +7383,7 @@ import { h as h34, ref as ref17, computed as computed38, watch as watch11, onBef
7358
7383
  // src/components/resize-observer/QResizeObserver.js
7359
7384
  import { h as h33, onMounted as onMounted9, onBeforeUnmount as onBeforeUnmount11, getCurrentInstance as getCurrentInstance22, nextTick as nextTick5 } from "vue";
7360
7385
 
7361
- // src/composables/use-hydration.js
7386
+ // src/composables/use-hydration/use-hydration.js
7362
7387
  import { ref as ref16, onMounted as onMounted8 } from "vue";
7363
7388
  function use_hydration_default() {
7364
7389
  const isHydrated = ref16(!isRuntimeSsrPreHydration.value);
@@ -7487,7 +7512,7 @@ var QResizeObserver_default = createComponent({
7487
7512
  }
7488
7513
  });
7489
7514
 
7490
- // src/utils/private/rtl.js
7515
+ // src/utils/private.rtl/rtl.js
7491
7516
  var rtlHasScrollBug = false;
7492
7517
  if (!__QUASAR_SSR__) {
7493
7518
  const scroller = document.createElement("div");
@@ -7603,18 +7628,18 @@ var QTabs_default = createComponent({
7603
7628
  const isRTL = computed38(() => props4.vertical !== true && $q.lang.rtl === true);
7604
7629
  const rtlPosCorrection = computed38(() => rtlHasScrollBug === false && isRTL.value === true);
7605
7630
  watch11(isRTL, updateArrows);
7606
- watch11(() => props4.modelValue, (name) => {
7607
- updateModel2({ name, setCurrent: true, skipEmit: true });
7631
+ watch11(() => props4.modelValue, (name2) => {
7632
+ updateModel2({ name: name2, setCurrent: true, skipEmit: true });
7608
7633
  });
7609
7634
  watch11(() => props4.outsideArrows, recalculateScroll);
7610
- function updateModel2({ name, setCurrent, skipEmit }) {
7611
- if (currentModel.value !== name) {
7635
+ function updateModel2({ name: name2, setCurrent, skipEmit }) {
7636
+ if (currentModel.value !== name2) {
7612
7637
  if (skipEmit !== true && props4["onUpdate:modelValue"] !== void 0) {
7613
- emit("update:modelValue", name);
7638
+ emit("update:modelValue", name2);
7614
7639
  }
7615
7640
  if (setCurrent === true || props4["onUpdate:modelValue"] === void 0) {
7616
- animate(currentModel.value, name);
7617
- currentModel.value = name;
7641
+ animate(currentModel.value, name2);
7642
+ currentModel.value = name2;
7618
7643
  }
7619
7644
  }
7620
7645
  }
@@ -7777,7 +7802,7 @@ var QTabs_default = createComponent({
7777
7802
  return true;
7778
7803
  }
7779
7804
  function updateActiveRoute() {
7780
- let name = null, bestScore = { matchedLen: 0, queryDiff: 9999, hrefLen: 0 };
7805
+ let name2 = null, bestScore = { matchedLen: 0, queryDiff: 9999, hrefLen: 0 };
7781
7806
  const list = tabDataList.filter((tab) => tab.routeData !== void 0 && tab.routeData.hasRouterLink.value === true);
7782
7807
  const { hash: currentHash, query: currentQuery } = proxy.$route;
7783
7808
  const currentQueryLen = Object.keys(currentQuery).length;
@@ -7795,7 +7820,7 @@ var QTabs_default = createComponent({
7795
7820
  if (queryLen !== currentQueryLen || hasQueryIncluded(currentQuery, query) === false) {
7796
7821
  continue;
7797
7822
  }
7798
- name = tab.name.value;
7823
+ name2 = tab.name.value;
7799
7824
  break;
7800
7825
  }
7801
7826
  if (hash !== "" && hash !== currentHash) {
@@ -7810,27 +7835,27 @@ var QTabs_default = createComponent({
7810
7835
  hrefLen: href2.length - hash.length
7811
7836
  };
7812
7837
  if (newScore.matchedLen > bestScore.matchedLen) {
7813
- name = tab.name.value;
7838
+ name2 = tab.name.value;
7814
7839
  bestScore = newScore;
7815
7840
  continue;
7816
7841
  } else if (newScore.matchedLen !== bestScore.matchedLen) {
7817
7842
  continue;
7818
7843
  }
7819
7844
  if (newScore.queryDiff < bestScore.queryDiff) {
7820
- name = tab.name.value;
7845
+ name2 = tab.name.value;
7821
7846
  bestScore = newScore;
7822
7847
  } else if (newScore.queryDiff !== bestScore.queryDiff) {
7823
7848
  continue;
7824
7849
  }
7825
7850
  if (newScore.hrefLen > bestScore.hrefLen) {
7826
- name = tab.name.value;
7851
+ name2 = tab.name.value;
7827
7852
  bestScore = newScore;
7828
7853
  }
7829
7854
  }
7830
- if (name === null && tabDataList.some((tab) => tab.routeData === void 0 && tab.name.value === currentModel.value) === true) {
7855
+ if (name2 === null && tabDataList.some((tab) => tab.routeData === void 0 && tab.name.value === currentModel.value) === true) {
7831
7856
  return;
7832
7857
  }
7833
- updateModel2({ name, setCurrent: true });
7858
+ updateModel2({ name: name2, setCurrent: true });
7834
7859
  }
7835
7860
  function onFocusin(e) {
7836
7861
  removeFocusTimeout();
@@ -8167,7 +8192,7 @@ var QTabPanel_default = createComponent({
8167
8192
  }
8168
8193
  });
8169
8194
 
8170
- // src/utils/patterns.js
8195
+ // src/utils/patterns/patterns.js
8171
8196
  var hex = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/;
8172
8197
  var hexa = /^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/;
8173
8198
  var hexOrHexa = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;
@@ -8199,7 +8224,7 @@ var patterns_default = {
8199
8224
  testPattern
8200
8225
  };
8201
8226
 
8202
- // src/utils/colors.js
8227
+ // src/utils/colors/colors.js
8203
8228
  var reRGBA = /^rgb(a)?\((\d{1,3}),(\d{1,3}),(\d{1,3}),?([01]?\.?\d*?)?\)$/;
8204
8229
  function rgbToHex({ r, g, b, a }) {
8205
8230
  const alpha = a !== void 0;
@@ -9116,7 +9141,7 @@ import { h as h38, ref as ref20, computed as computed43, watch as watch13, Trans
9116
9141
  // src/components/date/use-datetime.js
9117
9142
  import { computed as computed42 } from "vue";
9118
9143
 
9119
- // src/utils/private/date-persian.js
9144
+ // src/utils/date/private.persian.js
9120
9145
  var breaks = [
9121
9146
  -61,
9122
9147
  9,
@@ -9355,7 +9380,7 @@ function use_datetime_default(props4, $q) {
9355
9380
  };
9356
9381
  }
9357
9382
 
9358
- // src/utils/date.js
9383
+ // src/utils/date/date.js
9359
9384
  var MILLISECONDS_IN_DAY = 864e5;
9360
9385
  var MILLISECONDS_IN_HOUR = 36e5;
9361
9386
  var MILLISECONDS_IN_MINUTE = 6e4;
@@ -9611,7 +9636,7 @@ function __splitDate(str, mask, dateLocale, calendar, defaultModel) {
9611
9636
  if (mask === void 0) {
9612
9637
  mask = defaultMask;
9613
9638
  }
9614
- const langOpts = getDateLocale(dateLocale, lang_default.props), months = langOpts.months, monthsShort = langOpts.monthsShort;
9639
+ const langOpts = getDateLocale(dateLocale, Lang_default.props), months = langOpts.months, monthsShort = langOpts.monthsShort;
9615
9640
  const { regex, map } = getRegexData(mask, langOpts);
9616
9641
  const match = str.match(regex);
9617
9642
  if (match === null) {
@@ -10064,7 +10089,7 @@ function formatDate(val, mask, dateLocale, __forcedYear, __forcedTimezoneOffset)
10064
10089
  if (mask === void 0) {
10065
10090
  mask = defaultMask;
10066
10091
  }
10067
- const locale = getDateLocale(dateLocale, lang_default.props);
10092
+ const locale = getDateLocale(dateLocale, Lang_default.props);
10068
10093
  return mask.replace(
10069
10094
  token,
10070
10095
  (match, text) => match in formatter ? formatter[match](date, locale, __forcedYear, __forcedTimezoneOffset) : text === void 0 ? match : text.split("\\]").join("]")
@@ -11217,13 +11242,13 @@ var QDate_default = createComponent({
11217
11242
  // src/components/dialog/QDialog.js
11218
11243
  import { h as h39, ref as ref21, computed as computed44, watch as watch14, onBeforeUnmount as onBeforeUnmount15, Transition as Transition5, getCurrentInstance as getCurrentInstance28 } from "vue";
11219
11244
 
11220
- // src/composables/private/use-history.js
11245
+ // src/composables/private.use-history/use-history.js
11221
11246
  import { onBeforeUnmount as onBeforeUnmount14 } from "vue";
11222
11247
  function use_history_default(showing, hide, hideOnRouteChange) {
11223
11248
  let historyEntry;
11224
11249
  function removeFromHistory() {
11225
11250
  if (historyEntry !== void 0) {
11226
- history_default.remove(historyEntry);
11251
+ History_default.remove(historyEntry);
11227
11252
  historyEntry = void 0;
11228
11253
  }
11229
11254
  }
@@ -11237,12 +11262,12 @@ function use_history_default(showing, hide, hideOnRouteChange) {
11237
11262
  condition: () => hideOnRouteChange.value === true,
11238
11263
  handler: hide
11239
11264
  };
11240
- history_default.add(historyEntry);
11265
+ History_default.add(historyEntry);
11241
11266
  }
11242
11267
  };
11243
11268
  }
11244
11269
 
11245
- // src/utils/prevent-scroll.js
11270
+ // src/utils/scroll/prevent-scroll.js
11246
11271
  var registered = 0;
11247
11272
  var scrollPositionX;
11248
11273
  var scrollPositionY;
@@ -11379,7 +11404,7 @@ function prevent_scroll_default(state) {
11379
11404
  apply(action);
11380
11405
  }
11381
11406
 
11382
- // src/composables/private/use-prevent-scroll.js
11407
+ // src/composables/private.use-prevent-scroll/use-prevent-scroll.js
11383
11408
  function use_prevent_scroll_default() {
11384
11409
  let currentState;
11385
11410
  return {
@@ -11551,11 +11576,19 @@ var QDialog_default = createComponent({
11551
11576
  function focus(selector) {
11552
11577
  addFocusFn(() => {
11553
11578
  let node = innerRef.value;
11554
- if (node === null || node.contains(document.activeElement) === true) {
11579
+ if (node === null)
11555
11580
  return;
11581
+ if (selector !== void 0) {
11582
+ const target2 = node.querySelector(selector);
11583
+ if (target2 !== null) {
11584
+ target2.focus({ preventScroll: true });
11585
+ return;
11586
+ }
11587
+ }
11588
+ if (node.contains(document.activeElement) !== true) {
11589
+ node = node.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]") || node.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]") || node.querySelector("[autofocus], [data-autofocus]") || node;
11590
+ node.focus({ preventScroll: true });
11556
11591
  }
11557
- 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;
11558
- node.focus({ preventScroll: true });
11559
11592
  });
11560
11593
  }
11561
11594
  function shake(focusTarget) {
@@ -12314,9 +12347,9 @@ var Caret = class {
12314
12347
  }
12315
12348
  }
12316
12349
  }
12317
- hasParent(name, spanLevel) {
12350
+ hasParent(name2, spanLevel) {
12318
12351
  const el = spanLevel ? this.parent : this.blockParent;
12319
- return el !== null ? el.nodeName.toLowerCase() === name.toLowerCase() : false;
12352
+ return el !== null ? el.nodeName.toLowerCase() === name2.toLowerCase() : false;
12320
12353
  }
12321
12354
  hasParents(list, recursive, el = this.parent) {
12322
12355
  if (el === null) {
@@ -12358,14 +12391,14 @@ var Caret = class {
12358
12391
  }
12359
12392
  return null;
12360
12393
  }
12361
- can(name) {
12362
- if (name === "outdent") {
12394
+ can(name2) {
12395
+ if (name2 === "outdent") {
12363
12396
  return this.hasParents(["blockquote", "li"], true);
12364
12397
  }
12365
- if (name === "indent") {
12398
+ if (name2 === "indent") {
12366
12399
  return this.hasParents(["li"], true);
12367
12400
  }
12368
- if (name === "link") {
12401
+ if (name2 === "link") {
12369
12402
  return this.selection !== null || this.is("link");
12370
12403
  }
12371
12404
  }
@@ -12941,13 +12974,13 @@ function getFonts(defaultFont, defaultFontLabel, defaultFontIcon, fonts = {}) {
12941
12974
  }
12942
12975
  };
12943
12976
  aliases.forEach((alias) => {
12944
- const name = fonts[alias];
12977
+ const name2 = fonts[alias];
12945
12978
  def[alias] = {
12946
12979
  cmd: "fontName",
12947
- param: name,
12980
+ param: name2,
12948
12981
  icon: defaultFontIcon,
12949
- tip: name,
12950
- htmlTip: `<font face="${name}">${name}</font>`
12982
+ tip: name2,
12983
+ htmlTip: `<font face="${name2}">${name2}</font>`
12951
12984
  };
12952
12985
  });
12953
12986
  return def;
@@ -13017,7 +13050,7 @@ function getLinkEditor(eVm) {
13017
13050
  }
13018
13051
  }
13019
13052
 
13020
- // src/composables/use-split-attrs.js
13053
+ // src/composables/use-split-attrs/use-split-attrs.js
13021
13054
  import { ref as ref25, onBeforeUpdate, getCurrentInstance as getCurrentInstance32 } from "vue";
13022
13055
  var listenerRE = /^on[A-Z]/;
13023
13056
  function use_split_attrs_default() {
@@ -13047,11 +13080,11 @@ function use_split_attrs_default() {
13047
13080
  return acc;
13048
13081
  }
13049
13082
 
13050
- // src/utils/extend.js
13083
+ // src/utils/extend/extend.js
13051
13084
  var toString = Object.prototype.toString;
13052
13085
  var hasOwn = Object.prototype.hasOwnProperty;
13053
13086
  var notPlainObject = new Set(
13054
- ["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp"].map((name) => "[object " + name + "]")
13087
+ ["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp"].map((name2) => "[object " + name2 + "]")
13055
13088
  );
13056
13089
  function isPlainObject(obj) {
13057
13090
  if (obj !== Object(obj) || notPlainObject.has(toString.call(obj)) === true) {
@@ -13066,7 +13099,7 @@ function isPlainObject(obj) {
13066
13099
  return key === void 0 || hasOwn.call(obj, key);
13067
13100
  }
13068
13101
  function extend() {
13069
- let options, name, src, copy, copyIsArray, clone2, target2 = arguments[0] || {}, i = 1, deep = false;
13102
+ let options, name2, src, copy, copyIsArray, clone2, target2 = arguments[0] || {}, i = 1, deep = false;
13070
13103
  const length = arguments.length;
13071
13104
  if (typeof target2 === "boolean") {
13072
13105
  deep = target2;
@@ -13082,9 +13115,9 @@ function extend() {
13082
13115
  }
13083
13116
  for (; i < length; i++) {
13084
13117
  if ((options = arguments[i]) !== null) {
13085
- for (name in options) {
13086
- src = target2[name];
13087
- copy = options[name];
13118
+ for (name2 in options) {
13119
+ src = target2[name2];
13120
+ copy = options[name2];
13088
13121
  if (target2 === copy) {
13089
13122
  continue;
13090
13123
  }
@@ -13094,9 +13127,9 @@ function extend() {
13094
13127
  } else {
13095
13128
  clone2 = isPlainObject(src) === true ? src : {};
13096
13129
  }
13097
- target2[name] = extend(deep, clone2, copy);
13130
+ target2[name2] = extend(deep, clone2, copy);
13098
13131
  } else if (copy !== void 0) {
13099
- target2[name] = copy;
13132
+ target2[name2] = copy;
13100
13133
  }
13101
13134
  }
13102
13135
  }
@@ -13810,9 +13843,9 @@ var QExpansionItem_default = createComponent({
13810
13843
  "aria-label": toggleAriaLabel
13811
13844
  };
13812
13845
  });
13813
- watch18(() => props4.group, (name) => {
13846
+ watch18(() => props4.group, (name2) => {
13814
13847
  exitGroup !== void 0 && exitGroup();
13815
- name !== void 0 && enterGroup();
13848
+ name2 !== void 0 && enterGroup();
13816
13849
  });
13817
13850
  function onHeaderClick(e) {
13818
13851
  hasLink.value !== true && toggle(e);
@@ -14246,13 +14279,13 @@ var QFabAction_default = createComponent({
14246
14279
  }
14247
14280
  });
14248
14281
 
14249
- // src/composables/private/use-field.js
14282
+ // src/composables/private.use-field/use-field.js
14250
14283
  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";
14251
14284
 
14252
- // src/composables/private/use-validate.js
14285
+ // src/composables/private.use-validate/use-validate.js
14253
14286
  import { ref as ref29, computed as computed56, watch as watch20, onBeforeUnmount as onBeforeUnmount22, getCurrentInstance as getCurrentInstance39 } from "vue";
14254
14287
 
14255
- // src/composables/use-form-child.js
14288
+ // src/composables/use-form/use-form-child.js
14256
14289
  import { inject as inject4, watch as watch19, getCurrentInstance as getCurrentInstance38, onMounted as onMounted13, onBeforeUnmount as onBeforeUnmount21 } from "vue";
14257
14290
  function use_form_child_default({ validate, resetValidation, requiresQForm }) {
14258
14291
  const $form = inject4(formKey, false);
@@ -14278,7 +14311,7 @@ function use_form_child_default({ validate, resetValidation, requiresQForm }) {
14278
14311
  }
14279
14312
  }
14280
14313
 
14281
- // src/composables/private/use-validate.js
14314
+ // src/composables/private.use-validate/use-validate.js
14282
14315
  var lazyRulesValues = [true, false, "ondemand"];
14283
14316
  var useValidateProps = {
14284
14317
  modelValue: {},
@@ -14421,7 +14454,7 @@ function use_validate_default(focused, innerLoading) {
14421
14454
  };
14422
14455
  }
14423
14456
 
14424
- // src/composables/private/use-field.js
14457
+ // src/composables/private.use-field/use-field.js
14425
14458
  function fieldValueIsFilled(val) {
14426
14459
  return val !== void 0 && val !== null && ("" + val).length !== 0;
14427
14460
  }
@@ -14869,7 +14902,7 @@ var QField_default = createComponent({
14869
14902
  // src/components/file/QFile.js
14870
14903
  import { h as h54, ref as ref32, computed as computed60, getCurrentInstance as getCurrentInstance42 } from "vue";
14871
14904
 
14872
- // src/composables/private/use-file.js
14905
+ // src/composables/private.use-file/use-file.js
14873
14906
  import { h as h53, ref as ref31, computed as computed58, getCurrentInstance as getCurrentInstance41 } from "vue";
14874
14907
  function filterFiles(files, rejectedFiles, failedPropValidation, filterFn) {
14875
14908
  const acceptedFiles = [];
@@ -15046,7 +15079,7 @@ function use_file_default({
15046
15079
  };
15047
15080
  }
15048
15081
 
15049
- // src/composables/private/use-file-dom-props.js
15082
+ // src/composables/private.use-file/use-file-dom-props.js
15050
15083
  import { computed as computed59 } from "vue";
15051
15084
  function use_file_dom_props_default(props4, typeGuard) {
15052
15085
  function getFormDomProps() {
@@ -15731,7 +15764,7 @@ var QHeader_default = createComponent({
15731
15764
  // src/components/img/QImg.js
15732
15765
  import { h as h58, ref as ref36, computed as computed64, watch as watch23, onMounted as onMounted16, Transition as Transition9, getCurrentInstance as getCurrentInstance46 } from "vue";
15733
15766
 
15734
- // src/composables/private/use-ratio.js
15767
+ // src/composables/private.use-ratio/use-ratio.js
15735
15768
  import { computed as computed63 } from "vue";
15736
15769
  var useRatioProps = {
15737
15770
  ratio: [String, Number]
@@ -16605,7 +16638,7 @@ function use_mask_default(props4, emit, emitValue, inputRef) {
16605
16638
  };
16606
16639
  }
16607
16640
 
16608
- // src/composables/private/use-key-composition.js
16641
+ // src/composables/private.use-key-composition/use-key-composition.js
16609
16642
  var isJapanese = /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/;
16610
16643
  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;
16611
16644
  var isKorean = /[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/;
@@ -17175,8 +17208,8 @@ var QKnob_default = createComponent({
17175
17208
  const attrs = computed70(() => editable.value === true ? { tabindex: props4.tabindex } : { [`aria-${props4.disable === true ? "disabled" : "readonly"}`]: "true" });
17176
17209
  const circularProps = computed70(() => {
17177
17210
  const agg = {};
17178
- commonPropsName.forEach((name) => {
17179
- agg[name] = props4[name];
17211
+ commonPropsName.forEach((name2) => {
17212
+ agg[name2] = props4[name2];
17180
17213
  });
17181
17214
  return agg;
17182
17215
  });
@@ -18546,7 +18579,7 @@ var QPagination_default = createComponent({
18546
18579
  // src/components/parallax/QParallax.js
18547
18580
  import { h as h76, ref as ref46, watch as watch32, onMounted as onMounted20, onBeforeUnmount as onBeforeUnmount30 } from "vue";
18548
18581
 
18549
- // src/utils/frame-debounce.js
18582
+ // src/utils/frame-debounce/frame-debounce.js
18550
18583
  function frame_debounce_default(fn) {
18551
18584
  let wait = false, frame, callArgs;
18552
18585
  function debounced() {
@@ -18554,7 +18587,7 @@ function frame_debounce_default(fn) {
18554
18587
  if (wait === true)
18555
18588
  return;
18556
18589
  wait = true;
18557
- frame = requestAnimationFrame(() => {
18590
+ frame = window.requestAnimationFrame(() => {
18558
18591
  fn.apply(this, callArgs);
18559
18592
  callArgs = void 0;
18560
18593
  wait = false;
@@ -18700,7 +18733,7 @@ var QParallax_default = createComponent({
18700
18733
  // src/components/popup-edit/QPopupEdit.js
18701
18734
  import { h as h77, ref as ref47, computed as computed81, nextTick as nextTick15, getCurrentInstance as getCurrentInstance62 } from "vue";
18702
18735
 
18703
- // src/utils/clone.js
18736
+ // src/utils/clone/clone.js
18704
18737
  function cloneDeep(data, hash = /* @__PURE__ */ new WeakMap()) {
18705
18738
  if (Object(data) !== data)
18706
18739
  return data;
@@ -19577,14 +19610,14 @@ var QRating_default = createComponent({
19577
19610
  const acc = [], icons = iconData.value, ceil = Math.ceil(props4.modelValue), tabindex = editable.value === true ? 0 : null;
19578
19611
  const halfIndex = props4.iconHalf === void 0 || ceil === props4.modelValue ? -1 : ceil;
19579
19612
  for (let i = 1; i <= props4.max; i++) {
19580
- 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;
19613
+ 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;
19581
19614
  acc.push({
19582
19615
  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,
19583
19616
  attrs: {
19584
19617
  tabindex,
19585
19618
  role: "radio",
19586
19619
  "aria-checked": props4.modelValue === i ? "true" : "false",
19587
- "aria-label": iconLabel.value(i, name)
19620
+ "aria-label": iconLabel.value(i, name2)
19588
19621
  },
19589
19622
  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}` : "")
19590
19623
  });
@@ -19641,7 +19674,7 @@ var QRating_default = createComponent({
19641
19674
  });
19642
19675
  return () => {
19643
19676
  const child = [];
19644
- stars.value.forEach(({ iconClass, name, attrs }, index) => {
19677
+ stars.value.forEach(({ iconClass, name: name2, attrs }, index) => {
19645
19678
  const i = index + 1;
19646
19679
  child.push(
19647
19680
  h82("div", {
@@ -19667,7 +19700,7 @@ var QRating_default = createComponent({
19667
19700
  }
19668
19701
  }, hMergeSlot(
19669
19702
  slots[`tip-${i}`],
19670
- [h82(QIcon_default, { class: iconClass, name })]
19703
+ [h82(QIcon_default, { class: iconClass, name: name2 })]
19671
19704
  ))
19672
19705
  );
19673
19706
  });
@@ -20727,7 +20760,6 @@ var QSelect_default = createComponent({
20727
20760
  "add",
20728
20761
  "remove",
20729
20762
  "inputValue",
20730
- "newValue",
20731
20763
  "keyup",
20732
20764
  "keypress",
20733
20765
  "keydown",
@@ -24427,9 +24459,9 @@ var QTh_default = createComponent({
24427
24459
  }, hSlot(slots.default));
24428
24460
  }
24429
24461
  let col, child;
24430
- const name = vm2.vnode.key;
24431
- if (name) {
24432
- col = props4.props.colsMap[name];
24462
+ const name2 = vm2.vnode.key;
24463
+ if (name2) {
24464
+ col = props4.props.colsMap[name2];
24433
24465
  if (col === void 0)
24434
24466
  return;
24435
24467
  } else {
@@ -24593,7 +24625,7 @@ var QVirtualScroll_default = createComponent({
24593
24625
  // src/components/table/table-sort.js
24594
24626
  import { computed as computed97 } from "vue";
24595
24627
 
24596
- // src/utils/private/sort.js
24628
+ // src/utils/private.sort/sort.js
24597
24629
  function sortDate(a, b) {
24598
24630
  return new Date(a) - new Date(b);
24599
24631
  }
@@ -24995,11 +25027,11 @@ function useTableColumnSelection(props4, computedPagination, hasSelectionMode) {
24995
25027
  return props4.columns;
24996
25028
  }
24997
25029
  const row = props4.rows[0];
24998
- return row !== void 0 ? Object.keys(row).map((name) => ({
24999
- name,
25000
- label: name.toUpperCase(),
25001
- field: name,
25002
- align: isNumber(row[name]) ? "right" : "left",
25030
+ return row !== void 0 ? Object.keys(row).map((name2) => ({
25031
+ name: name2,
25032
+ label: name2.toUpperCase(),
25033
+ field: name2,
25034
+ align: isNumber(row[name2]) ? "right" : "left",
25003
25035
  sortable: true
25004
25036
  })) : [];
25005
25037
  });
@@ -25347,19 +25379,19 @@ var QTable_default = createComponent({
25347
25379
  if (props4.onRowClick !== void 0) {
25348
25380
  data.class["cursor-pointer"] = true;
25349
25381
  data.onClick = (evt) => {
25350
- emit("RowClick", evt, row, pageIndex);
25382
+ emit("rowClick", evt, row, pageIndex);
25351
25383
  };
25352
25384
  }
25353
25385
  if (props4.onRowDblclick !== void 0) {
25354
25386
  data.class["cursor-pointer"] = true;
25355
25387
  data.onDblclick = (evt) => {
25356
- emit("RowDblclick", evt, row, pageIndex);
25388
+ emit("rowDblclick", evt, row, pageIndex);
25357
25389
  };
25358
25390
  }
25359
25391
  if (props4.onRowContextmenu !== void 0) {
25360
25392
  data.class["cursor-pointer"] = true;
25361
25393
  data.onContextmenu = (evt) => {
25362
- emit("RowContextmenu", evt, row, pageIndex);
25394
+ emit("rowContextmenu", evt, row, pageIndex);
25363
25395
  };
25364
25396
  }
25365
25397
  return h120("tr", data, child);
@@ -25856,8 +25888,8 @@ var QTd_default = createComponent({
25856
25888
  if (props4.props === void 0) {
25857
25889
  return h122("td", { class: classes.value }, hSlot(slots.default));
25858
25890
  }
25859
- const name = vm2.vnode.key;
25860
- const col = (props4.props.colsMap !== void 0 ? props4.props.colsMap[name] : null) || props4.props.col;
25891
+ const name2 = vm2.vnode.key;
25892
+ const col = (props4.props.colsMap !== void 0 ? props4.props.colsMap[name2] : null) || props4.props.col;
25861
25893
  if (col === void 0)
25862
25894
  return;
25863
25895
  const { row } = props4.props;
@@ -27587,7 +27619,7 @@ function getRenderer(getPlugin, expose) {
27587
27619
  };
27588
27620
  }
27589
27621
 
27590
- // src/utils/private/get-emits-object.js
27622
+ // src/utils/private.get-emits-object/get-emits-object.js
27591
27623
  var trueFn = () => true;
27592
27624
  function get_emits_object_default(emitsArray) {
27593
27625
  const emitsObject = {};
@@ -27597,10 +27629,10 @@ function get_emits_object_default(emitsArray) {
27597
27629
  return emitsObject;
27598
27630
  }
27599
27631
 
27600
- // src/utils/create-uploader-component.js
27632
+ // src/utils/create-uploader-component/create-uploader-component.js
27601
27633
  var coreEmitsObject = get_emits_object_default(coreEmits);
27602
- var create_uploader_component_default = ({ name, props: props4, emits: emits3, injectPlugin: injectPlugin2 }) => createComponent({
27603
- name,
27634
+ var create_uploader_component_default = ({ name: name2, props: props4, emits: emits3, injectPlugin: injectPlugin2 }) => createComponent({
27635
+ name: name2,
27604
27636
  props: {
27605
27637
  ...coreProps,
27606
27638
  ...props4
@@ -27616,6 +27648,7 @@ import { ref as ref66, computed as computed113 } from "vue";
27616
27648
  function getFn(prop) {
27617
27649
  return typeof prop === "function" ? prop : () => prop;
27618
27650
  }
27651
+ var name = "QUploader";
27619
27652
  var props = {
27620
27653
  url: [Function, String],
27621
27654
  method: {
@@ -27716,8 +27749,8 @@ function injectPlugin({ props: props4, emit, helpers }) {
27716
27749
  }
27717
27750
  function performUpload(files, factory) {
27718
27751
  const form = new FormData(), xhr2 = new XMLHttpRequest();
27719
- const getProp2 = (name, arg) => {
27720
- return factory[name] !== void 0 ? getFn(factory[name])(arg) : xhrProps.value[name](arg);
27752
+ const getProp2 = (name2, arg) => {
27753
+ return factory[name2] !== void 0 ? getFn(factory[name2])(arg) : xhrProps.value[name2](arg);
27721
27754
  };
27722
27755
  const url = getProp2("url", files);
27723
27756
  if (!url) {
@@ -27811,7 +27844,7 @@ function injectPlugin({ props: props4, emit, helpers }) {
27811
27844
  };
27812
27845
  }
27813
27846
  var xhr_uploader_plugin_default = {
27814
- name: "QUploader",
27847
+ name,
27815
27848
  props,
27816
27849
  emits,
27817
27850
  injectPlugin
@@ -27926,7 +27959,7 @@ var ClosePopup_default = createDirective(
27926
27959
  }
27927
27960
  );
27928
27961
 
27929
- // src/utils/morph.js
27962
+ // src/utils/morph/morph.js
27930
27963
  var id2 = 0;
27931
27964
  var offsetBase = void 0;
27932
27965
  function getAbsolutePosition(el, resize) {
@@ -28736,8 +28769,8 @@ function trigger2(group) {
28736
28769
  }
28737
28770
  function updateModifiers2(mod2, ctx) {
28738
28771
  const opts = ctx.opts;
28739
- mods.forEach((name) => {
28740
- opts[name] = mod2[name] === true;
28772
+ mods.forEach((name2) => {
28773
+ opts[name2] = mod2[name2] === true;
28741
28774
  });
28742
28775
  }
28743
28776
  function insertArgs(arg, ctx) {
@@ -28757,25 +28790,25 @@ function updateArgs(arg, ctx) {
28757
28790
  ctx.name = arg.name;
28758
28791
  }
28759
28792
  const opts = ctx.opts;
28760
- props2.forEach((name) => {
28761
- if (arg[name] !== void 0) {
28762
- opts[name] = arg[name];
28793
+ props2.forEach((name2) => {
28794
+ if (arg[name2] !== void 0) {
28795
+ opts[name2] = arg[name2];
28763
28796
  }
28764
28797
  });
28765
28798
  }
28766
- function updateModel(name, ctx) {
28767
- if (ctx.name === name) {
28799
+ function updateModel(name2, ctx) {
28800
+ if (ctx.name === name2) {
28768
28801
  const group = morphGroups[ctx.group];
28769
28802
  if (group === void 0) {
28770
28803
  morphGroups[ctx.group] = {
28771
28804
  name: ctx.group,
28772
- model: name,
28805
+ model: name2,
28773
28806
  queue: [ctx],
28774
28807
  animating: false
28775
28808
  };
28776
28809
  changeClass(ctx, "remove");
28777
- } else if (group.model !== name) {
28778
- group.model = name;
28810
+ } else if (group.model !== name2) {
28811
+ group.model = name2;
28779
28812
  group.queue.push(ctx);
28780
28813
  if (group.animating === false && group.queue.length === 2) {
28781
28814
  trigger2(group);
@@ -28807,9 +28840,9 @@ var Morph_default = createDirective(
28807
28840
  false ? {
28808
28841
  name: "morph",
28809
28842
  getSSRProps: (binding) => {
28810
- const name = binding.arg ? binding.arg.split(":")[0] : false;
28843
+ const name2 = binding.arg ? binding.arg.split(":")[0] : false;
28811
28844
  return {
28812
- class: name === binding.value ? "" : "q-morph--invisible"
28845
+ class: name2 === binding.value ? "" : "q-morph--invisible"
28813
28846
  };
28814
28847
  }
28815
28848
  } : {
@@ -29305,7 +29338,7 @@ var TouchRepeat_default = createDirective(
29305
29338
  }
29306
29339
  );
29307
29340
 
29308
- // src/utils/get-css-var.js
29341
+ // src/utils/css-var/get-css-var.js
29309
29342
  function getCssVar(propName, element = document.body) {
29310
29343
  if (typeof propName !== "string") {
29311
29344
  throw new TypeError("Expected a string as propName");
@@ -29389,7 +29422,7 @@ function promisify(target2, fn) {
29389
29422
  return Promise.reject(err);
29390
29423
  }
29391
29424
  }
29392
- var Plugin4 = define_reactive_plugin_default({
29425
+ var Plugin4 = createReactivePlugin({
29393
29426
  isActive: false,
29394
29427
  activeEl: null
29395
29428
  }, {
@@ -29448,7 +29481,7 @@ if (false) {
29448
29481
  var AppFullscreen_default = Plugin4;
29449
29482
 
29450
29483
  // src/plugins/app-visibility/AppVisibility.js
29451
- var Plugin5 = define_reactive_plugin_default({
29484
+ var Plugin5 = createReactivePlugin({
29452
29485
  appVisible: true
29453
29486
  }, {
29454
29487
  install({ $q }) {
@@ -29608,7 +29641,7 @@ var BottomSheetComponent_default = createComponent({
29608
29641
  }
29609
29642
  });
29610
29643
 
29611
- // src/utils/private/global-dialog.js
29644
+ // src/utils/private.global/global-dialog.js
29612
29645
  import { h as h132, ref as ref68, nextTick as nextTick23 } from "vue";
29613
29646
  function merge(target2, source) {
29614
29647
  for (const key in source) {
@@ -29732,10 +29765,7 @@ function global_dialog_default(DefaultComponent, supportsCustomComponent, parent
29732
29765
  // src/plugins/bottom-sheet/BottomSheet.js
29733
29766
  var BottomSheet_default = {
29734
29767
  install({ $q, parentApp }) {
29735
- $q.bottomSheet = global_dialog_default(BottomSheetComponent_default, false, parentApp);
29736
- if (this.__installed !== true) {
29737
- this.create = $q.bottomSheet;
29738
- }
29768
+ $q.bottomSheet = this.create = global_dialog_default(BottomSheetComponent_default, false, parentApp);
29739
29769
  }
29740
29770
  };
29741
29771
 
@@ -29838,14 +29868,14 @@ function set(key, val, opts = {}, ssr) {
29838
29868
  }
29839
29869
  function get(key, ssr) {
29840
29870
  const cookieSource = ssr ? ssr.req.headers : document, cookies = cookieSource.cookie ? cookieSource.cookie.split("; ") : [], l = cookies.length;
29841
- let result = key ? null : {}, i = 0, parts, name, cookie;
29871
+ let result = key ? null : {}, i = 0, parts, name2, cookie;
29842
29872
  for (; i < l; i++) {
29843
29873
  parts = cookies[i].split("=");
29844
- name = decode(parts.shift());
29874
+ name2 = decode(parts.shift());
29845
29875
  cookie = parts.join("=");
29846
29876
  if (!key) {
29847
- result[name] = cookie;
29848
- } else if (key === name) {
29877
+ result[name2] = cookie;
29878
+ } else if (key === name2) {
29849
29879
  result = read(cookie);
29850
29880
  break;
29851
29881
  }
@@ -30110,71 +30140,12 @@ var DialogPluginComponent_default = createComponent({
30110
30140
  // src/plugins/dialog/Dialog.js
30111
30141
  var Dialog_default = {
30112
30142
  install({ $q, parentApp }) {
30113
- $q.dialog = global_dialog_default(DialogPluginComponent_default, true, parentApp);
30114
- if (this.__installed !== true) {
30115
- this.create = $q.dialog;
30116
- }
30143
+ $q.dialog = this.create = global_dialog_default(DialogPluginComponent_default, true, parentApp);
30117
30144
  }
30118
30145
  };
30119
30146
 
30120
- // src/plugins/loading-bar/LoadingBar.js
30121
- import { h as h134, ref as ref70 } from "vue";
30122
- var barRef = ref70(null);
30123
- var Plugin7 = define_reactive_plugin_default({
30124
- isActive: false
30125
- }, {
30126
- start: noop,
30127
- stop: noop,
30128
- increment: noop,
30129
- setDefaults: noop,
30130
- install({ $q, parentApp }) {
30131
- $q.loadingBar = this;
30132
- if (false)
30133
- return;
30134
- if (this.__installed === true) {
30135
- if ($q.config.loadingBar !== void 0) {
30136
- this.setDefaults($q.config.loadingBar);
30137
- }
30138
- return;
30139
- }
30140
- const props4 = ref70(
30141
- $q.config.loadingBar !== void 0 ? { ...$q.config.loadingBar } : {}
30142
- );
30143
- function onStart() {
30144
- Plugin7.isActive = true;
30145
- }
30146
- function onStop() {
30147
- Plugin7.isActive = false;
30148
- }
30149
- const el = createGlobalNode("q-loading-bar");
30150
- createChildApp({
30151
- name: "LoadingBar",
30152
- // hide App from Vue devtools
30153
- devtools: { hide: true },
30154
- setup: () => () => h134(QAjaxBar_default, { ...props4.value, onStart, onStop, ref: barRef })
30155
- }, parentApp).mount(el);
30156
- Object.assign(this, {
30157
- start(speed) {
30158
- barRef.value.start(speed);
30159
- },
30160
- stop() {
30161
- barRef.value.stop();
30162
- },
30163
- increment() {
30164
- barRef.value.increment.apply(null, arguments);
30165
- },
30166
- setDefaults(opts) {
30167
- if (isObject(opts) === true) {
30168
- Object.assign(props4.value, opts);
30169
- }
30170
- }
30171
- });
30172
- }
30173
- });
30174
- var LoadingBar_default = Plugin7;
30175
-
30176
30147
  // src/plugins/loading/Loading.js
30177
- import { h as h135, Transition as Transition14, onMounted as onMounted23 } from "vue";
30148
+ import { h as h134, Transition as Transition14, onMounted as onMounted23 } from "vue";
30178
30149
  var app;
30179
30150
  var vm;
30180
30151
  var uid2 = 0;
@@ -30203,7 +30174,7 @@ function registerProps(opts) {
30203
30174
  activeGroups[newProps.group] = newProps;
30204
30175
  return newProps;
30205
30176
  }
30206
- var Plugin8 = define_reactive_plugin_default({
30177
+ var Plugin7 = createReactivePlugin({
30207
30178
  isActive: false
30208
30179
  }, {
30209
30180
  show(opts) {
@@ -30211,7 +30182,7 @@ var Plugin8 = define_reactive_plugin_default({
30211
30182
  return;
30212
30183
  props3 = registerProps(opts);
30213
30184
  const { group } = props3;
30214
- Plugin8.isActive = true;
30185
+ Plugin7.isActive = true;
30215
30186
  if (app !== void 0) {
30216
30187
  props3.uid = uid2;
30217
30188
  vm.$forceUpdate();
@@ -30228,7 +30199,7 @@ var Plugin8 = define_reactive_plugin_default({
30228
30199
  prevent_scroll_default(true);
30229
30200
  });
30230
30201
  function onAfterLeave() {
30231
- if (Plugin8.isActive !== true && app !== void 0) {
30202
+ if (Plugin7.isActive !== true && app !== void 0) {
30232
30203
  prevent_scroll_default(false);
30233
30204
  app.unmount(el);
30234
30205
  removeGlobalNode(el);
@@ -30237,54 +30208,54 @@ var Plugin8 = define_reactive_plugin_default({
30237
30208
  }
30238
30209
  }
30239
30210
  function getContent() {
30240
- if (Plugin8.isActive !== true) {
30211
+ if (Plugin7.isActive !== true) {
30241
30212
  return null;
30242
30213
  }
30243
30214
  const content = [
30244
- h135(props3.spinner, {
30215
+ h134(props3.spinner, {
30245
30216
  class: "q-loading__spinner",
30246
30217
  color: props3.spinnerColor,
30247
30218
  size: props3.spinnerSize
30248
30219
  })
30249
30220
  ];
30250
30221
  props3.message && content.push(
30251
- h135("div", {
30222
+ h134("div", {
30252
30223
  class: "q-loading__message" + (props3.messageColor ? ` text-${props3.messageColor}` : ""),
30253
30224
  [props3.html === true ? "innerHTML" : "textContent"]: props3.message
30254
30225
  })
30255
30226
  );
30256
- return h135("div", {
30227
+ return h134("div", {
30257
30228
  class: "q-loading fullscreen flex flex-center z-max " + props3.customClass.trim(),
30258
30229
  key: props3.uid
30259
30230
  }, [
30260
- h135("div", {
30231
+ h134("div", {
30261
30232
  class: "q-loading__backdrop" + (props3.backgroundColor ? ` bg-${props3.backgroundColor}` : "")
30262
30233
  }),
30263
- h135("div", {
30234
+ h134("div", {
30264
30235
  class: "q-loading__box column items-center " + props3.boxClass
30265
30236
  }, content)
30266
30237
  ]);
30267
30238
  }
30268
- return () => h135(Transition14, {
30239
+ return () => h134(Transition14, {
30269
30240
  name: "q-transition--fade",
30270
30241
  appear: true,
30271
30242
  onAfterLeave
30272
30243
  }, getContent);
30273
30244
  }
30274
- }, Plugin8.__parentApp);
30245
+ }, Plugin7.__parentApp);
30275
30246
  vm = app.mount(el);
30276
30247
  }, props3.delay);
30277
30248
  }
30278
30249
  return (paramProps) => {
30279
30250
  if (paramProps === void 0 || Object(paramProps) !== paramProps) {
30280
- Plugin8.hide(group);
30251
+ Plugin7.hide(group);
30281
30252
  return;
30282
30253
  }
30283
- Plugin8.show({ ...paramProps, group });
30254
+ Plugin7.show({ ...paramProps, group });
30284
30255
  };
30285
30256
  },
30286
30257
  hide(group) {
30287
- if (Plugin8.isActive === true) {
30258
+ if (Plugin7.isActive === true) {
30288
30259
  if (group === void 0) {
30289
30260
  activeGroups = {};
30290
30261
  } else if (activeGroups[group] === void 0) {
@@ -30294,7 +30265,7 @@ var Plugin8 = define_reactive_plugin_default({
30294
30265
  const keys = Object.keys(activeGroups);
30295
30266
  if (keys.length !== 0) {
30296
30267
  const lastGroup = keys[keys.length - 1];
30297
- Plugin8.show({ group: lastGroup });
30268
+ Plugin7.show({ group: lastGroup });
30298
30269
  return;
30299
30270
  }
30300
30271
  }
@@ -30302,7 +30273,7 @@ var Plugin8 = define_reactive_plugin_default({
30302
30273
  clearTimeout(timeout);
30303
30274
  timeout = null;
30304
30275
  }
30305
- Plugin8.isActive = false;
30276
+ Plugin7.isActive = false;
30306
30277
  }
30307
30278
  },
30308
30279
  setDefaults(opts) {
@@ -30313,14 +30284,70 @@ var Plugin8 = define_reactive_plugin_default({
30313
30284
  install({ $q, parentApp }) {
30314
30285
  $q.loading = this;
30315
30286
  if (true) {
30316
- Plugin8.__parentApp = parentApp;
30287
+ Plugin7.__parentApp = parentApp;
30317
30288
  if ($q.config.loading !== void 0) {
30318
30289
  this.setDefaults($q.config.loading);
30319
30290
  }
30320
30291
  }
30321
30292
  }
30322
30293
  });
30323
- var Loading_default = Plugin8;
30294
+ var Loading_default = Plugin7;
30295
+
30296
+ // src/plugins/loading-bar/LoadingBar.js
30297
+ import { h as h135, ref as ref70 } from "vue";
30298
+ var barRef = ref70(null);
30299
+ var Plugin8 = createReactivePlugin({
30300
+ isActive: false
30301
+ }, {
30302
+ start: noop,
30303
+ stop: noop,
30304
+ increment: noop,
30305
+ setDefaults: noop,
30306
+ install({ $q, parentApp }) {
30307
+ $q.loadingBar = this;
30308
+ if (false)
30309
+ return;
30310
+ if (this.__installed === true) {
30311
+ if ($q.config.loadingBar !== void 0) {
30312
+ this.setDefaults($q.config.loadingBar);
30313
+ }
30314
+ return;
30315
+ }
30316
+ const props4 = ref70(
30317
+ $q.config.loadingBar !== void 0 ? { ...$q.config.loadingBar } : {}
30318
+ );
30319
+ function onStart() {
30320
+ Plugin8.isActive = true;
30321
+ }
30322
+ function onStop() {
30323
+ Plugin8.isActive = false;
30324
+ }
30325
+ const el = createGlobalNode("q-loading-bar");
30326
+ createChildApp({
30327
+ name: "LoadingBar",
30328
+ // hide App from Vue devtools
30329
+ devtools: { hide: true },
30330
+ setup: () => () => h135(QAjaxBar_default, { ...props4.value, onStart, onStop, ref: barRef })
30331
+ }, parentApp).mount(el);
30332
+ Object.assign(this, {
30333
+ start(speed) {
30334
+ barRef.value.start(speed);
30335
+ },
30336
+ stop() {
30337
+ barRef.value.stop();
30338
+ },
30339
+ increment() {
30340
+ barRef.value.increment.apply(null, arguments);
30341
+ },
30342
+ setDefaults(opts) {
30343
+ if (isObject(opts) === true) {
30344
+ Object.assign(props4.value, opts);
30345
+ }
30346
+ }
30347
+ });
30348
+ }
30349
+ });
30350
+ var LoadingBar_default = Plugin8;
30324
30351
 
30325
30352
  // src/plugins/meta/Meta.js
30326
30353
  var updateId = null;
@@ -30334,11 +30361,11 @@ function normalize(meta) {
30334
30361
  ;
30335
30362
  [["meta", "content"], ["link", "href"]].forEach((type) => {
30336
30363
  const metaType = meta[type[0]], metaProp = type[1];
30337
- for (const name in metaType) {
30338
- const metaLink = metaType[name];
30364
+ for (const name2 in metaType) {
30365
+ const metaLink = metaType[name2];
30339
30366
  if (metaLink.template) {
30340
30367
  if (Object.keys(metaLink).length === 1) {
30341
- delete metaType[name];
30368
+ delete metaType[name2];
30342
30369
  } else {
30343
30370
  metaLink[metaProp] = metaLink.template(metaLink[metaProp] || "");
30344
30371
  delete metaLink.template;
@@ -30357,11 +30384,11 @@ function changed(old, def) {
30357
30384
  }
30358
30385
  }
30359
30386
  }
30360
- function bodyFilter(name) {
30361
- return ["class", "style"].includes(name) === false;
30387
+ function bodyFilter(name2) {
30388
+ return ["class", "style"].includes(name2) === false;
30362
30389
  }
30363
- function htmlFilter(name) {
30364
- return ["lang", "dir"].includes(name) === false;
30390
+ function htmlFilter(name2) {
30391
+ return ["lang", "dir"].includes(name2) === false;
30365
30392
  }
30366
30393
  function diff(meta, other) {
30367
30394
  const add = {}, remove2 = {};
@@ -30402,39 +30429,39 @@ function apply2({ add, remove: remove2 }) {
30402
30429
  }
30403
30430
  if (Object.keys(remove2).length !== 0) {
30404
30431
  ["meta", "link", "script"].forEach((type) => {
30405
- remove2[type].forEach((name) => {
30406
- document.head.querySelector(`${type}[data-qmeta="${name}"]`).remove();
30432
+ remove2[type].forEach((name2) => {
30433
+ document.head.querySelector(`${type}[data-qmeta="${name2}"]`).remove();
30407
30434
  });
30408
30435
  });
30409
- remove2.htmlAttr.filter(htmlFilter).forEach((name) => {
30410
- document.documentElement.removeAttribute(name);
30436
+ remove2.htmlAttr.filter(htmlFilter).forEach((name2) => {
30437
+ document.documentElement.removeAttribute(name2);
30411
30438
  });
30412
- remove2.bodyAttr.filter(bodyFilter).forEach((name) => {
30413
- document.body.removeAttribute(name);
30439
+ remove2.bodyAttr.filter(bodyFilter).forEach((name2) => {
30440
+ document.body.removeAttribute(name2);
30414
30441
  });
30415
30442
  }
30416
30443
  ;
30417
30444
  ["meta", "link", "script"].forEach((type) => {
30418
30445
  const metaType = add[type];
30419
- for (const name in metaType) {
30446
+ for (const name2 in metaType) {
30420
30447
  const tag = document.createElement(type);
30421
- for (const att in metaType[name]) {
30448
+ for (const att in metaType[name2]) {
30422
30449
  if (att !== "innerHTML") {
30423
- tag.setAttribute(att, metaType[name][att]);
30450
+ tag.setAttribute(att, metaType[name2][att]);
30424
30451
  }
30425
30452
  }
30426
- tag.setAttribute("data-qmeta", name);
30453
+ tag.setAttribute("data-qmeta", name2);
30427
30454
  if (type === "script") {
30428
- tag.innerHTML = metaType[name].innerHTML || "";
30455
+ tag.innerHTML = metaType[name2].innerHTML || "";
30429
30456
  }
30430
30457
  document.head.appendChild(tag);
30431
30458
  }
30432
30459
  });
30433
- Object.keys(add.htmlAttr).filter(htmlFilter).forEach((name) => {
30434
- document.documentElement.setAttribute(name, add.htmlAttr[name] || "");
30460
+ Object.keys(add.htmlAttr).filter(htmlFilter).forEach((name2) => {
30461
+ document.documentElement.setAttribute(name2, add.htmlAttr[name2] || "");
30435
30462
  });
30436
- Object.keys(add.bodyAttr).filter(bodyFilter).forEach((name) => {
30437
- document.body.setAttribute(name, add.bodyAttr[name] || "");
30463
+ Object.keys(add.bodyAttr).filter(bodyFilter).forEach((name2) => {
30464
+ document.body.setAttribute(name2, add.bodyAttr[name2] || "");
30438
30465
  });
30439
30466
  }
30440
30467
  function updateClientMeta() {
@@ -30879,10 +30906,10 @@ var Notify_default = {
30879
30906
  }
30880
30907
  };
30881
30908
 
30882
- // src/utils/private/web-storage.js
30909
+ // src/plugins/storage/engine/web-storage.js
30883
30910
  function encode2(value2) {
30884
30911
  if (isDate(value2) === true) {
30885
- return "__q_date|" + value2.toUTCString();
30912
+ return "__q_date|" + value2.getTime();
30886
30913
  }
30887
30914
  if (isRegexp(value2) === true) {
30888
30915
  return "__q_expr|" + value2.source;
@@ -30913,7 +30940,8 @@ function decode2(value2) {
30913
30940
  const source = value2.substring(9);
30914
30941
  switch (type) {
30915
30942
  case "__q_date":
30916
- return new Date(source);
30943
+ const number = Number(source);
30944
+ return new Date(Number.isNaN(number) === true ? source : number);
30917
30945
  case "__q_expr":
30918
30946
  return new RegExp(source);
30919
30947
  case "__q_numb":
@@ -30932,6 +30960,8 @@ function getEmptyStorage() {
30932
30960
  const getVal2 = () => null;
30933
30961
  return {
30934
30962
  has: () => false,
30963
+ // alias for hasItem; TODO: remove in Qv3
30964
+ hasItem: () => false,
30935
30965
  getLength: () => 0,
30936
30966
  getItem: getVal2,
30937
30967
  getIndex: getVal2,
@@ -30940,7 +30970,11 @@ function getEmptyStorage() {
30940
30970
  },
30941
30971
  getAllKeys: () => [],
30942
30972
  set: noop,
30973
+ // alias for setItem; TODO: remove in Qv3
30974
+ setItem: noop,
30943
30975
  remove: noop,
30976
+ // alias for removeItem; TODO: remove in Qv3
30977
+ removeItem: noop,
30944
30978
  clear: noop,
30945
30979
  isEmpty: () => true
30946
30980
  };
@@ -30950,8 +30984,17 @@ function getStorage(type) {
30950
30984
  const item = webStorage.getItem(key);
30951
30985
  return item ? decode2(item) : null;
30952
30986
  };
30987
+ const hasItem = (key) => webStorage.getItem(key) !== null;
30988
+ const setItem = (key, value2) => {
30989
+ webStorage.setItem(key, encode2(value2));
30990
+ };
30991
+ const removeItem = (key) => {
30992
+ webStorage.removeItem(key);
30993
+ };
30953
30994
  return {
30954
- has: (key) => webStorage.getItem(key) !== null,
30995
+ has: hasItem,
30996
+ // TODO: remove in Qv3
30997
+ hasItem,
30955
30998
  getLength: () => webStorage.length,
30956
30999
  getItem: get2,
30957
31000
  getIndex: (index) => {
@@ -30976,12 +31019,12 @@ function getStorage(type) {
30976
31019
  }
30977
31020
  return result;
30978
31021
  },
30979
- set: (key, value2) => {
30980
- webStorage.setItem(key, encode2(value2));
30981
- },
30982
- remove: (key) => {
30983
- webStorage.removeItem(key);
30984
- },
31022
+ set: setItem,
31023
+ // TODO: remove in Qv3
31024
+ setItem,
31025
+ remove: removeItem,
31026
+ // TODO: remove in Qv3
31027
+ removeItem,
30985
31028
  clear: () => {
30986
31029
  webStorage.clear();
30987
31030
  },
@@ -30989,7 +31032,7 @@ function getStorage(type) {
30989
31032
  };
30990
31033
  }
30991
31034
 
30992
- // src/plugins/local-storage/LocalStorage.js
31035
+ // src/plugins/storage/LocalStorage.js
30993
31036
  var storage = client.has.webStorage === false ? getEmptyStorage() : getStorage("local");
30994
31037
  var Plugin9 = {
30995
31038
  install({ $q }) {
@@ -30999,7 +31042,7 @@ var Plugin9 = {
30999
31042
  Object.assign(Plugin9, storage);
31000
31043
  var LocalStorage_default = Plugin9;
31001
31044
 
31002
- // src/plugins/session-storage/SessionStorage.js
31045
+ // src/plugins/storage/SessionStorage.js
31003
31046
  var storage2 = client.has.webStorage === false ? getEmptyStorage() : getStorage("session");
31004
31047
  var Plugin10 = {
31005
31048
  install({ $q }) {
@@ -31009,7 +31052,7 @@ var Plugin10 = {
31009
31052
  Object.assign(Plugin10, storage2);
31010
31053
  var SessionStorage_default = Plugin10;
31011
31054
 
31012
- // src/composables/use-dialog-plugin-component.js
31055
+ // src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js
31013
31056
  import { ref as ref72, getCurrentInstance as getCurrentInstance86 } from "vue";
31014
31057
  function useDialogPluginComponent() {
31015
31058
  const { emit, proxy } = getCurrentInstance86();
@@ -31038,9 +31081,8 @@ function useDialogPluginComponent() {
31038
31081
  var emits2 = ["ok", "hide"];
31039
31082
  useDialogPluginComponent.emits = emits2;
31040
31083
  useDialogPluginComponent.emitsObject = get_emits_object_default(emits2);
31041
- var use_dialog_plugin_component_default = useDialogPluginComponent;
31042
31084
 
31043
- // src/composables/use-meta.js
31085
+ // src/composables/use-meta/use-meta.js
31044
31086
  import { computed as computed116, watch as watch50, onActivated as onActivated8, onDeactivated as onDeactivated10, onUnmounted as onUnmounted3, useSSRContext } from "vue";
31045
31087
  function use_meta_default(metaOptions) {
31046
31088
  if (false) {
@@ -31077,13 +31119,13 @@ function use_meta_default(metaOptions) {
31077
31119
  }
31078
31120
  }
31079
31121
 
31080
- // src/composables/use-quasar.js
31122
+ // src/composables/use-quasar/use-quasar.js
31081
31123
  import { inject as inject13 } from "vue";
31082
31124
  function useQuasar() {
31083
31125
  return inject13(quasarKey);
31084
31126
  }
31085
31127
 
31086
- // src/composables/use-interval.js
31128
+ // src/composables/use-interval/use-interval.js
31087
31129
  import { onDeactivated as onDeactivated11, onBeforeUnmount as onBeforeUnmount38, getCurrentInstance as getCurrentInstance87 } from "vue";
31088
31130
  function use_interval_default() {
31089
31131
  let timer2 = null;
@@ -31107,7 +31149,7 @@ function use_interval_default() {
31107
31149
  };
31108
31150
  }
31109
31151
 
31110
- // src/utils/copy-to-clipboard.js
31152
+ // src/utils/copy-to-clipboard/copy-to-clipboard.js
31111
31153
  function fallback(text) {
31112
31154
  const area = document.createElement("textarea");
31113
31155
  area.value = text;
@@ -31135,7 +31177,7 @@ function copy_to_clipboard_default(text) {
31135
31177
  });
31136
31178
  }
31137
31179
 
31138
- // src/utils/create-meta-mixin.js
31180
+ // src/utils/create-meta-mixin/create-meta-mixin.js
31139
31181
  var create_meta_mixin_default = (metaOptions) => {
31140
31182
  if (false) {
31141
31183
  return {
@@ -31192,28 +31234,28 @@ var create_meta_mixin_default = (metaOptions) => {
31192
31234
  return mixin;
31193
31235
  };
31194
31236
 
31195
- // src/utils/EventBus.js
31237
+ // src/utils/EventBus/EventBus.js
31196
31238
  var EventBus = class {
31197
31239
  constructor() {
31198
31240
  this.__stack = {};
31199
31241
  }
31200
- on(name, callback, ctx) {
31201
- (this.__stack[name] || (this.__stack[name] = [])).push({
31242
+ on(name2, callback, ctx) {
31243
+ (this.__stack[name2] || (this.__stack[name2] = [])).push({
31202
31244
  fn: callback,
31203
31245
  ctx
31204
31246
  });
31205
31247
  return this;
31206
31248
  }
31207
- once(name, callback, ctx) {
31249
+ once(name2, callback, ctx) {
31208
31250
  const listener = (...args) => {
31209
- this.off(name, listener);
31251
+ this.off(name2, listener);
31210
31252
  callback.apply(ctx, args);
31211
31253
  };
31212
31254
  listener.__callback = callback;
31213
- return this.on(name, listener, ctx);
31255
+ return this.on(name2, listener, ctx);
31214
31256
  }
31215
- emit(name) {
31216
- const list = this.__stack[name];
31257
+ emit(name2) {
31258
+ const list = this.__stack[name2];
31217
31259
  if (list !== void 0) {
31218
31260
  const params = [].slice.call(arguments, 1);
31219
31261
  list.forEach((entry) => {
@@ -31222,28 +31264,28 @@ var EventBus = class {
31222
31264
  }
31223
31265
  return this;
31224
31266
  }
31225
- off(name, callback) {
31226
- const list = this.__stack[name];
31267
+ off(name2, callback) {
31268
+ const list = this.__stack[name2];
31227
31269
  if (list === void 0) {
31228
31270
  return this;
31229
31271
  }
31230
31272
  if (callback === void 0) {
31231
- delete this.__stack[name];
31273
+ delete this.__stack[name2];
31232
31274
  return this;
31233
31275
  }
31234
31276
  const liveEvents = list.filter(
31235
31277
  (entry) => entry.fn !== callback && entry.fn.__callback !== callback
31236
31278
  );
31237
31279
  if (liveEvents.length !== 0) {
31238
- this.__stack[name] = liveEvents;
31280
+ this.__stack[name2] = liveEvents;
31239
31281
  } else {
31240
- delete this.__stack[name];
31282
+ delete this.__stack[name2];
31241
31283
  }
31242
31284
  return this;
31243
31285
  }
31244
31286
  };
31245
31287
 
31246
- // src/utils/export-file.js
31288
+ // src/utils/export-file/export-file.js
31247
31289
  function clean(link) {
31248
31290
  setTimeout(() => {
31249
31291
  window.URL.revokeObjectURL(link.href);
@@ -31274,7 +31316,7 @@ function export_file_default(fileName, rawData, opts = {}) {
31274
31316
  }
31275
31317
  }
31276
31318
 
31277
- // src/utils/open-url.js
31319
+ // src/utils/open-url/open-url.js
31278
31320
  function parseFeatures(winFeatures) {
31279
31321
  const cfg = Object.assign({ noopener: true }, winFeatures);
31280
31322
  const feat = [];
@@ -31325,7 +31367,7 @@ var open_url_default = (url, reject, windowFeatures) => {
31325
31367
  return openWindow(url, reject, windowFeatures);
31326
31368
  };
31327
31369
 
31328
- // src/utils/run-sequential-promises.js
31370
+ // src/utils/run-sequential-promises/run-sequential-promises.js
31329
31371
  function parsePromises(sequentialPromises) {
31330
31372
  const isList = Array.isArray(sequentialPromises);
31331
31373
  if (isList === true) {
@@ -31389,10 +31431,14 @@ function runSequentialPromises(sequentialPromises, { threadsNumber = 1, abortOnF
31389
31431
 
31390
31432
  // src/index.dev.js
31391
31433
  var Quasar = {
31392
- version: "2.15.2",
31434
+ version: "2.15.4",
31393
31435
  install: install_quasar_default,
31394
- lang: lang_default,
31395
- iconSet: icon_set_default
31436
+ // TODO: remove in Qv3 (should only be used through the plugin)
31437
+ // We provide a deprecated fallback here
31438
+ lang: Lang_default,
31439
+ // TODO: remove in Qv3 (should only be used through the plugin)
31440
+ // We provide a deprecated fallback here
31441
+ iconSet: IconSet_default
31396
31442
  };
31397
31443
  export {
31398
31444
  AddressbarColor_default as AddressbarColor,
@@ -31404,7 +31450,9 @@ export {
31404
31450
  Dark_default as Dark,
31405
31451
  Dialog_default as Dialog,
31406
31452
  EventBus,
31453
+ IconSet_default as IconSet,
31407
31454
  Intersection_default as Intersection,
31455
+ Lang_default as Lang,
31408
31456
  Loading_default as Loading,
31409
31457
  LoadingBar_default as LoadingBar,
31410
31458
  LocalStorage_default as LocalStorage,
@@ -31570,7 +31618,7 @@ export {
31570
31618
  setCssVar,
31571
31619
  throttle_default as throttle,
31572
31620
  uid_default as uid,
31573
- use_dialog_plugin_component_default as useDialogPluginComponent,
31621
+ useDialogPluginComponent,
31574
31622
  use_form_child_default as useFormChild,
31575
31623
  use_hydration_default as useHydration,
31576
31624
  use_id_default as useId,