@vuetify/nightly 4.0.0-dev-20230426.0 → 4.0.0-dev-20230511.0

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 (399) hide show
  1. package/CHANGELOG.md +22 -15
  2. package/dist/json/attributes.json +949 -729
  3. package/dist/json/importMap-labs.json +4 -4
  4. package/dist/json/importMap.json +12 -12
  5. package/dist/json/tags.json +57 -2
  6. package/dist/json/web-types.json +1966 -1440
  7. package/dist/vuetify-labs.css +1504 -1493
  8. package/dist/vuetify-labs.d.ts +6175 -8100
  9. package/dist/vuetify-labs.esm.js +1462 -1230
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +1461 -1229
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +51 -40
  14. package/dist/vuetify.d.ts +6327 -7380
  15. package/dist/vuetify.esm.js +1401 -1194
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +1400 -1193
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +805 -805
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/{index.d.ts → index.d.mts} +6 -2
  23. package/lib/blueprints/{md1.d.ts → md1.d.mts} +6 -2
  24. package/lib/blueprints/{md2.d.ts → md2.d.mts} +6 -2
  25. package/lib/blueprints/{md3.d.ts → md3.d.mts} +6 -2
  26. package/lib/components/VAlert/VAlert.mjs +6 -4
  27. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  28. package/lib/components/VAlert/{index.d.ts → index.d.mts} +57 -55
  29. package/lib/components/VApp/VApp.mjs +4 -2
  30. package/lib/components/VApp/VApp.mjs.map +1 -1
  31. package/lib/components/VApp/{index.d.ts → index.d.mts} +22 -13
  32. package/lib/components/VAppBar/VAppBar.mjs +10 -14
  33. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs +10 -13
  35. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  36. package/lib/components/VAppBar/{index.d.ts → index.d.mts} +479 -118
  37. package/lib/components/VAutocomplete/VAutocomplete.css +1 -1
  38. package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -3
  39. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  40. package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
  41. package/lib/components/VAutocomplete/{index.d.ts → index.d.mts} +231 -409
  42. package/lib/components/VAvatar/VAvatar.mjs +4 -2
  43. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  44. package/lib/components/VAvatar/{index.d.ts → index.d.mts} +23 -14
  45. package/lib/components/VBadge/VBadge.mjs +6 -5
  46. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  47. package/lib/components/VBadge/{index.d.ts → index.d.mts} +27 -22
  48. package/lib/components/VBanner/VBanner.mjs +6 -4
  49. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  50. package/lib/components/VBanner/VBannerActions.mjs +5 -2
  51. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  52. package/lib/components/VBanner/{index.d.ts → index.d.mts} +92 -66
  53. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -2
  54. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  55. package/lib/components/VBottomNavigation/{index.d.ts → index.d.mts} +22 -13
  56. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +35 -18
  57. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  58. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -3
  59. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  60. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -2
  61. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  62. package/lib/components/VBreadcrumbs/{index.d.ts → index.d.mts} +134 -93
  63. package/lib/components/VBtn/VBtn.mjs +12 -9
  64. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  65. package/lib/components/VBtn/{index.d.ts → index.d.mts} +33 -36
  66. package/lib/components/VBtnGroup/VBtnGroup.mjs +4 -1
  67. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  68. package/lib/components/VBtnGroup/{index.d.ts → index.d.mts} +22 -13
  69. package/lib/components/VBtnToggle/VBtnToggle.mjs +4 -2
  70. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  71. package/lib/components/VBtnToggle/{index.d.ts → index.d.mts} +30 -21
  72. package/lib/components/VCard/VCard.mjs +5 -3
  73. package/lib/components/VCard/VCard.mjs.map +1 -1
  74. package/lib/components/VCard/VCardActions.mjs +7 -4
  75. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  76. package/lib/components/VCard/VCardItem.mjs +5 -2
  77. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  78. package/lib/components/VCard/{index.d.ts → index.d.mts} +250 -141
  79. package/lib/components/VCarousel/VCarousel.mjs +3 -3
  80. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  81. package/lib/components/VCarousel/VCarouselItem.mjs +6 -3
  82. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  83. package/lib/components/VCarousel/{index.d.ts → index.d.mts} +78 -141
  84. package/lib/components/VCheckbox/VCheckbox.mjs +3 -2
  85. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  86. package/lib/components/VCheckbox/VCheckboxBtn.mjs +2 -2
  87. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  88. package/lib/components/VCheckbox/{index.d.ts → index.d.mts} +75 -109
  89. package/lib/components/VChip/VChip.mjs +7 -8
  90. package/lib/components/VChip/VChip.mjs.map +1 -1
  91. package/lib/components/VChip/{index.d.ts → index.d.mts} +27 -30
  92. package/lib/components/VChipGroup/VChipGroup.mjs +4 -1
  93. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  94. package/lib/components/VChipGroup/{index.d.ts → index.d.mts} +22 -13
  95. package/lib/components/VCode/{index.d.ts → index.d.mts} +30 -17
  96. package/lib/components/VColorPicker/VColorPicker.mjs +12 -7
  97. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  98. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -2
  99. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  100. package/lib/components/VColorPicker/VColorPickerEdit.mjs +6 -3
  101. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  102. package/lib/components/VColorPicker/VColorPickerPreview.mjs +6 -3
  103. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  104. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -9
  105. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  106. package/lib/components/VColorPicker/{index.d.ts → index.d.mts} +131 -32
  107. package/lib/components/VColorPicker/util/index.mjs +2 -22
  108. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  109. package/lib/components/VCombobox/VCombobox.mjs +11 -3
  110. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  111. package/lib/components/VCombobox/{index.d.ts → index.d.mts} +231 -409
  112. package/lib/components/VCounter/VCounter.mjs +4 -1
  113. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  114. package/lib/components/VCounter/{index.d.ts → index.d.mts} +22 -145
  115. package/lib/components/VDefaultsProvider/{index.d.ts → index.d.mts} +0 -12
  116. package/lib/components/VDialog/VDialog.mjs +4 -3
  117. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  118. package/lib/components/VDialog/{index.d.ts → index.d.mts} +104 -282
  119. package/lib/components/VDivider/VDivider.mjs +4 -2
  120. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  121. package/lib/components/VDivider/{index.d.ts → index.d.mts} +22 -13
  122. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -2
  123. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  124. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +4 -1
  125. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  126. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +4 -2
  127. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  128. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -1
  129. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  130. package/lib/components/VExpansionPanel/{index.d.ts → index.d.mts} +109 -81
  131. package/lib/components/VField/VField.css +0 -1
  132. package/lib/components/VField/VField.mjs +9 -6
  133. package/lib/components/VField/VField.mjs.map +1 -1
  134. package/lib/components/VField/VField.sass +0 -1
  135. package/lib/components/VField/VFieldLabel.mjs +6 -3
  136. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  137. package/lib/components/VField/{index.d.ts → index.d.mts} +125 -76
  138. package/lib/components/VFileInput/VFileInput.mjs +4 -2
  139. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  140. package/lib/components/VFileInput/{index.d.ts → index.d.mts} +114 -165
  141. package/lib/components/VFooter/VFooter.mjs +4 -2
  142. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  143. package/lib/components/VFooter/{index.d.ts → index.d.mts} +22 -13
  144. package/lib/components/VForm/VForm.mjs +5 -2
  145. package/lib/components/VForm/VForm.mjs.map +1 -1
  146. package/lib/components/VForm/{index.d.ts → index.d.mts} +30 -17
  147. package/lib/components/VGrid/VCol.mjs +4 -1
  148. package/lib/components/VGrid/VCol.mjs.map +1 -1
  149. package/lib/components/VGrid/VContainer.mjs +4 -1
  150. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  151. package/lib/components/VGrid/VRow.mjs +4 -1
  152. package/lib/components/VGrid/VRow.mjs.map +1 -1
  153. package/lib/components/VGrid/{index.d.ts → index.d.mts} +104 -60
  154. package/lib/components/VHover/{index.d.ts → index.d.mts} +20 -44
  155. package/lib/components/VIcon/VIcon.mjs +4 -2
  156. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  157. package/lib/components/VIcon/{index.d.ts → index.d.mts} +23 -26
  158. package/lib/components/VImg/VImg.css +2 -4
  159. package/lib/components/VImg/VImg.mjs +27 -24
  160. package/lib/components/VImg/VImg.mjs.map +1 -1
  161. package/lib/components/VImg/VImg.sass +4 -3
  162. package/lib/components/VImg/{index.d.ts → index.d.mts} +73 -31
  163. package/lib/components/VInput/VInput.mjs +4 -1
  164. package/lib/components/VInput/VInput.mjs.map +1 -1
  165. package/lib/components/VInput/{index.d.ts → index.d.mts} +37 -40
  166. package/lib/components/VItemGroup/VItemGroup.mjs +4 -1
  167. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  168. package/lib/components/VItemGroup/{index.d.ts → index.d.mts} +30 -33
  169. package/lib/components/VKbd/{index.d.ts → index.d.mts} +30 -17
  170. package/lib/components/VLabel/VLabel.mjs +4 -1
  171. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  172. package/lib/components/VLabel/{index.d.ts → index.d.mts} +22 -13
  173. package/lib/components/VLayout/VLayout.mjs +8 -4
  174. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  175. package/lib/components/VLayout/VLayoutItem.mjs +4 -2
  176. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  177. package/lib/components/VLayout/{index.d.ts → index.d.mts} +44 -26
  178. package/lib/components/VLazy/VLazy.mjs +4 -2
  179. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  180. package/lib/components/VLazy/{index.d.ts → index.d.mts} +22 -13
  181. package/lib/components/VList/VList.mjs +12 -24
  182. package/lib/components/VList/VList.mjs.map +1 -1
  183. package/lib/components/VList/VListChildren.mjs.map +1 -1
  184. package/lib/components/VList/VListGroup.mjs +8 -2
  185. package/lib/components/VList/VListGroup.mjs.map +1 -1
  186. package/lib/components/VList/VListItem.mjs +12 -5
  187. package/lib/components/VList/VListItem.mjs.map +1 -1
  188. package/lib/components/VList/VListItemAction.mjs +4 -1
  189. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  190. package/lib/components/VList/VListItemMedia.mjs +4 -1
  191. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  192. package/lib/components/VList/VListSubheader.mjs +5 -3
  193. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  194. package/lib/components/VList/{index.d.ts → index.d.mts} +950 -826
  195. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -2
  196. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  197. package/lib/components/VLocaleProvider/{index.d.ts → index.d.mts} +30 -17
  198. package/lib/components/VMain/VMain.mjs +4 -2
  199. package/lib/components/VMain/VMain.mjs.map +1 -1
  200. package/lib/components/VMain/{index.d.ts → index.d.mts} +30 -17
  201. package/lib/components/VMenu/VMenu.mjs +2 -1
  202. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  203. package/lib/components/VMenu/{index.d.ts → index.d.mts} +104 -282
  204. package/lib/components/VMessages/VMessages.mjs +4 -2
  205. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  206. package/lib/components/VMessages/{index.d.ts → index.d.mts} +22 -145
  207. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -10
  208. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  209. package/lib/components/VNavigationDrawer/{index.d.ts → index.d.mts} +26 -29
  210. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  211. package/lib/components/VNoSsr/index.d.mts +8 -0
  212. package/lib/components/VOverlay/VOverlay.mjs +5 -3
  213. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  214. package/lib/components/VOverlay/{index.d.ts → index.d.mts} +38 -45
  215. package/lib/components/VPagination/VPagination.mjs +4 -1
  216. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  217. package/lib/components/VPagination/{index.d.ts → index.d.mts} +23 -30
  218. package/lib/components/VParallax/VParallax.mjs +5 -2
  219. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  220. package/lib/components/VParallax/{index.d.ts → index.d.mts} +34 -33
  221. package/lib/components/VProgressCircular/VProgressCircular.mjs +4 -2
  222. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  223. package/lib/components/VProgressCircular/{index.d.ts → index.d.mts} +22 -13
  224. package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -4
  225. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  226. package/lib/components/VProgressLinear/{index.d.ts → index.d.mts} +42 -45
  227. package/lib/components/VRadio/VRadio.mjs +2 -1
  228. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  229. package/lib/components/VRadio/{index.d.ts → index.d.mts} +27 -38
  230. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
  231. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  232. package/lib/components/VRadioGroup/{index.d.ts → index.d.mts} +45 -68
  233. package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -1
  234. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  235. package/lib/components/VRangeSlider/{index.d.ts → index.d.mts} +33 -44
  236. package/lib/components/VRating/VRating.mjs +4 -1
  237. package/lib/components/VRating/VRating.mjs.map +1 -1
  238. package/lib/components/VRating/{index.d.ts → index.d.mts} +23 -18
  239. package/lib/components/VResponsive/VResponsive.css +13 -5
  240. package/lib/components/VResponsive/VResponsive.mjs +14 -8
  241. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  242. package/lib/components/VResponsive/VResponsive.sass +12 -4
  243. package/lib/components/VResponsive/{index.d.ts → index.d.mts} +52 -31
  244. package/lib/components/VSelect/VSelect.mjs +11 -3
  245. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  246. package/lib/components/VSelect/{index.d.ts → index.d.mts} +200 -558
  247. package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -2
  248. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  249. package/lib/components/VSelectionControl/{index.d.ts → index.d.mts} +76 -46
  250. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +4 -1
  251. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  252. package/lib/components/VSelectionControlGroup/{index.d.ts → index.d.mts} +23 -14
  253. package/lib/components/VSheet/VSheet.css +6 -0
  254. package/lib/components/VSheet/VSheet.mjs +4 -2
  255. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  256. package/lib/components/VSheet/_variables.scss +1 -1
  257. package/lib/components/VSheet/{index.d.ts → index.d.mts} +22 -13
  258. package/lib/components/VSlideGroup/VSlideGroup.mjs +6 -3
  259. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  260. package/lib/components/VSlideGroup/{index.d.ts → index.d.mts} +59 -90
  261. package/lib/components/VSlider/VSlider.mjs +2 -1
  262. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  263. package/lib/components/VSlider/VSliderThumb.mjs +6 -4
  264. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  265. package/lib/components/VSlider/VSliderTrack.mjs +6 -4
  266. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  267. package/lib/components/VSlider/{index.d.ts → index.d.mts} +33 -44
  268. package/lib/components/VSnackbar/VSnackbar.mjs +2 -1
  269. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  270. package/lib/components/VSnackbar/{index.d.ts → index.d.mts} +92 -142
  271. package/lib/components/VSwitch/VSwitch.mjs +2 -1
  272. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  273. package/lib/components/VSwitch/{index.d.ts → index.d.mts} +45 -72
  274. package/lib/components/VSystemBar/VSystemBar.mjs +4 -2
  275. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  276. package/lib/components/VSystemBar/{index.d.ts → index.d.mts} +22 -13
  277. package/lib/components/VTable/VTable.mjs +4 -1
  278. package/lib/components/VTable/VTable.mjs.map +1 -1
  279. package/lib/components/VTable/{index.d.ts → index.d.mts} +26 -29
  280. package/lib/components/VTabs/VTab.mjs +2 -2
  281. package/lib/components/VTabs/VTab.mjs.map +1 -1
  282. package/lib/components/VTabs/VTabs.mjs +2 -2
  283. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  284. package/lib/components/VTabs/{index.d.ts → index.d.mts} +45 -27
  285. package/lib/components/VTextField/VTextField.mjs +3 -2
  286. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  287. package/lib/components/VTextField/{index.d.ts → index.d.mts} +232 -293
  288. package/lib/components/VTextarea/VTextarea.mjs +3 -2
  289. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  290. package/lib/components/VTextarea/{index.d.ts → index.d.mts} +94 -137
  291. package/lib/components/VThemeProvider/VThemeProvider.mjs +6 -3
  292. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  293. package/lib/components/VThemeProvider/{index.d.ts → index.d.mts} +22 -13
  294. package/lib/components/VTimeline/VTimeline.mjs +5 -3
  295. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  296. package/lib/components/VTimeline/VTimelineDivider.mjs +4 -1
  297. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  298. package/lib/components/VTimeline/VTimelineItem.mjs +8 -6
  299. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  300. package/lib/components/VTimeline/{index.d.ts → index.d.mts} +67 -57
  301. package/lib/components/VToolbar/VToolbar.mjs +4 -2
  302. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  303. package/lib/components/VToolbar/VToolbarItems.mjs +9 -4
  304. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  305. package/lib/components/VToolbar/VToolbarTitle.mjs +5 -2
  306. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  307. package/lib/components/VToolbar/{index.d.ts → index.d.mts} +74 -71
  308. package/lib/components/VTooltip/VTooltip.mjs +2 -1
  309. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  310. package/lib/components/VTooltip/{index.d.ts → index.d.mts} +104 -150
  311. package/lib/components/VValidation/{index.d.ts → index.d.mts} +6 -18
  312. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +21 -23
  313. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  314. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +5 -2
  315. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  316. package/lib/components/VVirtualScroll/{index.d.ts → index.d.mts} +70 -30
  317. package/lib/components/VWindow/VWindow.mjs +4 -1
  318. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  319. package/lib/components/VWindow/VWindowItem.mjs +4 -1
  320. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  321. package/lib/components/VWindow/{index.d.ts → index.d.mts} +61 -79
  322. package/lib/components/{index.d.ts → index.d.mts} +6475 -7529
  323. package/lib/components/transitions/{index.d.ts → index.d.mts} +0 -192
  324. package/lib/composables/component.mjs +11 -0
  325. package/lib/composables/component.mjs.map +1 -0
  326. package/lib/composables/defaults.mjs +63 -5
  327. package/lib/composables/defaults.mjs.map +1 -1
  328. package/lib/composables/display.mjs +6 -6
  329. package/lib/composables/display.mjs.map +1 -1
  330. package/lib/composables/focus.mjs.map +1 -1
  331. package/lib/composables/icons.mjs +15 -4
  332. package/lib/composables/icons.mjs.map +1 -1
  333. package/lib/composables/index.mjs +1 -1
  334. package/lib/composables/index.mjs.map +1 -1
  335. package/lib/composables/loader.mjs.map +1 -1
  336. package/lib/composables/scroll.mjs +18 -19
  337. package/lib/composables/scroll.mjs.map +1 -1
  338. package/lib/entry-bundler.mjs +1 -1
  339. package/lib/framework.mjs +2 -2
  340. package/lib/framework.mjs.map +1 -1
  341. package/lib/iconsets/{fa-svg.d.ts → fa-svg.d.mts} +1 -1
  342. package/lib/iconsets/{fa.d.ts → fa.d.mts} +1 -1
  343. package/lib/iconsets/{fa4.d.ts → fa4.d.mts} +1 -1
  344. package/lib/iconsets/{md.d.ts → md.d.mts} +1 -1
  345. package/lib/iconsets/{mdi-svg.d.ts → mdi-svg.d.mts} +1 -1
  346. package/lib/iconsets/{mdi.d.ts → mdi.d.mts} +1 -1
  347. package/lib/{index.d.ts → index.d.mts} +13 -12
  348. package/lib/labs/VDataTable/VDataTable.mjs +12 -3
  349. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  350. package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
  351. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  352. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
  353. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  354. package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
  355. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  356. package/lib/labs/VDataTable/VDataTableServer.mjs +1 -6
  357. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  358. package/lib/labs/VDataTable/VDataTableVirtual.mjs +7 -2
  359. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  360. package/lib/labs/VDataTable/composables/paginate.mjs +6 -1
  361. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  362. package/lib/labs/VDataTable/{index.d.ts → index.d.mts} +113 -943
  363. package/lib/labs/VInfiniteScroll/{index.d.ts → index.d.mts} +8 -36
  364. package/lib/labs/VSkeletonLoader/{index.d.ts → index.d.mts} +0 -12
  365. package/lib/labs/{components.d.ts → components.d.mts} +161 -1031
  366. package/lib/labs/date/DateAdapter.mjs +2 -0
  367. package/lib/labs/date/DateAdapter.mjs.map +1 -0
  368. package/lib/labs/date/adapters/vuetify.d.mts +52 -0
  369. package/lib/{adapters → labs/date/adapters}/vuetify.mjs +2 -2
  370. package/lib/labs/date/adapters/vuetify.mjs.map +1 -0
  371. package/lib/{composables → labs/date}/date.mjs +3 -3
  372. package/lib/labs/date/date.mjs.map +1 -0
  373. package/lib/labs/date/index.d.mts +40 -0
  374. package/lib/labs/date/index.mjs +2 -0
  375. package/lib/labs/date/index.mjs.map +1 -0
  376. package/lib/labs/index.mjs +3 -2
  377. package/lib/labs/index.mjs.map +1 -1
  378. package/lib/util/colorUtils.mjs +68 -3
  379. package/lib/util/colorUtils.mjs.map +1 -1
  380. package/lib/util/console.mjs +12 -81
  381. package/lib/util/console.mjs.map +1 -1
  382. package/lib/util/createSimpleFunctional.mjs +9 -4
  383. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  384. package/lib/util/defineComponent.mjs +11 -43
  385. package/lib/util/defineComponent.mjs.map +1 -1
  386. package/lib/util/helpers.mjs +31 -2
  387. package/lib/util/helpers.mjs.map +1 -1
  388. package/lib/util/index.mjs +1 -0
  389. package/lib/util/index.mjs.map +1 -1
  390. package/package.json +11 -6
  391. package/lib/adapters/date-adapter.mjs +0 -2
  392. package/lib/adapters/date-adapter.mjs.map +0 -1
  393. package/lib/adapters/vuetify.mjs.map +0 -1
  394. package/lib/components/VNoSsr/index.d.ts +0 -18
  395. package/lib/composables/date.mjs.map +0 -1
  396. /package/lib/directives/{index.d.ts → index.d.mts} +0 -0
  397. /package/lib/locale/adapters/{vue-i18n.d.ts → vue-i18n.d.mts} +0 -0
  398. /package/lib/locale/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
  399. /package/lib/locale/{index.d.ts → index.d.mts} +0 -0
@@ -10,8 +10,8 @@ import { VColorPickerPreview } from "./VColorPickerPreview.mjs";
10
10
  import { VColorPickerSwatches } from "./VColorPickerSwatches.mjs"; // Composables
11
11
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
12
12
  import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
13
- import { defineComponent, HSVtoCSS, omit, useRender } from "../../util/index.mjs";
14
- import { extractColor, modes, nullColor, parseColor } from "./util/index.mjs";
13
+ import { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, RGBtoHSV, useRender } from "../../util/index.mjs";
14
+ import { extractColor, modes, nullColor } from "./util/index.mjs";
15
15
  import { onMounted, ref } from 'vue';
16
16
 
17
17
  // Types
@@ -62,8 +62,13 @@ export const VColorPicker = defineComponent({
62
62
  const mode = useProxiedModel(props, 'mode');
63
63
  const lastPickedColor = ref(null);
64
64
  const currentColor = useProxiedModel(props, 'modelValue', undefined, v => {
65
- let c = parseColor(v);
66
- if (!c) return null;
65
+ let c;
66
+ try {
67
+ c = RGBtoHSV(parseColor(v));
68
+ } catch (err) {
69
+ consoleWarn(err);
70
+ return null;
71
+ }
67
72
  if (lastPickedColor.value) {
68
73
  c = {
69
74
  ...c,
@@ -96,13 +101,13 @@ export const VColorPicker = defineComponent({
96
101
  "rounded": props.rounded,
97
102
  "elevation": props.elevation,
98
103
  "theme": props.theme,
99
- "class": ['v-color-picker'],
100
- "style": {
104
+ "class": ['v-color-picker', props.class],
105
+ "style": [{
101
106
  '--v-color-picker-color-hsv': HSVtoCSS({
102
107
  ...(currentColor.value ?? nullColor),
103
108
  a: 1
104
109
  })
105
- }
110
+ }, props.style]
106
111
  }, sheetProps, {
107
112
  "maxWidth": props.width
108
113
  }), {
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPicker.mjs","names":["makeVSheetProps","VSheet","VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","useProxiedModel","provideDefaults","defineComponent","HSVtoCSS","omit","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","props","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","emits","color","setup","lastPickedColor","currentColor","undefined","c","value","h","updateColor","hsva","VSlider","trackColor","trackFillColor","sheetProps","filterProps","_createVNode","_mergeProps","rounded","elevation","theme","a","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, omit, useRender } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const [sheetProps] = VSheet.filterProps(props)\n\n return (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n ]}\n style={{\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\n { ...sheetProps }\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n )}\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n </div>\n )}\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VColorPicker.mjs","names":["makeVSheetProps","VSheet","VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","useProxiedModel","provideDefaults","consoleWarn","defineComponent","HSVtoCSS","omit","parseColor","RGBtoHSV","useRender","extractColor","modes","nullColor","onMounted","ref","VColorPicker","name","props","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","emits","color","setup","lastPickedColor","currentColor","undefined","c","err","value","h","updateColor","hsva","VSlider","trackColor","trackFillColor","sheetProps","filterProps","_createVNode","_mergeProps","rounded","elevation","theme","class","a","style","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, RGBtoHSV, useRender } from '@/util'\nimport { extractColor, modes, nullColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String as PropType<keyof typeof modes>,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<(keyof typeof modes)[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<Color[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c: HSV\n try {\n c = RGBtoHSV(parseColor(v as any))\n } catch (err) {\n consoleWarn(err as any)\n return null\n }\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const [sheetProps] = VSheet.filterProps(props)\n\n return (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n props.class,\n ]}\n style={[\n {\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n },\n props.style,\n ]}\n { ...sheetProps }\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n )}\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n </div>\n )}\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { createVNode as _createVNode } from "vue";
3
3
  import "./VColorPickerCanvas.css";
4
4
 
5
5
  // Composables
6
+ import { makeComponentProps } from "../../composables/component.mjs";
6
7
  import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
7
8
  import { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from "../../util/index.mjs";
8
9
  import { computed, onMounted, ref, watch } from 'vue';
@@ -27,7 +28,8 @@ export const VColorPickerCanvas = defineComponent({
27
28
  width: {
28
29
  type: [Number, String],
29
30
  default: 300
30
- }
31
+ },
32
+ ...makeComponentProps()
31
33
  },
32
34
  emits: {
33
35
  'update:color': color => true,
@@ -172,7 +174,8 @@ export const VColorPickerCanvas = defineComponent({
172
174
  onMounted(() => updateCanvas());
173
175
  useRender(() => _createVNode("div", {
174
176
  "ref": resizeRef,
175
- "class": "v-color-picker-canvas",
177
+ "class": ['v-color-picker-canvas', props.class],
178
+ "style": props.style,
176
179
  "onClick": handleClick,
177
180
  "onMousedown": handleMouseDown,
178
181
  "onTouchstart": handleMouseDown
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerCanvas.mjs","names":["useResizeObserver","clamp","convertToUnit","defineComponent","getEventCoordinates","useRender","computed","onMounted","ref","watch","VColorPickerCanvas","name","props","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","emits","hue","setup","_ref","emit","isInteracting","isOutsideUpdate","dotPosition","x","y","dotStyles","value","radius","parseInt","transform","canvasRef","canvasWidth","parseFloat","canvasHeight","resizeRef","entries","offsetParent","contentRect","updateDotPosition","rect","left","top","handleClick","e","clientX","clientY","getBoundingClientRect","handleMouseDown","preventDefault","window","addEventListener","handleMouseMove","handleMouseUp","coords","removeEventListener","h","s","v","a","updateCanvas","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","immediate","newVal","oldVal","flush","deep","_createVNode"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\n\n// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from '@/util'\nimport { computed, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { HSV } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: {\n color: {\n type: Object as PropType<HSV | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = ref(false)\n const isOutsideUpdate = ref(false)\n const dotPosition = ref({ x: 0, y: 0 })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const canvasRef = ref<HTMLCanvasElement | null>()\n const canvasWidth = ref(parseFloat(props.width))\n const canvasHeight = ref(parseFloat(props.height))\n const { resizeRef } = useResizeObserver(entries => {\n if (!resizeRef.value?.offsetParent) return\n\n const { width, height } = entries[0].contentRect\n\n canvasWidth.value = width\n canvasHeight.value = height\n })\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleClick (e: MouseEvent) {\n if (props.disabled || !canvasRef.value) return\n\n updateDotPosition(e.clientX, e.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (props.disabled) return\n\n isInteracting.value = true\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n watch(dotPosition, () => {\n if (isOutsideUpdate.value) {\n isOutsideUpdate.value = false\n return\n }\n\n if (!canvasRef.value) return\n\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1,\n })\n })\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas()\n dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1],\n }\n }, { flush: 'post' })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n isOutsideUpdate.value = true\n\n dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value,\n } : { x: 0, y: 0 }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n ref={ resizeRef }\n class=\"v-color-picker-canvas\"\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ canvasWidth.value }\n height={ canvasHeight.value }\n />\n { props.color && (\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType<typeof VColorPickerCanvas>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VColorPickerCanvas.mjs","names":["makeComponentProps","useResizeObserver","clamp","convertToUnit","defineComponent","getEventCoordinates","useRender","computed","onMounted","ref","watch","VColorPickerCanvas","name","props","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","emits","hue","setup","_ref","emit","isInteracting","isOutsideUpdate","dotPosition","x","y","dotStyles","value","radius","parseInt","transform","canvasRef","canvasWidth","parseFloat","canvasHeight","resizeRef","entries","offsetParent","contentRect","updateDotPosition","rect","left","top","handleClick","e","clientX","clientY","getBoundingClientRect","handleMouseDown","preventDefault","window","addEventListener","handleMouseMove","handleMouseUp","coords","removeEventListener","h","s","v","a","updateCanvas","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","immediate","newVal","oldVal","flush","deep","_createVNode","class","style"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from '@/util'\nimport { computed, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { HSV } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: {\n color: {\n type: Object as PropType<HSV | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeComponentProps(),\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = ref(false)\n const isOutsideUpdate = ref(false)\n const dotPosition = ref({ x: 0, y: 0 })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const canvasRef = ref<HTMLCanvasElement | null>()\n const canvasWidth = ref(parseFloat(props.width))\n const canvasHeight = ref(parseFloat(props.height))\n const { resizeRef } = useResizeObserver(entries => {\n if (!resizeRef.value?.offsetParent) return\n\n const { width, height } = entries[0].contentRect\n\n canvasWidth.value = width\n canvasHeight.value = height\n })\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleClick (e: MouseEvent) {\n if (props.disabled || !canvasRef.value) return\n\n updateDotPosition(e.clientX, e.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (props.disabled) return\n\n isInteracting.value = true\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n watch(dotPosition, () => {\n if (isOutsideUpdate.value) {\n isOutsideUpdate.value = false\n return\n }\n\n if (!canvasRef.value) return\n\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1,\n })\n })\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas()\n dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1],\n }\n }, { flush: 'post' })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n isOutsideUpdate.value = true\n\n dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value,\n } : { x: 0, y: 0 }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n ref={ resizeRef }\n class={[\n 'v-color-picker-canvas',\n props.class,\n ]}\n style={ props.style }\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ canvasWidth.value }\n height={ canvasHeight.value }\n />\n { props.color && (\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType<typeof VColorPickerCanvas>\n"],"mappings":"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"}
@@ -3,7 +3,8 @@ import { createVNode as _createVNode } from "vue";
3
3
  import "./VColorPickerEdit.css";
4
4
 
5
5
  // Components
6
- import { VBtn } from "../VBtn/index.mjs"; // Utilities
6
+ import { VBtn } from "../VBtn/index.mjs"; // Composables
7
+ import { makeComponentProps } from "../../composables/component.mjs"; // Utilities
7
8
  import { computed } from 'vue';
8
9
  import { defineComponent, useRender } from "../../util/index.mjs";
9
10
  import { modes, nullColor } from "./util/index.mjs"; // Types
@@ -30,7 +31,8 @@ export const VColorPickerEdit = defineComponent({
30
31
  type: Array,
31
32
  default: () => Object.keys(modes),
32
33
  validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
33
- }
34
+ },
35
+ ...makeComponentProps()
34
36
  },
35
37
  emits: {
36
38
  'update:color': color => true,
@@ -70,7 +72,8 @@ export const VColorPickerEdit = defineComponent({
70
72
  });
71
73
  });
72
74
  useRender(() => _createVNode("div", {
73
- "class": "v-color-picker-edit"
75
+ "class": ['v-color-picker-edit', props.class],
76
+ "style": props.style
74
77
  }, [inputs.value?.map(props => _createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && _createVNode(VBtn, {
75
78
  "icon": "$unfold",
76
79
  "size": "x-small",
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerEdit.mjs","names":["VBtn","computed","defineComponent","useRender","modes","nullColor","VColorPickerInput","_ref","label","rest","_createVNode","VColorPickerEdit","name","props","color","Object","disabled","Boolean","mode","type","String","default","validator","v","keys","includes","Array","isArray","every","m","emits","setup","_ref2","emit","enabledModes","map","key","inputs","value","find","to","_ref3","getValue","getColor","inputProps","onChange","e","target","from","length","onClick","mi","findIndex"],"sources":["../../../src/components/VColorPicker/VColorPickerEdit.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { modes, nullColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n <div\n class=\"v-color-picker-edit__input\"\n >\n <input { ...rest } />\n <span>{ label }</span>\n </div>\n )\n}\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: {\n color: Object as PropType<HSV | null>,\n disabled: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : null\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: color && getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color ?? nullColor, target.value)))\n },\n }\n })\n })\n\n useRender(() => (\n <div\n class=\"v-color-picker-edit\"\n >\n { inputs.value?.map(props => (\n <VColorPickerInput { ...props } />\n ))}\n { enabledModes.value.length > 1 && (\n <VBtn\n icon=\"$unfold\"\n size=\"x-small\"\n variant=\"plain\"\n onClick={ () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode)\n\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name)\n }}\n />\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerEdit = InstanceType<typeof VColorPickerEdit>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VColorPickerEdit.mjs","names":["VBtn","makeComponentProps","computed","defineComponent","useRender","modes","nullColor","VColorPickerInput","_ref","label","rest","_createVNode","VColorPickerEdit","name","props","color","Object","disabled","Boolean","mode","type","String","default","validator","v","keys","includes","Array","isArray","every","m","emits","setup","_ref2","emit","enabledModes","map","key","inputs","value","find","to","_ref3","getValue","getColor","inputProps","onChange","e","target","from","class","style","length","onClick","mi","findIndex"],"sources":["../../../src/components/VColorPicker/VColorPickerEdit.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { modes, nullColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n <div\n class=\"v-color-picker-edit__input\"\n >\n <input { ...rest } />\n <span>{ label }</span>\n </div>\n )\n}\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: {\n color: Object as PropType<HSV | null>,\n disabled: Boolean,\n mode: {\n type: String as PropType<keyof typeof modes>,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<(keyof typeof modes)[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n\n ...makeComponentProps(),\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : null\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: color && getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color ?? nullColor, target.value)))\n },\n }\n })\n })\n\n useRender(() => (\n <div\n class={[\n 'v-color-picker-edit',\n props.class,\n ]}\n style={ props.style }\n >\n { inputs.value?.map(props => (\n <VColorPickerInput { ...props } />\n ))}\n { enabledModes.value.length > 1 && (\n <VBtn\n icon=\"$unfold\"\n size=\"x-small\"\n variant=\"plain\"\n onClick={ () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode)\n\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name)\n }}\n />\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerEdit = InstanceType<typeof VColorPickerEdit>\n"],"mappings":"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"}
@@ -3,7 +3,8 @@ import { createVNode as _createVNode } from "vue";
3
3
  import "./VColorPickerPreview.css";
4
4
 
5
5
  // Components
6
- import { VSlider } from "../VSlider/index.mjs"; // Utilities
6
+ import { VSlider } from "../VSlider/index.mjs"; // Composables
7
+ import { makeComponentProps } from "../../composables/component.mjs"; // Utilities
7
8
  import { defineComponent, HSVtoCSS, useRender } from "../../util/index.mjs";
8
9
  import { nullColor } from "./util/index.mjs"; // Types
9
10
  export const VColorPickerPreview = defineComponent({
@@ -13,7 +14,8 @@ export const VColorPickerPreview = defineComponent({
13
14
  type: Object
14
15
  },
15
16
  disabled: Boolean,
16
- hideAlpha: Boolean
17
+ hideAlpha: Boolean,
18
+ ...makeComponentProps()
17
19
  },
18
20
  emits: {
19
21
  'update:color': color => true
@@ -25,7 +27,8 @@ export const VColorPickerPreview = defineComponent({
25
27
  useRender(() => _createVNode("div", {
26
28
  "class": ['v-color-picker-preview', {
27
29
  'v-color-picker-preview--hide-alpha': props.hideAlpha
28
- }]
30
+ }, props.class],
31
+ "style": props.style
29
32
  }, [_createVNode("div", {
30
33
  "class": "v-color-picker-preview__dot"
31
34
  }, [_createVNode("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerPreview.mjs","names":["VSlider","defineComponent","HSVtoCSS","useRender","nullColor","VColorPickerPreview","name","props","color","type","Object","disabled","Boolean","hideAlpha","emits","setup","_ref","emit","_createVNode","background","h","a"],"sources":["../../../src/components/VColorPicker/VColorPickerPreview.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport { VSlider } from '@/components/VSlider'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, useRender } from '@/util'\nimport { nullColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n\n props: {\n color: {\n type: Object as PropType<HSV | null>,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n <div\n class={[\n 'v-color-picker-preview',\n {\n 'v-color-picker-preview--hide-alpha': props.hideAlpha,\n },\n ]}\n >\n <div class=\"v-color-picker-preview__dot\">\n <div style={{ background: HSVtoCSS(props.color ?? nullColor) }} />\n </div>\n\n <div class=\"v-color-picker-preview__sliders\">\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__hue\"\n modelValue={ props.color?.h }\n onUpdate:modelValue={ h => emit('update:color', { ...(props.color ?? nullColor), h }) }\n step={ 0 }\n min={ 0 }\n max={ 360 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n\n { !props.hideAlpha && (\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__alpha\"\n modelValue={ props.color?.a ?? 1 }\n onUpdate:modelValue={ a => emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 1 / 256 }\n min={ 0 }\n max={ 1 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n )}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerPreview = InstanceType<typeof VColorPickerPreview>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,OAAO,gCAEhB;AAAA,SACSC,eAAe,EAAEC,QAAQ,EAAEC,SAAS;AAAA,SACpCC,SAAS,4BAElB;AAIA,OAAO,MAAMC,mBAAmB,GAAGJ,eAAe,CAAC;EACjDK,IAAI,EAAE,qBAAqB;EAE3BC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAEC;IACR,CAAC;IACDC,QAAQ,EAAEC,OAAO;IACjBC,SAAS,EAAED;EACb,CAAC;EAEDE,KAAK,EAAE;IACL,cAAc,EAAGN,KAAU,IAAK;EAClC,CAAC;EAEDO,KAAKA,CAAER,KAAK,EAAAS,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpBb,SAAS,CAAC,MAAAe,YAAA;MAAA,SAEC,CACL,wBAAwB,EACxB;QACE,oCAAoC,EAAEX,KAAK,CAACM;MAC9C,CAAC;IACF,IAAAK,YAAA;MAAA,SAEU;IAA6B,IAAAA,YAAA;MAAA,SAC1B;QAAEC,UAAU,EAAEjB,QAAQ,CAACK,KAAK,CAACC,KAAK,IAAIJ,SAAS;MAAE;IAAC,YAAAc,YAAA;MAAA,SAGrD;IAAiC,IAAAA,YAAA,CAAAlB,OAAA;MAAA,SAElC,2DAA2D;MAAA,cACpDO,KAAK,CAACC,KAAK,EAAEY,CAAC;MAAA,uBACLA,CAAC,IAAIH,IAAI,CAAC,cAAc,EAAE;QAAE,IAAIV,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;QAAEgB;MAAE,CAAC,CAAC;MAAA,QAC9E,CAAC;MAAA,OACF,CAAC;MAAA,OACD,GAAG;MAAA,YACEb,KAAK,CAACI,QAAQ;MAAA,aACb,EAAE;MAAA,aACF,CAAC;MAAA,kBACE,OAAO;MAAA;IAAA,UAItB,CAACJ,KAAK,CAACM,SAAS,IAAAK,YAAA,CAAAlB,OAAA;MAAA,SAER,6DAA6D;MAAA,cACtDO,KAAK,CAACC,KAAK,EAAEa,CAAC,IAAI,CAAC;MAAA,uBACVA,CAAC,IAAIJ,IAAI,CAAC,cAAc,EAAE;QAAE,IAAIV,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;QAAEiB;MAAE,CAAC,CAAC;MAAA,QAC9E,CAAC,GAAG,GAAG;MAAA,OACR,CAAC;MAAA,OACD,CAAC;MAAA,YACId,KAAK,CAACI,QAAQ;MAAA,aACb,EAAE;MAAA,aACF,CAAC;MAAA,kBACE,OAAO;MAAA;IAAA,QAGzB,IAGN,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VColorPickerPreview.mjs","names":["VSlider","makeComponentProps","defineComponent","HSVtoCSS","useRender","nullColor","VColorPickerPreview","name","props","color","type","Object","disabled","Boolean","hideAlpha","emits","setup","_ref","emit","_createVNode","class","style","background","h","a"],"sources":["../../../src/components/VColorPicker/VColorPickerPreview.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport { VSlider } from '@/components/VSlider'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, useRender } from '@/util'\nimport { nullColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n\n props: {\n color: {\n type: Object as PropType<HSV | null>,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n\n ...makeComponentProps(),\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n <div\n class={[\n 'v-color-picker-preview',\n {\n 'v-color-picker-preview--hide-alpha': props.hideAlpha,\n },\n props.class,\n ]}\n style={ props.style }\n >\n <div class=\"v-color-picker-preview__dot\">\n <div style={{ background: HSVtoCSS(props.color ?? nullColor) }} />\n </div>\n\n <div class=\"v-color-picker-preview__sliders\">\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__hue\"\n modelValue={ props.color?.h }\n onUpdate:modelValue={ h => emit('update:color', { ...(props.color ?? nullColor), h }) }\n step={ 0 }\n min={ 0 }\n max={ 360 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n\n { !props.hideAlpha && (\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__alpha\"\n modelValue={ props.color?.a ?? 1 }\n onUpdate:modelValue={ a => emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 1 / 256 }\n min={ 0 }\n max={ 1 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n )}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerPreview = InstanceType<typeof VColorPickerPreview>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,OAAO,gCAEhB;AAAA,SACSC,kBAAkB,2CAE3B;AAAA,SACSC,eAAe,EAAEC,QAAQ,EAAEC,SAAS;AAAA,SACpCC,SAAS,4BAElB;AAIA,OAAO,MAAMC,mBAAmB,GAAGJ,eAAe,CAAC;EACjDK,IAAI,EAAE,qBAAqB;EAE3BC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAEC;IACR,CAAC;IACDC,QAAQ,EAAEC,OAAO;IACjBC,SAAS,EAAED,OAAO;IAElB,GAAGZ,kBAAkB;EACvB,CAAC;EAEDc,KAAK,EAAE;IACL,cAAc,EAAGN,KAAU,IAAK;EAClC,CAAC;EAEDO,KAAKA,CAAER,KAAK,EAAAS,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpBb,SAAS,CAAC,MAAAe,YAAA;MAAA,SAEC,CACL,wBAAwB,EACxB;QACE,oCAAoC,EAAEX,KAAK,CAACM;MAC9C,CAAC,EACDN,KAAK,CAACY,KAAK,CACZ;MAAA,SACOZ,KAAK,CAACa;IAAK,IAAAF,YAAA;MAAA,SAER;IAA6B,IAAAA,YAAA;MAAA,SAC1B;QAAEG,UAAU,EAAEnB,QAAQ,CAACK,KAAK,CAACC,KAAK,IAAIJ,SAAS;MAAE;IAAC,YAAAc,YAAA;MAAA,SAGrD;IAAiC,IAAAA,YAAA,CAAAnB,OAAA;MAAA,SAElC,2DAA2D;MAAA,cACpDQ,KAAK,CAACC,KAAK,EAAEc,CAAC;MAAA,uBACLA,CAAC,IAAIL,IAAI,CAAC,cAAc,EAAE;QAAE,IAAIV,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;QAAEkB;MAAE,CAAC,CAAC;MAAA,QAC9E,CAAC;MAAA,OACF,CAAC;MAAA,OACD,GAAG;MAAA,YACEf,KAAK,CAACI,QAAQ;MAAA,aACb,EAAE;MAAA,aACF,CAAC;MAAA,kBACE,OAAO;MAAA;IAAA,UAItB,CAACJ,KAAK,CAACM,SAAS,IAAAK,YAAA,CAAAnB,OAAA;MAAA,SAER,6DAA6D;MAAA,cACtDQ,KAAK,CAACC,KAAK,EAAEe,CAAC,IAAI,CAAC;MAAA,uBACVA,CAAC,IAAIN,IAAI,CAAC,cAAc,EAAE;QAAE,IAAIV,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;QAAEmB;MAAE,CAAC,CAAC;MAAA,QAC9E,CAAC,GAAG,GAAG;MAAA,OACR,CAAC;MAAA,OACD,CAAC;MAAA,YACIhB,KAAK,CAACI,QAAQ;MAAA,aACb,EAAE;MAAA,aACF,CAAC;MAAA,kBACE,OAAO;MAAA;IAAA,QAGzB,IAGN,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -3,9 +3,9 @@ import { createVNode as _createVNode } from "vue";
3
3
  import "./VColorPickerSwatches.css";
4
4
 
5
5
  // Components
6
- import { VIcon } from "../VIcon/index.mjs"; // Utilities
7
- import { convertToUnit, deepEqual, defineComponent, getContrast, useRender } from "../../util/index.mjs";
8
- import { parseColor } from "./util/index.mjs";
6
+ import { VIcon } from "../VIcon/index.mjs"; // Composables
7
+ import { makeComponentProps } from "../../composables/component.mjs"; // Utilities
8
+ import { convertToUnit, deepEqual, defineComponent, getContrast, parseColor, RGBtoCSS, RGBtoHSV, useRender } from "../../util/index.mjs";
9
9
  import colors from "../../util/colors.mjs"; // Types
10
10
  function parseDefaultColors(colors) {
11
11
  return Object.keys(colors).map(key => {
@@ -22,7 +22,8 @@ export const VColorPickerSwatches = defineComponent({
22
22
  },
23
23
  disabled: Boolean,
24
24
  color: Object,
25
- maxHeight: [Number, String]
25
+ maxHeight: [Number, String],
26
+ ...makeComponentProps()
26
27
  },
27
28
  emits: {
28
29
  'update:color': color => true
@@ -32,20 +33,22 @@ export const VColorPickerSwatches = defineComponent({
32
33
  emit
33
34
  } = _ref;
34
35
  useRender(() => _createVNode("div", {
35
- "class": "v-color-picker-swatches",
36
- "style": {
36
+ "class": ['v-color-picker-swatches', props.class],
37
+ "style": [{
37
38
  maxHeight: convertToUnit(props.maxHeight)
38
- }
39
+ }, props.style]
39
40
  }, [_createVNode("div", null, [props.swatches.map(swatch => _createVNode("div", {
40
41
  "class": "v-color-picker-swatches__swatch"
41
42
  }, [swatch.map(color => {
42
- const hsva = parseColor(color);
43
+ const rgba = parseColor(color);
44
+ const hsva = RGBtoHSV(rgba);
45
+ const background = RGBtoCSS(rgba);
43
46
  return _createVNode("div", {
44
47
  "class": "v-color-picker-swatches__color",
45
48
  "onClick": () => hsva && emit('update:color', hsva)
46
49
  }, [_createVNode("div", {
47
50
  "style": {
48
- background: color
51
+ background
49
52
  }
50
53
  }, [props.color && deepEqual(props.color, hsva) ? _createVNode(VIcon, {
51
54
  "size": "x-small",
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerSwatches.mjs","names":["VIcon","convertToUnit","deepEqual","defineComponent","getContrast","useRender","parseColor","colors","parseDefaultColors","Object","keys","map","key","color","base","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","white","transparent","VColorPickerSwatches","name","props","swatches","type","Array","default","disabled","Boolean","maxHeight","Number","String","emits","setup","_ref","emit","_createVNode","swatch","hsva","onClick","background","undefined"],"sources":["../../../src/components/VColorPicker/VColorPickerSwatches.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Utilities\nimport { convertToUnit, deepEqual, defineComponent, getContrast, useRender } from '@/util'\nimport { parseColor } from './util'\nimport colors from '@/util/colors'\n\n// Types\nimport type { HSV } from '@/util'\nimport type { PropType } from 'vue'\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: {\n swatches: {\n type: Array as PropType<string[][]>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType<HSV | null>,\n maxHeight: [Number, String],\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n <div\n class=\"v-color-picker-swatches\"\n style={{\n maxHeight: convertToUnit(props.maxHeight),\n }}\n >\n <div>\n { props.swatches.map(swatch => (\n <div class=\"v-color-picker-swatches__swatch\">\n { swatch.map(color => {\n const hsva = parseColor(color)\n\n return (\n <div\n class=\"v-color-picker-swatches__color\"\n onClick={ () => hsva && emit('update:color', hsva) }\n >\n <div style={{ background: color }}>\n { props.color && deepEqual(props.color, hsva)\n ? <VIcon size=\"x-small\" icon=\"$success\" color={ getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black' } />\n : undefined\n }\n </div>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerSwatches = InstanceType<typeof VColorPickerSwatches>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK,8BAEd;AAAA,SACSC,aAAa,EAAEC,SAAS,EAAEC,eAAe,EAAEC,WAAW,EAAEC,SAAS;AAAA,SACjEC,UAAU;AAAA,OACZC,MAAM,+BAEb;AAIA,SAASC,kBAAkBA,CAAED,MAA8C,EAAE;EAC3E,OAAOE,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,CAACI,GAAG,CAACC,GAAG,IAAI;IACpC,MAAMC,KAAK,GAAGN,MAAM,CAACK,GAAG,CAAC;IACzB,OAAOC,KAAK,CAACC,IAAI,GAAG,CAClBD,KAAK,CAACC,IAAI,EACVD,KAAK,CAACE,OAAO,EACbF,KAAK,CAACG,OAAO,EACbH,KAAK,CAACI,OAAO,EACbJ,KAAK,CAACK,OAAO,EACbL,KAAK,CAACM,QAAQ,EACdN,KAAK,CAACO,QAAQ,EACdP,KAAK,CAACQ,QAAQ,EACdR,KAAK,CAACS,QAAQ,EACdT,KAAK,CAACU,QAAQ,CACf,GAAG,CACFV,KAAK,CAACW,KAAK,EACXX,KAAK,CAACY,KAAK,EACXZ,KAAK,CAACa,WAAW,CAClB;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMC,oBAAoB,GAAGxB,eAAe,CAAC;EAClDyB,IAAI,EAAE,sBAAsB;EAE5BC,KAAK,EAAE;IACLC,QAAQ,EAAE;MACRC,IAAI,EAAEC,KAA6B;MACnCC,OAAO,EAAEA,CAAA,KAAMzB,kBAAkB,CAACD,MAAM;IAC1C,CAAC;IACD2B,QAAQ,EAAEC,OAAO;IACjBtB,KAAK,EAAEJ,MAA8B;IACrC2B,SAAS,EAAE,CAACC,MAAM,EAAEC,MAAM;EAC5B,CAAC;EAEDC,KAAK,EAAE;IACL,cAAc,EAAG1B,KAAU,IAAK;EAClC,CAAC;EAED2B,KAAKA,CAAEX,KAAK,EAAAY,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpBpC,SAAS,CAAC,MAAAsC,YAAA;MAAA,SAEA,yBAAyB;MAAA,SACxB;QACLP,SAAS,EAAEnC,aAAa,CAAC4B,KAAK,CAACO,SAAS;MAC1C;IAAC,IAAAO,YAAA,eAGGd,KAAK,CAACC,QAAQ,CAACnB,GAAG,CAACiC,MAAM,IAAAD,YAAA;MAAA,SACd;IAAiC,IACxCC,MAAM,CAACjC,GAAG,CAACE,KAAK,IAAI;MACpB,MAAMgC,IAAI,GAAGvC,UAAU,CAACO,KAAK,CAAC;MAE9B,OAAA8B,YAAA;QAAA,SAEU,gCAAgC;QAAA,WAC5BG,CAAA,KAAMD,IAAI,IAAIH,IAAI,CAAC,cAAc,EAAEG,IAAI;MAAC,IAAAF,YAAA;QAAA,SAEtC;UAAEI,UAAU,EAAElC;QAAM;MAAC,IAC7BgB,KAAK,CAAChB,KAAK,IAAIX,SAAS,CAAC2B,KAAK,CAAChB,KAAK,EAAEgC,IAAI,CAAC,GAAAF,YAAA,CAAA3C,KAAA;QAAA,QAC7B,SAAS;QAAA,QAAM,UAAU;QAAA,SAASI,WAAW,CAACS,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG;MAAO,WACnGmC,SAAS;IAKrB,CAAC,CAAC,EAEL,CAAC,IAGP,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VColorPickerSwatches.mjs","names":["VIcon","makeComponentProps","convertToUnit","deepEqual","defineComponent","getContrast","parseColor","RGBtoCSS","RGBtoHSV","useRender","colors","parseDefaultColors","Object","keys","map","key","color","base","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","white","transparent","VColorPickerSwatches","name","props","swatches","type","Array","default","disabled","Boolean","maxHeight","Number","String","emits","setup","_ref","emit","_createVNode","class","style","swatch","rgba","hsva","background","onClick","undefined"],"sources":["../../../src/components/VColorPicker/VColorPickerSwatches.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport {\n convertToUnit,\n deepEqual,\n defineComponent,\n getContrast,\n parseColor,\n RGBtoCSS,\n RGBtoHSV,\n useRender,\n} from '@/util'\nimport colors from '@/util/colors'\n\n// Types\nimport type { Color, HSV } from '@/util'\nimport type { PropType } from 'vue'\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: {\n swatches: {\n type: Array as PropType<Color[][]>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType<HSV | null>,\n maxHeight: [Number, String],\n\n ...makeComponentProps(),\n },\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n <div\n class={[\n 'v-color-picker-swatches',\n props.class,\n ]}\n style={[\n { maxHeight: convertToUnit(props.maxHeight) },\n props.style,\n ]}\n >\n <div>\n { props.swatches.map(swatch => (\n <div class=\"v-color-picker-swatches__swatch\">\n { swatch.map(color => {\n const rgba = parseColor(color)\n const hsva = RGBtoHSV(rgba)\n const background = RGBtoCSS(rgba)\n\n return (\n <div\n class=\"v-color-picker-swatches__color\"\n onClick={ () => hsva && emit('update:color', hsva) }\n >\n <div style={{ background }}>\n { props.color && deepEqual(props.color, hsva)\n ? <VIcon size=\"x-small\" icon=\"$success\" color={ getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black' } />\n : undefined\n }\n </div>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerSwatches = InstanceType<typeof VColorPickerSwatches>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK,8BAEd;AAAA,SACSC,kBAAkB,2CAE3B;AAAA,SAEEC,aAAa,EACbC,SAAS,EACTC,eAAe,EACfC,WAAW,EACXC,UAAU,EACVC,QAAQ,EACRC,QAAQ,EACRC,SAAS;AAAA,OAEJC,MAAM,+BAEb;AAIA,SAASC,kBAAkBA,CAAED,MAA8C,EAAE;EAC3E,OAAOE,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,CAACI,GAAG,CAACC,GAAG,IAAI;IACpC,MAAMC,KAAK,GAAGN,MAAM,CAACK,GAAG,CAAC;IACzB,OAAOC,KAAK,CAACC,IAAI,GAAG,CAClBD,KAAK,CAACC,IAAI,EACVD,KAAK,CAACE,OAAO,EACbF,KAAK,CAACG,OAAO,EACbH,KAAK,CAACI,OAAO,EACbJ,KAAK,CAACK,OAAO,EACbL,KAAK,CAACM,QAAQ,EACdN,KAAK,CAACO,QAAQ,EACdP,KAAK,CAACQ,QAAQ,EACdR,KAAK,CAACS,QAAQ,EACdT,KAAK,CAACU,QAAQ,CACf,GAAG,CACFV,KAAK,CAACW,KAAK,EACXX,KAAK,CAACY,KAAK,EACXZ,KAAK,CAACa,WAAW,CAClB;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMC,oBAAoB,GAAG1B,eAAe,CAAC;EAClD2B,IAAI,EAAE,sBAAsB;EAE5BC,KAAK,EAAE;IACLC,QAAQ,EAAE;MACRC,IAAI,EAAEC,KAA4B;MAClCC,OAAO,EAAEA,CAAA,KAAMzB,kBAAkB,CAACD,MAAM;IAC1C,CAAC;IACD2B,QAAQ,EAAEC,OAAO;IACjBtB,KAAK,EAAEJ,MAA8B;IACrC2B,SAAS,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IAE3B,GAAGxC,kBAAkB;EACvB,CAAC;EAEDyC,KAAK,EAAE;IACL,cAAc,EAAG1B,KAAU,IAAK;EAClC,CAAC;EAED2B,KAAKA,CAAEX,KAAK,EAAAY,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpBnC,SAAS,CAAC,MAAAqC,YAAA;MAAA,SAEC,CACL,yBAAyB,EACzBd,KAAK,CAACe,KAAK,CACZ;MAAA,SACM,CACL;QAAER,SAAS,EAAErC,aAAa,CAAC8B,KAAK,CAACO,SAAS;MAAE,CAAC,EAC7CP,KAAK,CAACgB,KAAK;IACZ,IAAAF,YAAA,eAGGd,KAAK,CAACC,QAAQ,CAACnB,GAAG,CAACmC,MAAM,IAAAH,YAAA;MAAA,SACd;IAAiC,IACxCG,MAAM,CAACnC,GAAG,CAACE,KAAK,IAAI;MACpB,MAAMkC,IAAI,GAAG5C,UAAU,CAACU,KAAK,CAAC;MAC9B,MAAMmC,IAAI,GAAG3C,QAAQ,CAAC0C,IAAI,CAAC;MAC3B,MAAME,UAAU,GAAG7C,QAAQ,CAAC2C,IAAI,CAAC;MAEjC,OAAAJ,YAAA;QAAA,SAEU,gCAAgC;QAAA,WAC5BO,CAAA,KAAMF,IAAI,IAAIN,IAAI,CAAC,cAAc,EAAEM,IAAI;MAAC,IAAAL,YAAA;QAAA,SAEtC;UAAEM;QAAW;MAAC,IACtBpB,KAAK,CAAChB,KAAK,IAAIb,SAAS,CAAC6B,KAAK,CAAChB,KAAK,EAAEmC,IAAI,CAAC,GAAAL,YAAA,CAAA9C,KAAA;QAAA,QAC7B,SAAS;QAAA,QAAM,UAAU;QAAA,SAASK,WAAW,CAACW,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG;MAAO,WACnGsC,SAAS;IAKrB,CAAC,CAAC,EAEL,CAAC,IAGP,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}