diff --git a/packages/common b/packages/common index 5aedfdf7ab..916c9f675f 160000 --- a/packages/common +++ b/packages/common @@ -1 +1 @@ -Subproject commit 5aedfdf7ab0457141b0a886d2126e22bbdb42cae +Subproject commit 916c9f675fb43697b0a08f6c3155f219e8897e35 diff --git a/packages/components/color-picker/components/panel/header.tsx b/packages/components/color-picker/components/panel/header.tsx index 90426793a8..ca88e50cb1 100644 --- a/packages/components/color-picker/components/panel/header.tsx +++ b/packages/components/color-picker/components/panel/header.tsx @@ -2,6 +2,8 @@ import { defineComponent, PropType, ref, watch } from 'vue'; import { COLOR_MODES } from '@tdesign/common-js/color-picker/constants'; import { useConfig } from '@tdesign/shared-hooks'; +import { isEyeDropperSupported, pickColor } from '../../utils/eyedropper.js'; +import { Button as TButton } from '../../../button'; import { RadioButton as TRadioButton, RadioGroup as TRadioGroup } from '../../../radio'; import props from '../../color-picker-panel-props'; import { useBaseClassName } from '../../hooks'; @@ -21,12 +23,27 @@ export default defineComponent({ return () => {}; }, }, + onEyeDropperPick: { + type: Function, + default: () => { + return () => {}; + }, + }, }, - setup(props) { + emits: ['mode-change', 'eyedropper-pick'], + setup(props, { emit }) { const { globalConfig } = useConfig('colorPicker'); const baseClassName = useBaseClassName(); const modeValue = ref(props.mode); const handleModeChange = (v: string) => props.onModeChange(v); + const handleEyeDropperPick = async () => { + try { + const color = await pickColor(); + props.onEyeDropperPick(color); + } catch (error: any) { + console.warn('EyeDropper pick failed:', error); + } + }; watch( () => props.mode, (v) => (modeValue.value = v), @@ -46,6 +63,29 @@ export default defineComponent({ ))} + {isEyeDropperSupported() ? ( +