vuetify 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/json/attributes.json +902 -902
  2. package/dist/json/importMap.json +66 -66
  3. package/dist/json/web-types.json +1178 -1136
  4. package/dist/vuetify.css +124 -126
  5. package/dist/vuetify.d.ts +389 -196
  6. package/dist/vuetify.esm.js +175 -144
  7. package/dist/vuetify.esm.js.map +1 -1
  8. package/dist/vuetify.js +175 -144
  9. package/dist/vuetify.js.map +1 -1
  10. package/dist/vuetify.min.css +2 -2
  11. package/dist/vuetify.min.js +696 -692
  12. package/dist/vuetify.min.js.map +1 -1
  13. package/lib/components/VAlert/index.d.ts +1 -1
  14. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  15. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  16. package/lib/components/VAppBar/index.d.ts +275 -62
  17. package/lib/components/VAutocomplete/index.d.ts +22 -22
  18. package/lib/components/VCheckbox/VCheckbox.css +1 -1
  19. package/lib/components/VCheckbox/VCheckbox.sass +1 -1
  20. package/lib/components/VChip/VChip.mjs +14 -6
  21. package/lib/components/VChip/VChip.mjs.map +1 -1
  22. package/lib/components/VChip/index.d.ts +3 -1
  23. package/lib/components/VChipGroup/index.d.ts +1 -1
  24. package/lib/components/VColorPicker/VColorPicker.mjs +2 -2
  25. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  26. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  27. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  28. package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
  29. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  30. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  31. package/lib/components/VColorPicker/util/index.mjs +24 -14
  32. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  33. package/lib/components/VCombobox/index.d.ts +22 -22
  34. package/lib/components/VExpansionPanel/index.d.ts +1 -1
  35. package/lib/components/VField/index.d.ts +6 -6
  36. package/lib/components/VFileInput/index.d.ts +2 -2
  37. package/lib/components/VFooter/VFooter.mjs +1 -1
  38. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  39. package/lib/components/VGrid/VGrid.css +2 -2
  40. package/lib/components/VGrid/VGrid.sass +1 -1
  41. package/lib/components/VLazy/VLazy.mjs +2 -1
  42. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  43. package/lib/components/VList/VListItem.mjs +2 -1
  44. package/lib/components/VList/VListItem.mjs.map +1 -1
  45. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
  46. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  47. package/lib/components/VOverlay/locationStrategies.mjs +3 -1
  48. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  49. package/lib/components/VPagination/index.d.ts +1 -1
  50. package/lib/components/VProgressLinear/VProgressLinear.sass +1 -1
  51. package/lib/components/VProgressLinear/_variables.scss +1 -1
  52. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -2
  53. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  54. package/lib/components/VSelect/index.d.ts +22 -22
  55. package/lib/components/VSelectionControl/VSelectionControl.css +4 -0
  56. package/lib/components/VSelectionControl/VSelectionControl.sass +4 -0
  57. package/lib/components/VSelectionControl/index.d.ts +6 -6
  58. package/lib/components/VSnackbar/index.d.ts +4 -4
  59. package/lib/components/VSwitch/VSwitch.css +1 -1
  60. package/lib/components/VSwitch/VSwitch.sass +1 -1
  61. package/lib/components/VSystemBar/VSystemBar.css +1 -1
  62. package/lib/components/VSystemBar/_variables.scss +1 -1
  63. package/lib/components/VTabs/VTab.css +1 -3
  64. package/lib/components/VTabs/VTab.sass +1 -4
  65. package/lib/components/VTabs/VTabs.css +0 -4
  66. package/lib/components/VTabs/VTabs.sass +0 -5
  67. package/lib/components/VTextField/index.d.ts +18 -18
  68. package/lib/components/VTextarea/index.d.ts +1 -1
  69. package/lib/components/VToolbar/VToolbar.mjs +32 -22
  70. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  71. package/lib/components/VToolbar/index.d.ts +9 -8
  72. package/lib/components/index.d.ts +370 -177
  73. package/lib/components/transitions/dialog-transition.mjs +2 -2
  74. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  75. package/lib/composables/theme.mjs +7 -7
  76. package/lib/composables/theme.mjs.map +1 -1
  77. package/lib/composables/validation.mjs +1 -1
  78. package/lib/composables/validation.mjs.map +1 -1
  79. package/lib/entry-bundler.mjs +1 -1
  80. package/lib/framework.mjs +1 -1
  81. package/lib/index.d.ts +19 -19
  82. package/lib/util/color/APCA.mjs +6 -6
  83. package/lib/util/color/APCA.mjs.map +1 -1
  84. package/lib/util/color/transformSRGB.mjs +15 -7
  85. package/lib/util/color/transformSRGB.mjs.map +1 -1
  86. package/lib/util/colorUtils.mjs +64 -81
  87. package/lib/util/colorUtils.mjs.map +1 -1
  88. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"VChip.mjs","names":["VAvatar","VChipGroupSymbol","VDefaultsProvider","VExpandXTransition","VIcon","genOverlays","makeVariantProps","useVariant","makeBorderProps","useBorder","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useProxiedModel","IconValue","Ripple","defineComponent","VChip","name","directives","props","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","pill","prependAvatar","prependIcon","ripple","text","modelValue","tag","variant","emits","e","value","val","setup","attrs","emit","slots","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","elevationClasses","roundedClasses","sizeClasses","themeClasses","isActive","group","onCloseClick","Tag","isLink","hasAppend","append","hasClose","close","hasFilter","hasPrepend","prepend","hasColor","isSelected","isClickable","disabled","onClickFunc","toggle","undefined","selectedClass","href","icon","image","select","size"],"sources":["../../../src/components/VChip/VChip.tsx"],"sourcesContent":["/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VChip = defineComponent({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: {\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'click:close': (e: Event) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link)\n const onClickFunc = props.link ? props.link : group?.toggle\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable && props.ripple, null] }\n onClick={ isClickable && onClickFunc }\n >\n { genOverlays(isClickable, 'v-chip') }\n\n { hasFilter && (\n <VDefaultsProvider\n key=\"filter\"\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n >\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter ? slots.filter() : (<VIcon />) }\n </div>\n </VExpandXTransition>\n </VDefaultsProvider>\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n },\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n { slots.prepend\n ? (\n <div class=\"v-chip__prepend\">\n { slots.prepend() }\n </div>\n )\n : props.prependAvatar ? (<VAvatar start />)\n : props.prependIcon ? (<VIcon start />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n\n { hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n image: props.appendAvatar,\n },\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n { slots.append\n ? (\n <div class=\"v-chip__append\">\n { slots.append() }\n </div>\n )\n : props.appendAvatar ? (<VAvatar end />)\n : props.appendIcon ? (<VIcon end />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n >\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close ? slots.close() : (<VIcon />) }\n </div>\n </VDefaultsProvider>\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n"],"mappings":";AAAA;AACA;AACA;;AAEA;AAAA,SACSA,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,iBAAiB;AAAA,SACjBC,kBAAkB;AAAA,SAClBC,KAAK,8BAEd;AAAA,SACSC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU;AAAA,SACzCC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,eAAe,EAAEC,OAAO;AAAA,SACxBC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,eAAe;AAAA,SACfC,SAAS,uCAElB;AAAA,SACSC,MAAM,6CAEf;AAAA,SACSC,eAAe;AAExB,OAAO,MAAMC,KAAK,GAAGD,eAAe,CAAC;EACnCE,IAAI,EAAE,OAAO;EAEbC,UAAU,EAAE;IAAEJ;EAAO,CAAC;EAEtBK,KAAK,EAAE;IACLC,WAAW,EAAEC,MAAM;IACnBC,YAAY,EAAED,MAAM;IACpBE,UAAU,EAAEV,SAAS;IACrBW,QAAQ,EAAEC,OAAO;IACjBC,SAAS,EAAE;MACTC,IAAI,EAAEd,SAAS;MACfe,OAAO,EAAE;IACX,CAAC;IACDC,UAAU,EAAE;MACVF,IAAI,EAAEN,MAAM;MACZO,OAAO,EAAE;IACX,CAAC;IACDE,SAAS,EAAEL,OAAO;IAClBM,MAAM,EAAEN,OAAO;IACfO,UAAU,EAAE;MACVL,IAAI,EAAEN,MAAM;MACZO,OAAO,EAAE;IACX,CAAC;IACDK,KAAK,EAAER,OAAO;IACdS,IAAI,EAAET,OAAO;IACbU,IAAI,EAAEV,OAAO;IACbW,aAAa,EAAEf,MAAM;IACrBgB,WAAW,EAAExB,SAAS;IACtByB,MAAM,EAAE;MACNX,IAAI,EAAEF,OAAO;MACbG,OAAO,EAAE;IACX,CAAC;IACDW,IAAI,EAAElB,MAAM;IACZmB,UAAU,EAAE;MACVb,IAAI,EAAEF,OAAO;MACbG,OAAO,EAAE;IACX,CAAC;IAED,GAAGjC,eAAe,EAAE;IACpB,GAAGE,gBAAgB,EAAE;IACrB,GAAGE,kBAAkB,EAAE;IACvB,GAAGE,kBAAkB,EAAE;IACvB,GAAGE,gBAAgB,EAAE;IACrB,GAAGE,eAAe,EAAE;IACpB,GAAGE,aAAa,EAAE;IAClB,GAAGE,YAAY,CAAC;MAAEgC,GAAG,EAAE;IAAO,CAAC,CAAC;IAChC,GAAG/B,cAAc,EAAE;IACnB,GAAGjB,gBAAgB,CAAC;MAAEiD,OAAO,EAAE;IAAQ,CAAC;EAC1C,CAAC;EAEDC,KAAK,EAAE;IACL,aAAa,EAAGC,CAAQ,IAAK,IAAI;IACjC,mBAAmB,EAAGC,KAAc,IAAK,IAAI;IAC7C,gBAAgB,EAAGC,GAAuB,IAAK;EACjD,CAAC;EAEDC,KAAK,CAAE5B,KAAK,QAA0B;IAAA,IAAxB;MAAE6B,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC;IAClC,MAAM;MAAEC;IAAc,CAAC,GAAGvD,SAAS,CAACuB,KAAK,CAAC;IAC1C,MAAM;MAAEiC,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAG5D,UAAU,CAACyB,KAAK,CAAC;IACvE,MAAM;MAAEoC;IAAe,CAAC,GAAGzD,UAAU,CAACqB,KAAK,CAAC;IAC5C,MAAM;MAAEqC;IAAiB,CAAC,GAAGxD,YAAY,CAACmB,KAAK,CAAC;IAChD,MAAM;MAAEsC;IAAe,CAAC,GAAGrD,UAAU,CAACe,KAAK,CAAC;IAC5C,MAAM;MAAEuC;IAAY,CAAC,GAAGlD,OAAO,CAACW,KAAK,CAAC;IACtC,MAAM;MAAEwC;IAAa,CAAC,GAAGhD,YAAY,CAACQ,KAAK,CAAC;IAE5C,MAAMyC,QAAQ,GAAGhD,eAAe,CAACO,KAAK,EAAE,YAAY,CAAC;IACrD,MAAM0C,KAAK,GAAG3D,YAAY,CAACiB,KAAK,EAAE/B,gBAAgB,EAAE,KAAK,CAAC;IAC1D,MAAM8C,IAAI,GAAG5B,OAAO,CAACa,KAAK,EAAE6B,KAAK,CAAC;IAElC,SAASc,YAAY,CAAElB,CAAQ,EAAE;MAC/BgB,QAAQ,CAACf,KAAK,GAAG,KAAK;MAEtBI,IAAI,CAAC,aAAa,EAAEL,CAAC,CAAC;IACxB;IAEA,OAAO,MAAM;MAAA;MACX,MAAMmB,GAAG,GAAI7B,IAAI,CAAC8B,MAAM,CAACnB,KAAK,GAAI,GAAG,GAAG1B,KAAK,CAACsB,GAAG;MACjD,MAAMwB,SAAS,GAAG,CAAC,EAAEf,KAAK,CAACgB,MAAM,IAAI/C,KAAK,CAACI,UAAU,IAAIJ,KAAK,CAACG,YAAY,CAAC;MAC5E,MAAM6C,QAAQ,GAAG,CAAC,EAAEjB,KAAK,CAACkB,KAAK,IAAIjD,KAAK,CAACK,QAAQ,CAAC;MAClD,MAAM6C,SAAS,GAAG,CAAC,EAAEnB,KAAK,CAACnB,MAAM,IAAIZ,KAAK,CAACY,MAAM,CAAC,IAAI8B,KAAK;MAC3D,MAAMS,UAAU,GAAG,CAAC,EAAEpB,KAAK,CAACqB,OAAO,IAAIpD,KAAK,CAACkB,WAAW,IAAIlB,KAAK,CAACiB,aAAa,CAAC;MAChF,MAAMoC,QAAQ,GAAG,CAACX,KAAK,IAAIA,KAAK,CAACY,UAAU,CAAC5B,KAAK;MACjD,MAAM6B,WAAW,GAAG,CAACvD,KAAK,CAACwD,QAAQ,KAAK,CAAC,CAACd,KAAK,IAAI3B,IAAI,CAACwC,WAAW,CAAC7B,KAAK,IAAI1B,KAAK,CAACe,IAAI,CAAC;MACxF,MAAM0C,WAAW,GAAGzD,KAAK,CAACe,IAAI,GAAGf,KAAK,CAACe,IAAI,GAAG2B,KAAK,oBAALA,KAAK,CAAEgB,MAAM;MAE3D,OAAOjB,QAAQ,CAACf,KAAK;QAAA,SAEV,CACL,QAAQ,EACR;UACE,kBAAkB,EAAE1B,KAAK,CAACwD,QAAQ;UAClC,eAAe,EAAExD,KAAK,CAACc,KAAK;UAC5B,cAAc,EAAEyC,WAAW;UAC3B,gBAAgB,EAAEL,SAAS;UAC3B,cAAc,EAAElD,KAAK,CAACgB;QACxB,CAAC,EACDwB,YAAY,CAACd,KAAK,EAClBM,aAAa,CAACN,KAAK,EACnB2B,QAAQ,GAAGpB,YAAY,CAACP,KAAK,GAAGiC,SAAS,EACzCvB,cAAc,CAACV,KAAK,EACpBW,gBAAgB,CAACX,KAAK,EACtBY,cAAc,CAACZ,KAAK,EACpBa,WAAW,CAACb,KAAK,EACjBS,cAAc,CAACT,KAAK,EACpBgB,KAAK,oBAALA,KAAK,CAAEkB,aAAa,CAAClC,KAAK,CAC3B;QAAA,SACM,CACL2B,QAAQ,GAAGnB,WAAW,CAACR,KAAK,GAAGiC,SAAS,CACzC;QAAA,YACU3D,KAAK,CAACwD,QAAQ,IAAIG,SAAS;QAAA,aAC1B3D,KAAK,CAACW,SAAS;QAAA,QACpBI,IAAI,CAAC8C,IAAI,CAACnC,KAAK;QAAA,WAEZ6B,WAAW,IAAIE;MAAW;QAAA,gBAElCpF,WAAW,CAACkF,WAAW,EAAE,QAAQ,CAAC,EAElCL,SAAS;UAAA,OAEH,QAAQ;UAAA,YACF;YACR9E,KAAK,EAAE;cAAE0F,IAAI,EAAE9D,KAAK,CAACa;YAAW;UAClC;QAAC;UAAA;YAAA;cAAA,SAIS;YAAgB,IAGpBkB,KAAK,CAACnB,MAAM,GAAGmB,KAAK,CAACnB,MAAM,EAAE,kCAAc,cAFpC8B,KAAK,CAACY,UAAU,CAAC5B,KAAK;UAAA;QAAA,EAMtC,EAECyB,UAAU;UAAA,OAEJ,SAAS;UAAA,YACH;YACRnF,OAAO,EAAE;cACP+F,KAAK,EAAE/D,KAAK,CAACiB;YACf,CAAC;YACD7C,KAAK,EAAE;cACL0F,IAAI,EAAE9D,KAAK,CAACkB;YACd;UACF;QAAC;UAAA,gBAECa,KAAK,CAACqB,OAAO;YAAA,SAEA;UAAiB,IACxBrB,KAAK,CAACqB,OAAO,EAAE,KAGnBpD,KAAK,CAACiB,aAAa;YAAA;UAAA,WACnBjB,KAAK,CAACkB,WAAW;YAAA;UAAA,WACjByC,SAAS;QAAA,EAGhB,EAEC,mBAAA5B,KAAK,CAACtB,OAAO,qBAAb,oBAAAsB,KAAK,EAAW;UAChBuB,UAAU,EAAEZ,KAAK,oBAALA,KAAK,CAAEY,UAAU,CAAC5B,KAAK;UACnCkC,aAAa,EAAElB,KAAK,oBAALA,KAAK,CAAEkB,aAAa,CAAClC,KAAK;UACzCsC,MAAM,EAAEtB,KAAK,oBAALA,KAAK,CAAEsB,MAAM;UACrBN,MAAM,EAAEhB,KAAK,oBAALA,KAAK,CAAEgB,MAAM;UACrBhC,KAAK,EAAEgB,KAAK,oBAALA,KAAK,CAAEhB,KAAK,CAACA,KAAK;UACzB8B,QAAQ,EAAExD,KAAK,CAACwD;QAClB,CAAC,CAAC,KAAIxD,KAAK,CAACoB,IAAI,EAEd0B,SAAS;UAAA,OAEH,QAAQ;UAAA,YACF;YACR9E,OAAO,EAAE;cACP+F,KAAK,EAAE/D,KAAK,CAACG;YACf,CAAC;YACD/B,KAAK,EAAE;cACL0F,IAAI,EAAE9D,KAAK,CAACI;YACd;UACF;QAAC;UAAA,gBAEC2B,KAAK,CAACgB,MAAM;YAAA,SAEC;UAAgB,IACvBhB,KAAK,CAACgB,MAAM,EAAE,KAGlB/C,KAAK,CAACG,YAAY;YAAA;UAAA,WAClBH,KAAK,CAACI,UAAU;YAAA;UAAA,WAChBuD,SAAS;QAAA,EAGhB,EAECX,QAAQ;UAAA,OAEF,OAAO;UAAA,YACD;YACR5E,KAAK,EAAE;cACL0F,IAAI,EAAE9D,KAAK,CAACO,SAAS;cACrB0D,IAAI,EAAE;YACR;UACF;QAAC;UAAA;YAAA,SAGO,eAAe;YAAA,WACXtB;UAAY,IAEpBZ,KAAK,CAACkB,KAAK,GAAGlB,KAAK,CAACkB,KAAK,EAAE,kCAAc;QAAA,EAGhD;MAAA,mCAnGWM,WAAW,IAAIvD,KAAK,CAACmB,MAAM,EAAE,IAAI,GAqGhD;IACH,CAAC;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VChip.mjs","names":["VAvatar","VChipGroupSymbol","VDefaultsProvider","VExpandXTransition","VIcon","genOverlays","makeVariantProps","useVariant","makeBorderProps","useBorder","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useProxiedModel","IconValue","Ripple","defineComponent","computed","VChip","name","directives","props","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","pill","prependAvatar","prependIcon","ripple","text","modelValue","tag","variant","emits","e","value","val","click","setup","attrs","emit","slots","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","elevationClasses","roundedClasses","sizeClasses","themeClasses","isActive","group","isClickable","disabled","onCloseClick","onClick","navigate","toggle","Tag","isLink","hasAppend","append","hasClose","close","hasFilter","hasPrepend","prepend","hasColor","isSelected","undefined","selectedClass","href","icon","image","select","size"],"sources":["../../../src/components/VChip/VChip.tsx"],"sourcesContent":["/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { computed } from 'vue'\n\nexport const VChip = defineComponent({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: {\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'click:close': (e: Event) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isClickable = computed(() => !props.disabled && (!!group || link.isClickable.value || props.link))\n\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable.value && props.ripple, null] }\n onClick={ onClick }\n >\n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n <VDefaultsProvider\n key=\"filter\"\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n >\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter ? slots.filter() : (<VIcon />) }\n </div>\n </VExpandXTransition>\n </VDefaultsProvider>\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n },\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n { slots.prepend\n ? (\n <div class=\"v-chip__prepend\">\n { slots.prepend() }\n </div>\n )\n : props.prependAvatar ? (<VAvatar start />)\n : props.prependIcon ? (<VIcon start />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n\n { hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n image: props.appendAvatar,\n },\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n { slots.append\n ? (\n <div class=\"v-chip__append\">\n { slots.append() }\n </div>\n )\n : props.appendAvatar ? (<VAvatar end />)\n : props.appendIcon ? (<VIcon end />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n >\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close ? slots.close() : (<VIcon />) }\n </div>\n </VDefaultsProvider>\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n"],"mappings":"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"}
@@ -89,6 +89,7 @@ declare const VChip: vue.DefineComponent<{
89
89
  'group:selected': (val: {
90
90
  value: boolean;
91
91
  }) => true;
92
+ click: (e: MouseEvent | KeyboardEvent) => true;
92
93
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
93
94
  color: StringConstructor;
94
95
  variant: Omit<{
@@ -165,6 +166,7 @@ declare const VChip: vue.DefineComponent<{
165
166
  default: boolean;
166
167
  };
167
168
  }>> & {
169
+ onClick?: ((e: MouseEvent | KeyboardEvent) => any) | undefined;
168
170
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
169
171
  "onGroup:selected"?: ((val: {
170
172
  value: boolean;
@@ -182,8 +184,8 @@ declare const VChip: vue.DefineComponent<{
182
184
  tag: string;
183
185
  rounded: string | number | boolean;
184
186
  density: Density;
185
- variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
186
187
  modelValue: boolean;
188
+ variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
187
189
  ripple: boolean;
188
190
  closable: boolean;
189
191
  closeIcon: IconValue;
@@ -79,8 +79,8 @@ declare const VChipGroup: vue.DefineComponent<{
79
79
  multiple: boolean;
80
80
  tag: string;
81
81
  column: boolean;
82
- variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
83
82
  modelValue: any;
83
+ variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
84
84
  selectedClass: string;
85
85
  valueComparator: typeof deepEqual;
86
86
  }>;
@@ -12,7 +12,7 @@ import { makeElevationProps } from "../../composables/elevation.mjs";
12
12
  import { makeRoundedProps } from "../../composables/rounded.mjs";
13
13
  import { makeThemeProps } from "../../composables/theme.mjs";
14
14
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
15
- import { defineComponent, HSVAtoCSS, useRender } from "../../util/index.mjs";
15
+ import { defineComponent, HSVtoCSS, useRender } from "../../util/index.mjs";
16
16
  import { extractColor, modes, nullColor, parseColor } from "./util/index.mjs";
17
17
  import { onMounted, ref } from 'vue';
18
18
 
@@ -96,7 +96,7 @@ export const VColorPicker = defineComponent({
96
96
  "theme": props.theme,
97
97
  "class": ['v-color-picker'],
98
98
  "style": {
99
- '--v-color-picker-color-hsv': HSVAtoCSS({
99
+ '--v-color-picker-color-hsv': HSVtoCSS({
100
100
  ...(currentColor.value ?? nullColor),
101
101
  a: 1
102
102
  })
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","makeElevationProps","makeRoundedProps","makeThemeProps","useProxiedModel","defineComponent","HSVAtoCSS","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","inheritAttrs","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","rounded","elevation","theme","a","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { VSheet } from '@/components/VSheet'\n\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent, HSVAtoCSS, 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 { HSVA } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n inheritAttrs: false,\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 width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\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<HSVA | 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: HSVA) => {\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 useRender(() => (\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': HSVAtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\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 return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","makeElevationProps","makeRoundedProps","makeThemeProps","useProxiedModel","defineComponent","HSVtoCSS","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","inheritAttrs","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","rounded","elevation","theme","a","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { VSheet } from '@/components/VSheet'\n\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, 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 inheritAttrs: false,\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 width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\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 useRender(() => (\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 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 return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerCanvas.mjs","names":["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","emit","isInteracting","isOutsideUpdate","dotPosition","x","y","dotStyles","value","radius","parseInt","transform","canvasRef","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","deep"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\n\n// Utilities\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from '@/util'\nimport { computed, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { HSVA } 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<HSVA | 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: HSVA) => 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\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 { width, height } = canvasRef.value.getBoundingClientRect()\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, width) / width,\n v: 1 - clamp(y, 0, height) / height,\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\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n if (!props.color) return\n\n isOutsideUpdate.value = true\n\n dotPosition.value = {\n x: props.color.s * parseInt(props.width, 10),\n y: (1 - props.color.v) * parseInt(props.height, 10),\n }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n class=\"v-color-picker-canvas\"\n style={{\n width: convertToUnit(props.width),\n height: convertToUnit(props.height),\n }}\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ props.width }\n height={ props.height }\n />\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 </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType<typeof VColorPickerCanvas>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK,EAAEC,aAAa,EAAEC,eAAe,EAAEC,mBAAmB,EAAEC,SAAS;AAC9E,SAASC,QAAQ,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;;AAErD;;AAIA,OAAO,MAAMC,kBAAkB,GAAGP,eAAe,CAAC;EAChDQ,IAAI,EAAE,oBAAoB;EAE1BC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAEC;IACR,CAAC;IACDC,QAAQ,EAAEC,OAAO;IACjBC,OAAO,EAAE;MACPJ,IAAI,EAAE,CAACK,MAAM,EAAEC,MAAM,CAAC;MACtBC,OAAO,EAAE;IACX,CAAC;IACDC,MAAM,EAAE;MACNR,IAAI,EAAE,CAACK,MAAM,EAAEC,MAAM,CAAC;MACtBC,OAAO,EAAE;IACX,CAAC;IACDE,KAAK,EAAE;MACLT,IAAI,EAAE,CAACK,MAAM,EAAEC,MAAM,CAAC;MACtBC,OAAO,EAAE;IACX;EACF,CAAC;EAEDG,KAAK,EAAE;IACL,cAAc,EAAGX,KAAW,IAAK,IAAI;IACrC,iBAAiB,EAAGY,GAAQ,IAAK;EACnC,CAAC;EAEDC,KAAK,CAAEd,KAAK,QAAY;IAAA,IAAV;MAAEe;IAAK,CAAC;IACpB,MAAMC,aAAa,GAAGpB,GAAG,CAAC,KAAK,CAAC;IAChC,MAAMqB,eAAe,GAAGrB,GAAG,CAAC,KAAK,CAAC;IAClC,MAAMsB,WAAW,GAAGtB,GAAG,CAAC;MAAEuB,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC,CAAC;IAEvC,MAAMC,SAAS,GAAG3B,QAAQ,CAAC,MAAM;MAC/B,MAAM;QAAEyB,CAAC;QAAEC;MAAE,CAAC,GAAGF,WAAW,CAACI,KAAK;MAClC,MAAMC,MAAM,GAAGC,QAAQ,CAACxB,KAAK,CAACM,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC;MAE9C,OAAO;QACLK,KAAK,EAAErB,aAAa,CAACU,KAAK,CAACM,OAAO,CAAC;QACnCI,MAAM,EAAEpB,aAAa,CAACU,KAAK,CAACM,OAAO,CAAC;QACpCmB,SAAS,EAAG,aAAYnC,aAAa,CAAC6B,CAAC,GAAGI,MAAM,CAAE,KAAIjC,aAAa,CAAC8B,CAAC,GAAGG,MAAM,CAAE;MAClF,CAAC;IACH,CAAC,CAAC;IAEF,MAAMG,SAAS,GAAG9B,GAAG,EAA4B;IAEjD,SAAS+B,iBAAiB,CAAER,CAAS,EAAEC,CAAS,EAAEQ,IAAa,EAAE;MAC/D,MAAM;QAAEC,IAAI;QAAEC,GAAG;QAAEnB,KAAK;QAAED;MAAO,CAAC,GAAGkB,IAAI;MACzCV,WAAW,CAACI,KAAK,GAAG;QAClBH,CAAC,EAAE9B,KAAK,CAAC8B,CAAC,GAAGU,IAAI,EAAE,CAAC,EAAElB,KAAK,CAAC;QAC5BS,CAAC,EAAE/B,KAAK,CAAC+B,CAAC,GAAGU,GAAG,EAAE,CAAC,EAAEpB,MAAM;MAC7B,CAAC;IACH;IAEA,SAASqB,WAAW,CAAEC,CAAa,EAAE;MACnC,IAAIhC,KAAK,CAACI,QAAQ,IAAI,CAACsB,SAAS,CAACJ,KAAK,EAAE;MAExCK,iBAAiB,CAACK,CAAC,CAACC,OAAO,EAAED,CAAC,CAACE,OAAO,EAAER,SAAS,CAACJ,KAAK,CAACa,qBAAqB,EAAE,CAAC;IAClF;IAEA,SAASC,eAAe,CAAEJ,CAA0B,EAAE;MACpD;MACAA,CAAC,CAACK,cAAc,EAAE;MAElB,IAAIrC,KAAK,CAACI,QAAQ,EAAE;MAEpBY,aAAa,CAACM,KAAK,GAAG,IAAI;MAE1BgB,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEC,eAAe,CAAC;MACrDF,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEE,aAAa,CAAC;MACjDH,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEC,eAAe,CAAC;MACrDF,MAAM,CAACC,gBAAgB,CAAC,UAAU,EAAEE,aAAa,CAAC;IACpD;IAEA,SAASD,eAAe,CAAER,CAA0B,EAAE;MACpD,IAAIhC,KAAK,CAACI,QAAQ,IAAI,CAACsB,SAAS,CAACJ,KAAK,EAAE;MAExCN,aAAa,CAACM,KAAK,GAAG,IAAI;MAE1B,MAAMoB,MAAM,GAAGlD,mBAAmB,CAACwC,CAAC,CAAC;MAErCL,iBAAiB,CAACe,MAAM,CAACT,OAAO,EAAES,MAAM,CAACR,OAAO,EAAER,SAAS,CAACJ,KAAK,CAACa,qBAAqB,EAAE,CAAC;IAC5F;IAEA,SAASM,aAAa,GAAI;MACxBH,MAAM,CAACK,mBAAmB,CAAC,WAAW,EAAEH,eAAe,CAAC;MACxDF,MAAM,CAACK,mBAAmB,CAAC,SAAS,EAAEF,aAAa,CAAC;MACpDH,MAAM,CAACK,mBAAmB,CAAC,WAAW,EAAEH,eAAe,CAAC;MACxDF,MAAM,CAACK,mBAAmB,CAAC,UAAU,EAAEF,aAAa,CAAC;IACvD;IAEA5C,KAAK,CAACqB,WAAW,EAAE,MAAM;MAAA;MACvB,IAAID,eAAe,CAACK,KAAK,EAAE;QACzBL,eAAe,CAACK,KAAK,GAAG,KAAK;QAC7B;MACF;MAEA,IAAI,CAACI,SAAS,CAACJ,KAAK,EAAE;MAEtB,MAAM;QAAEX,KAAK;QAAED;MAAO,CAAC,GAAGgB,SAAS,CAACJ,KAAK,CAACa,qBAAqB,EAAE;MACjE,MAAM;QAAEhB,CAAC;QAAEC;MAAE,CAAC,GAAGF,WAAW,CAACI,KAAK;MAElCP,IAAI,CAAC,cAAc,EAAE;QACnB6B,CAAC,EAAE,iBAAA5C,KAAK,CAACC,KAAK,qBAAX,aAAa2C,CAAC,KAAI,CAAC;QACtBC,CAAC,EAAExD,KAAK,CAAC8B,CAAC,EAAE,CAAC,EAAER,KAAK,CAAC,GAAGA,KAAK;QAC7BmC,CAAC,EAAE,CAAC,GAAGzD,KAAK,CAAC+B,CAAC,EAAE,CAAC,EAAEV,MAAM,CAAC,GAAGA,MAAM;QACnCqC,CAAC,EAAE,kBAAA/C,KAAK,CAACC,KAAK,qBAAX,cAAa8C,CAAC,KAAI;MACvB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAASC,YAAY,GAAI;MAAA;MACvB,IAAI,CAACtB,SAAS,CAACJ,KAAK,EAAE;MAEtB,MAAM2B,MAAM,GAAGvB,SAAS,CAACJ,KAAK;MAC9B,MAAM4B,GAAG,GAAGD,MAAM,CAACE,UAAU,CAAC,IAAI,CAAC;MAEnC,IAAI,CAACD,GAAG,EAAE;MAEV,MAAME,kBAAkB,GAAGF,GAAG,CAACG,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAEJ,MAAM,CAACtC,KAAK,EAAE,CAAC,CAAC;MAC1EyC,kBAAkB,CAACE,YAAY,CAAC,CAAC,EAAE,sBAAsB,CAAC,EAAC;MAC3DF,kBAAkB,CAACE,YAAY,CAAC,CAAC,EAAG,QAAO,kBAAAtD,KAAK,CAACC,KAAK,qBAAX,cAAa2C,CAAC,KAAI,CAAE,iBAAgB,CAAC;MAChFM,GAAG,CAACK,SAAS,GAAGH,kBAAkB;MAClCF,GAAG,CAACM,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAEP,MAAM,CAACtC,KAAK,EAAEsC,MAAM,CAACvC,MAAM,CAAC;MAE/C,MAAM+C,aAAa,GAAGP,GAAG,CAACG,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEJ,MAAM,CAACvC,MAAM,CAAC;MACtE+C,aAAa,CAACH,YAAY,CAAC,CAAC,EAAE,sBAAsB,CAAC,EAAC;MACtDG,aAAa,CAACH,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC,EAAC;MACpDJ,GAAG,CAACK,SAAS,GAAGE,aAAa;MAC7BP,GAAG,CAACM,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAEP,MAAM,CAACtC,KAAK,EAAEsC,MAAM,CAACvC,MAAM,CAAC;IACjD;IAEAb,KAAK,CAAC;MAAA;MAAA,wBAAMG,KAAK,CAACC,KAAK,qBAAX,cAAa2C,CAAC;IAAA,GAAEI,YAAY,EAAE;MAAEU,SAAS,EAAE;IAAK,CAAC,CAAC;IAE9D7D,KAAK,CAAC,MAAMG,KAAK,CAACC,KAAK,EAAE,MAAM;MAC7B,IAAIe,aAAa,CAACM,KAAK,EAAE;QACvBN,aAAa,CAACM,KAAK,GAAG,KAAK;QAC3B;MACF;MAEA,IAAI,CAACtB,KAAK,CAACC,KAAK,EAAE;MAElBgB,eAAe,CAACK,KAAK,GAAG,IAAI;MAE5BJ,WAAW,CAACI,KAAK,GAAG;QAClBH,CAAC,EAAEnB,KAAK,CAACC,KAAK,CAAC4C,CAAC,GAAGrB,QAAQ,CAACxB,KAAK,CAACW,KAAK,EAAE,EAAE,CAAC;QAC5CS,CAAC,EAAE,CAAC,CAAC,GAAGpB,KAAK,CAACC,KAAK,CAAC6C,CAAC,IAAItB,QAAQ,CAACxB,KAAK,CAACU,MAAM,EAAE,EAAE;MACpD,CAAC;IACH,CAAC,EAAE;MAAEiD,IAAI,EAAE,IAAI;MAAED,SAAS,EAAE;IAAK,CAAC,CAAC;IAEnC/D,SAAS,CAAC,MAAMqD,YAAY,EAAE,CAAC;IAE/BvD,SAAS,CAAC;MAAA,SAEA,uBAAuB;MAAA,SACtB;QACLkB,KAAK,EAAErB,aAAa,CAACU,KAAK,CAACW,KAAK,CAAC;QACjCD,MAAM,EAAEpB,aAAa,CAACU,KAAK,CAACU,MAAM;MACpC,CAAC;MAAA,WACSqB,WAAW;MAAA,eACPK,eAAe;MAAA,gBACdA;IAAe;MAAA,OAGtBV,SAAS;MAAA,SACP1B,KAAK,CAACW,KAAK;MAAA,UACVX,KAAK,CAACU;IAAM;MAAA,SAGd,CACL,4BAA4B,EAC5B;QACE,sCAAsC,EAAEV,KAAK,CAACI;MAChD,CAAC,CACF;MAAA,SACOiB,SAAS,CAACC;IAAK,UAG5B,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VColorPickerCanvas.mjs","names":["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","emit","isInteracting","isOutsideUpdate","dotPosition","x","y","dotStyles","value","radius","parseInt","transform","canvasRef","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","deep"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\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\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 { width, height } = canvasRef.value.getBoundingClientRect()\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, width) / width,\n v: 1 - clamp(y, 0, height) / height,\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\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n if (!props.color) return\n\n isOutsideUpdate.value = true\n\n dotPosition.value = {\n x: props.color.s * parseInt(props.width, 10),\n y: (1 - props.color.v) * parseInt(props.height, 10),\n }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n class=\"v-color-picker-canvas\"\n style={{\n width: convertToUnit(props.width),\n height: convertToUnit(props.height),\n }}\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ props.width }\n height={ props.height }\n />\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 </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType<typeof VColorPickerCanvas>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerEdit.mjs","names":["VBtn","computed","defineComponent","useRender","modes","VColorPickerInput","label","rest","VColorPickerEdit","name","props","color","Object","disabled","Boolean","mode","type","String","default","validator","v","keys","includes","Array","isArray","every","m","emits","setup","emit","enabledModes","map","key","inputs","value","find","to","getValue","getColor","inputProps","onChange","e","target","from","length","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 } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } 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<HSVA | 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: HSVA) => 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) : {}\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: 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, 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","computed","defineComponent","useRender","modes","VColorPickerInput","label","rest","VColorPickerEdit","name","props","color","Object","disabled","Boolean","mode","type","String","default","validator","v","keys","includes","Array","isArray","every","m","emits","setup","emit","enabledModes","map","key","inputs","value","find","to","getValue","getColor","inputProps","onChange","e","target","from","length","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 } 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) : {}\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: 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, 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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"}
@@ -4,7 +4,7 @@ import "./VColorPickerPreview.css";
4
4
 
5
5
  // Components
6
6
  import { VSlider } from "../VSlider/index.mjs"; // Utilities
7
- import { defineComponent, HSVAtoCSS, useRender } from "../../util/index.mjs";
7
+ import { defineComponent, HSVtoCSS, useRender } from "../../util/index.mjs";
8
8
  import { nullColor } from "./util/index.mjs"; // Types
9
9
  export const VColorPickerPreview = defineComponent({
10
10
  name: 'VColorPickerPreview',
@@ -32,7 +32,7 @@ export const VColorPickerPreview = defineComponent({
32
32
  "class": "v-color-picker-preview__dot"
33
33
  }, [_createVNode("div", {
34
34
  "style": {
35
- background: HSVAtoCSS(props.color ?? nullColor)
35
+ background: HSVtoCSS(props.color ?? nullColor)
36
36
  }
37
37
  }, null)]), _createVNode("div", {
38
38
  "class": "v-color-picker-preview__sliders"
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerPreview.mjs","names":["VSlider","defineComponent","HSVAtoCSS","useRender","nullColor","VColorPickerPreview","name","props","color","type","Object","disabled","Boolean","hideAlpha","emits","setup","emit","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, HSVAtoCSS, useRender } from '@/util'\nimport { nullColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n\n props: {\n color: {\n type: Object as PropType<HSVA | null>,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n emits: {\n 'update:color': (color: HSVA) => 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: HSVAtoCSS(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 }\n onUpdate:modelValue={ a => emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 0 }\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,SAAS,EAAEC,SAAS;AAAA,SACrCC,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,KAAW,IAAK;EACnC,CAAC;EAEDO,KAAK,CAAER,KAAK,QAAY;IAAA,IAAV;MAAES;IAAK,CAAC;IACpBb,SAAS,CAAC;MAAA;MAAA;QAAA,SAEC,CACL,wBAAwB,EACxB;UACE,oCAAoC,EAAEI,KAAK,CAACM;QAC9C,CAAC;MACF;QAAA,SAEU;MAA6B;QAAA,SAC1B;UAAEI,UAAU,EAAEf,SAAS,CAACK,KAAK,CAACC,KAAK,IAAIJ,SAAS;QAAE;MAAC;QAAA,SAGtD;MAAiC;QAAA,SAElC,2DAA2D;QAAA,8BACpDG,KAAK,CAACC,KAAK,qBAAX,aAAaU,CAAC;QAAA,uBACLA,CAAC,IAAIF,IAAI,CAAC,cAAc,EAAE;UAAE,IAAIT,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;UAAEc;QAAE,CAAC,CAAC;QAAA,QAC9E,CAAC;QAAA,OACF,CAAC;QAAA,OACD,GAAG;QAAA,YACEX,KAAK,CAACI,QAAQ;QAAA,aACb,EAAE;QAAA,aACF,CAAC;QAAA,kBACE,OAAO;QAAA;MAAA,UAItB,CAACJ,KAAK,CAACM,SAAS;QAAA,SAER,6DAA6D;QAAA,+BACtDN,KAAK,CAACC,KAAK,qBAAX,cAAaW,CAAC;QAAA,uBACLA,CAAC,IAAIH,IAAI,CAAC,cAAc,EAAE;UAAE,IAAIT,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;UAAEe;QAAE,CAAC,CAAC;QAAA,QAC9E,CAAC;QAAA,OACF,CAAC;QAAA,OACD,CAAC;QAAA,YACIZ,KAAK,CAACI,QAAQ;QAAA,aACb,EAAE;QAAA,aACF,CAAC;QAAA,kBACE,OAAO;QAAA;MAAA,QAGzB;IAAA,CAGN,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VColorPickerPreview.mjs","names":["VSlider","defineComponent","HSVtoCSS","useRender","nullColor","VColorPickerPreview","name","props","color","type","Object","disabled","Boolean","hideAlpha","emits","setup","emit","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 }\n onUpdate:modelValue={ a => emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 0 }\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,KAAK,CAAER,KAAK,QAAY;IAAA,IAAV;MAAES;IAAK,CAAC;IACpBb,SAAS,CAAC;MAAA;MAAA;QAAA,SAEC,CACL,wBAAwB,EACxB;UACE,oCAAoC,EAAEI,KAAK,CAACM;QAC9C,CAAC;MACF;QAAA,SAEU;MAA6B;QAAA,SAC1B;UAAEI,UAAU,EAAEf,QAAQ,CAACK,KAAK,CAACC,KAAK,IAAIJ,SAAS;QAAE;MAAC;QAAA,SAGrD;MAAiC;QAAA,SAElC,2DAA2D;QAAA,8BACpDG,KAAK,CAACC,KAAK,qBAAX,aAAaU,CAAC;QAAA,uBACLA,CAAC,IAAIF,IAAI,CAAC,cAAc,EAAE;UAAE,IAAIT,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;UAAEc;QAAE,CAAC,CAAC;QAAA,QAC9E,CAAC;QAAA,OACF,CAAC;QAAA,OACD,GAAG;QAAA,YACEX,KAAK,CAACI,QAAQ;QAAA,aACb,EAAE;QAAA,aACF,CAAC;QAAA,kBACE,OAAO;QAAA;MAAA,UAItB,CAACJ,KAAK,CAACM,SAAS;QAAA,SAER,6DAA6D;QAAA,+BACtDN,KAAK,CAACC,KAAK,qBAAX,cAAaW,CAAC;QAAA,uBACLA,CAAC,IAAIH,IAAI,CAAC,cAAc,EAAE;UAAE,IAAIT,KAAK,CAACC,KAAK,IAAIJ,SAAS,CAAC;UAAEe;QAAE,CAAC,CAAC;QAAA,QAC9E,CAAC;QAAA,OACF,CAAC;QAAA,OACD,CAAC;QAAA,YACIZ,KAAK,CAACI,QAAQ;QAAA,aACb,EAAE;QAAA,aACF,CAAC;QAAA,kBACE,OAAO;QAAA;MAAA,QAGzB;IAAA,CAGN,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -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","emit","swatch","hsva","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 { HSVA } 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<HSVA | null>,\n maxHeight: [Number, String],\n },\n\n emits: {\n 'update:color': (color: HSVA) => 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,kBAAkB,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,EAAE,MAAMzB,kBAAkB,CAACD,MAAM;IAC1C,CAAC;IACD2B,QAAQ,EAAEC,OAAO;IACjBtB,KAAK,EAAEJ,MAA+B;IACtC2B,SAAS,EAAE,CAACC,MAAM,EAAEC,MAAM;EAC5B,CAAC;EAEDC,KAAK,EAAE;IACL,cAAc,EAAG1B,KAAW,IAAK;EACnC,CAAC;EAED2B,KAAK,CAAEX,KAAK,QAAY;IAAA,IAAV;MAAEY;IAAK,CAAC;IACpBpC,SAAS,CAAC;MAAA,SAEA,yBAAyB;MAAA,SACxB;QACL+B,SAAS,EAAEnC,aAAa,CAAC4B,KAAK,CAACO,SAAS;MAC1C;IAAC,+BAGGP,KAAK,CAACC,QAAQ,CAACnB,GAAG,CAAC+B,MAAM;MAAA,SACd;IAAiC,IACxCA,MAAM,CAAC/B,GAAG,CAACE,KAAK,IAAI;MACpB,MAAM8B,IAAI,GAAGrC,UAAU,CAACO,KAAK,CAAC;MAE9B;QAAA,SAEU,gCAAgC;QAAA,WAC7B,MAAM8B,IAAI,IAAIF,IAAI,CAAC,cAAc,EAAEE,IAAI;MAAC;QAAA,SAErC;UAAEC,UAAU,EAAE/B;QAAM;MAAC,IAC7BgB,KAAK,CAAChB,KAAK,IAAIX,SAAS,CAAC2B,KAAK,CAAChB,KAAK,EAAE8B,IAAI,CAAC;QAAA,QAC7B,SAAS;QAAA,QAAM,UAAU;QAAA,SAAQvC,WAAW,CAACS,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG;MAAO,WAClGgC,SAAS;IAKrB,CAAC,CAAC,EAEL,CAAC,IAGP,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
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","emit","swatch","hsva","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,kBAAkB,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,EAAE,MAAMzB,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,KAAK,CAAEX,KAAK,QAAY;IAAA,IAAV;MAAEY;IAAK,CAAC;IACpBpC,SAAS,CAAC;MAAA,SAEA,yBAAyB;MAAA,SACxB;QACL+B,SAAS,EAAEnC,aAAa,CAAC4B,KAAK,CAACO,SAAS;MAC1C;IAAC,+BAGGP,KAAK,CAACC,QAAQ,CAACnB,GAAG,CAAC+B,MAAM;MAAA,SACd;IAAiC,IACxCA,MAAM,CAAC/B,GAAG,CAACE,KAAK,IAAI;MACpB,MAAM8B,IAAI,GAAGrC,UAAU,CAACO,KAAK,CAAC;MAE9B;QAAA,SAEU,gCAAgC;QAAA,WAC7B,MAAM8B,IAAI,IAAIF,IAAI,CAAC,cAAc,EAAEE,IAAI;MAAC;QAAA,SAErC;UAAEC,UAAU,EAAE/B;QAAM;MAAC,IAC7BgB,KAAK,CAAChB,KAAK,IAAIX,SAAS,CAAC2B,KAAK,CAAChB,KAAK,EAAE8B,IAAI,CAAC;QAAA,QAC7B,SAAS;QAAA,QAAM,UAAU;QAAA,SAAQvC,WAAW,CAACS,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG;MAAO,WAClGgC,SAAS;IAKrB,CAAC,CAAC,EAEL,CAAC,IAGP,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  var _rgba$inputs;
2
2
  // Utilities
3
- import { HexToHSVA, HSLAtoHSVA, HSVAtoHex, HSVAtoHSLA, HSVAtoRGBA, parseHex, RGBAtoHSVA } from "../../../util/colorUtils.mjs"; // Types
3
+ import { HexToHSV, HSLtoHSV, HSVtoHex, HSVtoHSL, HSVtoRGB, parseHex, RGBtoHSV } from "../../../util/colorUtils.mjs"; // Types
4
4
  function has(obj, key) {
5
5
  return key.every(k => obj.hasOwnProperty(k));
6
6
  }
@@ -9,13 +9,13 @@ export function parseColor(color) {
9
9
  let hsva = null;
10
10
  if (typeof color === 'string') {
11
11
  const hex = parseHex(color);
12
- hsva = HexToHSVA(hex);
12
+ hsva = HexToHSV(hex);
13
13
  }
14
14
  if (typeof color === 'object') {
15
15
  if (has(color, ['r', 'g', 'b'])) {
16
- hsva = RGBAtoHSVA(color);
16
+ hsva = RGBtoHSV(color);
17
17
  } else if (has(color, ['h', 's', 'l'])) {
18
- hsva = HSLAtoHSVA(color);
18
+ hsva = HSLtoHSV(color);
19
19
  } else if (has(color, ['h', 's', 'v'])) {
20
20
  hsva = color;
21
21
  }
@@ -37,12 +37,12 @@ function stripAlpha(color, stripAlpha) {
37
37
  }
38
38
  export function extractColor(color, input) {
39
39
  if (input == null || typeof input === 'string') {
40
- const hex = HSVAtoHex(color);
40
+ const hex = HSVtoHex(color);
41
41
  if (color.a === 1) return hex.slice(0, 7);else return hex;
42
42
  }
43
43
  if (typeof input === 'object') {
44
44
  let converted;
45
- if (has(input, ['r', 'g', 'b'])) converted = HSVAtoRGBA(color);else if (has(input, ['h', 's', 'l'])) converted = HSVAtoHSLA(color);else if (has(input, ['h', 's', 'v'])) converted = color;
45
+ if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;
46
46
  return stripAlpha(converted, !has(input, ['a']));
47
47
  }
48
48
  return color;
@@ -99,14 +99,19 @@ const rgba = {
99
99
  label: 'A',
100
100
  max: 1,
101
101
  step: 0.01,
102
- getValue: c => Math.round(c.a * 100) / 100,
102
+ getValue: _ref => {
103
+ let {
104
+ a
105
+ } = _ref;
106
+ return a ? Math.round(a * 100) / 100 : 1;
107
+ },
103
108
  getColor: (c, v) => ({
104
109
  ...c,
105
110
  a: Number(v)
106
111
  })
107
112
  }],
108
- to: HSVAtoRGBA,
109
- from: RGBAtoHSVA
113
+ to: HSVtoRGB,
114
+ from: RGBtoHSV
110
115
  };
111
116
  const rgb = {
112
117
  ...rgba,
@@ -148,14 +153,19 @@ const hsla = {
148
153
  label: 'A',
149
154
  max: 1,
150
155
  step: 0.01,
151
- getValue: c => Math.round(c.a * 100) / 100,
156
+ getValue: _ref2 => {
157
+ let {
158
+ a
159
+ } = _ref2;
160
+ return a ? Math.round(a * 100) / 100 : 1;
161
+ },
152
162
  getColor: (c, v) => ({
153
163
  ...c,
154
164
  a: Number(v)
155
165
  })
156
166
  }],
157
- to: HSVAtoHSLA,
158
- from: HSLAtoHSVA
167
+ to: HSVtoHSL,
168
+ from: HSLtoHSV
159
169
  };
160
170
  const hsl = {
161
171
  ...hsla,
@@ -170,8 +180,8 @@ const hexa = {
170
180
  getValue: c => c,
171
181
  getColor: (c, v) => v
172
182
  }],
173
- to: HSVAtoHex,
174
- from: HexToHSVA
183
+ to: HSVtoHex,
184
+ from: HexToHSV
175
185
  };
176
186
  const hex = {
177
187
  ...hexa,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["HexToHSVA","HSLAtoHSVA","HSVAtoHex","HSVAtoHSLA","HSVAtoRGBA","parseHex","RGBAtoHSVA","has","obj","key","every","k","hasOwnProperty","parseColor","color","hsva","hex","a","stripAlpha","rest","extractColor","input","slice","converted","hasAlpha","length","nullColor","h","s","v","rgba","inputProps","type","min","inputs","label","max","step","getValue","c","Math","round","r","getColor","Number","g","b","to","from","rgb","hsla","l","hsl","hexa","modes"],"sources":["../../../../src/components/VColorPicker/util/index.ts"],"sourcesContent":["// Utilities\nimport {\n HexToHSVA,\n HSLAtoHSVA,\n HSVAtoHex,\n HSVAtoHSLA,\n HSVAtoRGBA,\n parseHex,\n RGBAtoHSVA,\n} from '@/util/colorUtils'\n\n// Types\nimport type {\n HSLA,\n HSVA,\n RGBA,\n} from '@/util/colorUtils'\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any): HSVA | null {\n if (!color) return null\n\n let hsva: HSVA | null = null\n\n if (typeof color === 'string') {\n const hex = parseHex(color)\n\n hsva = HexToHSVA(hex)\n }\n\n if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n hsva = RGBAtoHSVA(color)\n } else if (has(color, ['h', 's', 'l'])) {\n hsva = HSLAtoHSVA(color)\n } else if (has(color, ['h', 's', 'v'])) {\n hsva = color\n }\n }\n\n return hsva != null ? { ...hsva, a: hsva.a ?? 1 } : null\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: HSVA, input: any) {\n if (input == null || typeof input === 'string') {\n const hex = HSVAtoHex(color)\n\n if (color.a === 1) return hex.slice(0, 7)\n else return hex\n }\n\n if (typeof input === 'object') {\n let converted\n\n if (has(input, ['r', 'g', 'b'])) converted = HSVAtoRGBA(color)\n else if (has(input, ['h', 's', 'l'])) converted = HSVAtoHSLA(color)\n else if (has(input, ['h', 's', 'v'])) converted = color\n\n return stripAlpha(converted, !has(input, ['a']))\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n\nexport const nullColor = { h: 0, s: 0, v: 1, a: 1 }\n\nexport type ColorPickerMode = {\n inputProps: Record<string, unknown>\n inputs: {\n [key: string]: any\n getValue: (color: any) => number | string\n getColor: (color: any, v: string) => any\n }[]\n from: (color: any) => HSVA\n to: (color: HSVA) => any\n}\n\nconst rgba: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'R',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.r),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, r: Number(v) }),\n },\n {\n label: 'G',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.g),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, g: Number(v) }),\n },\n {\n label: 'B',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.b),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, b: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: (c: RGBA) => Math.round(c.a * 100) / 100,\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVAtoRGBA,\n from: RGBAtoHSVA,\n}\n\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3),\n}\n\nconst hsla: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'H',\n max: 360,\n step: 1,\n getValue: (c: HSLA) => Math.round(c.h),\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, h: Number(v) }),\n },\n {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.s * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, s: Number(v) }),\n },\n {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.l * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, l: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.a * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVAtoHSLA,\n from: HSLAtoHSVA,\n}\n\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3),\n}\n\nconst hexa: ColorPickerMode = {\n inputProps: {\n type: 'text',\n },\n inputs: [\n {\n label: 'HEXA',\n getValue: (c: string) => c,\n getColor: (c: string, v: string) => v,\n },\n ],\n to: HSVAtoHex,\n from: HexToHSVA,\n}\n\nconst hex = {\n ...hexa,\n inputs: [\n {\n label: 'HEX',\n getValue: (c: string) => c.slice(0, 7),\n getColor: (c: string, v: string) => v,\n },\n ],\n}\n\nexport const modes: Record<string, ColorPickerMode> = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["HexToHSV","HSLtoHSV","HSVtoHex","HSVtoHSL","HSVtoRGB","parseHex","RGBtoHSV","has","obj","key","every","k","hasOwnProperty","parseColor","color","hsva","hex","a","stripAlpha","rest","extractColor","input","slice","converted","hasAlpha","length","nullColor","h","s","v","rgba","inputProps","type","min","inputs","label","max","step","getValue","c","Math","round","r","getColor","Number","g","b","to","from","rgb","hsla","l","hsl","hexa","modes"],"sources":["../../../../src/components/VColorPicker/util/index.ts"],"sourcesContent":["// Utilities\nimport {\n HexToHSV,\n HSLtoHSV,\n HSVtoHex,\n HSVtoHSL,\n HSVtoRGB,\n parseHex,\n RGBtoHSV,\n} from '@/util/colorUtils'\n\n// Types\nimport type { HSL, HSV, RGB } from '@/util/colorUtils'\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any): HSV | null {\n if (!color) return null\n\n let hsva: HSV | null = null\n\n if (typeof color === 'string') {\n const hex = parseHex(color)\n\n hsva = HexToHSV(hex)\n }\n\n if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n hsva = RGBtoHSV(color)\n } else if (has(color, ['h', 's', 'l'])) {\n hsva = HSLtoHSV(color)\n } else if (has(color, ['h', 's', 'v'])) {\n hsva = color\n }\n }\n\n return hsva != null ? { ...hsva, a: hsva.a ?? 1 } : null\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: HSV, input: any) {\n if (input == null || typeof input === 'string') {\n const hex = HSVtoHex(color)\n\n if (color.a === 1) return hex.slice(0, 7)\n else return hex\n }\n\n if (typeof input === 'object') {\n let converted\n\n if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color)\n else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color)\n else if (has(input, ['h', 's', 'v'])) converted = color\n\n return stripAlpha(converted, !has(input, ['a']))\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n\nexport const nullColor = { h: 0, s: 0, v: 1, a: 1 }\n\nexport type ColorPickerMode = {\n inputProps: Record<string, unknown>\n inputs: {\n [key: string]: any\n getValue: (color: any) => number | string\n getColor: (color: any, v: string) => any\n }[]\n from: (color: any) => HSV\n to: (color: HSV) => any\n}\n\nconst rgba: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'R',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.r),\n getColor: (c: RGB, v: string): RGB => ({ ...c, r: Number(v) }),\n },\n {\n label: 'G',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.g),\n getColor: (c: RGB, v: string): RGB => ({ ...c, g: Number(v) }),\n },\n {\n label: 'B',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.b),\n getColor: (c: RGB, v: string): RGB => ({ ...c, b: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: RGB) => a ? Math.round(a * 100) / 100 : 1,\n getColor: (c: RGB, v: string): RGB => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoRGB,\n from: RGBtoHSV,\n}\n\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3),\n}\n\nconst hsla: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'H',\n max: 360,\n step: 1,\n getValue: (c: HSL) => Math.round(c.h),\n getColor: (c: HSL, v: string): HSL => ({ ...c, h: Number(v) }),\n },\n {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.s * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, s: Number(v) }),\n },\n {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.l * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, l: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: HSL) => a ? Math.round(a * 100) / 100 : 1,\n getColor: (c: HSL, v: string): HSL => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoHSL,\n from: HSLtoHSV,\n}\n\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3),\n}\n\nconst hexa: ColorPickerMode = {\n inputProps: {\n type: 'text',\n },\n inputs: [\n {\n label: 'HEXA',\n getValue: (c: string) => c,\n getColor: (c: string, v: string) => v,\n },\n ],\n to: HSVtoHex,\n from: HexToHSV,\n}\n\nconst hex = {\n ...hexa,\n inputs: [\n {\n label: 'HEX',\n getValue: (c: string) => c.slice(0, 7),\n getColor: (c: string, v: string) => v,\n },\n ],\n}\n\nexport const modes: Record<string, ColorPickerMode> = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa,\n}\n"],"mappings":"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"}