diff --git a/packages/calcite-components/src/components/inline-editable/inline-editable.e2e.ts b/packages/calcite-components/src/components/inline-editable/inline-editable.e2e.ts index 38ac9e33081..89529b2c149 100644 --- a/packages/calcite-components/src/components/inline-editable/inline-editable.e2e.ts +++ b/packages/calcite-components/src/components/inline-editable/inline-editable.e2e.ts @@ -1,7 +1,7 @@ // @ts-strict-ignore import { newE2EPage, E2EPage } from "@arcgis/lumina-compiler/puppeteerTesting"; import { describe, expect, it, beforeEach } from "vitest"; -import { accessible, disabled, labelable, renders, hidden, t9n } from "../../tests/commonTests"; +import { accessible, disabled, labelable, renders, hidden, t9n, themed } from "../../tests/commonTests"; import { html } from "../../../support/formatting"; import type { Input } from "../input/input"; import { CSS } from "./resources"; @@ -399,4 +399,18 @@ describe("calcite-inline-editable", () => { describe("translation support", () => { t9n("calcite-inline-editable"); }); + + describe("theme", () => { + themed("calcite-inline-editable", { + "--calcite-inline-editable-background-color-hover": { + shadowSelector: `.${CSS.wrapper}`, + state: "hover", + targetProp: "backgroundColor", + }, + "--calcite-inline-editable-background-color": { + shadowSelector: `.${CSS.wrapper}`, + targetProp: "backgroundColor", + }, + }); + }); }); diff --git a/packages/calcite-components/src/components/inline-editable/inline-editable.scss b/packages/calcite-components/src/components/inline-editable/inline-editable.scss index df4eb8ede46..a7a3dca4de5 100755 --- a/packages/calcite-components/src/components/inline-editable/inline-editable.scss +++ b/packages/calcite-components/src/components/inline-editable/inline-editable.scss @@ -1,3 +1,12 @@ +/** + * CSS Custom Properties + * + * These properties can be overridden using the component's tag as selector. + * + * @prop --calcite-inline-editable-background-color-hover: Specifies the component's background color when hovered. + * @prop --calcite-inline-editable-background-color: Specifies the component's background color. + */ + :host { @apply block; } @@ -20,14 +29,6 @@ } } -:host(:not([editing-enabled]):not([disabled])) { - .wrapper { - &:hover { - @apply bg-foreground-2; - } - } -} - .wrapper { @apply bg-foreground-1 transition-default @@ -35,19 +36,25 @@ flex justify-between; + background-color: var(--calcite-inline-editable-background-color, var(--calcite-color-foreground-1)); + .input-wrapper { @apply flex-1; } } +:host(:not([editing-enabled]):not([disabled])) { + .wrapper { + &:hover { + background-color: var(--calcite-inline-editable-background-color-hover, var(--calcite-color-foreground-2)); + } + } +} + .controls-wrapper { @apply flex; } -@include disabled() { - .cancel-editing-button-wrapper { - @apply border-color-2; - } -} +@include disabled(); @include base-component(); diff --git a/packages/calcite-components/src/custom-theme.stories.ts b/packages/calcite-components/src/custom-theme.stories.ts index 6e74361034c..4489b6dd846 100644 --- a/packages/calcite-components/src/custom-theme.stories.ts +++ b/packages/calcite-components/src/custom-theme.stories.ts @@ -26,6 +26,7 @@ import { datePicker } from "./custom-theme/date-picker"; import { dropdown } from "./custom-theme/dropdown"; import { handle, handleTokens } from "./custom-theme/handle"; import { icon } from "./custom-theme/icon"; +import { inlineEditable, inlineEditableTokens } from "./custom-theme/inline-editable"; import { input, inputTokens } from "./custom-theme/input"; import { inputNumber } from "./custom-theme/input-number"; import { inputText } from "./custom-theme/input-text"; @@ -122,7 +123,7 @@ const kitchenSink = (args: Record, useTestValues = false) =>
${actionMenu}
${icon} - ${input} ${inputNumber} ${inputText} ${select} + ${inlineEditable} ${input} ${inputNumber} ${inputText} ${select}
${card}
@@ -162,6 +163,7 @@ const componentTokens = { ...checkboxTokens, ...chipTokens, ...handleTokens, + ...inlineEditableTokens, ...inputTokens, ...labelTokens, ...linkTokens, diff --git a/packages/calcite-components/src/custom-theme/inline-editable.ts b/packages/calcite-components/src/custom-theme/inline-editable.ts new file mode 100644 index 00000000000..cdf3b5078a7 --- /dev/null +++ b/packages/calcite-components/src/custom-theme/inline-editable.ts @@ -0,0 +1,12 @@ +import { html } from "../../support/formatting"; + +export const inlineEditableTokens = { + calciteInlineEditableBackgroundColor: "", + calciteInlineEditableBackgroundColorHover: "", +}; + +export const inlineEditable = html` + + + +`; diff --git a/packages/calcite-components/src/demos/inline-editable.html b/packages/calcite-components/src/demos/inline-editable.html index 150359cc0fe..c0c2aecc7e4 100644 --- a/packages/calcite-components/src/demos/inline-editable.html +++ b/packages/calcite-components/src/demos/inline-editable.html @@ -43,6 +43,7 @@ }; +

Inline Editable

@@ -140,6 +141,44 @@

Inline Editable

+ + +
+
themed
+ +
+ + Access denied + + + + +
+ +
+ + Access denied + + + + +
+ +
+ + Access denied + + + + +
+