vuetify 3.3.1 → 3.3.2

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 (470) hide show
  1. package/dist/json/attributes.json +40 -44
  2. package/dist/json/importMap.json +4 -4
  3. package/dist/json/tags.json +0 -1
  4. package/dist/json/web-types.json +605 -748
  5. package/dist/vuetify-labs.css +53 -32
  6. package/dist/vuetify-labs.d.ts +1591 -1494
  7. package/dist/vuetify-labs.esm.js +8140 -8073
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +8139 -8072
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +21 -1
  12. package/dist/vuetify.d.ts +1187 -1187
  13. package/dist/vuetify.esm.js +6685 -6547
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +6684 -6546
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +979 -975
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +31 -31
  21. package/lib/blueprints/md1.d.mts +31 -31
  22. package/lib/blueprints/md2.d.mts +31 -31
  23. package/lib/blueprints/md3.d.mts +31 -31
  24. package/lib/components/VAlert/VAlert.mjs +6 -6
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/index.d.mts +1 -1
  27. package/lib/components/VApp/VApp.mjs +4 -4
  28. package/lib/components/VApp/VApp.mjs.map +1 -1
  29. package/lib/components/VAppBar/VAppBar.mjs +9 -6
  30. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  31. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -1
  32. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  33. package/lib/components/VAppBar/index.d.mts +1 -1
  34. package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -11
  35. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  36. package/lib/components/VAutocomplete/index.d.mts +88 -88
  37. package/lib/components/VAvatar/VAvatar.mjs +4 -4
  38. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  39. package/lib/components/VBadge/VBadge.mjs +6 -6
  40. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  41. package/lib/components/VBanner/VBanner.mjs +7 -10
  42. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  43. package/lib/components/VBanner/VBannerActions.mjs +2 -2
  44. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  45. package/lib/components/VBanner/VBannerText.mjs +1 -0
  46. package/lib/components/VBanner/VBannerText.mjs.map +1 -1
  47. package/lib/components/VBanner/index.d.mts +1 -1
  48. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +8 -8
  49. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  50. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +6 -9
  51. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  52. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +2 -2
  53. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  54. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +3 -3
  55. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  56. package/lib/components/VBtn/VBtn.mjs +6 -6
  57. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  58. package/lib/components/VBtnGroup/VBtnGroup.mjs +4 -4
  59. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  60. package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
  61. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  62. package/lib/components/VCard/VCard.mjs +7 -7
  63. package/lib/components/VCard/VCard.mjs.map +1 -1
  64. package/lib/components/VCard/VCardItem.mjs +4 -4
  65. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  66. package/lib/components/VCard/VCardSubtitle.mjs +1 -0
  67. package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
  68. package/lib/components/VCard/VCardText.mjs +1 -0
  69. package/lib/components/VCard/VCardText.mjs.map +1 -1
  70. package/lib/components/VCard/VCardTitle.mjs +1 -0
  71. package/lib/components/VCard/VCardTitle.mjs.map +1 -1
  72. package/lib/components/VCard/index.d.mts +1 -1
  73. package/lib/components/VCarousel/VCarousel.mjs +4 -7
  74. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  75. package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
  76. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  77. package/lib/components/VCheckbox/VCheckbox.mjs +3 -3
  78. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  79. package/lib/components/VCheckbox/VCheckboxBtn.mjs +4 -4
  80. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  81. package/lib/components/VCheckbox/index.d.mts +50 -50
  82. package/lib/components/VChip/VChip.mjs +7 -7
  83. package/lib/components/VChip/VChip.mjs.map +1 -1
  84. package/lib/components/VChipGroup/VChipGroup.mjs +4 -7
  85. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  86. package/lib/components/VCode/index.mjs +3 -0
  87. package/lib/components/VCode/index.mjs.map +1 -1
  88. package/lib/components/VColorPicker/VColorPicker.mjs +10 -12
  89. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  90. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +2 -5
  91. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  92. package/lib/components/VColorPicker/VColorPickerEdit.mjs +3 -3
  93. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  94. package/lib/components/VColorPicker/VColorPickerPreview.mjs +3 -3
  95. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  96. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +1 -1
  97. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  98. package/lib/components/VCombobox/VCombobox.mjs +13 -12
  99. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  100. package/lib/components/VCombobox/index.d.mts +88 -88
  101. package/lib/components/VCounter/VCounter.mjs +2 -2
  102. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  103. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -4
  104. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  105. package/lib/components/VDefaultsProvider/index.d.mts +7 -9
  106. package/lib/components/VDialog/VDialog.mjs +7 -7
  107. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  108. package/lib/components/VDialog/index.d.mts +66 -66
  109. package/lib/components/VDivider/VDivider.mjs +3 -3
  110. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  111. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +5 -5
  112. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  113. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +3 -3
  114. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  115. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -5
  116. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  117. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +3 -3
  118. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  119. package/lib/components/VExpansionPanel/index.d.mts +1 -1
  120. package/lib/components/VField/VField.mjs +8 -8
  121. package/lib/components/VField/VField.mjs.map +1 -1
  122. package/lib/components/VField/VFieldLabel.mjs +1 -1
  123. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  124. package/lib/components/VField/index.d.mts +5 -5
  125. package/lib/components/VFileInput/VFileInput.mjs +5 -5
  126. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  127. package/lib/components/VFileInput/index.d.mts +60 -60
  128. package/lib/components/VFooter/VFooter.mjs +4 -4
  129. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  130. package/lib/components/VForm/VForm.mjs +3 -3
  131. package/lib/components/VForm/VForm.mjs.map +1 -1
  132. package/lib/components/VGrid/VCol.mjs +2 -2
  133. package/lib/components/VGrid/VCol.mjs.map +1 -1
  134. package/lib/components/VGrid/VContainer.mjs +3 -3
  135. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  136. package/lib/components/VGrid/VRow.mjs +2 -2
  137. package/lib/components/VGrid/VRow.mjs.map +1 -1
  138. package/lib/components/VGrid/VSpacer.mjs +1 -0
  139. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  140. package/lib/components/VHover/VHover.mjs +1 -1
  141. package/lib/components/VHover/VHover.mjs.map +1 -1
  142. package/lib/components/VIcon/VIcon.mjs +4 -4
  143. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  144. package/lib/components/VImg/VImg.mjs +5 -4
  145. package/lib/components/VImg/VImg.mjs.map +1 -1
  146. package/lib/components/VInput/InputIcon.mjs +3 -2
  147. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  148. package/lib/components/VInput/VInput.mjs +8 -4
  149. package/lib/components/VInput/VInput.mjs.map +1 -1
  150. package/lib/components/VInput/index.d.mts +10 -10
  151. package/lib/components/VItemGroup/VItem.mjs +2 -2
  152. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  153. package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
  154. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  155. package/lib/components/VKbd/index.mjs +3 -0
  156. package/lib/components/VKbd/index.mjs.map +1 -1
  157. package/lib/components/VLabel/VLabel.mjs +1 -1
  158. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  159. package/lib/components/VLayout/VLayout.mjs +3 -3
  160. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  161. package/lib/components/VLayout/VLayoutItem.mjs +1 -1
  162. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  163. package/lib/components/VLazy/VLazy.mjs +3 -3
  164. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  165. package/lib/components/VList/VList.css +1 -0
  166. package/lib/components/VList/VList.mjs +5 -4
  167. package/lib/components/VList/VList.mjs.map +1 -1
  168. package/lib/components/VList/VList.sass +1 -0
  169. package/lib/components/VList/VListChildren.mjs +3 -3
  170. package/lib/components/VList/VListChildren.mjs.map +1 -1
  171. package/lib/components/VList/VListGroup.mjs +8 -8
  172. package/lib/components/VList/VListGroup.mjs.map +1 -1
  173. package/lib/components/VList/VListImg.mjs +1 -0
  174. package/lib/components/VList/VListImg.mjs.map +1 -1
  175. package/lib/components/VList/VListItem.css +18 -0
  176. package/lib/components/VList/VListItem.mjs +9 -9
  177. package/lib/components/VList/VListItem.mjs.map +1 -1
  178. package/lib/components/VList/VListItem.sass +12 -0
  179. package/lib/components/VList/VListItemAction.mjs +1 -1
  180. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  181. package/lib/components/VList/VListItemMedia.mjs +1 -1
  182. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  183. package/lib/components/VList/VListItemSubtitle.mjs +1 -0
  184. package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
  185. package/lib/components/VList/VListItemTitle.mjs +1 -0
  186. package/lib/components/VList/VListItemTitle.mjs.map +1 -1
  187. package/lib/components/VList/VListSubheader.mjs +3 -3
  188. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  189. package/lib/components/VList/index.d.mts +24 -24
  190. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +1 -1
  191. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  192. package/lib/components/VMain/VMain.mjs +3 -3
  193. package/lib/components/VMain/VMain.mjs.map +1 -1
  194. package/lib/components/VMenu/VMenu.mjs +7 -7
  195. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  196. package/lib/components/VMenu/index.d.mts +113 -113
  197. package/lib/components/VMenu/shared.mjs +2 -0
  198. package/lib/components/VMenu/shared.mjs.map +1 -1
  199. package/lib/components/VMessages/VMessages.mjs +3 -3
  200. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  201. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +17 -13
  202. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  203. package/lib/components/VOverlay/VOverlay.mjs +11 -14
  204. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  205. package/lib/components/VOverlay/index.d.mts +21 -21
  206. package/lib/components/VOverlay/locationStrategies.mjs +5 -5
  207. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  208. package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
  209. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  210. package/lib/components/VOverlay/useActivator.mjs +6 -10
  211. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  212. package/lib/components/VOverlay/util/point.mjs +2 -0
  213. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  214. package/lib/components/VPagination/VPagination.mjs +9 -9
  215. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  216. package/lib/components/VParallax/VParallax.mjs +3 -6
  217. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  218. package/lib/components/VProgressCircular/VProgressCircular.mjs +5 -5
  219. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  220. package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -6
  221. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  222. package/lib/components/VRadio/VRadio.mjs +3 -3
  223. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  224. package/lib/components/VRadio/index.d.mts +4 -4
  225. package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -4
  226. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  227. package/lib/components/VRadioGroup/index.d.mts +32 -32
  228. package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -4
  229. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  230. package/lib/components/VRangeSlider/index.d.mts +8 -8
  231. package/lib/components/VRating/VRating.mjs +6 -9
  232. package/lib/components/VRating/VRating.mjs.map +1 -1
  233. package/lib/components/VResponsive/VResponsive.css +1 -0
  234. package/lib/components/VResponsive/VResponsive.mjs +1 -1
  235. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  236. package/lib/components/VResponsive/VResponsive.sass +1 -0
  237. package/lib/components/VSelect/VSelect.mjs +9 -9
  238. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  239. package/lib/components/VSelect/index.d.mts +88 -88
  240. package/lib/components/VSelectionControl/VSelectionControl.mjs +7 -7
  241. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  242. package/lib/components/VSelectionControl/index.d.mts +2 -2
  243. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +6 -6
  244. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  245. package/lib/components/VSheet/VSheet.mjs +4 -4
  246. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  247. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  248. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  249. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +2 -2
  250. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  251. package/lib/components/VSlider/VSlider.mjs +6 -6
  252. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  253. package/lib/components/VSlider/VSliderThumb.mjs +6 -6
  254. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  255. package/lib/components/VSlider/VSliderTrack.mjs +3 -3
  256. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  257. package/lib/components/VSlider/index.d.mts +8 -8
  258. package/lib/components/VSlider/slider.mjs +4 -7
  259. package/lib/components/VSlider/slider.mjs.map +1 -1
  260. package/lib/components/VSnackbar/VSnackbar.mjs +7 -7
  261. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  262. package/lib/components/VSnackbar/index.d.mts +77 -77
  263. package/lib/components/VStepper/index.mjs +3 -2
  264. package/lib/components/VStepper/index.mjs.map +1 -1
  265. package/lib/components/VSwitch/VSwitch.mjs +6 -6
  266. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  267. package/lib/components/VSwitch/index.d.mts +41 -41
  268. package/lib/components/VSystemBar/VSystemBar.mjs +4 -4
  269. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  270. package/lib/components/VTable/VTable.mjs +1 -1
  271. package/lib/components/VTable/VTable.mjs.map +1 -1
  272. package/lib/components/VTabs/VTab.mjs +3 -3
  273. package/lib/components/VTabs/VTab.mjs.map +1 -1
  274. package/lib/components/VTabs/VTabs.mjs +7 -7
  275. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  276. package/lib/components/VTabs/shared.mjs +2 -0
  277. package/lib/components/VTabs/shared.mjs.map +1 -1
  278. package/lib/components/VTextField/VTextField.mjs +6 -6
  279. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  280. package/lib/components/VTextField/index.d.mts +72 -72
  281. package/lib/components/VTextarea/VTextarea.mjs +8 -11
  282. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  283. package/lib/components/VTextarea/index.d.mts +60 -60
  284. package/lib/components/VThemeProvider/VThemeProvider.mjs +1 -1
  285. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  286. package/lib/components/VTimeline/VTimeline.mjs +4 -4
  287. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  288. package/lib/components/VTimeline/VTimelineDivider.mjs +5 -5
  289. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  290. package/lib/components/VTimeline/VTimelineItem.mjs +4 -7
  291. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  292. package/lib/components/VToolbar/VToolbar.mjs +8 -8
  293. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  294. package/lib/components/VToolbar/VToolbarItems.mjs +4 -4
  295. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  296. package/lib/components/VToolbar/VToolbarTitle.mjs +1 -1
  297. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  298. package/lib/components/VToolbar/index.d.mts +1 -1
  299. package/lib/components/VTooltip/VTooltip.mjs +6 -6
  300. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  301. package/lib/components/VTooltip/index.d.mts +113 -113
  302. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +15 -93
  303. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  304. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +9 -4
  305. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  306. package/lib/components/VVirtualScroll/index.d.mts +9 -9
  307. package/lib/components/VWindow/VWindow.mjs +6 -6
  308. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  309. package/lib/components/VWindow/VWindowItem.mjs +5 -5
  310. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  311. package/lib/components/index.d.mts +1481 -1483
  312. package/lib/components/transitions/createTransition.mjs +5 -8
  313. package/lib/components/transitions/createTransition.mjs.map +1 -1
  314. package/lib/components/transitions/dialog-transition.mjs +1 -3
  315. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  316. package/lib/components/transitions/index.d.mts +117 -117
  317. package/lib/composables/defaults.mjs +5 -0
  318. package/lib/composables/defaults.mjs.map +1 -1
  319. package/lib/composables/display.mjs +1 -1
  320. package/lib/composables/display.mjs.map +1 -1
  321. package/lib/composables/filter.mjs +2 -4
  322. package/lib/composables/filter.mjs.map +1 -1
  323. package/lib/composables/focus.mjs +1 -1
  324. package/lib/composables/focus.mjs.map +1 -1
  325. package/lib/composables/forwardRefs.mjs +2 -0
  326. package/lib/composables/forwardRefs.mjs.map +1 -1
  327. package/lib/composables/hydration.mjs +1 -1
  328. package/lib/composables/hydration.mjs.map +1 -1
  329. package/lib/composables/icons.mjs +7 -1
  330. package/lib/composables/icons.mjs.map +1 -1
  331. package/lib/composables/lazy.mjs +1 -3
  332. package/lib/composables/lazy.mjs.map +1 -1
  333. package/lib/composables/locale.mjs +2 -1
  334. package/lib/composables/locale.mjs.map +1 -1
  335. package/lib/composables/mutationObserver.mjs +2 -5
  336. package/lib/composables/mutationObserver.mjs.map +1 -1
  337. package/lib/composables/nested/nested.mjs +2 -2
  338. package/lib/composables/nested/nested.mjs.map +1 -1
  339. package/lib/composables/nested/selectStrategies.mjs +1 -0
  340. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  341. package/lib/composables/proxiedModel.mjs +3 -3
  342. package/lib/composables/proxiedModel.mjs.map +1 -1
  343. package/lib/composables/refs.mjs +4 -1
  344. package/lib/composables/refs.mjs.map +1 -1
  345. package/lib/composables/resizeObserver.mjs +4 -4
  346. package/lib/composables/resizeObserver.mjs.map +1 -1
  347. package/lib/composables/router.mjs +1 -4
  348. package/lib/composables/router.mjs.map +1 -1
  349. package/lib/composables/scopeId.mjs +1 -0
  350. package/lib/composables/scopeId.mjs.map +1 -1
  351. package/lib/composables/theme.mjs.map +1 -1
  352. package/lib/composables/toggleScope.mjs +4 -0
  353. package/lib/composables/toggleScope.mjs.map +1 -1
  354. package/lib/composables/touch.mjs +1 -0
  355. package/lib/composables/touch.mjs.map +1 -1
  356. package/lib/composables/validation.mjs +2 -2
  357. package/lib/composables/validation.mjs.map +1 -1
  358. package/lib/composables/virtual.mjs +108 -0
  359. package/lib/composables/virtual.mjs.map +1 -0
  360. package/lib/directives/click-outside/index.mjs +2 -1
  361. package/lib/directives/click-outside/index.mjs.map +1 -1
  362. package/lib/directives/intersect/index.mjs +1 -1
  363. package/lib/directives/intersect/index.mjs.map +1 -1
  364. package/lib/directives/resize/index.mjs +2 -0
  365. package/lib/directives/resize/index.mjs.map +1 -1
  366. package/lib/directives/scroll/index.mjs +2 -0
  367. package/lib/directives/scroll/index.mjs.map +1 -1
  368. package/lib/directives/touch/index.mjs +1 -2
  369. package/lib/directives/touch/index.mjs.map +1 -1
  370. package/lib/entry-bundler.mjs +7 -2
  371. package/lib/entry-bundler.mjs.map +1 -1
  372. package/lib/framework.mjs +4 -6
  373. package/lib/framework.mjs.map +1 -1
  374. package/lib/iconsets/fa.mjs +1 -1
  375. package/lib/iconsets/fa.mjs.map +1 -1
  376. package/lib/iconsets/fa4.mjs +4 -3
  377. package/lib/iconsets/fa4.mjs.map +1 -1
  378. package/lib/iconsets/md.mjs +4 -3
  379. package/lib/iconsets/md.mjs.map +1 -1
  380. package/lib/iconsets/mdi-svg.mjs +1 -1
  381. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  382. package/lib/iconsets/mdi.mjs +4 -3
  383. package/lib/iconsets/mdi.mjs.map +1 -1
  384. package/lib/index.d.mts +34 -32
  385. package/lib/labs/VBottomSheet/VBottomSheet.mjs +1 -1
  386. package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -1
  387. package/lib/labs/VBottomSheet/index.d.mts +21 -21
  388. package/lib/labs/VDataIterator/VDataIterator.mjs +7 -7
  389. package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -1
  390. package/lib/labs/VDataIterator/composables/items.mjs +2 -2
  391. package/lib/labs/VDataIterator/composables/items.mjs.map +1 -1
  392. package/lib/labs/VDataIterator/index.d.mts +28 -27
  393. package/lib/labs/VDataTable/VDataTable.css +1 -0
  394. package/lib/labs/VDataTable/VDataTable.mjs +8 -8
  395. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  396. package/lib/labs/VDataTable/VDataTable.sass +1 -0
  397. package/lib/labs/VDataTable/VDataTableColumn.mjs +2 -1
  398. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
  399. package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -3
  400. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  401. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +5 -5
  402. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  403. package/lib/labs/VDataTable/VDataTableHeaders.mjs +6 -6
  404. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  405. package/lib/labs/VDataTable/VDataTableRow.mjs +1 -1
  406. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  407. package/lib/labs/VDataTable/VDataTableRows.mjs +20 -16
  408. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  409. package/lib/labs/VDataTable/VDataTableServer.mjs +7 -7
  410. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  411. package/lib/labs/VDataTable/VDataTableVirtual.mjs +34 -22
  412. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  413. package/lib/labs/VDataTable/composables/expand.mjs +4 -4
  414. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  415. package/lib/labs/VDataTable/composables/group.mjs +1 -1
  416. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  417. package/lib/labs/VDataTable/composables/headers.mjs +2 -2
  418. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  419. package/lib/labs/VDataTable/composables/items.mjs +5 -8
  420. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  421. package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
  422. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  423. package/lib/labs/VDataTable/composables/select.mjs +1 -1
  424. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  425. package/lib/labs/VDataTable/composables/sort.mjs +4 -9
  426. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  427. package/lib/labs/VDataTable/index.d.mts +182 -83
  428. package/lib/labs/VDataTable/types.mjs.map +1 -1
  429. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  430. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  431. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +4 -4
  432. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  433. package/lib/labs/components.d.mts +213 -114
  434. package/lib/labs/date/date.mjs.map +1 -1
  435. package/lib/labs/entry-bundler.mjs +3 -1
  436. package/lib/labs/entry-bundler.mjs.map +1 -1
  437. package/lib/locale/adapters/vue-i18n.d.mts +1 -1
  438. package/lib/locale/adapters/vue-i18n.mjs +5 -1
  439. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  440. package/lib/locale/adapters/vuetify.mjs +1 -3
  441. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  442. package/lib/util/anchor.mjs +1 -0
  443. package/lib/util/anchor.mjs.map +1 -1
  444. package/lib/util/animation.mjs +1 -0
  445. package/lib/util/animation.mjs.map +1 -1
  446. package/lib/util/color/APCA.mjs +1 -0
  447. package/lib/util/color/APCA.mjs.map +1 -1
  448. package/lib/util/color/transformCIELAB.mjs +2 -0
  449. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  450. package/lib/util/color/transformSRGB.mjs +3 -1
  451. package/lib/util/color/transformSRGB.mjs.map +1 -1
  452. package/lib/util/colorUtils.mjs +2 -2
  453. package/lib/util/colorUtils.mjs.map +1 -1
  454. package/lib/util/console.mjs +1 -0
  455. package/lib/util/console.mjs.map +1 -1
  456. package/lib/util/createSimpleFunctional.mjs +2 -1
  457. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  458. package/lib/util/defineComponent.mjs +5 -5
  459. package/lib/util/defineComponent.mjs.map +1 -1
  460. package/lib/util/getCurrentInstance.mjs +1 -2
  461. package/lib/util/getCurrentInstance.mjs.map +1 -1
  462. package/lib/util/helpers.mjs +3 -3
  463. package/lib/util/helpers.mjs.map +1 -1
  464. package/lib/util/injectSelf.mjs +2 -1
  465. package/lib/util/injectSelf.mjs.map +1 -1
  466. package/lib/util/propsFactory.mjs +1 -0
  467. package/lib/util/propsFactory.mjs.map +1 -1
  468. package/package.json +4 -4
  469. package/lib/labs/VDataTable/composables/virtual.mjs +0 -77
  470. package/lib/labs/VDataTable/composables/virtual.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"date.mjs","names":["useLocale","inject","watch","propsFactory","VuetifyDateAdapter","DateAdapterSymbol","Symbol","for","createDate","options","adapter","makeDateProps","displayDate","type","Object","default","Date","hideAdjacentMonths","Boolean","modelValue","useDate","props","date","locale","Error","instance","current","value","val"],"sources":["../../../src/labs/date/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, watch } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\n// Types\nimport type { DateAdapter } from './DateAdapter'\nimport type { InjectionKey, PropType } from 'vue'\n\nexport interface DateInstance extends DateAdapter<Date> {\n locale: string\n}\n\nexport type DateOptions = {\n adapter: (new (locale: string) => DateInstance) | DateInstance\n}\n\nexport const DateAdapterSymbol: InjectionKey<DateOptions> = Symbol.for('vuetify:date-adapter')\n\nexport interface DateProps {\n displayDate: Date\n hideAdjacentMonths: boolean\n modelValue: readonly any[]\n}\n\nexport function createDate (options?: DateOptions) {\n return options ?? { adapter: VuetifyDateAdapter }\n}\n\n// TODO: revisit this after it starts being implemented\nexport const makeDateProps = propsFactory({\n displayDate: {\n type: Object as PropType<Date>,\n default: new Date(),\n },\n hideAdjacentMonths: Boolean,\n modelValue: {\n type: null as unknown as PropType<readonly any[]>,\n default: () => [],\n },\n}, 'date')\n\nexport function useDate (props?: DateProps) {\n const date = inject(DateAdapterSymbol)\n const locale = useLocale()\n\n if (!date) throw new Error('[Vuetify] Could not find injected date')\n\n const instance = typeof date.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new date.adapter(locale.current.value)\n : date.adapter\n\n if (typeof date.adapter === 'function') {\n watch(locale.current, val => {\n instance.locale = val\n })\n }\n\n return instance\n}\n"],"mappings":"AAAA;AAAA,SACSA,SAAS,wCAElB;AACA,SAASC,MAAM,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC1BC,YAAY,gCAErB;AAAA,SACSC,kBAAkB,kCAE3B;AAYA,OAAO,MAAMC,iBAA4C,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAQ9F,OAAO,SAASC,UAAUA,CAAEC,OAAqB,EAAE;EACjD,OAAOA,OAAO,IAAI;IAAEC,OAAO,EAAEN;EAAmB,CAAC;AACnD;;AAEA;AACA,OAAO,MAAMO,aAAa,GAAGR,YAAY,CAAC;EACxCS,WAAW,EAAE;IACXC,IAAI,EAAEC,MAAwB;IAC9BC,OAAO,EAAE,IAAIC,IAAI;EACnB,CAAC;EACDC,kBAAkB,EAAEC,OAAO;EAC3BC,UAAU,EAAE;IACVN,IAAI,EAAE,IAA2C;IACjDE,OAAO,EAAEA,CAAA,KAAM;EACjB;AACF,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASK,OAAOA,CAAEC,KAAiB,EAAE;EAC1C,MAAMC,IAAI,GAAGrB,MAAM,CAACI,iBAAiB,CAAC;EACtC,MAAMkB,MAAM,GAAGvB,SAAS,EAAE;EAE1B,IAAI,CAACsB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,wCAAwC,CAAC;EAEpE,MAAMC,QAAQ,GAAG,OAAOH,IAAI,CAACZ,OAAO,KAAK;EACvC;EAAA,EACE,IAAIY,IAAI,CAACZ,OAAO,CAACa,MAAM,CAACG,OAAO,CAACC,KAAK,CAAC,GACtCL,IAAI,CAACZ,OAAO;EAEhB,IAAI,OAAOY,IAAI,CAACZ,OAAO,KAAK,UAAU,EAAE;IACtCR,KAAK,CAACqB,MAAM,CAACG,OAAO,EAAEE,GAAG,IAAI;MAC3BH,QAAQ,CAACF,MAAM,GAAGK,GAAG;IACvB,CAAC,CAAC;EACJ;EAEA,OAAOH,QAAQ;AACjB"}
1
+ {"version":3,"file":"date.mjs","names":["useLocale","inject","watch","propsFactory","VuetifyDateAdapter","DateAdapterSymbol","Symbol","for","createDate","options","adapter","makeDateProps","displayDate","type","Object","default","Date","hideAdjacentMonths","Boolean","modelValue","useDate","props","date","locale","Error","instance","current","value","val"],"sources":["../../../src/labs/date/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, watch } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\n\nexport interface DateInstance extends DateAdapter<Date> {\n locale: string\n}\n\nexport type DateOptions = {\n adapter: (new (locale: string) => DateInstance) | DateInstance\n}\n\nexport const DateAdapterSymbol: InjectionKey<DateOptions> = Symbol.for('vuetify:date-adapter')\n\nexport interface DateProps {\n displayDate: Date\n hideAdjacentMonths: boolean\n modelValue: readonly any[]\n}\n\nexport function createDate (options?: DateOptions) {\n return options ?? { adapter: VuetifyDateAdapter }\n}\n\n// TODO: revisit this after it starts being implemented\nexport const makeDateProps = propsFactory({\n displayDate: {\n type: Object as PropType<Date>,\n default: new Date(),\n },\n hideAdjacentMonths: Boolean,\n modelValue: {\n type: null as unknown as PropType<readonly any[]>,\n default: () => [],\n },\n}, 'date')\n\nexport function useDate (props?: DateProps) {\n const date = inject(DateAdapterSymbol)\n const locale = useLocale()\n\n if (!date) throw new Error('[Vuetify] Could not find injected date')\n\n const instance = typeof date.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new date.adapter(locale.current.value)\n : date.adapter\n\n if (typeof date.adapter === 'function') {\n watch(locale.current, val => {\n instance.locale = val\n })\n }\n\n return instance\n}\n"],"mappings":"AAAA;AAAA,SACSA,SAAS,wCAElB;AACA,SAASC,MAAM,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC1BC,YAAY,gCAErB;AAAA,SACSC,kBAAkB,kCAE3B;AAYA,OAAO,MAAMC,iBAA4C,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAQ9F,OAAO,SAASC,UAAUA,CAAEC,OAAqB,EAAE;EACjD,OAAOA,OAAO,IAAI;IAAEC,OAAO,EAAEN;EAAmB,CAAC;AACnD;;AAEA;AACA,OAAO,MAAMO,aAAa,GAAGR,YAAY,CAAC;EACxCS,WAAW,EAAE;IACXC,IAAI,EAAEC,MAAwB;IAC9BC,OAAO,EAAE,IAAIC,IAAI;EACnB,CAAC;EACDC,kBAAkB,EAAEC,OAAO;EAC3BC,UAAU,EAAE;IACVN,IAAI,EAAE,IAA2C;IACjDE,OAAO,EAAEA,CAAA,KAAM;EACjB;AACF,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASK,OAAOA,CAAEC,KAAiB,EAAE;EAC1C,MAAMC,IAAI,GAAGrB,MAAM,CAACI,iBAAiB,CAAC;EACtC,MAAMkB,MAAM,GAAGvB,SAAS,EAAE;EAE1B,IAAI,CAACsB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,wCAAwC,CAAC;EAEpE,MAAMC,QAAQ,GAAG,OAAOH,IAAI,CAACZ,OAAO,KAAK;EACvC;EAAA,EACE,IAAIY,IAAI,CAACZ,OAAO,CAACa,MAAM,CAACG,OAAO,CAACC,KAAK,CAAC,GACtCL,IAAI,CAACZ,OAAO;EAEhB,IAAI,OAAOY,IAAI,CAACZ,OAAO,KAAK,UAAU,EAAE;IACtCR,KAAK,CAACqB,MAAM,CAACG,OAAO,EAAEE,GAAG,IAAI;MAC3BH,QAAQ,CAACF,MAAM,GAAGK,GAAG;IACvB,CAAC,CAAC;EACJ;EAEA,OAAOH,QAAQ;AACjB"}
@@ -1,6 +1,8 @@
1
+ /* eslint-disable local-rules/sort-imports */
2
+ // Components
1
3
  import * as components from "./allComponents.mjs";
2
4
  import * as directives from "../directives/index.mjs";
3
- import { createVuetify as _createVuetify } from "../framework.mjs";
5
+ import { createVuetify as _createVuetify } from "../framework.mjs"; // Types
4
6
  export * from "../entry-bundler.mjs";
5
7
  export { components };
6
8
  export const createVuetify = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"entry-bundler.mjs","names":["components","directives","createVuetify","_createVuetify","options","arguments","length","undefined"],"sources":["../../src/labs/entry-bundler.ts"],"sourcesContent":["import * as components from './allComponents'\nimport * as directives from '@/directives'\nimport { createVuetify as _createVuetify } from '@/framework'\nimport type { VuetifyOptions } from '@/framework'\n\nexport * from '@/entry-bundler'\nexport { components }\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n"],"mappings":"OAAO,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc;AAAA;AAIxC,SAASH,UAAU;AAEnB,OAAO,MAAME,aAAa,GAAG,SAAAA,CAAA,EAAkC;EAAA,IAAjCE,OAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxD,OAAOF,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"entry-bundler.mjs","names":["components","directives","createVuetify","_createVuetify","options","arguments","length","undefined"],"sources":["../../src/labs/entry-bundler.ts"],"sourcesContent":["/* eslint-disable local-rules/sort-imports */\n\n// Components\nimport * as components from './allComponents'\nimport * as directives from '@/directives'\nimport { createVuetify as _createVuetify } from '@/framework'\n\n// Types\nimport type { VuetifyOptions } from '@/framework'\n\nexport * from '@/entry-bundler'\nexport { components }\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n"],"mappings":"AAAA;AAEA;AAAA,OACO,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc,4BAExC;AAAA;AAIA,SAASH,UAAU;AAEnB,OAAO,MAAME,aAAa,GAAG,SAAAA,CAAA,EAAkC;EAAA,IAAjCE,OAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxD,OAAOF,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Ref } from 'vue';
2
1
  import { I18n, useI18n } from 'vue-i18n';
2
+ import { Ref } from 'vue';
3
3
 
4
4
  interface LocaleMessages {
5
5
  [key: string]: LocaleMessages | string;
@@ -1,5 +1,9 @@
1
+ // Composables
2
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
1
3
  import { watch } from 'vue';
2
- import { useProxiedModel } from "../../composables/proxiedModel.mjs";
4
+
5
+ // Types
6
+
3
7
  function useProvided(props, prop, provided) {
4
8
  const internal = useProxiedModel(props, prop);
5
9
  internal.value = props[prop] ?? provided.value;
@@ -1 +1 @@
1
- {"version":3,"file":"vue-i18n.mjs","names":["watch","useProxiedModel","useProvided","props","prop","provided","internal","value","v","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","t","key","_len","arguments","length","params","Array","_key","n","provide","createVueI18nAdapter","_ref","global","_len2","_key2"],"sources":["../../../src/locale/adapters/vue-i18n.ts"],"sourcesContent":["import { watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\nimport type { I18n, useI18n } from 'vue-i18n'\n\ntype VueI18nAdapterParams = {\n i18n: I18n<any, {}, {}, string, false>\n useI18n: typeof useI18n\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop)\n\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = v\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (data: {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n useI18n: typeof useI18n\n}) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', data.current)\n const fallback = useProvided(props, 'fallback', data.fallback)\n const messages = useProvided(props, 'messages', data.messages)\n\n const i18n = data.useI18n({\n locale: current.value,\n fallbackLocale: fallback.value,\n messages: messages.value as any,\n useScope: 'local',\n legacy: false,\n inheritLocale: false,\n })\n\n watch(current, v => {\n i18n.locale.value = v\n })\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n t: (key: string, ...params: unknown[]) => i18n.t(key, params),\n n: i18n.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n: data.useI18n }),\n }\n }\n}\n\nexport function createVueI18nAdapter ({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance {\n const current = i18n.global.locale\n const fallback = i18n.global.fallbackLocale as Ref<any>\n const messages = i18n.global.messages\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n // @ts-expect-error Type instantiation is excessively deep and possibly infinite\n t: (key: string, ...params: unknown[]) => i18n.global.t(key, params),\n n: i18n.global.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n }),\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"vue-i18n.mjs","names":["useProxiedModel","watch","useProvided","props","prop","provided","internal","value","v","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","t","key","_len","arguments","length","params","Array","_key","n","provide","createVueI18nAdapter","_ref","global","_len2","_key2"],"sources":["../../../src/locale/adapters/vue-i18n.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { watch } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { I18n, useI18n } from 'vue-i18n'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\n\ntype VueI18nAdapterParams = {\n i18n: I18n<any, {}, {}, string, false>\n useI18n: typeof useI18n\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop)\n\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = v\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (data: {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n useI18n: typeof useI18n\n}) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', data.current)\n const fallback = useProvided(props, 'fallback', data.fallback)\n const messages = useProvided(props, 'messages', data.messages)\n\n const i18n = data.useI18n({\n locale: current.value,\n fallbackLocale: fallback.value,\n messages: messages.value as any,\n useScope: 'local',\n legacy: false,\n inheritLocale: false,\n })\n\n watch(current, v => {\n i18n.locale.value = v\n })\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n t: (key: string, ...params: unknown[]) => i18n.t(key, params),\n n: i18n.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n: data.useI18n }),\n }\n }\n}\n\nexport function createVueI18nAdapter ({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance {\n const current = i18n.global.locale\n const fallback = i18n.global.fallbackLocale as Ref<any>\n const messages = i18n.global.messages\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n // @ts-expect-error Type instantiation is excessively deep and possibly infinite\n t: (key: string, ...params: unknown[]) => i18n.global.t(key, params),\n n: i18n.global.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n }),\n }\n}\n"],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  // Composables
2
2
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
3
- import { consoleError, consoleWarn, getObjectValueByPath } from "../../util/index.mjs";
4
3
  import { ref, shallowRef, watch } from 'vue';
5
-
6
- // Locales
4
+ import { consoleError, consoleWarn, getObjectValueByPath } from "../../util/index.mjs"; // Locales
7
5
  import en from "../en.mjs"; // Types
8
6
  const LANG_PREFIX = '$vuetify.';
9
7
  const replace = (str, params) => {
@@ -1 +1 @@
1
- {"version":3,"file":"vuetify.mjs","names":["useProxiedModel","consoleError","consoleWarn","getObjectValueByPath","ref","shallowRef","watch","en","LANG_PREFIX","replace","str","params","match","index","String","createTranslateFunction","current","fallback","messages","key","_len","arguments","length","Array","_key","startsWith","shortKey","currentLocale","value","fallbackLocale","createNumberFunction","options","numberFormat","Intl","NumberFormat","format","useProvided","props","prop","provided","internal","v","createProvideFunction","state","name","t","n","provide","createVuetifyAdapter","locale"],"sources":["../../../src/locale/adapters/vuetify.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\nimport { ref, shallowRef, watch } from 'vue'\n\n// Locales\nimport en from '@/locale/en'\n\n// Types\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\nimport type { Ref } from 'vue'\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref<string>, fallback: Ref<string>) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value)\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (state: { current: Ref<string>, fallback: Ref<string>, messages: Ref<LocaleMessages> }) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', state.current)\n const fallback = useProvided(props, 'fallback', state.fallback)\n const messages = useProvided(props, 'messages', state.messages)\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n }\n}\n\nexport function createVuetifyAdapter (options?: LocaleOptions): LocaleInstance {\n const current = shallowRef(options?.locale ?? 'en')\n const fallback = shallowRef(options?.fallback ?? 'en')\n const messages = ref({ en, ...options?.messages })\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"vuetify.mjs","names":["useProxiedModel","ref","shallowRef","watch","consoleError","consoleWarn","getObjectValueByPath","en","LANG_PREFIX","replace","str","params","match","index","String","createTranslateFunction","current","fallback","messages","key","_len","arguments","length","Array","_key","startsWith","shortKey","currentLocale","value","fallbackLocale","createNumberFunction","options","numberFormat","Intl","NumberFormat","format","useProvided","props","prop","provided","internal","v","createProvideFunction","state","name","t","n","provide","createVuetifyAdapter","locale"],"sources":["../../../src/locale/adapters/vuetify.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { ref, shallowRef, watch } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\n// Locales\nimport en from '@/locale/en'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref<string>, fallback: Ref<string>) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value)\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (state: { current: Ref<string>, fallback: Ref<string>, messages: Ref<LocaleMessages> }) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', state.current)\n const fallback = useProvided(props, 'fallback', state.fallback)\n const messages = useProvided(props, 'messages', state.messages)\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n }\n}\n\nexport function createVuetifyAdapter (options?: LocaleOptions): LocaleInstance {\n const current = shallowRef(options?.locale ?? 'en')\n const fallback = shallowRef(options?.fallback ?? 'en')\n const messages = ref({ en, ...options?.messages })\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n}\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ // Utilities
1
2
  import { includes } from "./helpers.mjs";
2
3
  const block = ['top', 'bottom'];
3
4
  const inline = ['start', 'end', 'left', 'right'];
@@ -1 +1 @@
1
- {"version":3,"file":"anchor.mjs","names":["includes","block","inline","parseAnchor","anchor","isRtl","side","align","split","toPhysical","str","flipSide","center","top","bottom","left","right","flipAlign","flipCorner","getAxis"],"sources":["../../src/util/anchor.ts"],"sourcesContent":["import { includes } from '@/util/helpers'\n\nconst block = ['top', 'bottom'] as const\nconst inline = ['start', 'end', 'left', 'right'] as const\ntype Tblock = typeof block[number]\ntype Tinline = typeof inline[number]\nexport type Anchor =\n | Tblock\n | Tinline\n | 'center'\n | 'center center'\n | `${Tblock} ${Tinline | 'center'}`\n | `${Tinline} ${Tblock | 'center'}`\nexport type ParsedAnchor =\n | { side: 'center', align: 'center' }\n | { side: Tblock, align: 'left' | 'right' | 'center' }\n | { side: 'left' | 'right', align: Tblock | 'center' }\n\n/** Parse a raw anchor string into an object */\nexport function parseAnchor (anchor: Anchor, isRtl: boolean) {\n let [side, align] = anchor.split(' ') as [Tblock | Tinline | 'center', Tblock | Tinline | 'center' | undefined]\n if (!align) {\n align =\n includes(block, side) ? 'start'\n : includes(inline, side) ? 'top'\n : 'center'\n }\n\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl),\n } as ParsedAnchor\n}\n\nexport function toPhysical (str: 'center' | Tblock | Tinline, isRtl: boolean) {\n if (str === 'start') return isRtl ? 'right' : 'left'\n if (str === 'end') return isRtl ? 'left' : 'right'\n return str\n}\n\nexport function flipSide (anchor: ParsedAnchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.side],\n align: anchor.align,\n } as ParsedAnchor\n}\n\nexport function flipAlign (anchor: ParsedAnchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.align],\n } as ParsedAnchor\n}\n\nexport function flipCorner (anchor: ParsedAnchor) {\n return {\n side: anchor.align,\n align: anchor.side,\n } as ParsedAnchor\n}\n\nexport function getAxis (anchor: ParsedAnchor) {\n return includes(block, anchor.side) ? 'y' : 'x'\n}\n"],"mappings":"SAASA,QAAQ;AAEjB,MAAMC,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU;AACxC,MAAMC,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAU;AAezD;AACA,OAAO,SAASC,WAAWA,CAAEC,MAAc,EAAEC,KAAc,EAAE;EAC3D,IAAI,CAACC,IAAI,EAAEC,KAAK,CAAC,GAAGH,MAAM,CAACI,KAAK,CAAC,GAAG,CAA2E;EAC/G,IAAI,CAACD,KAAK,EAAE;IACVA,KAAK,GACHP,QAAQ,CAACC,KAAK,EAAEK,IAAI,CAAC,GAAG,OAAO,GAC7BN,QAAQ,CAACE,MAAM,EAAEI,IAAI,CAAC,GAAG,KAAK,GAC9B,QAAQ;EACd;EAEA,OAAO;IACLA,IAAI,EAAEG,UAAU,CAACH,IAAI,EAAED,KAAK,CAAC;IAC7BE,KAAK,EAAEE,UAAU,CAACF,KAAK,EAAEF,KAAK;EAChC,CAAC;AACH;AAEA,OAAO,SAASI,UAAUA,CAAEC,GAAgC,EAAEL,KAAc,EAAE;EAC5E,IAAIK,GAAG,KAAK,OAAO,EAAE,OAAOL,KAAK,GAAG,OAAO,GAAG,MAAM;EACpD,IAAIK,GAAG,KAAK,KAAK,EAAE,OAAOL,KAAK,GAAG,MAAM,GAAG,OAAO;EAClD,OAAOK,GAAG;AACZ;AAEA,OAAO,SAASC,QAAQA,CAAEP,MAAoB,EAAE;EAC9C,OAAO;IACLE,IAAI,EAAE;MACJM,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,QAAQ;MACbC,MAAM,EAAE,KAAK;MACbC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE;IACT,CAAC,CAACZ,MAAM,CAACE,IAAI,CAAC;IACdC,KAAK,EAAEH,MAAM,CAACG;EAChB,CAAC;AACH;AAEA,OAAO,SAASU,SAASA,CAAEb,MAAoB,EAAE;EAC/C,OAAO;IACLE,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBC,KAAK,EAAE;MACLK,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,QAAQ;MACbC,MAAM,EAAE,KAAK;MACbC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE;IACT,CAAC,CAACZ,MAAM,CAACG,KAAK;EAChB,CAAC;AACH;AAEA,OAAO,SAASW,UAAUA,CAAEd,MAAoB,EAAE;EAChD,OAAO;IACLE,IAAI,EAAEF,MAAM,CAACG,KAAK;IAClBA,KAAK,EAAEH,MAAM,CAACE;EAChB,CAAC;AACH;AAEA,OAAO,SAASa,OAAOA,CAAEf,MAAoB,EAAE;EAC7C,OAAOJ,QAAQ,CAACC,KAAK,EAAEG,MAAM,CAACE,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG;AACjD"}
1
+ {"version":3,"file":"anchor.mjs","names":["includes","block","inline","parseAnchor","anchor","isRtl","side","align","split","toPhysical","str","flipSide","center","top","bottom","left","right","flipAlign","flipCorner","getAxis"],"sources":["../../src/util/anchor.ts"],"sourcesContent":["// Utilities\nimport { includes } from '@/util/helpers'\n\nconst block = ['top', 'bottom'] as const\nconst inline = ['start', 'end', 'left', 'right'] as const\ntype Tblock = typeof block[number]\ntype Tinline = typeof inline[number]\nexport type Anchor =\n | Tblock\n | Tinline\n | 'center'\n | 'center center'\n | `${Tblock} ${Tinline | 'center'}`\n | `${Tinline} ${Tblock | 'center'}`\nexport type ParsedAnchor =\n | { side: 'center', align: 'center' }\n | { side: Tblock, align: 'left' | 'right' | 'center' }\n | { side: 'left' | 'right', align: Tblock | 'center' }\n\n/** Parse a raw anchor string into an object */\nexport function parseAnchor (anchor: Anchor, isRtl: boolean) {\n let [side, align] = anchor.split(' ') as [Tblock | Tinline | 'center', Tblock | Tinline | 'center' | undefined]\n if (!align) {\n align =\n includes(block, side) ? 'start'\n : includes(inline, side) ? 'top'\n : 'center'\n }\n\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl),\n } as ParsedAnchor\n}\n\nexport function toPhysical (str: 'center' | Tblock | Tinline, isRtl: boolean) {\n if (str === 'start') return isRtl ? 'right' : 'left'\n if (str === 'end') return isRtl ? 'left' : 'right'\n return str\n}\n\nexport function flipSide (anchor: ParsedAnchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.side],\n align: anchor.align,\n } as ParsedAnchor\n}\n\nexport function flipAlign (anchor: ParsedAnchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.align],\n } as ParsedAnchor\n}\n\nexport function flipCorner (anchor: ParsedAnchor) {\n return {\n side: anchor.align,\n align: anchor.side,\n } as ParsedAnchor\n}\n\nexport function getAxis (anchor: ParsedAnchor) {\n return includes(block, anchor.side) ? 'y' : 'x'\n}\n"],"mappings":"AAAA;AAAA,SACSA,QAAQ;AAEjB,MAAMC,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU;AACxC,MAAMC,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAU;AAezD;AACA,OAAO,SAASC,WAAWA,CAAEC,MAAc,EAAEC,KAAc,EAAE;EAC3D,IAAI,CAACC,IAAI,EAAEC,KAAK,CAAC,GAAGH,MAAM,CAACI,KAAK,CAAC,GAAG,CAA2E;EAC/G,IAAI,CAACD,KAAK,EAAE;IACVA,KAAK,GACHP,QAAQ,CAACC,KAAK,EAAEK,IAAI,CAAC,GAAG,OAAO,GAC7BN,QAAQ,CAACE,MAAM,EAAEI,IAAI,CAAC,GAAG,KAAK,GAC9B,QAAQ;EACd;EAEA,OAAO;IACLA,IAAI,EAAEG,UAAU,CAACH,IAAI,EAAED,KAAK,CAAC;IAC7BE,KAAK,EAAEE,UAAU,CAACF,KAAK,EAAEF,KAAK;EAChC,CAAC;AACH;AAEA,OAAO,SAASI,UAAUA,CAAEC,GAAgC,EAAEL,KAAc,EAAE;EAC5E,IAAIK,GAAG,KAAK,OAAO,EAAE,OAAOL,KAAK,GAAG,OAAO,GAAG,MAAM;EACpD,IAAIK,GAAG,KAAK,KAAK,EAAE,OAAOL,KAAK,GAAG,MAAM,GAAG,OAAO;EAClD,OAAOK,GAAG;AACZ;AAEA,OAAO,SAASC,QAAQA,CAAEP,MAAoB,EAAE;EAC9C,OAAO;IACLE,IAAI,EAAE;MACJM,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,QAAQ;MACbC,MAAM,EAAE,KAAK;MACbC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE;IACT,CAAC,CAACZ,MAAM,CAACE,IAAI,CAAC;IACdC,KAAK,EAAEH,MAAM,CAACG;EAChB,CAAC;AACH;AAEA,OAAO,SAASU,SAASA,CAAEb,MAAoB,EAAE;EAC/C,OAAO;IACLE,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBC,KAAK,EAAE;MACLK,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,QAAQ;MACbC,MAAM,EAAE,KAAK;MACbC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE;IACT,CAAC,CAACZ,MAAM,CAACG,KAAK;EAChB,CAAC;AACH;AAEA,OAAO,SAASW,UAAUA,CAAEd,MAAoB,EAAE;EAChD,OAAO;IACLE,IAAI,EAAEF,MAAM,CAACG,KAAK;IAClBA,KAAK,EAAEH,MAAM,CAACE;EAChB,CAAC;AACH;AAEA,OAAO,SAASa,OAAOA,CAAEf,MAAoB,EAAE;EAC7C,OAAOJ,QAAQ,CAACC,KAAK,EAAEG,MAAM,CAACE,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG;AACjD"}
@@ -1,3 +1,4 @@
1
+ // Utilities
1
2
  import { Box } from "./box.mjs";
2
3
  /** @see https://stackoverflow.com/a/57876601/2074736 */
3
4
  export function nullifyTransforms(el) {
@@ -1 +1 @@
1
- {"version":3,"file":"animation.mjs","names":["Box","nullifyTransforms","el","rect","getBoundingClientRect","style","getComputedStyle","tx","transform","ta","sx","sy","dx","dy","startsWith","slice","split","to","transformOrigin","x","parseFloat","y","indexOf","w","width","offsetWidth","h","height","offsetHeight","animate","keyframes","options","finished","Promise","resolve","animation","err","onfinish"],"sources":["../../src/util/animation.ts"],"sourcesContent":["import { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n let animation: Animation\n try {\n animation = el.animate(keyframes, options)\n } catch (err) {\n return { finished: Promise.resolve() }\n }\n\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"animation.mjs","names":["Box","nullifyTransforms","el","rect","getBoundingClientRect","style","getComputedStyle","tx","transform","ta","sx","sy","dx","dy","startsWith","slice","split","to","transformOrigin","x","parseFloat","y","indexOf","w","width","offsetWidth","h","height","offsetHeight","animate","keyframes","options","finished","Promise","resolve","animation","err","onfinish"],"sources":["../../src/util/animation.ts"],"sourcesContent":["// Utilities\nimport { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n let animation: Animation\n try {\n animation = el.animate(keyframes, options)\n } catch (err) {\n return { finished: Promise.resolve() }\n }\n\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
4
4
  * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup
5
5
  */
6
+ // Types
6
7
 
7
8
  // MAGICAL NUMBERS
8
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"APCA.mjs","names":["mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","APCAcontrast","text","background","Rtxt","r","Gtxt","g","Btxt","b","Rbg","Gbg","Bbg","Ytxt","Ybg","Math","abs","outputContrast","SAPC"],"sources":["../../../src/util/color/APCA.ts"],"sourcesContent":["/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\nimport type { RGB } from '@/util'\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4\n\nconst Rco = 0.2126729 // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522 // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750 // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55\nconst normTXT = 0.58\nconst revTXT = 0.57\nconst revBG = 0.62\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03 // Level that triggers the soft black clamp\nconst blkClmp = 1.45 // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005 // Lint trap\nconst scaleBoW = 1.25 // Scaling for dark text on light\nconst scaleWoB = 1.25 // Scaling for light text on dark\nconst loConThresh = 0.078 // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282 // = 1/0.078,\nconst loConOffset = 0.06 // The simple offset\nconst loClip = 0.001 // Output clip (lint trap #2)\n\nexport function APCAcontrast (text: RGB, background: RGB) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC\n const Gtxt = (text.g / 255) ** mainTRC\n const Btxt = (text.b / 255) ** mainTRC\n\n const Rbg = (background.r / 255) ** mainTRC\n const Gbg = (background.g / 255) ** mainTRC\n const Bbg = (background.b / 255) ** mainTRC\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = (Rtxt * Rco) + (Gtxt * Gco) + (Btxt * Bco)\n let Ybg = (Rbg * Rco) + (Gbg * Gco) + (Bbg * Bco)\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0\n\n // SAPC CONTRAST\n\n let outputContrast: number // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = ((Ybg ** normBG) - (Ytxt ** normTXT)) * scaleBoW\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast =\n (SAPC < loClip) ? 0.0\n : (SAPC < loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC - loConOffset\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = ((Ybg ** revBG) - (Ytxt ** revTXT)) * scaleWoB\n\n outputContrast =\n (SAPC > -loClip) ? 0.0\n : (SAPC > -loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC + loConOffset\n }\n\n return outputContrast * 100\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"APCA.mjs","names":["mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","APCAcontrast","text","background","Rtxt","r","Gtxt","g","Btxt","b","Rbg","Gbg","Bbg","Ytxt","Ybg","Math","abs","outputContrast","SAPC"],"sources":["../../../src/util/color/APCA.ts"],"sourcesContent":["/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\nimport type { RGB } from '@/util'\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4\n\nconst Rco = 0.2126729 // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522 // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750 // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55\nconst normTXT = 0.58\nconst revTXT = 0.57\nconst revBG = 0.62\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03 // Level that triggers the soft black clamp\nconst blkClmp = 1.45 // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005 // Lint trap\nconst scaleBoW = 1.25 // Scaling for dark text on light\nconst scaleWoB = 1.25 // Scaling for light text on dark\nconst loConThresh = 0.078 // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282 // = 1/0.078,\nconst loConOffset = 0.06 // The simple offset\nconst loClip = 0.001 // Output clip (lint trap #2)\n\nexport function APCAcontrast (text: RGB, background: RGB) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC\n const Gtxt = (text.g / 255) ** mainTRC\n const Btxt = (text.b / 255) ** mainTRC\n\n const Rbg = (background.r / 255) ** mainTRC\n const Gbg = (background.g / 255) ** mainTRC\n const Bbg = (background.b / 255) ** mainTRC\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = (Rtxt * Rco) + (Gtxt * Gco) + (Btxt * Bco)\n let Ybg = (Rbg * Rco) + (Gbg * Gco) + (Bbg * Bco)\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0\n\n // SAPC CONTRAST\n\n let outputContrast: number // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = ((Ybg ** normBG) - (Ytxt ** normTXT)) * scaleBoW\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast =\n (SAPC < loClip) ? 0.0\n : (SAPC < loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC - loConOffset\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = ((Ybg ** revBG) - (Ytxt ** revTXT)) * scaleWoB\n\n outputContrast =\n (SAPC > -loClip) ? 0.0\n : (SAPC > -loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC + loConOffset\n }\n\n return outputContrast * 100\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAMA,OAAO,GAAG,GAAG;AAEnB,MAAMC,GAAG,GAAG,SAAS,EAAC;AACtB,MAAMC,GAAG,GAAG,SAAS,EAAC;AACtB,MAAMC,GAAG,GAAG,SAAS,EAAC;;AAEtB;;AAEA;AACA;AACA;AACA,MAAMC,MAAM,GAAG,IAAI;AACnB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,MAAM,GAAG,IAAI;AACnB,MAAMC,KAAK,GAAG,IAAI;;AAElB;;AAEA,MAAMC,OAAO,GAAG,IAAI,EAAC;AACrB,MAAMC,OAAO,GAAG,IAAI,EAAC;AACrB,MAAMC,SAAS,GAAG,MAAM,EAAC;AACzB,MAAMC,QAAQ,GAAG,IAAI,EAAC;AACtB,MAAMC,QAAQ,GAAG,IAAI,EAAC;AACtB,MAAMC,WAAW,GAAG,KAAK,EAAC;AAC1B,MAAMC,WAAW,GAAG,iBAAiB,EAAC;AACtC,MAAMC,WAAW,GAAG,IAAI,EAAC;AACzB,MAAMC,MAAM,GAAG,KAAK,EAAC;;AAErB,OAAO,SAASC,YAAYA,CAAEC,IAAS,EAAEC,UAAe,EAAE;EACxD;EACA,MAAMC,IAAI,GAAG,CAACF,IAAI,CAACG,CAAC,GAAG,GAAG,KAAKrB,OAAO;EACtC,MAAMsB,IAAI,GAAG,CAACJ,IAAI,CAACK,CAAC,GAAG,GAAG,KAAKvB,OAAO;EACtC,MAAMwB,IAAI,GAAG,CAACN,IAAI,CAACO,CAAC,GAAG,GAAG,KAAKzB,OAAO;EAEtC,MAAM0B,GAAG,GAAG,CAACP,UAAU,CAACE,CAAC,GAAG,GAAG,KAAKrB,OAAO;EAC3C,MAAM2B,GAAG,GAAG,CAACR,UAAU,CAACI,CAAC,GAAG,GAAG,KAAKvB,OAAO;EAC3C,MAAM4B,GAAG,GAAG,CAACT,UAAU,CAACM,CAAC,GAAG,GAAG,KAAKzB,OAAO;;EAE3C;EACA,IAAI6B,IAAI,GAAIT,IAAI,GAAGnB,GAAG,GAAKqB,IAAI,GAAGpB,GAAI,GAAIsB,IAAI,GAAGrB,GAAI;EACrD,IAAI2B,GAAG,GAAIJ,GAAG,GAAGzB,GAAG,GAAK0B,GAAG,GAAGzB,GAAI,GAAI0B,GAAG,GAAGzB,GAAI;;EAEjD;EACA;EACA,IAAI0B,IAAI,IAAIrB,OAAO,EAAEqB,IAAI,IAAI,CAACrB,OAAO,GAAGqB,IAAI,KAAKpB,OAAO;EACxD,IAAIqB,GAAG,IAAItB,OAAO,EAAEsB,GAAG,IAAI,CAACtB,OAAO,GAAGsB,GAAG,KAAKrB,OAAO;;EAErD;EACA,IAAIsB,IAAI,CAACC,GAAG,CAACF,GAAG,GAAGD,IAAI,CAAC,GAAGnB,SAAS,EAAE,OAAO,GAAG;;EAEhD;;EAEA,IAAIuB,cAAsB,EAAC;EAC3B,IAAIH,GAAG,GAAGD,IAAI,EAAE;IACd;IACA;;IAEA,MAAMK,IAAI,GAAG,CAAEJ,GAAG,IAAI1B,MAAM,GAAKyB,IAAI,IAAIxB,OAAQ,IAAIM,QAAQ;;IAE7D;IACA;IACA;IACA;IACA;IACAsB,cAAc,GACXC,IAAI,GAAGlB,MAAM,GAAI,GAAG,GAClBkB,IAAI,GAAGrB,WAAW,GAAIqB,IAAI,GAAGA,IAAI,GAAGpB,WAAW,GAAGC,WAAW,GAC9DmB,IAAI,GAAGnB,WAAW;EACxB,CAAC,MAAM;IACL;IACA;;IAEA,MAAMmB,IAAI,GAAG,CAAEJ,GAAG,IAAIvB,KAAK,GAAKsB,IAAI,IAAIvB,MAAO,IAAIM,QAAQ;IAE3DqB,cAAc,GACXC,IAAI,GAAG,CAAClB,MAAM,GAAI,GAAG,GACnBkB,IAAI,GAAG,CAACrB,WAAW,GAAIqB,IAAI,GAAGA,IAAI,GAAGpB,WAAW,GAAGC,WAAW,GAC/DmB,IAAI,GAAGnB,WAAW;EACxB;EAEA,OAAOkB,cAAc,GAAG,GAAG;AAC7B"}
@@ -1,3 +1,5 @@
1
+ // Types
2
+
1
3
  const delta = 0.20689655172413793; // 6÷29
2
4
 
3
5
  const cielabForwardTransform = t => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29;
@@ -1 +1 @@
1
- {"version":3,"file":"transformCIELAB.mjs","names":["delta","cielabForwardTransform","t","Math","cbrt","cielabReverseTransform","fromXYZ","xyz","transform","transformedY","toXYZ","lab","Ln"],"sources":["../../../src/util/color/transformCIELAB.ts"],"sourcesContent":["import type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n"],"mappings":"AAEA,MAAMA,KAAK,GAAG,mBAAmB,EAAC;;AAElC,MAAMC,sBAAsB,GAAIC,CAAS,IACvCA,CAAC,GAAGF,KAAK,IAAI,CAAC,GACVG,IAAI,CAACC,IAAI,CAACF,CAAC,CAAC,GACXA,CAAC,IAAI,CAAC,GAAGF,KAAK,IAAI,CAAC,CAAC,GAAI,CAAC,GAAG,EAClC;AAED,MAAMK,sBAAsB,GAAIH,CAAS,IACvCA,CAAC,GAAGF,KAAK,GACLE,CAAC,IAAI,CAAC,GACL,CAAC,GAAGF,KAAK,IAAI,CAAC,IAAKE,CAAC,GAAG,CAAC,GAAG,EAAE,CACnC;AAED,OAAO,SAASI,OAAOA,CAAEC,GAAQ,EAAO;EACtC,MAAMC,SAAS,GAAGP,sBAAsB;EACxC,MAAMQ,YAAY,GAAGD,SAAS,CAACD,GAAG,CAAC,CAAC,CAAC,CAAC;EAEtC,OAAO,CACL,GAAG,GAAGE,YAAY,GAAG,EAAE,EACvB,GAAG,IAAID,SAAS,CAACD,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAGE,YAAY,CAAC,EAClD,GAAG,IAAIA,YAAY,GAAGD,SAAS,CAACD,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CACnD;AACH;AAEA,OAAO,SAASG,KAAKA,CAAEC,GAAQ,EAAO;EACpC,MAAMH,SAAS,GAAGH,sBAAsB;EACxC,MAAMO,EAAE,GAAG,CAACD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG;EAC9B,OAAO,CACLH,SAAS,CAACI,EAAE,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,EACtCH,SAAS,CAACI,EAAE,CAAC,EACbJ,SAAS,CAACI,EAAE,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CACvC;AACH"}
1
+ {"version":3,"file":"transformCIELAB.mjs","names":["delta","cielabForwardTransform","t","Math","cbrt","cielabReverseTransform","fromXYZ","xyz","transform","transformedY","toXYZ","lab","Ln"],"sources":["../../../src/util/color/transformCIELAB.ts"],"sourcesContent":["// Types\nimport type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n"],"mappings":"AAAA;;AAGA,MAAMA,KAAK,GAAG,mBAAmB,EAAC;;AAElC,MAAMC,sBAAsB,GAAIC,CAAS,IACvCA,CAAC,GAAGF,KAAK,IAAI,CAAC,GACVG,IAAI,CAACC,IAAI,CAACF,CAAC,CAAC,GACXA,CAAC,IAAI,CAAC,GAAGF,KAAK,IAAI,CAAC,CAAC,GAAI,CAAC,GAAG,EAClC;AAED,MAAMK,sBAAsB,GAAIH,CAAS,IACvCA,CAAC,GAAGF,KAAK,GACLE,CAAC,IAAI,CAAC,GACL,CAAC,GAAGF,KAAK,IAAI,CAAC,IAAKE,CAAC,GAAG,CAAC,GAAG,EAAE,CACnC;AAED,OAAO,SAASI,OAAOA,CAAEC,GAAQ,EAAO;EACtC,MAAMC,SAAS,GAAGP,sBAAsB;EACxC,MAAMQ,YAAY,GAAGD,SAAS,CAACD,GAAG,CAAC,CAAC,CAAC,CAAC;EAEtC,OAAO,CACL,GAAG,GAAGE,YAAY,GAAG,EAAE,EACvB,GAAG,IAAID,SAAS,CAACD,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAGE,YAAY,CAAC,EAClD,GAAG,IAAIA,YAAY,GAAGD,SAAS,CAACD,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CACnD;AACH;AAEA,OAAO,SAASG,KAAKA,CAAEC,GAAQ,EAAO;EACpC,MAAMH,SAAS,GAAGH,sBAAsB;EACxC,MAAMO,EAAE,GAAG,CAACD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG;EAC9B,OAAO,CACLH,SAAS,CAACI,EAAE,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,EACtCH,SAAS,CAACI,EAAE,CAAC,EACbJ,SAAS,CAACI,EAAE,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CACvC;AACH"}
@@ -1,4 +1,6 @@
1
- import { clamp } from "../../util/helpers.mjs"; // For converting XYZ to sRGB
1
+ // Utilities
2
+ import { clamp } from "../helpers.mjs"; // Types
3
+ // For converting XYZ to sRGB
2
4
  const srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.2040, 1.0570]];
3
5
 
4
6
  // Forward gamma adjust
@@ -1 +1 @@
1
- {"version":3,"file":"transformSRGB.mjs","names":["clamp","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","rgb","Array","transform","matrix","i","Math","round","r","g","b","toXYZ","_ref"],"sources":["../../../src/util/color/transformSRGB.ts"],"sourcesContent":["import type { RGB, XYZ } from '../colorUtils'\nimport { clamp } from '../../util/helpers'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): RGB {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n }\n}\n\nexport function toXYZ ({ r, g, b }: RGB): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255)\n g = transform(g / 255)\n b = transform(b / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n"],"mappings":"SACSA,KAAK,kCAEd;AACA,MAAMC,iBAAiB,GAAG,CACxB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAC1B,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACzB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAC1B;;AAED;AACA,MAAMC,oBAAoB,GAAIC,CAAS,IACrCA,CAAC,IAAI,SAAS,GACVA,CAAC,GAAG,KAAK,GACT,KAAK,GAAGA,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAC9B;;AAED;AACA,MAAMC,iBAAiB,GAAG,CACxB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CACzB;;AAED;AACA,MAAMC,oBAAoB,GAAIF,CAAS,IACrCA,CAAC,IAAI,OAAO,GACRA,CAAC,GAAG,KAAK,GACT,CAAC,CAACA,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,GAC9B;AAED,OAAO,SAASG,OAAOA,CAAEC,GAAQ,EAAO;EACtC,MAAMC,GAAG,GAAGC,KAAK,CAAC,CAAC,CAAC;EACpB,MAAMC,SAAS,GAAGR,oBAAoB;EACtC,MAAMS,MAAM,GAAGV,iBAAiB;;EAEhC;EACA,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAE,EAAEA,CAAC,EAAE;IAC1B;IACAJ,GAAG,CAACI,CAAC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACd,KAAK,CAACU,SAAS,CACjCC,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,GACrBI,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,GACrBI,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,CACtB,CAAC,GAAG,GAAG,CAAC;EACX;EAEA,OAAO;IACLQ,CAAC,EAAEP,GAAG,CAAC,CAAC,CAAC;IACTQ,CAAC,EAAER,GAAG,CAAC,CAAC,CAAC;IACTS,CAAC,EAAET,GAAG,CAAC,CAAC;EACV,CAAC;AACH;AAEA,OAAO,SAASU,KAAKA,CAAAC,IAAA,EAAyB;EAAA,IAAvB;IAAEJ,CAAC;IAAEC,CAAC;IAAEC;EAAO,CAAC,GAAAE,IAAA;EACrC,MAAMZ,GAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC1B,MAAMG,SAAS,GAAGL,oBAAoB;EACtC,MAAMM,MAAM,GAAGP,iBAAiB;;EAEhC;EACAW,CAAC,GAAGL,SAAS,CAACK,CAAC,GAAG,GAAG,CAAC;EACtBC,CAAC,GAAGN,SAAS,CAACM,CAAC,GAAG,GAAG,CAAC;EACtBC,CAAC,GAAGP,SAAS,CAACO,CAAC,GAAG,GAAG,CAAC;;EAEtB;EACA,KAAK,IAAIL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAE,EAAEA,CAAC,EAAE;IAC1BL,GAAG,CAACK,CAAC,CAAC,GAAGD,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,GAAGJ,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,GAAGL,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;EACjE;EAEA,OAAOV,GAAG;AACZ"}
1
+ {"version":3,"file":"transformSRGB.mjs","names":["clamp","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","rgb","Array","transform","matrix","i","Math","round","r","g","b","toXYZ","_ref"],"sources":["../../../src/util/color/transformSRGB.ts"],"sourcesContent":["// Utilities\nimport { clamp } from '@/util/helpers'\n\n// Types\nimport type { RGB, XYZ } from '../colorUtils'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): RGB {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n }\n}\n\nexport function toXYZ ({ r, g, b }: RGB): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255)\n g = transform(g / 255)\n b = transform(b / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n"],"mappings":"AAAA;AAAA,SACSA,KAAK,0BAEd;AAGA;AACA,MAAMC,iBAAiB,GAAG,CACxB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAC1B,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACzB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAC1B;;AAED;AACA,MAAMC,oBAAoB,GAAIC,CAAS,IACrCA,CAAC,IAAI,SAAS,GACVA,CAAC,GAAG,KAAK,GACT,KAAK,GAAGA,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAC9B;;AAED;AACA,MAAMC,iBAAiB,GAAG,CACxB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CACzB;;AAED;AACA,MAAMC,oBAAoB,GAAIF,CAAS,IACrCA,CAAC,IAAI,OAAO,GACRA,CAAC,GAAG,KAAK,GACT,CAAC,CAACA,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,GAC9B;AAED,OAAO,SAASG,OAAOA,CAAEC,GAAQ,EAAO;EACtC,MAAMC,GAAG,GAAGC,KAAK,CAAC,CAAC,CAAC;EACpB,MAAMC,SAAS,GAAGR,oBAAoB;EACtC,MAAMS,MAAM,GAAGV,iBAAiB;;EAEhC;EACA,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAE,EAAEA,CAAC,EAAE;IAC1B;IACAJ,GAAG,CAACI,CAAC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACd,KAAK,CAACU,SAAS,CACjCC,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,GACrBI,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,GACrBI,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,CACtB,CAAC,GAAG,GAAG,CAAC;EACX;EAEA,OAAO;IACLQ,CAAC,EAAEP,GAAG,CAAC,CAAC,CAAC;IACTQ,CAAC,EAAER,GAAG,CAAC,CAAC,CAAC;IACTS,CAAC,EAAET,GAAG,CAAC,CAAC;EACV,CAAC;AACH;AAEA,OAAO,SAASU,KAAKA,CAAAC,IAAA,EAAyB;EAAA,IAAvB;IAAEJ,CAAC;IAAEC,CAAC;IAAEC;EAAO,CAAC,GAAAE,IAAA;EACrC,MAAMZ,GAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC1B,MAAMG,SAAS,GAAGL,oBAAoB;EACtC,MAAMM,MAAM,GAAGP,iBAAiB;;EAEhC;EACAW,CAAC,GAAGL,SAAS,CAACK,CAAC,GAAG,GAAG,CAAC;EACtBC,CAAC,GAAGN,SAAS,CAACM,CAAC,GAAG,GAAG,CAAC;EACtBC,CAAC,GAAGP,SAAS,CAACO,CAAC,GAAG,GAAG,CAAC;;EAEtB;EACA,KAAK,IAAIL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAE,EAAEA,CAAC,EAAE;IAC1BL,GAAG,CAACK,CAAC,CAAC,GAAGD,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,GAAGJ,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,GAAGL,MAAM,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;EACjE;EAEA,OAAOV,GAAG;AACZ"}
@@ -1,8 +1,8 @@
1
1
  // Utilities
2
2
  import { consoleWarn } from "./console.mjs";
3
3
  import { chunk, has, padEnd } from "./helpers.mjs";
4
- import * as sRGB from "./color/transformSRGB.mjs";
5
- import * as CIELAB from "./color/transformCIELAB.mjs"; // Types
4
+ import * as CIELAB from "./color/transformCIELAB.mjs";
5
+ import * as sRGB from "./color/transformSRGB.mjs"; // Types
6
6
  export function isCssColor(color) {
7
7
  return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"colorUtils.mjs","names":["consoleWarn","chunk","has","padEnd","sRGB","CIELAB","isCssColor","color","test","cssColorRe","mappers","rgb","r","g","b","a","rgba","hsl","h","s","l","HSLtoRGB","hsla","hsv","v","HSVtoRGB","hsva","parseColor","isNaN","groups","match","fn","values","realValues","split","map","endsWith","includes","parseFloat","hex","startsWith","slice","length","char","join","int","parseInt","HexToRGB","HSLtoHSV","TypeError","String","constructor","name","RGBToInt","classToHex","colors","currentTheme","colorName","colorModifier","toString","trim","replace","hexColor","base","f","n","k","Math","max","min","round","RGBtoHSV","HSVtoHSL","sprime","RGBtoCSS","_ref","undefined","HSVtoCSS","toHex","substr","toUpperCase","RGBtoHex","_ref2","parseHex","c","HexToHSV","HSVtoHex","x","parseGradient","gradient","Object","lighten","value","amount","lab","fromXYZ","toXYZ","darken","getLuma","getContrast","first","second","l1","l2","light","dark"],"sources":["../../src/util/colorUtils.ts"],"sourcesContent":["// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, has, padEnd } from './helpers'\nimport * as sRGB from '@/util/color/transformSRGB'\nimport * as CIELAB from '@/util/color/transformCIELAB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | HSV | RGB | HSL\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/\nconst mappers = {\n rgb: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n rgba: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n hsl: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsla: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsv: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n hsva: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe)!\n const { fn, values } = groups as { fn: keyof typeof mappers, values: string }\n const realValues = values.split(/,\\s*/)\n .map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100\n } else {\n return parseFloat(v)\n }\n }) as [number, number, number, number?]\n\n return mappers[fn](...realValues)\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color))\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color)\n }\n }\n\n throw new TypeError(`Invalid color: ${color == null ? color : (String(color) || (color as any).constructor.name)}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\nexport function HSLtoRGB (hsla: HSL): RGB {\n return HSVtoRGB(HSLtoHSV(hsla))\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : '',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n hex = parseHex(hex)\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : (a / 255)\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"colorUtils.mjs","names":["consoleWarn","chunk","has","padEnd","CIELAB","sRGB","isCssColor","color","test","cssColorRe","mappers","rgb","r","g","b","a","rgba","hsl","h","s","l","HSLtoRGB","hsla","hsv","v","HSVtoRGB","hsva","parseColor","isNaN","groups","match","fn","values","realValues","split","map","endsWith","includes","parseFloat","hex","startsWith","slice","length","char","join","int","parseInt","HexToRGB","HSLtoHSV","TypeError","String","constructor","name","RGBToInt","classToHex","colors","currentTheme","colorName","colorModifier","toString","trim","replace","hexColor","base","f","n","k","Math","max","min","round","RGBtoHSV","HSVtoHSL","sprime","RGBtoCSS","_ref","undefined","HSVtoCSS","toHex","substr","toUpperCase","RGBtoHex","_ref2","parseHex","c","HexToHSV","HSVtoHex","x","parseGradient","gradient","Object","lighten","value","amount","lab","fromXYZ","toXYZ","darken","getLuma","getContrast","first","second","l1","l2","light","dark"],"sources":["../../src/util/colorUtils.ts"],"sourcesContent":["// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, has, padEnd } from './helpers'\nimport * as CIELAB from '@/util/color/transformCIELAB'\nimport * as sRGB from '@/util/color/transformSRGB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | HSV | RGB | HSL\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/\nconst mappers = {\n rgb: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n rgba: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n hsl: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsla: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsv: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n hsva: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe)!\n const { fn, values } = groups as { fn: keyof typeof mappers, values: string }\n const realValues = values.split(/,\\s*/)\n .map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100\n } else {\n return parseFloat(v)\n }\n }) as [number, number, number, number?]\n\n return mappers[fn](...realValues)\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color))\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color)\n }\n }\n\n throw new TypeError(`Invalid color: ${color == null ? color : (String(color) || (color as any).constructor.name)}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\nexport function HSLtoRGB (hsla: HSL): RGB {\n return HSVtoRGB(HSLtoHSV(hsla))\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : '',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n hex = parseHex(hex)\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : (a / 255)\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable no-console */
2
2
 
3
+ // Utilities
3
4
  import { warn } from 'vue';
4
5
  export function consoleWarn(message) {
5
6
  warn(`Vuetify: ${message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"console.mjs","names":["warn","consoleWarn","message","consoleError","deprecate","original","replacement","Array","isArray","slice","map","s","join","at","breaking","removed"],"sources":["../../src/util/console.ts"],"sourcesContent":["/* eslint-disable no-console */\n\nimport { warn } from 'vue'\n\nexport function consoleWarn (message: string): void {\n warn(`Vuetify: ${message}`)\n}\n\nexport function consoleError (message: string): void {\n warn(`Vuetify error: ${message}`)\n}\n\nexport function deprecate (original: string, replacement: string | string[]) {\n replacement = Array.isArray(replacement)\n ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'`\n : `'${replacement}'`\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`)\n}\nexport function breaking (original: string, replacement: string) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed (original: string) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n"],"mappings":"AAAA;;AAEA,SAASA,IAAI,QAAQ,KAAK;AAE1B,OAAO,SAASC,WAAWA,CAAEC,OAAe,EAAQ;EAClDF,IAAI,CAAE,YAAWE,OAAQ,EAAC,CAAC;AAC7B;AAEA,OAAO,SAASC,YAAYA,CAAED,OAAe,EAAQ;EACnDF,IAAI,CAAE,kBAAiBE,OAAQ,EAAC,CAAC;AACnC;AAEA,OAAO,SAASE,SAASA,CAAEC,QAAgB,EAAEC,WAA8B,EAAE;EAC3EA,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,GACpCA,WAAW,CAACG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAACC,GAAG,CAACC,CAAC,IAAK,IAAGA,CAAE,GAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,GAAI,QAAON,WAAW,CAACO,EAAE,CAAC,CAAC,CAAC,CAAE,GAAE,GACrF,IAAGP,WAAY,GAAE;EACtBN,IAAI,CAAE,sBAAqBK,QAAS,wBAAuBC,WAAY,WAAU,CAAC;AACpF;AACA,OAAO,SAASQ,QAAQA,CAAET,QAAgB,EAAEC,WAAmB,EAAE;EAC/D;AAAA;AAEF,OAAO,SAASS,OAAOA,CAAEV,QAAgB,EAAE;EACzC;AAAA"}
1
+ {"version":3,"file":"console.mjs","names":["warn","consoleWarn","message","consoleError","deprecate","original","replacement","Array","isArray","slice","map","s","join","at","breaking","removed"],"sources":["../../src/util/console.ts"],"sourcesContent":["/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue'\n\nexport function consoleWarn (message: string): void {\n warn(`Vuetify: ${message}`)\n}\n\nexport function consoleError (message: string): void {\n warn(`Vuetify error: ${message}`)\n}\n\nexport function deprecate (original: string, replacement: string | string[]) {\n replacement = Array.isArray(replacement)\n ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'`\n : `'${replacement}'`\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`)\n}\nexport function breaking (original: string, replacement: string) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed (original: string) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n"],"mappings":"AAAA;;AAEA;AACA,SAASA,IAAI,QAAQ,KAAK;AAE1B,OAAO,SAASC,WAAWA,CAAEC,OAAe,EAAQ;EAClDF,IAAI,CAAE,YAAWE,OAAQ,EAAC,CAAC;AAC7B;AAEA,OAAO,SAASC,YAAYA,CAAED,OAAe,EAAQ;EACnDF,IAAI,CAAE,kBAAiBE,OAAQ,EAAC,CAAC;AACnC;AAEA,OAAO,SAASE,SAASA,CAAEC,QAAgB,EAAEC,WAA8B,EAAE;EAC3EA,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,GACpCA,WAAW,CAACG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAACC,GAAG,CAACC,CAAC,IAAK,IAAGA,CAAE,GAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,GAAI,QAAON,WAAW,CAACO,EAAE,CAAC,CAAC,CAAC,CAAE,GAAE,GACrF,IAAGP,WAAY,GAAE;EACtBN,IAAI,CAAE,sBAAqBK,QAAS,wBAAuBC,WAAY,WAAU,CAAC;AACpF;AACA,OAAO,SAASQ,QAAQA,CAAET,QAAgB,EAAEC,WAAmB,EAAE;EAC/D;AAAA;AAEF,OAAO,SAASS,OAAOA,CAAEV,QAAgB,EAAE;EACzC;AAAA"}
@@ -1,4 +1,5 @@
1
- import { makeComponentProps } from "../composables/component.mjs";
1
+ // Composables
2
+ import { makeComponentProps } from "../composables/component.mjs"; // Utilities
2
3
  import { camelize, capitalize, h } from 'vue';
3
4
  import { genericComponent } from "./defineComponent.mjs";
4
5
  export function createSimpleFunctional(klass) {
@@ -1 +1 @@
1
- {"version":3,"file":"createSimpleFunctional.mjs","names":["makeComponentProps","camelize","capitalize","h","genericComponent","createSimpleFunctional","klass","tag","arguments","length","undefined","name","replace","props","type","String","default","setup","_ref","slots","class","style"],"sources":["../../src/util/createSimpleFunctional.ts"],"sourcesContent":["import { makeComponentProps } from '@/composables/component'\nimport { camelize, capitalize, h } from 'vue'\nimport { genericComponent } from './defineComponent'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: {\n tag: {\n type: String,\n default: tag,\n },\n\n ...makeComponentProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style,\n }, slots.default?.())\n }\n },\n })\n}\n"],"mappings":"SAASA,kBAAkB;AAC3B,SAASC,QAAQ,EAAEC,UAAU,EAAEC,CAAC,QAAQ,KAAK;AAAA,SACpCC,gBAAgB;AAEzB,OAAO,SAASC,sBAAsBA,CACpCC,KAAa,EAGb;EAAA,IAFAC,GAAG,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACXG,IAAa,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEb,OAAON,gBAAgB,EAAE,CAAC;IACxBO,IAAI,EAAEA,IAAI,IAAIT,UAAU,CAACD,QAAQ,CAACK,KAAK,CAACM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7DC,KAAK,EAAE;MACLN,GAAG,EAAE;QACHO,IAAI,EAAEC,MAAM;QACZC,OAAO,EAAET;MACX,CAAC;MAED,GAAGP,kBAAkB;IACvB,CAAC;IAEDiB,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAa;MAAA,IAAX;QAAEC;MAAM,CAAC,GAAAD,IAAA;MACrB,OAAO,MAAM;QACX,OAAOf,CAAC,CAACU,KAAK,CAACN,GAAG,EAAE;UAClBa,KAAK,EAAE,CAACd,KAAK,EAAEO,KAAK,CAACO,KAAK,CAAC;UAC3BC,KAAK,EAAER,KAAK,CAACQ;QACf,CAAC,EAAEF,KAAK,CAACH,OAAO,IAAI,CAAC;MACvB,CAAC;IACH;EACF,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"createSimpleFunctional.mjs","names":["makeComponentProps","camelize","capitalize","h","genericComponent","createSimpleFunctional","klass","tag","arguments","length","undefined","name","replace","props","type","String","default","setup","_ref","slots","class","style"],"sources":["../../src/util/createSimpleFunctional.ts"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { camelize, capitalize, h } from 'vue'\nimport { genericComponent } from './defineComponent'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: {\n tag: {\n type: String,\n default: tag,\n },\n\n ...makeComponentProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style,\n }, slots.default?.())\n }\n },\n })\n}\n"],"mappings":"AAAA;AAAA,SACSA,kBAAkB,wCAE3B;AACA,SAASC,QAAQ,EAAEC,UAAU,EAAEC,CAAC,QAAQ,KAAK;AAAA,SACpCC,gBAAgB;AAEzB,OAAO,SAASC,sBAAsBA,CACpCC,KAAa,EAGb;EAAA,IAFAC,GAAG,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACXG,IAAa,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEb,OAAON,gBAAgB,EAAE,CAAC;IACxBO,IAAI,EAAEA,IAAI,IAAIT,UAAU,CAACD,QAAQ,CAACK,KAAK,CAACM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7DC,KAAK,EAAE;MACLN,GAAG,EAAE;QACHO,IAAI,EAAEC,MAAM;QACZC,OAAO,EAAET;MACX,CAAC;MAED,GAAGP,kBAAkB;IACvB,CAAC;IAEDiB,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAa;MAAA,IAAX;QAAEC;MAAM,CAAC,GAAAD,IAAA;MACrB,OAAO,MAAM;QACX,OAAOf,CAAC,CAACU,KAAK,CAACN,GAAG,EAAE;UAClBa,KAAK,EAAE,CAACd,KAAK,EAAEO,KAAK,CAACO,KAAK,CAAC;UAC3BC,KAAK,EAAER,KAAK,CAACQ;QACf,CAAC,EAAEF,KAAK,CAACH,OAAO,IAAI,CAAC;MACvB,CAAC;IACH;EACF,CAAC,CAAC;AACJ"}
@@ -1,10 +1,10 @@
1
- // Utils
1
+ // Composables
2
+ import { injectDefaults, internalUseDefaults } from "../composables/defaults.mjs"; // Utilities
2
3
  import { defineComponent as _defineComponent // eslint-disable-line no-restricted-imports
3
4
  } from 'vue';
4
5
  import { consoleWarn } from "./console.mjs";
5
- import { pick, toKebabCase } from "./helpers.mjs";
6
- import { propsFactory } from "./propsFactory.mjs";
7
- import { injectDefaults, internalUseDefaults } from "../composables/defaults.mjs"; // Types
6
+ import { pick } from "./helpers.mjs";
7
+ import { propsFactory } from "./propsFactory.mjs"; // Types
8
8
  // Implementation
9
9
  export function defineComponent(options) {
10
10
  options._setup = options._setup ?? options.setup;
@@ -13,7 +13,7 @@ export function defineComponent(options) {
13
13
  return options;
14
14
  }
15
15
  if (options._setup) {
16
- options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
16
+ options.props = propsFactory(options.props ?? {}, options.name)();
17
17
  const propKeys = Object.keys(options.props);
18
18
  options.filterProps = function filterProps(props) {
19
19
  return pick(props, propKeys, ['class', 'style']);
@@ -1 +1 @@
1
- {"version":3,"file":"defineComponent.mjs","names":["defineComponent","_defineComponent","consoleWarn","pick","toKebabCase","propsFactory","injectDefaults","internalUseDefaults","options","_setup","setup","name","props","propKeys","Object","keys","filterProps","_as","String","ctx","defaults","value","_props","provideSubDefaults","setupBindings","genericComponent","exposeDefaults","arguments","length","undefined","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Utils\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick, toKebabCase } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE> & FilterPropsOptions<PropsOptions>\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))()\n const propKeys = Object.keys(options.props)\n options.filterProps = function filterProps (props: Record<string, any>) {\n return pick(props, propKeys, ['class', 'style'])\n }\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots<U>\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record<string, unknown>\ntype Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots<T extends RawSlots> = {\n [K in keyof T]: Slot<T[K]>\n}\ntype MakeSlots<T extends RawSlots> = {\n [K in keyof T]: VueSlot<T[K]>\n}\n\nexport type GenericProps<Props, Slots extends Record<string, unknown>> = {\n $props: Props & SlotsToProps<Slots>\n $slots: MakeSlots<Slots>\n}\n\ntype DefineComponentWithGenericProps<T extends (new (props: Record<string, any>, slots: RawSlots) => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentObjectPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters<T> extends [any, infer SS extends RawSlots | undefined] ? Exclude<SS, undefined> : {},\n Slots extends RawSlots = ConstructorParameters<T>[1],\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n III = InstanceType<T>,\n P = III extends Record<'$props', any>\n ? Omit<PropsOptions, keyof III['$props']>\n : PropsOptions,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : III extends Record<'$props', any> ? Omit<E, ToListeners<keyof III['$props']>> : E,\n EE,\n PublicProps,\n ExtractPropTypes<P> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<P>,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => Base & T & FilterPropsOptions<PropsOptions>\n\ntype DefineComponentWithSlots<Slots extends RawSlots> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>,\n S\n> & FilterPropsOptions<PropsOptions>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new (props: Record<string, any>, slots: any) => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {\n filterProps<\n T extends Partial<Props>,\n U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>\n > (props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>]\n}\n"],"mappings":"AAAA;AACA,SACEA,eAAe,IAAIC,gBAAgB,CAAE;AAAA,OAChC,KAAK;AAAA,SACHC,WAAW;AAAA,SACXC,IAAI,EAAEC,WAAW;AAAA,SACjBC,YAAY;AAAA,SACZC,cAAc,EAAEC,mBAAmB,uCAE5C;AAuFA;AACA,OAAO,SAASP,eAAeA,CAAEQ,OAAyB,EAAE;EAC1DA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAI,CAACF,OAAO,CAACG,IAAI,EAAE;IACjBT,WAAW,CAAC,kFAAkF,CAAC;IAE/F,OAAOM,OAAO;EAChB;EAEA,IAAIA,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACI,KAAK,GAAGP,YAAY,CAACG,OAAO,CAACI,KAAK,IAAI,CAAC,CAAC,EAAER,WAAW,CAACI,OAAO,CAACG,IAAI,CAAC,CAAC,EAAE;IAC9E,MAAME,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACP,OAAO,CAACI,KAAK,CAAC;IAC3CJ,OAAO,CAACQ,WAAW,GAAG,SAASA,WAAWA,CAAEJ,KAA0B,EAAE;MACtE,OAAOT,IAAI,CAACS,KAAK,EAAEC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEDL,OAAO,CAACI,KAAK,CAACK,GAAG,GAAGC,MAAM;IAC1BV,OAAO,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAEE,KAA0B,EAAEO,GAAG,EAAE;MAC/D,MAAMC,QAAQ,GAAGd,cAAc,EAAE;;MAEjC;MACA,IAAI,CAACc,QAAQ,CAACC,KAAK,EAAE,OAAOb,OAAO,CAACC,MAAM,CAACG,KAAK,EAAEO,GAAG,CAAC;MAEtD,MAAM;QAAEP,KAAK,EAAEU,MAAM;QAAEC;MAAmB,CAAC,GAAGhB,mBAAmB,CAACK,KAAK,EAAEA,KAAK,CAACK,GAAG,IAAIT,OAAO,CAACG,IAAI,EAAES,QAAQ,CAAC;MAE7G,MAAMI,aAAa,GAAGhB,OAAO,CAACC,MAAM,CAACa,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,EAAE;MAEpB,OAAOC,aAAa;IACtB,CAAC;EACH;EAEA,OAAOhB,OAAO;AAChB;AAqHA;AACA,OAAO,SAASiB,gBAAgBA,CAAA,EAAyB;EAAA,IAAvBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACrD,OAAQnB,OAAY,IAAK,CAAEkB,cAAc,GAAG1B,eAAe,GAAGC,gBAAgB,EAAUO,OAAO,CAAC;AAClG;AAEA,OAAO,SAASsB,yBAAyBA,CAKtClB,KAAmB,EAAEmB,MAAS,EAAwE;EACvGA,MAAM,CAACnB,KAAK,GAAGA,KAAY;EAC3B,OAAOmB,MAAM;AACf"}
1
+ {"version":3,"file":"defineComponent.mjs","names":["injectDefaults","internalUseDefaults","defineComponent","_defineComponent","consoleWarn","pick","propsFactory","options","_setup","setup","name","props","propKeys","Object","keys","filterProps","_as","String","ctx","defaults","value","_props","provideSubDefaults","setupBindings","genericComponent","exposeDefaults","arguments","length","undefined","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE> & FilterPropsOptions<PropsOptions>\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props)\n options.filterProps = function filterProps (props: Record<string, any>) {\n return pick(props, propKeys, ['class', 'style'])\n }\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots<U>\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record<string, unknown>\ntype Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots<T extends RawSlots> = {\n [K in keyof T]: Slot<T[K]>\n}\ntype MakeSlots<T extends RawSlots> = {\n [K in keyof T]: VueSlot<T[K]>\n}\n\nexport type GenericProps<Props, Slots extends Record<string, unknown>> = {\n $props: Props & SlotsToProps<Slots>\n $slots: MakeSlots<Slots>\n}\n\ntype DefineComponentWithGenericProps<T extends (new (props: Record<string, any>, slots: RawSlots) => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentObjectPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters<T> extends [any, infer SS extends RawSlots | undefined] ? Exclude<SS, undefined> : {},\n Slots extends RawSlots = ConstructorParameters<T>[1],\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n III = InstanceType<T>,\n P = III extends Record<'$props', any>\n ? Omit<PropsOptions, keyof III['$props']>\n : PropsOptions,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : III extends Record<'$props', any> ? Omit<E, ToListeners<keyof III['$props']>> : E,\n EE,\n PublicProps,\n ExtractPropTypes<P> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<P>,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => Base & T & FilterPropsOptions<PropsOptions>\n\ntype DefineComponentWithSlots<Slots extends RawSlots> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>,\n S\n> & FilterPropsOptions<PropsOptions>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new (props: Record<string, any>, slots: any) => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {\n filterProps<\n T extends Partial<Props>,\n U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>\n > (props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>]\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,EAAEC,mBAAmB,uCAE5C;AACA,SACEC,eAAe,IAAIC,gBAAgB,CAAE;AAAA,OAChC,KAAK;AAAA,SACHC,WAAW;AAAA,SACXC,IAAI;AAAA,SACJC,YAAY,8BAErB;AAuFA;AACA,OAAO,SAASJ,eAAeA,CAAEK,OAAyB,EAAE;EAC1DA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAI,CAACF,OAAO,CAACG,IAAI,EAAE;IACjBN,WAAW,CAAC,kFAAkF,CAAC;IAE/F,OAAOG,OAAO;EAChB;EAEA,IAAIA,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACI,KAAK,GAAGL,YAAY,CAACC,OAAO,CAACI,KAAK,IAAI,CAAC,CAAC,EAAEJ,OAAO,CAACG,IAAI,CAAC,EAAE;IACjE,MAAME,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACP,OAAO,CAACI,KAAK,CAAC;IAC3CJ,OAAO,CAACQ,WAAW,GAAG,SAASA,WAAWA,CAAEJ,KAA0B,EAAE;MACtE,OAAON,IAAI,CAACM,KAAK,EAAEC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEDL,OAAO,CAACI,KAAK,CAACK,GAAG,GAAGC,MAAM;IAC1BV,OAAO,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAEE,KAA0B,EAAEO,GAAG,EAAE;MAC/D,MAAMC,QAAQ,GAAGnB,cAAc,EAAE;;MAEjC;MACA,IAAI,CAACmB,QAAQ,CAACC,KAAK,EAAE,OAAOb,OAAO,CAACC,MAAM,CAACG,KAAK,EAAEO,GAAG,CAAC;MAEtD,MAAM;QAAEP,KAAK,EAAEU,MAAM;QAAEC;MAAmB,CAAC,GAAGrB,mBAAmB,CAACU,KAAK,EAAEA,KAAK,CAACK,GAAG,IAAIT,OAAO,CAACG,IAAI,EAAES,QAAQ,CAAC;MAE7G,MAAMI,aAAa,GAAGhB,OAAO,CAACC,MAAM,CAACa,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,EAAE;MAEpB,OAAOC,aAAa;IACtB,CAAC;EACH;EAEA,OAAOhB,OAAO;AAChB;AAqHA;AACA,OAAO,SAASiB,gBAAgBA,CAAA,EAAyB;EAAA,IAAvBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACrD,OAAQnB,OAAY,IAAK,CAAEkB,cAAc,GAAGvB,eAAe,GAAGC,gBAAgB,EAAUI,OAAO,CAAC;AAClG;AAEA,OAAO,SAASsB,yBAAyBA,CAKtClB,KAAmB,EAAEmB,MAAS,EAAwE;EACvGA,MAAM,CAACnB,KAAK,GAAGA,KAAY;EAC3B,OAAOmB,MAAM;AACf"}
@@ -1,7 +1,6 @@
1
1
  // Utilities
2
-
3
2
  import { getCurrentInstance as _getCurrentInstance } from 'vue';
4
- import { toKebabCase } from "./helpers.mjs";
3
+ import { toKebabCase } from "./helpers.mjs"; // Types
5
4
  export function getCurrentInstance(name, message) {
6
5
  const vm = _getCurrentInstance();
7
6
  if (!vm) {
@@ -1 +1 @@
1
- {"version":3,"file":"getCurrentInstance.mjs","names":["getCurrentInstance","_getCurrentInstance","toKebabCase","name","message","vm","Error","getCurrentInstanceName","arguments","length","undefined","type","aliasName","_uid","_map","WeakMap","getUid","has","get","uid","set","reset"],"sources":["../../src/util/getCurrentInstance.ts"],"sourcesContent":["// Utilities\nimport type { ComponentInternalInstance } from 'vue'\nimport { getCurrentInstance as _getCurrentInstance } from 'vue'\nimport { toKebabCase } from '@/util/helpers'\n\nexport function getCurrentInstance (name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nexport function getCurrentInstanceName (name = 'composables') {\n const vm = getCurrentInstance(name).type\n\n return toKebabCase(vm?.aliasName || vm?.name)\n}\n\nlet _uid = 0\nlet _map = new WeakMap<ComponentInternalInstance, number>()\nexport function getUid () {\n const vm = getCurrentInstance('getUid')\n\n if (_map.has(vm)) return _map.get(vm)!\n else {\n const uid = _uid++\n _map.set(vm, uid)\n return uid\n }\n}\ngetUid.reset = () => {\n _uid = 0\n _map = new WeakMap()\n}\n"],"mappings":"AAAA;;AAEA,SAASA,kBAAkB,IAAIC,mBAAmB,QAAQ,KAAK;AAAA,SACtDC,WAAW;AAEpB,OAAO,SAASF,kBAAkBA,CAAEG,IAAY,EAAEC,OAAgB,EAAE;EAClE,MAAMC,EAAE,GAAGJ,mBAAmB,EAAE;EAEhC,IAAI,CAACI,EAAE,EAAE;IACP,MAAM,IAAIC,KAAK,CAAE,aAAYH,IAAK,IAAGC,OAAO,IAAI,6CAA8C,EAAC,CAAC;EAClG;EAEA,OAAOC,EAAE;AACX;AAEA,OAAO,SAASE,sBAAsBA,CAAA,EAAwB;EAAA,IAAtBJ,IAAI,GAAAK,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,aAAa;EAC1D,MAAMH,EAAE,GAAGL,kBAAkB,CAACG,IAAI,CAAC,CAACQ,IAAI;EAExC,OAAOT,WAAW,CAACG,EAAE,EAAEO,SAAS,IAAIP,EAAE,EAAEF,IAAI,CAAC;AAC/C;AAEA,IAAIU,IAAI,GAAG,CAAC;AACZ,IAAIC,IAAI,GAAG,IAAIC,OAAO,EAAqC;AAC3D,OAAO,SAASC,MAAMA,CAAA,EAAI;EACxB,MAAMX,EAAE,GAAGL,kBAAkB,CAAC,QAAQ,CAAC;EAEvC,IAAIc,IAAI,CAACG,GAAG,CAACZ,EAAE,CAAC,EAAE,OAAOS,IAAI,CAACI,GAAG,CAACb,EAAE,CAAC,CAAC,KACjC;IACH,MAAMc,GAAG,GAAGN,IAAI,EAAE;IAClBC,IAAI,CAACM,GAAG,CAACf,EAAE,EAAEc,GAAG,CAAC;IACjB,OAAOA,GAAG;EACZ;AACF;AACAH,MAAM,CAACK,KAAK,GAAG,MAAM;EACnBR,IAAI,GAAG,CAAC;EACRC,IAAI,GAAG,IAAIC,OAAO,EAAE;AACtB,CAAC"}
1
+ {"version":3,"file":"getCurrentInstance.mjs","names":["getCurrentInstance","_getCurrentInstance","toKebabCase","name","message","vm","Error","getCurrentInstanceName","arguments","length","undefined","type","aliasName","_uid","_map","WeakMap","getUid","has","get","uid","set","reset"],"sources":["../../src/util/getCurrentInstance.ts"],"sourcesContent":["// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue'\nimport { toKebabCase } from '@/util/helpers'\n\n// Types\nimport type { ComponentInternalInstance } from 'vue'\n\nexport function getCurrentInstance (name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nexport function getCurrentInstanceName (name = 'composables') {\n const vm = getCurrentInstance(name).type\n\n return toKebabCase(vm?.aliasName || vm?.name)\n}\n\nlet _uid = 0\nlet _map = new WeakMap<ComponentInternalInstance, number>()\nexport function getUid () {\n const vm = getCurrentInstance('getUid')\n\n if (_map.has(vm)) return _map.get(vm)!\n else {\n const uid = _uid++\n _map.set(vm, uid)\n return uid\n }\n}\ngetUid.reset = () => {\n _uid = 0\n _map = new WeakMap()\n}\n"],"mappings":"AAAA;AACA,SAASA,kBAAkB,IAAIC,mBAAmB,QAAQ,KAAK;AAAA,SACtDC,WAAW,yBAEpB;AAGA,OAAO,SAASF,kBAAkBA,CAAEG,IAAY,EAAEC,OAAgB,EAAE;EAClE,MAAMC,EAAE,GAAGJ,mBAAmB,EAAE;EAEhC,IAAI,CAACI,EAAE,EAAE;IACP,MAAM,IAAIC,KAAK,CAAE,aAAYH,IAAK,IAAGC,OAAO,IAAI,6CAA8C,EAAC,CAAC;EAClG;EAEA,OAAOC,EAAE;AACX;AAEA,OAAO,SAASE,sBAAsBA,CAAA,EAAwB;EAAA,IAAtBJ,IAAI,GAAAK,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,aAAa;EAC1D,MAAMH,EAAE,GAAGL,kBAAkB,CAACG,IAAI,CAAC,CAACQ,IAAI;EAExC,OAAOT,WAAW,CAACG,EAAE,EAAEO,SAAS,IAAIP,EAAE,EAAEF,IAAI,CAAC;AAC/C;AAEA,IAAIU,IAAI,GAAG,CAAC;AACZ,IAAIC,IAAI,GAAG,IAAIC,OAAO,EAAqC;AAC3D,OAAO,SAASC,MAAMA,CAAA,EAAI;EACxB,MAAMX,EAAE,GAAGL,kBAAkB,CAAC,QAAQ,CAAC;EAEvC,IAAIc,IAAI,CAACG,GAAG,CAACZ,EAAE,CAAC,EAAE,OAAOS,IAAI,CAACI,GAAG,CAACb,EAAE,CAAC,CAAC,KACjC;IACH,MAAMc,GAAG,GAAGN,IAAI,EAAE;IAClBC,IAAI,CAACM,GAAG,CAACf,EAAE,EAAEc,GAAG,CAAC;IACjB,OAAOA,GAAG;EACZ;AACF;AACAH,MAAM,CAACK,KAAK,GAAG,MAAM;EACnBR,IAAI,GAAG,CAAC;EACRC,IAAI,GAAG,IAAIC,OAAO,EAAE;AACtB,CAAC"}