@vuetify/nightly 3.6.3-master.2024-05-07 → 3.6.4-master.2024-05-08

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 (85) hide show
  1. package/CHANGELOG.md +2 -17
  2. package/dist/json/attributes.json +30 -30
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +110 -110
  5. package/dist/json/web-types.json +63 -63
  6. package/dist/vuetify-labs.css +2972 -2948
  7. package/dist/vuetify-labs.d.ts +995 -966
  8. package/dist/vuetify-labs.esm.js +88 -61
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +87 -60
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1224 -1204
  13. package/dist/vuetify.d.ts +964 -935
  14. package/dist/vuetify.esm.js +88 -61
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +87 -60
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +980 -976
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/index.d.mts +169 -140
  22. package/lib/components/VBottomSheet/index.d.mts +33 -27
  23. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  24. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  25. package/lib/components/VCombobox/index.d.mts +169 -140
  26. package/lib/components/VDataIterator/index.d.mts +1 -1
  27. package/lib/components/VDataTable/VDataTable.css +1 -1
  28. package/lib/components/VDataTable/VDataTable.sass +2 -1
  29. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  30. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  32. package/lib/components/VDataTable/composables/select.mjs +2 -1
  33. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  34. package/lib/components/VDataTable/index.d.mts +10 -5
  35. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  36. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  37. package/lib/components/VDialog/index.d.mts +99 -93
  38. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  39. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  40. package/lib/components/VList/VList.mjs.map +1 -1
  41. package/lib/components/VList/index.d.mts +70 -46
  42. package/lib/components/VMenu/index.d.mts +99 -93
  43. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  44. package/lib/components/VOverlay/index.d.mts +33 -27
  45. package/lib/components/VOverlay/useActivator.mjs +5 -5
  46. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  47. package/lib/components/VSelect/index.d.mts +169 -140
  48. package/lib/components/VSheet/VSheet.css +1 -1
  49. package/lib/components/VSheet/_variables.scss +1 -1
  50. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  51. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  52. package/lib/components/VSlider/VSliderThumb.css +5 -0
  53. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  54. package/lib/components/VSlider/VSliderTrack.css +15 -0
  55. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  56. package/lib/components/VSnackbar/index.d.mts +85 -79
  57. package/lib/components/VSpeedDial/index.d.mts +33 -27
  58. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  59. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  60. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  61. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  62. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  63. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  64. package/lib/components/VTooltip/index.d.mts +99 -93
  65. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  66. package/lib/components/index.d.mts +926 -897
  67. package/lib/composables/nested/activeStrategies.mjs +16 -10
  68. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  69. package/lib/composables/nested/nested.mjs +7 -5
  70. package/lib/composables/nested/nested.mjs.map +1 -1
  71. package/lib/composables/resizeObserver.mjs +5 -5
  72. package/lib/composables/resizeObserver.mjs.map +1 -1
  73. package/lib/entry-bundler.mjs +1 -1
  74. package/lib/framework.mjs +1 -1
  75. package/lib/index.d.mts +38 -38
  76. package/lib/labs/VCalendar/VCalendar.css +5 -1
  77. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  78. package/lib/labs/VCalendar/_variables.scss +8 -0
  79. package/lib/labs/VSnackbarQueue/index.d.mts +97 -91
  80. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  81. package/lib/labs/VTreeview/index.d.mts +82 -58
  82. package/lib/labs/components.d.mts +178 -149
  83. package/lib/util/helpers.mjs +16 -0
  84. package/lib/util/helpers.mjs.map +1 -1
  85. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, Ref, EffectScope } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, ComponentPublicInstance, Ref, EffectScope } from 'vue';
3
3
 
4
4
  declare const block: readonly ["top", "bottom"];
5
5
  declare const inline: readonly ["start", "end", "left", "right"];
@@ -28,6 +28,12 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
28
28
  filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
29
29
  }
30
30
 
31
+ type TemplateRef = {
32
+ (target: Element | ComponentPublicInstance | null): void;
33
+ value: HTMLElement | ComponentPublicInstance | null | undefined;
34
+ readonly el: HTMLElement | undefined;
35
+ };
36
+
31
37
  interface LocationStrategyData {
32
38
  contentEl: Ref<HTMLElement | undefined>;
33
39
  target: Ref<HTMLElement | [x: number, y: number] | undefined>;
@@ -120,7 +126,7 @@ declare const VBottomSheet: {
120
126
  width?: string | number | undefined;
121
127
  height?: string | number | undefined;
122
128
  theme?: string | undefined;
123
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
129
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
124
130
  offset?: string | number | number[] | undefined;
125
131
  contentClass?: any;
126
132
  opacity?: string | number | undefined;
@@ -128,7 +134,7 @@ declare const VBottomSheet: {
128
134
  maxWidth?: string | number | undefined;
129
135
  minHeight?: string | number | undefined;
130
136
  minWidth?: string | number | undefined;
131
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
137
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
132
138
  closeDelay?: string | number | undefined;
133
139
  openDelay?: string | number | undefined;
134
140
  openOnClick?: boolean | undefined;
@@ -143,7 +149,7 @@ declare const VBottomSheet: {
143
149
  activator?: ((arg: {
144
150
  isActive: boolean;
145
151
  props: Record<string, any>;
146
- targetRef: vue.Ref<any>;
152
+ targetRef: TemplateRef;
147
153
  }) => vue.VNodeChild) | undefined;
148
154
  } | ((arg: {
149
155
  isActive: vue.Ref<boolean>;
@@ -155,7 +161,7 @@ declare const VBottomSheet: {
155
161
  activator?: false | ((arg: {
156
162
  isActive: boolean;
157
163
  props: Record<string, any>;
158
- targetRef: vue.Ref<any>;
164
+ targetRef: TemplateRef;
159
165
  }) => vue.VNodeChild) | undefined;
160
166
  } | undefined;
161
167
  } & {
@@ -165,7 +171,7 @@ declare const VBottomSheet: {
165
171
  "v-slot:activator"?: false | ((arg: {
166
172
  isActive: boolean;
167
173
  props: Record<string, any>;
168
- targetRef: vue.Ref<any>;
174
+ targetRef: TemplateRef;
169
175
  }) => vue.VNodeChild) | undefined;
170
176
  } & {
171
177
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -206,7 +212,7 @@ declare const VBottomSheet: {
206
212
  width?: string | number | undefined;
207
213
  height?: string | number | undefined;
208
214
  theme?: string | undefined;
209
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
215
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
210
216
  offset?: string | number | number[] | undefined;
211
217
  contentClass?: any;
212
218
  opacity?: string | number | undefined;
@@ -214,7 +220,7 @@ declare const VBottomSheet: {
214
220
  maxWidth?: string | number | undefined;
215
221
  minHeight?: string | number | undefined;
216
222
  minWidth?: string | number | undefined;
217
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
223
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
218
224
  closeDelay?: string | number | undefined;
219
225
  openDelay?: string | number | undefined;
220
226
  openOnClick?: boolean | undefined;
@@ -229,7 +235,7 @@ declare const VBottomSheet: {
229
235
  activator?: ((arg: {
230
236
  isActive: boolean;
231
237
  props: Record<string, any>;
232
- targetRef: vue.Ref<any>;
238
+ targetRef: TemplateRef;
233
239
  }) => vue.VNodeChild) | undefined;
234
240
  } | ((arg: {
235
241
  isActive: vue.Ref<boolean>;
@@ -241,7 +247,7 @@ declare const VBottomSheet: {
241
247
  activator?: false | ((arg: {
242
248
  isActive: boolean;
243
249
  props: Record<string, any>;
244
- targetRef: vue.Ref<any>;
250
+ targetRef: TemplateRef;
245
251
  }) => vue.VNodeChild) | undefined;
246
252
  } | undefined;
247
253
  } & {
@@ -251,7 +257,7 @@ declare const VBottomSheet: {
251
257
  "v-slot:activator"?: false | ((arg: {
252
258
  isActive: boolean;
253
259
  props: Record<string, any>;
254
- targetRef: vue.Ref<any>;
260
+ targetRef: TemplateRef;
255
261
  }) => vue.VNodeChild) | undefined;
256
262
  } & {
257
263
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -296,7 +302,7 @@ declare const VBottomSheet: {
296
302
  activator: (arg: {
297
303
  isActive: boolean;
298
304
  props: Record<string, any>;
299
- targetRef: vue.Ref<any>;
305
+ targetRef: TemplateRef;
300
306
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
301
307
  [key: string]: any;
302
308
  }>[];
@@ -342,7 +348,7 @@ declare const VBottomSheet: {
342
348
  width?: string | number | undefined;
343
349
  height?: string | number | undefined;
344
350
  theme?: string | undefined;
345
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
351
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
346
352
  offset?: string | number | number[] | undefined;
347
353
  contentClass?: any;
348
354
  opacity?: string | number | undefined;
@@ -350,7 +356,7 @@ declare const VBottomSheet: {
350
356
  maxWidth?: string | number | undefined;
351
357
  minHeight?: string | number | undefined;
352
358
  minWidth?: string | number | undefined;
353
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
359
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
354
360
  closeDelay?: string | number | undefined;
355
361
  openDelay?: string | number | undefined;
356
362
  openOnClick?: boolean | undefined;
@@ -365,7 +371,7 @@ declare const VBottomSheet: {
365
371
  activator?: ((arg: {
366
372
  isActive: boolean;
367
373
  props: Record<string, any>;
368
- targetRef: vue.Ref<any>;
374
+ targetRef: TemplateRef;
369
375
  }) => vue.VNodeChild) | undefined;
370
376
  } | ((arg: {
371
377
  isActive: vue.Ref<boolean>;
@@ -377,7 +383,7 @@ declare const VBottomSheet: {
377
383
  activator?: false | ((arg: {
378
384
  isActive: boolean;
379
385
  props: Record<string, any>;
380
- targetRef: vue.Ref<any>;
386
+ targetRef: TemplateRef;
381
387
  }) => vue.VNodeChild) | undefined;
382
388
  } | undefined;
383
389
  } & {
@@ -387,7 +393,7 @@ declare const VBottomSheet: {
387
393
  "v-slot:activator"?: false | ((arg: {
388
394
  isActive: boolean;
389
395
  props: Record<string, any>;
390
- targetRef: vue.Ref<any>;
396
+ targetRef: TemplateRef;
391
397
  }) => vue.VNodeChild) | undefined;
392
398
  } & {
393
399
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -462,7 +468,7 @@ declare const VBottomSheet: {
462
468
  width?: string | number | undefined;
463
469
  height?: string | number | undefined;
464
470
  theme?: string | undefined;
465
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
471
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
466
472
  offset?: string | number | number[] | undefined;
467
473
  contentClass?: any;
468
474
  opacity?: string | number | undefined;
@@ -470,7 +476,7 @@ declare const VBottomSheet: {
470
476
  maxWidth?: string | number | undefined;
471
477
  minHeight?: string | number | undefined;
472
478
  minWidth?: string | number | undefined;
473
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
479
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
474
480
  closeDelay?: string | number | undefined;
475
481
  openDelay?: string | number | undefined;
476
482
  openOnClick?: boolean | undefined;
@@ -485,7 +491,7 @@ declare const VBottomSheet: {
485
491
  activator?: ((arg: {
486
492
  isActive: boolean;
487
493
  props: Record<string, any>;
488
- targetRef: vue.Ref<any>;
494
+ targetRef: TemplateRef;
489
495
  }) => vue.VNodeChild) | undefined;
490
496
  } | ((arg: {
491
497
  isActive: vue.Ref<boolean>;
@@ -497,7 +503,7 @@ declare const VBottomSheet: {
497
503
  activator?: false | ((arg: {
498
504
  isActive: boolean;
499
505
  props: Record<string, any>;
500
- targetRef: vue.Ref<any>;
506
+ targetRef: TemplateRef;
501
507
  }) => vue.VNodeChild) | undefined;
502
508
  } | undefined;
503
509
  } & {
@@ -507,7 +513,7 @@ declare const VBottomSheet: {
507
513
  "v-slot:activator"?: false | ((arg: {
508
514
  isActive: boolean;
509
515
  props: Record<string, any>;
510
- targetRef: vue.Ref<any>;
516
+ targetRef: TemplateRef;
511
517
  }) => vue.VNodeChild) | undefined;
512
518
  } & {
513
519
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -554,7 +560,7 @@ declare const VBottomSheet: {
554
560
  activator: (arg: {
555
561
  isActive: boolean;
556
562
  props: Record<string, any>;
557
- targetRef: vue.Ref<any>;
563
+ targetRef: TemplateRef;
558
564
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
559
565
  [key: string]: any;
560
566
  }>[];
@@ -630,8 +636,8 @@ declare const VBottomSheet: {
630
636
  };
631
637
  closeDelay: (StringConstructor | NumberConstructor)[];
632
638
  openDelay: (StringConstructor | NumberConstructor)[];
633
- target: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined>;
634
- activator: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined>;
639
+ target: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined>;
640
+ activator: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined>;
635
641
  activatorProps: {
636
642
  type: vue.PropType<Record<string, any>>;
637
643
  default: () => {};
@@ -750,8 +756,8 @@ declare const VBottomSheet: {
750
756
  };
751
757
  closeDelay: (StringConstructor | NumberConstructor)[];
752
758
  openDelay: (StringConstructor | NumberConstructor)[];
753
- target: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined>;
754
- activator: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined>;
759
+ target: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined>;
760
+ activator: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined>;
755
761
  activatorProps: {
756
762
  type: vue.PropType<Record<string, any>>;
757
763
  default: () => {};
@@ -77,7 +77,7 @@ export const VColorPickerCanvas = defineComponent({
77
77
  const {
78
78
  resizeRef
79
79
  } = useResizeObserver(entries => {
80
- if (!resizeRef.value?.offsetParent) return;
80
+ if (!resizeRef.el?.offsetParent) return;
81
81
  const {
82
82
  width,
83
83
  height
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerCanvas.mjs","names":["makeComponentProps","useResizeObserver","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","defineComponent","getEventCoordinates","propsFactory","useRender","makeVColorPickerCanvasProps","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","VColorPickerCanvas","name","props","emits","hue","setup","_ref","emit","isInteracting","canvasRef","canvasWidth","parseFloat","canvasHeight","_dotPosition","x","y","dotPosition","get","value","set","val","h","s","v","a","dotStyles","radius","parseInt","transform","resizeRef","entries","offsetParent","contentRect","updateDotPosition","rect","left","top","handleMouseDown","e","preventDefault","handleMouseMove","window","addEventListener","handleMouseUp","coords","clientX","clientY","getBoundingClientRect","removeEventListener","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 { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const makeVColorPickerCanvasProps = propsFactory({\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}, 'VColorPickerCanvas')\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: makeVColorPickerCanvasProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = shallowRef(false)\n const canvasRef = ref<HTMLCanvasElement | null>()\n const canvasWidth = shallowRef(parseFloat(props.width))\n const canvasHeight = shallowRef(parseFloat(props.height))\n\n const _dotPosition = ref({ x: 0, y: 0 })\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set (val) {\n if (!canvasRef.value) return\n\n const { x, y } = val\n _dotPosition.value = val\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\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 { 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 handleMouseDown (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault()\n }\n\n if (props.disabled) return\n\n handleMouseMove(e)\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 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%, 0%, 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 _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 onMousedown={ handleMouseDown }\n onTouchstartPassive={ 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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","ignoreList":[]}
1
+ {"version":3,"file":"VColorPickerCanvas.mjs","names":["makeComponentProps","useResizeObserver","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","defineComponent","getEventCoordinates","propsFactory","useRender","makeVColorPickerCanvasProps","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","VColorPickerCanvas","name","props","emits","hue","setup","_ref","emit","isInteracting","canvasRef","canvasWidth","parseFloat","canvasHeight","_dotPosition","x","y","dotPosition","get","value","set","val","h","s","v","a","dotStyles","radius","parseInt","transform","resizeRef","entries","el","offsetParent","contentRect","updateDotPosition","rect","left","top","handleMouseDown","e","preventDefault","handleMouseMove","window","addEventListener","handleMouseUp","coords","clientX","clientY","getBoundingClientRect","removeEventListener","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 { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const makeVColorPickerCanvasProps = propsFactory({\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}, 'VColorPickerCanvas')\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: makeVColorPickerCanvasProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = shallowRef(false)\n const canvasRef = ref<HTMLCanvasElement | null>()\n const canvasWidth = shallowRef(parseFloat(props.width))\n const canvasHeight = shallowRef(parseFloat(props.height))\n\n const _dotPosition = ref({ x: 0, y: 0 })\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set (val) {\n if (!canvasRef.value) return\n\n const { x, y } = val\n _dotPosition.value = val\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\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 { resizeRef } = useResizeObserver(entries => {\n if (!resizeRef.el?.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 handleMouseDown (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault()\n }\n\n if (props.disabled) return\n\n handleMouseMove(e)\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 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%, 0%, 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 _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 onMousedown={ handleMouseDown }\n onTouchstartPassive={ 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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","ignoreList":[]}