quasar 2.15.2 → 2.15.3

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