From 890b0a3c9bcd2c60dc0bc5eca7efae36721e29a1 Mon Sep 17 00:00:00 2001 From: lindsaym-fa Date: Fri, 11 Jul 2025 17:06:10 -0400 Subject: [PATCH] poor first attempt --- .../webawesome/docs/_layouts/component.njk | 12 ++++++--- .../docs/assets/scripts/parts-diagram.js | 25 +++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 packages/webawesome/docs/assets/scripts/parts-diagram.js diff --git a/packages/webawesome/docs/_layouts/component.njk b/packages/webawesome/docs/_layouts/component.njk index 2a0cd4947..f007a6b72 100644 --- a/packages/webawesome/docs/_layouts/component.njk +++ b/packages/webawesome/docs/_layouts/component.njk @@ -223,9 +223,13 @@ {% if component.cssParts.length %}

CSS parts

Learn more about CSS parts.

+ + <{{ component.tagName }} id="parts-example"> + + {{ demo }} - + @@ -234,7 +238,7 @@ {% for cssPart in component.cssParts %} - + @@ -305,4 +309,6 @@ Ask for help -{% endblock %} + + +{% endblock %} \ No newline at end of file diff --git a/packages/webawesome/docs/assets/scripts/parts-diagram.js b/packages/webawesome/docs/assets/scripts/parts-diagram.js new file mode 100644 index 000000000..d278ad737 --- /dev/null +++ b/packages/webawesome/docs/assets/scripts/parts-diagram.js @@ -0,0 +1,25 @@ +// Get all table rows with data-part attributes +const tableRows = document.querySelectorAll('[data-part]'); + +// Add event listeners for mouseenter and mouseleave +tableRows.forEach(row => { + row.addEventListener('mouseenter', function () { + const partName = this.getAttribute('data-part'); + const correspondingPart = document.getElementById('parts-example').shadowRoot.querySelector(`[part='${partName}']`); + + console.log('hello!'); + + if (correspondingPart) { + correspondingPart.style.outline = '2px solid red'; + } + }); + + row.addEventListener('mouseleave', function () { + const partName = this.getAttribute('data-part'); + const correspondingPart = document.getElementById('parts-example').shadowRoot.querySelector(`[part='${partName}']`); + + if (correspondingPart) { + correspondingPart.style.outline = ''; + } + }); +});