From c4ece87cb685c9226bab4307f2008a1b3d45b0c1 Mon Sep 17 00:00:00 2001 From: Jay Date: Sat, 16 Aug 2025 09:10:20 -0400 Subject: [PATCH] Completed picker / history. Needs styling refactor. --- .gitignore | 1 + cypress/support/commands.ts | 25 ++++ index.html | 2 +- public/favicon.png | Bin 0 -> 6401 bytes public/vite.svg | 1 - src/App.module.css | 57 ++++---- src/App.tsx | 26 ++-- .../ColorHistory/ColorHistory.module.css | 48 ++++++ src/components/ColorHistory/ColorHistory.tsx | 80 ++++++++++ .../ColorHistory/ColorHistoryTest.cy.tsx | 95 ++++++++++++ src/components/ColorPicker/ColorBar.tsx | 133 +++++++++++++++++ .../ColorPicker/ColorPicker.module.css | 17 +-- src/components/ColorPicker/ColorPicker.tsx | 5 + .../ColorPicker/ColorPickerTest.cy.tsx | 0 src/components/ColorPicker/ColorSquare.tsx | 137 ++++++++++++++++++ src/components/ColorPicker/Crosshair.tsx | 133 +++++++++++++++++ src/components/ColorPicker/GripSlider.tsx | 116 +++++++++++++++ .../ColorValues/ColorValues.module.css | 6 +- .../ColorValues/SpaceEditorTest.cy.tsx | 28 ++-- src/components/ColorValues/ValueEditor.tsx | 12 +- .../ColorValues/ValueEditorTest.cy.tsx | 10 +- src/util.ts | 15 +- src/vite-env.d.ts | 5 + 23 files changed, 873 insertions(+), 79 deletions(-) create mode 100644 public/favicon.png delete mode 100644 public/vite.svg create mode 100644 src/components/ColorHistory/ColorHistory.module.css create mode 100644 src/components/ColorHistory/ColorHistory.tsx create mode 100644 src/components/ColorHistory/ColorHistoryTest.cy.tsx create mode 100644 src/components/ColorPicker/ColorBar.tsx create mode 100644 src/components/ColorPicker/ColorPickerTest.cy.tsx create mode 100644 src/components/ColorPicker/ColorSquare.tsx create mode 100644 src/components/ColorPicker/Crosshair.tsx create mode 100644 src/components/ColorPicker/GripSlider.tsx diff --git a/.gitignore b/.gitignore index 3c3629e..f06235c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +dist diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 177a868..c36daa9 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -53,6 +53,19 @@ Cypress.Commands.add("disableTransitions", () => { } `; document.head.appendChild(style); + + // Flag to disable Framer Motion + if (window.framerMotionTestOverride) return; + window.framerMotionTestOverride = true; + window.originalRequestAnimationFrame = window.requestAnimationFrame; + + window.requestAnimationFrame = (callback) => { + return window.setTimeout(() => { + if (callback) callback(0); + }, 0); + }; + + document.body.setAttribute("data-cy-animations-disabled", "true"); }); }); @@ -62,5 +75,17 @@ Cypress.Commands.add("enableTransitions", () => { if (styleElement) { styleElement.remove(); } + + // Remove flags for Framer Motion + if (window.framerMotionTestOverride) { + window.framerMotionTestOverride = false; + + if (window.originalRequestAnimationFrame) { + window.requestAnimationFrame = window.originalRequestAnimationFrame; + delete window.originalRequestAnimationFrame; + } + } + + document.body.removeAttribute("data-cy-animations-disabled"); }); }); diff --git a/index.html b/index.html index cfdbbba..a98b290 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + Luminance diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..219898bb738308d4ccdacc8638e6ce58aad0a13d GIT binary patch literal 6401 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 z