Skip to content

Commit ab33e4d

Browse files
authored
fix(color-picker): prevent text selection when using color sliders/field (#10043)
**Related Issue:** #9977 ## Summary Restores prevention of text-selection when using the color field/sliders.
1 parent 2c3f808 commit ab33e4d

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

packages/calcite-components/src/components/color-picker/color-picker.e2e.ts

+29
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
newProgrammaticE2EPage,
88
toBeNumber,
99
toBeInteger,
10+
getElementRect,
1011
} from "../../tests/utils";
1112
import { html } from "../../../support/formatting";
1213
import { CSS, DEFAULT_COLOR, DEFAULT_STORAGE_KEY_PREFIX, DIMENSIONS, SCOPE_SIZE } from "./resources";
@@ -807,6 +808,34 @@ describe("calcite-color-picker", () => {
807808
expect(hueScopeCenterX).toBe(hueSliderX + sliderWidth - DIMENSIONS.m.thumb.radius);
808809
});
809810

811+
it("does not allow text selection when color field/sliders are used", async () => {
812+
const page = await newE2EPage();
813+
await page.setContent(`<calcite-color-picker alpha-channel></calcite-color-picker>`);
814+
const { x: hueSliderX, y: hueSliderY } = await getElementRect(page, "calcite-color-picker", `.${CSS.hueSlider}`);
815+
const { x: opacitySliderX, y: opacitySliderY } = await getElementRect(
816+
page,
817+
"calcite-color-picker",
818+
`.${CSS.opacitySlider}`,
819+
);
820+
const { x: colorFieldX, y: colorFieldY } = await getElementRect(page, "calcite-color-picker", `.${CSS.colorField}`);
821+
822+
const dragStartPoints = [
823+
[colorFieldX, colorFieldY],
824+
[hueSliderX, hueSliderY],
825+
[opacitySliderX, opacitySliderY],
826+
];
827+
828+
for (const [startingX, startingY] of dragStartPoints) {
829+
await page.mouse.move(startingX, startingY);
830+
await page.mouse.down();
831+
await page.mouse.move(1000, 1000);
832+
await page.mouse.up();
833+
await page.waitForChanges();
834+
835+
expect(await page.evaluate(() => window.getSelection().type)).toBe("None");
836+
}
837+
});
838+
810839
describe("unsupported value handling", () => {
811840
let page: E2EPage;
812841

packages/calcite-components/src/components/color-picker/color-picker.scss

+5
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@
7474
@apply flex relative cursor-pointer touch-none;
7575
}
7676

77+
.color-field,
78+
.control-and-scope {
79+
user-select: none;
80+
}
81+
7782
.scope {
7883
@apply text-n1
7984
focus-base

0 commit comments

Comments
 (0)