@spectrum-web-components/color-wheel 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +1 -1
- package/package.json +5 -5
- package/src/ColorWheel.d.ts +1 -1
- package/src/ColorWheel.dev.js +9 -7
- package/src/ColorWheel.dev.js.map +2 -2
- package/src/ColorWheel.js +5 -5
- package/src/ColorWheel.js.map +3 -3
- package/src/color-wheel.css.dev.js +1 -1
- package/src/color-wheel.css.dev.js.map +1 -1
- package/src/color-wheel.css.js +1 -1
- package/src/color-wheel.css.js.map +1 -1
- package/src/spectrum-color-wheel.css.dev.js +1 -1
- package/src/spectrum-color-wheel.css.dev.js.map +1 -1
- package/src/spectrum-color-wheel.css.js +1 -1
- package/src/spectrum-color-wheel.css.js.map +1 -1
package/custom-elements.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/color-wheel",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -68,10 +68,10 @@
|
|
|
68
68
|
"css"
|
|
69
69
|
],
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@spectrum-web-components/base": "1.
|
|
72
|
-
"@spectrum-web-components/color-handle": "1.
|
|
73
|
-
"@spectrum-web-components/reactive-controllers": "1.
|
|
74
|
-
"@spectrum-web-components/shared": "1.
|
|
71
|
+
"@spectrum-web-components/base": "1.9.0",
|
|
72
|
+
"@spectrum-web-components/color-handle": "1.9.0",
|
|
73
|
+
"@spectrum-web-components/reactive-controllers": "1.9.0",
|
|
74
|
+
"@spectrum-web-components/shared": "1.9.0"
|
|
75
75
|
},
|
|
76
76
|
"types": "./src/index.d.ts",
|
|
77
77
|
"customElements": "custom-elements.json",
|
package/src/ColorWheel.d.ts
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
import { CSSResultArray, PropertyValues, TemplateResult } from '@spectrum-web-components/base';
|
|
13
|
-
import { Focusable } from '@spectrum-web-components/shared/src/focusable.js';
|
|
14
13
|
import '@spectrum-web-components/color-handle/sp-color-handle.js';
|
|
15
14
|
import { ColorTypes } from '@spectrum-web-components/reactive-controllers/src/ColorController.js';
|
|
15
|
+
import { Focusable } from '@spectrum-web-components/shared/src/focusable.js';
|
|
16
16
|
/**
|
|
17
17
|
* @element sp-color-wheel
|
|
18
18
|
* @slot gradient - a custom gradient visually outlining the available color values
|
package/src/ColorWheel.dev.js
CHANGED
|
@@ -12,18 +12,18 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
12
12
|
import {
|
|
13
13
|
html
|
|
14
14
|
} from "@spectrum-web-components/base";
|
|
15
|
-
import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
|
|
16
15
|
import {
|
|
17
16
|
property,
|
|
18
17
|
query
|
|
19
18
|
} from "@spectrum-web-components/base/src/decorators.js";
|
|
19
|
+
import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
|
|
20
20
|
import { streamingListener } from "@spectrum-web-components/base/src/streaming-listener.js";
|
|
21
|
-
import { Focusable } from "@spectrum-web-components/shared/src/focusable.js";
|
|
22
21
|
import "@spectrum-web-components/color-handle/sp-color-handle.js";
|
|
23
22
|
import {
|
|
24
23
|
ColorController
|
|
25
24
|
} from "@spectrum-web-components/reactive-controllers/src/ColorController.js";
|
|
26
25
|
import { LanguageResolutionController } from "@spectrum-web-components/reactive-controllers/src/LanguageResolution.js";
|
|
26
|
+
import { Focusable } from "@spectrum-web-components/shared/src/focusable.js";
|
|
27
27
|
import styles from "./color-wheel.css.js";
|
|
28
28
|
export class ColorWheel extends Focusable {
|
|
29
29
|
constructor() {
|
|
@@ -319,11 +319,13 @@ export class ColorWheel extends Focusable {
|
|
|
319
319
|
var _a;
|
|
320
320
|
super.connectedCallback();
|
|
321
321
|
if (!this.observer && window.ResizeObserver) {
|
|
322
|
-
this.observer = new
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
322
|
+
this.observer = new ResizeObserver((entries) => {
|
|
323
|
+
requestAnimationFrame(() => {
|
|
324
|
+
for (const entry of entries) {
|
|
325
|
+
this.boundingClientRect = entry.contentRect;
|
|
326
|
+
}
|
|
327
|
+
this.requestUpdate();
|
|
328
|
+
});
|
|
327
329
|
});
|
|
328
330
|
}
|
|
329
331
|
(_a = this.observer) == null ? void 0 : _a.observe(this);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["ColorWheel.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { streamingListener } from '@spectrum-web-components/base/src/streaming-listener.js';\nimport { SWCResizeObserverEntry, WithSWCResizeObserver } from './types';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport type { ColorHandle } from '@spectrum-web-components/color-handle';\nimport '@spectrum-web-components/color-handle/sp-color-handle.js';\nimport {\n ColorController,\n ColorTypes,\n} from '@spectrum-web-components/reactive-controllers/src/ColorController.js';\nimport { LanguageResolutionController } from '@spectrum-web-components/reactive-controllers/src/LanguageResolution.js';\n\nimport styles from './color-wheel.css.js';\n\n/**\n * @element sp-color-wheel\n * @slot gradient - a custom gradient visually outlining the available color values\n * @fires input - The value of the Color Wheel has changed.\n * @fires change - An alteration to the value of the Color Wheel has been committed by the user.\n */\nexport class ColorWheel extends Focusable {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: String, reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @property({ type: Boolean, reflect: true })\n public override disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n @query('.handle')\n private handle!: ColorHandle;\n\n @property({ type: String })\n public label = 'hue';\n\n @property({ type: Number })\n public step = 1;\n\n private languageResolver = new LanguageResolutionController(this);\n\n private colorController = new ColorController(this, { manageAs: 'hsv' });\n\n @property({ type: Number })\n public get value(): number {\n return this.colorController.hue;\n }\n\n public set value(hue: number) {\n this.colorController.hue = hue;\n }\n\n @property({ type: String })\n public get color(): ColorTypes {\n return this.colorController.colorValue;\n }\n\n public set color(color: ColorTypes) {\n this.colorController.color = color;\n }\n\n private _baseStep: number = 1; // Preserves user's value\n\n private set altered(altered: number) {\n this._altered = altered;\n // Don't modify anything here!\n }\n\n private get effectiveStep(): number {\n // Calculate on-the-fly without modifying stored values\n return this._altered > 0 ? this._baseStep * 10 : this._baseStep;\n }\n\n private _altered = 0;\n\n @query('input')\n public input!: HTMLInputElement;\n\n public override get focusElement(): HTMLInputElement {\n return this.input;\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n const { key } = event;\n this.focused = true;\n this.altered = [event.shiftKey, event.ctrlKey, event.altKey].filter(\n (key) => !!key\n ).length;\n let delta = 0;\n switch (key) {\n case 'ArrowUp':\n delta = this.effectiveStep;\n break;\n case 'ArrowDown':\n delta = -this.effectiveStep;\n break;\n case 'ArrowLeft':\n delta = this.effectiveStep * (this.isLTR ? -1 : 1);\n break;\n case 'ArrowRight':\n delta = this.effectiveStep * (this.isLTR ? 1 : -1);\n break;\n default:\n return;\n }\n event.preventDefault();\n this.value = (360 + this.value + delta) % 360;\n this.colorController.savePreviousColor();\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n }\n\n private handleInput(event: Event & { target: HTMLInputElement }): void {\n const { valueAsNumber } = event.target;\n\n this.value = valueAsNumber;\n }\n\n private handleChange(event: Event & { target: HTMLInputElement }): void {\n this.handleInput(event);\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public override focus(focusOptions: FocusOptions = {}): void {\n super.focus(focusOptions);\n this.forwardFocus();\n }\n\n private forwardFocus(): void {\n this.focused = this.hasVisibleFocusInTree();\n this.input.focus();\n }\n\n private handleFocus(): void {\n this.focused = true;\n }\n\n private handleBlur(): void {\n if (this._pointerDown) {\n return;\n }\n this.altered = 0;\n this.focused = false;\n }\n\n private boundingClientRect!: DOMRect;\n private _pointerDown = false;\n\n private handlePointerdown(event: PointerEvent): void {\n if (event.button !== 0) {\n event.preventDefault();\n return;\n }\n this._pointerDown = true;\n this.colorController.savePreviousColor();\n this.boundingClientRect = this.getBoundingClientRect();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n if (event.pointerType === 'mouse') {\n this.focused = true;\n }\n }\n\n private handlePointermove(event: PointerEvent): void {\n this.value = this.calculateHandlePosition(event);\n\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n private handlePointerup(event: PointerEvent): void {\n this._pointerDown = false;\n (event.target as HTMLElement).releasePointerCapture(event.pointerId);\n\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n // Retain focus on input element after mouse up to enable keyboard interactions\n this.focus();\n if (event.pointerType === 'mouse') {\n this.focused = false;\n }\n }\n\n /**\n * Returns the value under the cursor\n * @param: PointerEvent on slider\n * @return: Slider value that correlates to the position under the pointer\n */\n private calculateHandlePosition(event: PointerEvent): number {\n /* c8 ignore next 3 */\n if (!this.boundingClientRect) {\n return this.value;\n }\n const rect = this.boundingClientRect;\n const { width, height, left, top } = rect;\n const centerX = left + width / 2;\n const centerY = top + height / 2;\n const pointX = event.clientX - centerX;\n const pointY = event.clientY - centerY;\n const value = (Math.atan2(pointY, pointX) * 180) / Math.PI;\n\n return (360 + (360 + (this.isLTR ? value : 180 - value))) % 360;\n }\n\n private handleGradientPointerdown(event: PointerEvent): void {\n if (\n event.button !== 0 ||\n (event.target as SVGElement).classList.contains('innerCircle')\n ) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n const { button, pointerId, pointerType } = event;\n this.handle.dispatchEvent(\n new PointerEvent('pointerdown', {\n button,\n pointerId,\n pointerType,\n })\n );\n this.handlePointermove(event);\n }\n\n calculateStyleData(): {\n clipPath: string;\n clipPathBorders: string;\n diameter: number;\n handleLocationStyles: string;\n } {\n // Extract values from element.\n const { width: diameter = 160 } = this.boundingClientRect || {};\n const styles = getComputedStyle(this);\n const borderWidth = parseFloat(\n styles.getPropertyValue('--_border-width')\n );\n const trackWidth = parseFloat(\n styles.getPropertyValue('--_track-width')\n );\n\n // Calculate wheel data.\n const radius = diameter / 2;\n const diameterAfterBoarder = diameter - borderWidth * 2;\n const radiusAfterBoarder = radius - borderWidth;\n const innerRadius = radius - trackWidth;\n const innerDiameter = innerRadius * 2;\n const innerRadiusAfterBorder = innerRadius + borderWidth;\n const innerDiameterAfterBorder = innerDiameter + borderWidth * 2;\n const clipPathBorders = `\"M ${radius} ${radius} m -${radius} 0 a ${radius} ${radius} 0 1 0 ${diameter} 0 a ${radius} ${radius} 0 1 0 -${diameter} 0 M ${radius} ${radius} m -${innerRadius} 0 a ${innerRadius} ${innerRadius} 0 1 0 ${innerDiameter} 0 a ${innerRadius} ${innerRadius} 0 1 0 -${innerDiameter} 0\"`;\n const clipPath = `\"M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${radiusAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 ${diameterAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 -${diameterAfterBoarder} 0 M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${innerRadiusAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 ${innerDiameterAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 -${innerDiameterAfterBorder} 0\"`;\n\n // Calculate handle position on the wheel.\n const translateX =\n (this.isLTR ? 1 : -1) *\n (radius - trackWidth / 2) *\n Math.cos((this.value * Math.PI) / 180);\n const translateY =\n (radius - trackWidth / 2) * Math.sin((this.value * Math.PI) / 180);\n const handleLocationStyles = `transform: translate(${translateX}px, ${translateY}px);`;\n\n return {\n clipPath,\n clipPathBorders,\n diameter,\n handleLocationStyles,\n };\n }\n\n protected override render(): TemplateResult {\n const { clipPath, clipPathBorders, diameter, handleLocationStyles } =\n this.calculateStyleData();\n\n return html`\n <slot\n name=\"gradient\"\n @pointerdown=${this.handleGradientPointerdown}\n style=\"\n --spectrum-colorwheel-colorarea-container-size: ${diameter}px;\n --spectrum-colorwheel-height: ${diameter}px;\n --spectrum-colorwheel-width: ${diameter}px;\n --spectrum-colorwheel-path-borders: ${clipPathBorders};\n --spectrum-colorwheel-path: ${clipPath};\n \"\n >\n <div class=\"inner\">\n <div class=\"colorarea-container\"></div>\n </div>\n <div class=\"border\">\n <div class=\"wheel\"></div>\n </div>\n </slot>\n\n <sp-color-handle\n tabindex=${ifDefined(this.focused ? undefined : '0')}\n @focus=${this.forwardFocus}\n ?focused=${this.focused}\n class=\"handle\"\n color=\"hsl(${this.value}, 100%, 50%)\"\n ?disabled=${this.disabled}\n style=${handleLocationStyles}\n ${streamingListener({\n start: ['pointerdown', this.handlePointerdown],\n streamInside: ['pointermove', this.handlePointermove],\n end: [\n ['pointerup', 'pointercancel', 'pointerleave'],\n this.handlePointerup,\n ],\n })}\n ></sp-color-handle>\n\n <input\n type=\"range\"\n class=\"slider\"\n aria-label=${this.label}\n min=\"0\"\n max=\"360\"\n step=${this.step}\n .value=${String(this.value)}\n aria-valuetext=${`${new Intl.NumberFormat(\n this.languageResolver.language,\n {\n maximumFractionDigits: 0,\n minimumIntegerDigits: 1,\n style: 'unit',\n unit: 'degree',\n unitDisplay: 'narrow',\n }\n ).format(this.value)}`}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @keydown=${this.handleKeydown}\n />\n `;\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n this.boundingClientRect = this.getBoundingClientRect();\n this.addEventListener('focus', this.handleFocus);\n this.addEventListener('blur', this.handleBlur);\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('step')) {\n this._baseStep = this.step;\n }\n }\n\n private observer?: WithSWCResizeObserver['ResizeObserver'];\n\n public override connectedCallback(): void {\n super.connectedCallback();\n if (\n !this.observer &&\n (window as unknown as WithSWCResizeObserver).ResizeObserver\n ) {\n this.observer = new (\n window as unknown as WithSWCResizeObserver\n ).ResizeObserver((entries: SWCResizeObserverEntry[]) => {\n for (const entry of entries) {\n this.boundingClientRect = entry.contentRect;\n }\n this.requestUpdate();\n });\n }\n this.observer?.observe(this);\n }\n\n public override disconnectedCallback(): void {\n this.observer?.unobserve(this);\n super.disconnectedCallback();\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,OAGG;AACP
|
|
4
|
+
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport { streamingListener } from '@spectrum-web-components/base/src/streaming-listener.js';\nimport type { ColorHandle } from '@spectrum-web-components/color-handle';\nimport '@spectrum-web-components/color-handle/sp-color-handle.js';\nimport {\n ColorController,\n ColorTypes,\n} from '@spectrum-web-components/reactive-controllers/src/ColorController.js';\nimport { LanguageResolutionController } from '@spectrum-web-components/reactive-controllers/src/LanguageResolution.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\n\nimport styles from './color-wheel.css.js';\n\n/**\n * @element sp-color-wheel\n * @slot gradient - a custom gradient visually outlining the available color values\n * @fires input - The value of the Color Wheel has changed.\n * @fires change - An alteration to the value of the Color Wheel has been committed by the user.\n */\nexport class ColorWheel extends Focusable {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: String, reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @property({ type: Boolean, reflect: true })\n public override disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n @query('.handle')\n private handle!: ColorHandle;\n\n @property({ type: String })\n public label = 'hue';\n\n @property({ type: Number })\n public step = 1;\n\n private languageResolver = new LanguageResolutionController(this);\n\n private colorController = new ColorController(this, { manageAs: 'hsv' });\n\n @property({ type: Number })\n public get value(): number {\n return this.colorController.hue;\n }\n\n public set value(hue: number) {\n this.colorController.hue = hue;\n }\n\n @property({ type: String })\n public get color(): ColorTypes {\n return this.colorController.colorValue;\n }\n\n public set color(color: ColorTypes) {\n this.colorController.color = color;\n }\n\n private _baseStep: number = 1; // Preserves user's value\n\n private set altered(altered: number) {\n this._altered = altered;\n // Don't modify anything here!\n }\n\n private get effectiveStep(): number {\n // Calculate on-the-fly without modifying stored values\n return this._altered > 0 ? this._baseStep * 10 : this._baseStep;\n }\n\n private _altered = 0;\n\n @query('input')\n public input!: HTMLInputElement;\n\n public override get focusElement(): HTMLInputElement {\n return this.input;\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n const { key } = event;\n this.focused = true;\n this.altered = [event.shiftKey, event.ctrlKey, event.altKey].filter(\n (key) => !!key\n ).length;\n let delta = 0;\n switch (key) {\n case 'ArrowUp':\n delta = this.effectiveStep;\n break;\n case 'ArrowDown':\n delta = -this.effectiveStep;\n break;\n case 'ArrowLeft':\n delta = this.effectiveStep * (this.isLTR ? -1 : 1);\n break;\n case 'ArrowRight':\n delta = this.effectiveStep * (this.isLTR ? 1 : -1);\n break;\n default:\n return;\n }\n event.preventDefault();\n this.value = (360 + this.value + delta) % 360;\n this.colorController.savePreviousColor();\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n }\n\n private handleInput(event: Event & { target: HTMLInputElement }): void {\n const { valueAsNumber } = event.target;\n\n this.value = valueAsNumber;\n }\n\n private handleChange(event: Event & { target: HTMLInputElement }): void {\n this.handleInput(event);\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public override focus(focusOptions: FocusOptions = {}): void {\n super.focus(focusOptions);\n this.forwardFocus();\n }\n\n private forwardFocus(): void {\n this.focused = this.hasVisibleFocusInTree();\n this.input.focus();\n }\n\n private handleFocus(): void {\n this.focused = true;\n }\n\n private handleBlur(): void {\n if (this._pointerDown) {\n return;\n }\n this.altered = 0;\n this.focused = false;\n }\n\n private boundingClientRect!: DOMRect;\n private _pointerDown = false;\n\n private handlePointerdown(event: PointerEvent): void {\n if (event.button !== 0) {\n event.preventDefault();\n return;\n }\n this._pointerDown = true;\n this.colorController.savePreviousColor();\n this.boundingClientRect = this.getBoundingClientRect();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n if (event.pointerType === 'mouse') {\n this.focused = true;\n }\n }\n\n private handlePointermove(event: PointerEvent): void {\n this.value = this.calculateHandlePosition(event);\n\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n private handlePointerup(event: PointerEvent): void {\n this._pointerDown = false;\n (event.target as HTMLElement).releasePointerCapture(event.pointerId);\n\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n // Retain focus on input element after mouse up to enable keyboard interactions\n this.focus();\n if (event.pointerType === 'mouse') {\n this.focused = false;\n }\n }\n\n /**\n * Returns the value under the cursor\n * @param: PointerEvent on slider\n * @return: Slider value that correlates to the position under the pointer\n */\n private calculateHandlePosition(event: PointerEvent): number {\n /* c8 ignore next 3 */\n if (!this.boundingClientRect) {\n return this.value;\n }\n const rect = this.boundingClientRect;\n const { width, height, left, top } = rect;\n const centerX = left + width / 2;\n const centerY = top + height / 2;\n const pointX = event.clientX - centerX;\n const pointY = event.clientY - centerY;\n const value = (Math.atan2(pointY, pointX) * 180) / Math.PI;\n\n return (360 + (360 + (this.isLTR ? value : 180 - value))) % 360;\n }\n\n private handleGradientPointerdown(event: PointerEvent): void {\n if (\n event.button !== 0 ||\n (event.target as SVGElement).classList.contains('innerCircle')\n ) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n const { button, pointerId, pointerType } = event;\n this.handle.dispatchEvent(\n new PointerEvent('pointerdown', {\n button,\n pointerId,\n pointerType,\n })\n );\n this.handlePointermove(event);\n }\n\n calculateStyleData(): {\n clipPath: string;\n clipPathBorders: string;\n diameter: number;\n handleLocationStyles: string;\n } {\n // Extract values from element.\n const { width: diameter = 160 } = this.boundingClientRect || {};\n const styles = getComputedStyle(this);\n const borderWidth = parseFloat(\n styles.getPropertyValue('--_border-width')\n );\n const trackWidth = parseFloat(\n styles.getPropertyValue('--_track-width')\n );\n\n // Calculate wheel data.\n const radius = diameter / 2;\n const diameterAfterBoarder = diameter - borderWidth * 2;\n const radiusAfterBoarder = radius - borderWidth;\n const innerRadius = radius - trackWidth;\n const innerDiameter = innerRadius * 2;\n const innerRadiusAfterBorder = innerRadius + borderWidth;\n const innerDiameterAfterBorder = innerDiameter + borderWidth * 2;\n const clipPathBorders = `\"M ${radius} ${radius} m -${radius} 0 a ${radius} ${radius} 0 1 0 ${diameter} 0 a ${radius} ${radius} 0 1 0 -${diameter} 0 M ${radius} ${radius} m -${innerRadius} 0 a ${innerRadius} ${innerRadius} 0 1 0 ${innerDiameter} 0 a ${innerRadius} ${innerRadius} 0 1 0 -${innerDiameter} 0\"`;\n const clipPath = `\"M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${radiusAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 ${diameterAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 -${diameterAfterBoarder} 0 M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${innerRadiusAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 ${innerDiameterAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 -${innerDiameterAfterBorder} 0\"`;\n\n // Calculate handle position on the wheel.\n const translateX =\n (this.isLTR ? 1 : -1) *\n (radius - trackWidth / 2) *\n Math.cos((this.value * Math.PI) / 180);\n const translateY =\n (radius - trackWidth / 2) * Math.sin((this.value * Math.PI) / 180);\n const handleLocationStyles = `transform: translate(${translateX}px, ${translateY}px);`;\n\n return {\n clipPath,\n clipPathBorders,\n diameter,\n handleLocationStyles,\n };\n }\n\n protected override render(): TemplateResult {\n const { clipPath, clipPathBorders, diameter, handleLocationStyles } =\n this.calculateStyleData();\n\n return html`\n <slot\n name=\"gradient\"\n @pointerdown=${this.handleGradientPointerdown}\n style=\"\n --spectrum-colorwheel-colorarea-container-size: ${diameter}px;\n --spectrum-colorwheel-height: ${diameter}px;\n --spectrum-colorwheel-width: ${diameter}px;\n --spectrum-colorwheel-path-borders: ${clipPathBorders};\n --spectrum-colorwheel-path: ${clipPath};\n \"\n >\n <div class=\"inner\">\n <div class=\"colorarea-container\"></div>\n </div>\n <div class=\"border\">\n <div class=\"wheel\"></div>\n </div>\n </slot>\n\n <sp-color-handle\n tabindex=${ifDefined(this.focused ? undefined : '0')}\n @focus=${this.forwardFocus}\n ?focused=${this.focused}\n class=\"handle\"\n color=\"hsl(${this.value}, 100%, 50%)\"\n ?disabled=${this.disabled}\n style=${handleLocationStyles}\n ${streamingListener({\n start: ['pointerdown', this.handlePointerdown],\n streamInside: ['pointermove', this.handlePointermove],\n end: [\n ['pointerup', 'pointercancel', 'pointerleave'],\n this.handlePointerup,\n ],\n })}\n ></sp-color-handle>\n\n <input\n type=\"range\"\n class=\"slider\"\n aria-label=${this.label}\n min=\"0\"\n max=\"360\"\n step=${this.step}\n .value=${String(this.value)}\n aria-valuetext=${`${new Intl.NumberFormat(\n this.languageResolver.language,\n {\n maximumFractionDigits: 0,\n minimumIntegerDigits: 1,\n style: 'unit',\n unit: 'degree',\n unitDisplay: 'narrow',\n }\n ).format(this.value)}`}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @keydown=${this.handleKeydown}\n />\n `;\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n this.boundingClientRect = this.getBoundingClientRect();\n this.addEventListener('focus', this.handleFocus);\n this.addEventListener('blur', this.handleBlur);\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('step')) {\n this._baseStep = this.step;\n }\n }\n\n private observer?: ResizeObserver;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n if (!this.observer && window.ResizeObserver) {\n this.observer = new ResizeObserver((entries) => {\n requestAnimationFrame(() => {\n for (const entry of entries) {\n this.boundingClientRect = entry.contentRect;\n }\n this.requestUpdate();\n });\n });\n }\n this.observer?.observe(this);\n }\n\n public override disconnectedCallback(): void {\n this.observer?.unobserve(this);\n super.disconnectedCallback();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["key", "styles"]
|
|
7
7
|
}
|
package/src/ColorWheel.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var w=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var n=(v,u,e,i)=>{for(var t=i>1?void 0:i?P(u,e):u,o=v.length-1,r;o>=0;o--)(r=v[o])&&(t=(i?r(u,e,t):r(t))||t);return i&&t&&w(u,e,t),t};import{html as C}from"@spectrum-web-components/base";import{property as c,query as b}from"@spectrum-web-components/base/src/decorators.js";import{ifDefined as E}from"@spectrum-web-components/base/src/directives.js";import{streamingListener as R}from"@spectrum-web-components/base/src/streaming-listener.js";import"@spectrum-web-components/color-handle/sp-color-handle.js";import{ColorController as S}from"@spectrum-web-components/reactive-controllers/src/ColorController.js";import{LanguageResolutionController as D}from"@spectrum-web-components/reactive-controllers/src/LanguageResolution.js";import{Focusable as L}from"@spectrum-web-components/shared/src/focusable.js";import T from"./color-wheel.css.js";export class ColorWheel extends L{constructor(){super(...arguments);this.disabled=!1;this.focused=!1;this.label="hue";this.step=1;this.languageResolver=new D(this);this.colorController=new S(this,{manageAs:"hsv"});this._baseStep=1;this._altered=0;this._pointerDown=!1}static get styles(){return[T]}get value(){return this.colorController.hue}set value(e){this.colorController.hue=e}get color(){return this.colorController.colorValue}set color(e){this.colorController.color=e}set altered(e){this._altered=e}get effectiveStep(){return this._altered>0?this._baseStep*10:this._baseStep}get focusElement(){return this.input}handleKeydown(e){const{key:i}=e;this.focused=!0,this.altered=[e.shiftKey,e.ctrlKey,e.altKey].filter(r=>!!r).length;let t=0;switch(i){case"ArrowUp":t=this.effectiveStep;break;case"ArrowDown":t=-this.effectiveStep;break;case"ArrowLeft":t=this.effectiveStep*(this.isLTR?-1:1);break;case"ArrowRight":t=this.effectiveStep*(this.isLTR?1:-1);break;default:return}e.preventDefault(),this.value=(360+this.value+t)%360,this.colorController.savePreviousColor(),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0,cancelable:!0}))||this.colorController.restorePreviousColor()}handleInput(e){const{valueAsNumber:i}=e.target;this.value=i}handleChange(e){this.handleInput(e),this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))}focus(e={}){super.focus(e),this.forwardFocus()}forwardFocus(){this.focused=this.hasVisibleFocusInTree(),this.input.focus()}handleFocus(){this.focused=!0}handleBlur(){this._pointerDown||(this.altered=0,this.focused=!1)}handlePointerdown(e){if(e.button!==0){e.preventDefault();return}this._pointerDown=!0,this.colorController.savePreviousColor(),this.boundingClientRect=this.getBoundingClientRect(),e.target.setPointerCapture(e.pointerId),e.pointerType==="mouse"&&(this.focused=!0)}handlePointermove(e){this.value=this.calculateHandlePosition(e),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0,cancelable:!0}))}handlePointerup(e){this._pointerDown=!1,e.target.releasePointerCapture(e.pointerId),this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0,cancelable:!0}))||this.colorController.restorePreviousColor(),this.focus(),e.pointerType==="mouse"&&(this.focused=!1)}calculateHandlePosition(e){if(!this.boundingClientRect)return this.value;const i=this.boundingClientRect,{width:t,height:o,left:r,top:h}=i,s=r+t/2,a=h+o/2,d=e.clientX-s,l=e.clientY-a,p=Math.atan2(l,d)*180/Math.PI;return(360+(360+(this.isLTR?p:180-p)))%360}handleGradientPointerdown(e){if(e.button!==0||e.target.classList.contains("innerCircle"))return;e.stopPropagation(),e.preventDefault();const{button:i,pointerId:t,pointerType:o}=e;this.handle.dispatchEvent(new PointerEvent("pointerdown",{button:i,pointerId:t,pointerType:o})),this.handlePointermove(e)}calculateStyleData(){const{width:e=160}=this.boundingClientRect||{},i=getComputedStyle(this),t=parseFloat(i.getPropertyValue("--_border-width")),o=parseFloat(i.getPropertyValue("--_track-width")),r=e/2,h=e-t*2,s=r-t,a=r-o,d=a*2,l=a+t,p=d+t*2,m=`"M ${r} ${r} m -${r} 0 a ${r} ${r} 0 1 0 ${e} 0 a ${r} ${r} 0 1 0 -${e} 0 M ${r} ${r} m -${a} 0 a ${a} ${a} 0 1 0 ${d} 0 a ${a} ${a} 0 1 0 -${d} 0"`,f=`"M ${s} ${s} m -${s} 0 a ${s} ${s} 0 1 0 ${h} 0 a ${s} ${s} 0 1 0 -${h} 0 M ${s} ${s} m -${l} 0 a ${l} ${l} 0 1 0 ${p} 0 a ${l} ${l} 0 1 0 -${p} 0"`,g=(this.isLTR?1:-1)*(r-o/2)*Math.cos(this.value*Math.PI/180),$=(r-o/2)*Math.sin(this.value*Math.PI/180),y=`transform: translate(${g}px, ${$}px);`;return{clipPath:f,clipPathBorders:m,diameter:e,handleLocationStyles:y}}render(){const{clipPath:e,clipPathBorders:i,diameter:t,handleLocationStyles:o}=this.calculateStyleData();return C`
|
|
2
2
|
<slot
|
|
3
3
|
name="gradient"
|
|
4
4
|
@pointerdown=${this.handleGradientPointerdown}
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
</slot>
|
|
20
20
|
|
|
21
21
|
<sp-color-handle
|
|
22
|
-
tabindex=${
|
|
22
|
+
tabindex=${E(this.focused?void 0:"0")}
|
|
23
23
|
@focus=${this.forwardFocus}
|
|
24
24
|
?focused=${this.focused}
|
|
25
25
|
class="handle"
|
|
26
26
|
color="hsl(${this.value}, 100%, 50%)"
|
|
27
27
|
?disabled=${this.disabled}
|
|
28
|
-
style=${
|
|
29
|
-
${
|
|
28
|
+
style=${o}
|
|
29
|
+
${R({start:["pointerdown",this.handlePointerdown],streamInside:["pointermove",this.handlePointermove],end:[["pointerup","pointercancel","pointerleave"],this.handlePointerup]})}
|
|
30
30
|
></sp-color-handle>
|
|
31
31
|
|
|
32
32
|
<input
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
@change=${this.handleChange}
|
|
43
43
|
@keydown=${this.handleKeydown}
|
|
44
44
|
/>
|
|
45
|
-
`}firstUpdated(e){super.firstUpdated(e),this.boundingClientRect=this.getBoundingClientRect(),this.addEventListener("focus",this.handleFocus),this.addEventListener("blur",this.handleBlur)}willUpdate(e){e.has("step")&&(this._baseStep=this.step)}connectedCallback(){var e;super.connectedCallback(),!this.observer&&window.ResizeObserver&&(this.observer=new
|
|
45
|
+
`}firstUpdated(e){super.firstUpdated(e),this.boundingClientRect=this.getBoundingClientRect(),this.addEventListener("focus",this.handleFocus),this.addEventListener("blur",this.handleBlur)}willUpdate(e){e.has("step")&&(this._baseStep=this.step)}connectedCallback(){var e;super.connectedCallback(),!this.observer&&window.ResizeObserver&&(this.observer=new ResizeObserver(i=>{requestAnimationFrame(()=>{for(const t of i)this.boundingClientRect=t.contentRect;this.requestUpdate()})})),(e=this.observer)==null||e.observe(this)}disconnectedCallback(){var e;(e=this.observer)==null||e.unobserve(this),super.disconnectedCallback()}}n([c({type:String,reflect:!0})],ColorWheel.prototype,"dir",2),n([c({type:Boolean,reflect:!0})],ColorWheel.prototype,"disabled",2),n([c({type:Boolean,reflect:!0})],ColorWheel.prototype,"focused",2),n([b(".handle")],ColorWheel.prototype,"handle",2),n([c({type:String})],ColorWheel.prototype,"label",2),n([c({type:Number})],ColorWheel.prototype,"step",2),n([c({type:Number})],ColorWheel.prototype,"value",1),n([c({type:String})],ColorWheel.prototype,"color",1),n([b("input")],ColorWheel.prototype,"input",2);
|
|
46
46
|
//# sourceMappingURL=ColorWheel.js.map
|
package/src/ColorWheel.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["ColorWheel.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { streamingListener } from '@spectrum-web-components/base/src/streaming-listener.js';\nimport { SWCResizeObserverEntry, WithSWCResizeObserver } from './types';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport type { ColorHandle } from '@spectrum-web-components/color-handle';\nimport '@spectrum-web-components/color-handle/sp-color-handle.js';\nimport {\n ColorController,\n ColorTypes,\n} from '@spectrum-web-components/reactive-controllers/src/ColorController.js';\nimport { LanguageResolutionController } from '@spectrum-web-components/reactive-controllers/src/LanguageResolution.js';\n\nimport styles from './color-wheel.css.js';\n\n/**\n * @element sp-color-wheel\n * @slot gradient - a custom gradient visually outlining the available color values\n * @fires input - The value of the Color Wheel has changed.\n * @fires change - An alteration to the value of the Color Wheel has been committed by the user.\n */\nexport class ColorWheel extends Focusable {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: String, reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @property({ type: Boolean, reflect: true })\n public override disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n @query('.handle')\n private handle!: ColorHandle;\n\n @property({ type: String })\n public label = 'hue';\n\n @property({ type: Number })\n public step = 1;\n\n private languageResolver = new LanguageResolutionController(this);\n\n private colorController = new ColorController(this, { manageAs: 'hsv' });\n\n @property({ type: Number })\n public get value(): number {\n return this.colorController.hue;\n }\n\n public set value(hue: number) {\n this.colorController.hue = hue;\n }\n\n @property({ type: String })\n public get color(): ColorTypes {\n return this.colorController.colorValue;\n }\n\n public set color(color: ColorTypes) {\n this.colorController.color = color;\n }\n\n private _baseStep: number = 1; // Preserves user's value\n\n private set altered(altered: number) {\n this._altered = altered;\n // Don't modify anything here!\n }\n\n private get effectiveStep(): number {\n // Calculate on-the-fly without modifying stored values\n return this._altered > 0 ? this._baseStep * 10 : this._baseStep;\n }\n\n private _altered = 0;\n\n @query('input')\n public input!: HTMLInputElement;\n\n public override get focusElement(): HTMLInputElement {\n return this.input;\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n const { key } = event;\n this.focused = true;\n this.altered = [event.shiftKey, event.ctrlKey, event.altKey].filter(\n (key) => !!key\n ).length;\n let delta = 0;\n switch (key) {\n case 'ArrowUp':\n delta = this.effectiveStep;\n break;\n case 'ArrowDown':\n delta = -this.effectiveStep;\n break;\n case 'ArrowLeft':\n delta = this.effectiveStep * (this.isLTR ? -1 : 1);\n break;\n case 'ArrowRight':\n delta = this.effectiveStep * (this.isLTR ? 1 : -1);\n break;\n default:\n return;\n }\n event.preventDefault();\n this.value = (360 + this.value + delta) % 360;\n this.colorController.savePreviousColor();\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n }\n\n private handleInput(event: Event & { target: HTMLInputElement }): void {\n const { valueAsNumber } = event.target;\n\n this.value = valueAsNumber;\n }\n\n private handleChange(event: Event & { target: HTMLInputElement }): void {\n this.handleInput(event);\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public override focus(focusOptions: FocusOptions = {}): void {\n super.focus(focusOptions);\n this.forwardFocus();\n }\n\n private forwardFocus(): void {\n this.focused = this.hasVisibleFocusInTree();\n this.input.focus();\n }\n\n private handleFocus(): void {\n this.focused = true;\n }\n\n private handleBlur(): void {\n if (this._pointerDown) {\n return;\n }\n this.altered = 0;\n this.focused = false;\n }\n\n private boundingClientRect!: DOMRect;\n private _pointerDown = false;\n\n private handlePointerdown(event: PointerEvent): void {\n if (event.button !== 0) {\n event.preventDefault();\n return;\n }\n this._pointerDown = true;\n this.colorController.savePreviousColor();\n this.boundingClientRect = this.getBoundingClientRect();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n if (event.pointerType === 'mouse') {\n this.focused = true;\n }\n }\n\n private handlePointermove(event: PointerEvent): void {\n this.value = this.calculateHandlePosition(event);\n\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n private handlePointerup(event: PointerEvent): void {\n this._pointerDown = false;\n (event.target as HTMLElement).releasePointerCapture(event.pointerId);\n\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n // Retain focus on input element after mouse up to enable keyboard interactions\n this.focus();\n if (event.pointerType === 'mouse') {\n this.focused = false;\n }\n }\n\n /**\n * Returns the value under the cursor\n * @param: PointerEvent on slider\n * @return: Slider value that correlates to the position under the pointer\n */\n private calculateHandlePosition(event: PointerEvent): number {\n /* c8 ignore next 3 */\n if (!this.boundingClientRect) {\n return this.value;\n }\n const rect = this.boundingClientRect;\n const { width, height, left, top } = rect;\n const centerX = left + width / 2;\n const centerY = top + height / 2;\n const pointX = event.clientX - centerX;\n const pointY = event.clientY - centerY;\n const value = (Math.atan2(pointY, pointX) * 180) / Math.PI;\n\n return (360 + (360 + (this.isLTR ? value : 180 - value))) % 360;\n }\n\n private handleGradientPointerdown(event: PointerEvent): void {\n if (\n event.button !== 0 ||\n (event.target as SVGElement).classList.contains('innerCircle')\n ) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n const { button, pointerId, pointerType } = event;\n this.handle.dispatchEvent(\n new PointerEvent('pointerdown', {\n button,\n pointerId,\n pointerType,\n })\n );\n this.handlePointermove(event);\n }\n\n calculateStyleData(): {\n clipPath: string;\n clipPathBorders: string;\n diameter: number;\n handleLocationStyles: string;\n } {\n // Extract values from element.\n const { width: diameter = 160 } = this.boundingClientRect || {};\n const styles = getComputedStyle(this);\n const borderWidth = parseFloat(\n styles.getPropertyValue('--_border-width')\n );\n const trackWidth = parseFloat(\n styles.getPropertyValue('--_track-width')\n );\n\n // Calculate wheel data.\n const radius = diameter / 2;\n const diameterAfterBoarder = diameter - borderWidth * 2;\n const radiusAfterBoarder = radius - borderWidth;\n const innerRadius = radius - trackWidth;\n const innerDiameter = innerRadius * 2;\n const innerRadiusAfterBorder = innerRadius + borderWidth;\n const innerDiameterAfterBorder = innerDiameter + borderWidth * 2;\n const clipPathBorders = `\"M ${radius} ${radius} m -${radius} 0 a ${radius} ${radius} 0 1 0 ${diameter} 0 a ${radius} ${radius} 0 1 0 -${diameter} 0 M ${radius} ${radius} m -${innerRadius} 0 a ${innerRadius} ${innerRadius} 0 1 0 ${innerDiameter} 0 a ${innerRadius} ${innerRadius} 0 1 0 -${innerDiameter} 0\"`;\n const clipPath = `\"M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${radiusAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 ${diameterAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 -${diameterAfterBoarder} 0 M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${innerRadiusAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 ${innerDiameterAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 -${innerDiameterAfterBorder} 0\"`;\n\n // Calculate handle position on the wheel.\n const translateX =\n (this.isLTR ? 1 : -1) *\n (radius - trackWidth / 2) *\n Math.cos((this.value * Math.PI) / 180);\n const translateY =\n (radius - trackWidth / 2) * Math.sin((this.value * Math.PI) / 180);\n const handleLocationStyles = `transform: translate(${translateX}px, ${translateY}px);`;\n\n return {\n clipPath,\n clipPathBorders,\n diameter,\n handleLocationStyles,\n };\n }\n\n protected override render(): TemplateResult {\n const { clipPath, clipPathBorders, diameter, handleLocationStyles } =\n this.calculateStyleData();\n\n return html`\n <slot\n name=\"gradient\"\n @pointerdown=${this.handleGradientPointerdown}\n style=\"\n --spectrum-colorwheel-colorarea-container-size: ${diameter}px;\n --spectrum-colorwheel-height: ${diameter}px;\n --spectrum-colorwheel-width: ${diameter}px;\n --spectrum-colorwheel-path-borders: ${clipPathBorders};\n --spectrum-colorwheel-path: ${clipPath};\n \"\n >\n <div class=\"inner\">\n <div class=\"colorarea-container\"></div>\n </div>\n <div class=\"border\">\n <div class=\"wheel\"></div>\n </div>\n </slot>\n\n <sp-color-handle\n tabindex=${ifDefined(this.focused ? undefined : '0')}\n @focus=${this.forwardFocus}\n ?focused=${this.focused}\n class=\"handle\"\n color=\"hsl(${this.value}, 100%, 50%)\"\n ?disabled=${this.disabled}\n style=${handleLocationStyles}\n ${streamingListener({\n start: ['pointerdown', this.handlePointerdown],\n streamInside: ['pointermove', this.handlePointermove],\n end: [\n ['pointerup', 'pointercancel', 'pointerleave'],\n this.handlePointerup,\n ],\n })}\n ></sp-color-handle>\n\n <input\n type=\"range\"\n class=\"slider\"\n aria-label=${this.label}\n min=\"0\"\n max=\"360\"\n step=${this.step}\n .value=${String(this.value)}\n aria-valuetext=${`${new Intl.NumberFormat(\n this.languageResolver.language,\n {\n maximumFractionDigits: 0,\n minimumIntegerDigits: 1,\n style: 'unit',\n unit: 'degree',\n unitDisplay: 'narrow',\n }\n ).format(this.value)}`}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @keydown=${this.handleKeydown}\n />\n `;\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n this.boundingClientRect = this.getBoundingClientRect();\n this.addEventListener('focus', this.handleFocus);\n this.addEventListener('blur', this.handleBlur);\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('step')) {\n this._baseStep = this.step;\n }\n }\n\n private observer?: WithSWCResizeObserver['ResizeObserver'];\n\n public override connectedCallback(): void {\n super.connectedCallback();\n if (\n !this.observer &&\n (window as unknown as WithSWCResizeObserver).ResizeObserver\n ) {\n this.observer = new (\n window as unknown as WithSWCResizeObserver\n ).ResizeObserver((entries: SWCResizeObserverEntry[]) => {\n for (const entry of entries) {\n this.boundingClientRect = entry.contentRect;\n }\n this.requestUpdate();\n });\n }\n this.observer?.observe(this);\n }\n\n public override disconnectedCallback(): void {\n this.observer?.unobserve(this);\n super.disconnectedCallback();\n }\n}\n"],
|
|
5
|
-
"mappings": "qNAYA,OAEI,QAAAA,MAGG,gCACP,
|
|
6
|
-
"names": ["html", "
|
|
4
|
+
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport { streamingListener } from '@spectrum-web-components/base/src/streaming-listener.js';\nimport type { ColorHandle } from '@spectrum-web-components/color-handle';\nimport '@spectrum-web-components/color-handle/sp-color-handle.js';\nimport {\n ColorController,\n ColorTypes,\n} from '@spectrum-web-components/reactive-controllers/src/ColorController.js';\nimport { LanguageResolutionController } from '@spectrum-web-components/reactive-controllers/src/LanguageResolution.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\n\nimport styles from './color-wheel.css.js';\n\n/**\n * @element sp-color-wheel\n * @slot gradient - a custom gradient visually outlining the available color values\n * @fires input - The value of the Color Wheel has changed.\n * @fires change - An alteration to the value of the Color Wheel has been committed by the user.\n */\nexport class ColorWheel extends Focusable {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: String, reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @property({ type: Boolean, reflect: true })\n public override disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n @query('.handle')\n private handle!: ColorHandle;\n\n @property({ type: String })\n public label = 'hue';\n\n @property({ type: Number })\n public step = 1;\n\n private languageResolver = new LanguageResolutionController(this);\n\n private colorController = new ColorController(this, { manageAs: 'hsv' });\n\n @property({ type: Number })\n public get value(): number {\n return this.colorController.hue;\n }\n\n public set value(hue: number) {\n this.colorController.hue = hue;\n }\n\n @property({ type: String })\n public get color(): ColorTypes {\n return this.colorController.colorValue;\n }\n\n public set color(color: ColorTypes) {\n this.colorController.color = color;\n }\n\n private _baseStep: number = 1; // Preserves user's value\n\n private set altered(altered: number) {\n this._altered = altered;\n // Don't modify anything here!\n }\n\n private get effectiveStep(): number {\n // Calculate on-the-fly without modifying stored values\n return this._altered > 0 ? this._baseStep * 10 : this._baseStep;\n }\n\n private _altered = 0;\n\n @query('input')\n public input!: HTMLInputElement;\n\n public override get focusElement(): HTMLInputElement {\n return this.input;\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n const { key } = event;\n this.focused = true;\n this.altered = [event.shiftKey, event.ctrlKey, event.altKey].filter(\n (key) => !!key\n ).length;\n let delta = 0;\n switch (key) {\n case 'ArrowUp':\n delta = this.effectiveStep;\n break;\n case 'ArrowDown':\n delta = -this.effectiveStep;\n break;\n case 'ArrowLeft':\n delta = this.effectiveStep * (this.isLTR ? -1 : 1);\n break;\n case 'ArrowRight':\n delta = this.effectiveStep * (this.isLTR ? 1 : -1);\n break;\n default:\n return;\n }\n event.preventDefault();\n this.value = (360 + this.value + delta) % 360;\n this.colorController.savePreviousColor();\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n }\n\n private handleInput(event: Event & { target: HTMLInputElement }): void {\n const { valueAsNumber } = event.target;\n\n this.value = valueAsNumber;\n }\n\n private handleChange(event: Event & { target: HTMLInputElement }): void {\n this.handleInput(event);\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public override focus(focusOptions: FocusOptions = {}): void {\n super.focus(focusOptions);\n this.forwardFocus();\n }\n\n private forwardFocus(): void {\n this.focused = this.hasVisibleFocusInTree();\n this.input.focus();\n }\n\n private handleFocus(): void {\n this.focused = true;\n }\n\n private handleBlur(): void {\n if (this._pointerDown) {\n return;\n }\n this.altered = 0;\n this.focused = false;\n }\n\n private boundingClientRect!: DOMRect;\n private _pointerDown = false;\n\n private handlePointerdown(event: PointerEvent): void {\n if (event.button !== 0) {\n event.preventDefault();\n return;\n }\n this._pointerDown = true;\n this.colorController.savePreviousColor();\n this.boundingClientRect = this.getBoundingClientRect();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n if (event.pointerType === 'mouse') {\n this.focused = true;\n }\n }\n\n private handlePointermove(event: PointerEvent): void {\n this.value = this.calculateHandlePosition(event);\n\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n private handlePointerup(event: PointerEvent): void {\n this._pointerDown = false;\n (event.target as HTMLElement).releasePointerCapture(event.pointerId);\n\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n if (!applyDefault) {\n this.colorController.restorePreviousColor();\n }\n // Retain focus on input element after mouse up to enable keyboard interactions\n this.focus();\n if (event.pointerType === 'mouse') {\n this.focused = false;\n }\n }\n\n /**\n * Returns the value under the cursor\n * @param: PointerEvent on slider\n * @return: Slider value that correlates to the position under the pointer\n */\n private calculateHandlePosition(event: PointerEvent): number {\n /* c8 ignore next 3 */\n if (!this.boundingClientRect) {\n return this.value;\n }\n const rect = this.boundingClientRect;\n const { width, height, left, top } = rect;\n const centerX = left + width / 2;\n const centerY = top + height / 2;\n const pointX = event.clientX - centerX;\n const pointY = event.clientY - centerY;\n const value = (Math.atan2(pointY, pointX) * 180) / Math.PI;\n\n return (360 + (360 + (this.isLTR ? value : 180 - value))) % 360;\n }\n\n private handleGradientPointerdown(event: PointerEvent): void {\n if (\n event.button !== 0 ||\n (event.target as SVGElement).classList.contains('innerCircle')\n ) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n const { button, pointerId, pointerType } = event;\n this.handle.dispatchEvent(\n new PointerEvent('pointerdown', {\n button,\n pointerId,\n pointerType,\n })\n );\n this.handlePointermove(event);\n }\n\n calculateStyleData(): {\n clipPath: string;\n clipPathBorders: string;\n diameter: number;\n handleLocationStyles: string;\n } {\n // Extract values from element.\n const { width: diameter = 160 } = this.boundingClientRect || {};\n const styles = getComputedStyle(this);\n const borderWidth = parseFloat(\n styles.getPropertyValue('--_border-width')\n );\n const trackWidth = parseFloat(\n styles.getPropertyValue('--_track-width')\n );\n\n // Calculate wheel data.\n const radius = diameter / 2;\n const diameterAfterBoarder = diameter - borderWidth * 2;\n const radiusAfterBoarder = radius - borderWidth;\n const innerRadius = radius - trackWidth;\n const innerDiameter = innerRadius * 2;\n const innerRadiusAfterBorder = innerRadius + borderWidth;\n const innerDiameterAfterBorder = innerDiameter + borderWidth * 2;\n const clipPathBorders = `\"M ${radius} ${radius} m -${radius} 0 a ${radius} ${radius} 0 1 0 ${diameter} 0 a ${radius} ${radius} 0 1 0 -${diameter} 0 M ${radius} ${radius} m -${innerRadius} 0 a ${innerRadius} ${innerRadius} 0 1 0 ${innerDiameter} 0 a ${innerRadius} ${innerRadius} 0 1 0 -${innerDiameter} 0\"`;\n const clipPath = `\"M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${radiusAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 ${diameterAfterBoarder} 0 a ${radiusAfterBoarder} ${radiusAfterBoarder} 0 1 0 -${diameterAfterBoarder} 0 M ${radiusAfterBoarder} ${radiusAfterBoarder} m -${innerRadiusAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 ${innerDiameterAfterBorder} 0 a ${innerRadiusAfterBorder} ${innerRadiusAfterBorder} 0 1 0 -${innerDiameterAfterBorder} 0\"`;\n\n // Calculate handle position on the wheel.\n const translateX =\n (this.isLTR ? 1 : -1) *\n (radius - trackWidth / 2) *\n Math.cos((this.value * Math.PI) / 180);\n const translateY =\n (radius - trackWidth / 2) * Math.sin((this.value * Math.PI) / 180);\n const handleLocationStyles = `transform: translate(${translateX}px, ${translateY}px);`;\n\n return {\n clipPath,\n clipPathBorders,\n diameter,\n handleLocationStyles,\n };\n }\n\n protected override render(): TemplateResult {\n const { clipPath, clipPathBorders, diameter, handleLocationStyles } =\n this.calculateStyleData();\n\n return html`\n <slot\n name=\"gradient\"\n @pointerdown=${this.handleGradientPointerdown}\n style=\"\n --spectrum-colorwheel-colorarea-container-size: ${diameter}px;\n --spectrum-colorwheel-height: ${diameter}px;\n --spectrum-colorwheel-width: ${diameter}px;\n --spectrum-colorwheel-path-borders: ${clipPathBorders};\n --spectrum-colorwheel-path: ${clipPath};\n \"\n >\n <div class=\"inner\">\n <div class=\"colorarea-container\"></div>\n </div>\n <div class=\"border\">\n <div class=\"wheel\"></div>\n </div>\n </slot>\n\n <sp-color-handle\n tabindex=${ifDefined(this.focused ? undefined : '0')}\n @focus=${this.forwardFocus}\n ?focused=${this.focused}\n class=\"handle\"\n color=\"hsl(${this.value}, 100%, 50%)\"\n ?disabled=${this.disabled}\n style=${handleLocationStyles}\n ${streamingListener({\n start: ['pointerdown', this.handlePointerdown],\n streamInside: ['pointermove', this.handlePointermove],\n end: [\n ['pointerup', 'pointercancel', 'pointerleave'],\n this.handlePointerup,\n ],\n })}\n ></sp-color-handle>\n\n <input\n type=\"range\"\n class=\"slider\"\n aria-label=${this.label}\n min=\"0\"\n max=\"360\"\n step=${this.step}\n .value=${String(this.value)}\n aria-valuetext=${`${new Intl.NumberFormat(\n this.languageResolver.language,\n {\n maximumFractionDigits: 0,\n minimumIntegerDigits: 1,\n style: 'unit',\n unit: 'degree',\n unitDisplay: 'narrow',\n }\n ).format(this.value)}`}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @keydown=${this.handleKeydown}\n />\n `;\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n this.boundingClientRect = this.getBoundingClientRect();\n this.addEventListener('focus', this.handleFocus);\n this.addEventListener('blur', this.handleBlur);\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('step')) {\n this._baseStep = this.step;\n }\n }\n\n private observer?: ResizeObserver;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n if (!this.observer && window.ResizeObserver) {\n this.observer = new ResizeObserver((entries) => {\n requestAnimationFrame(() => {\n for (const entry of entries) {\n this.boundingClientRect = entry.contentRect;\n }\n this.requestUpdate();\n });\n });\n }\n this.observer?.observe(this);\n }\n\n public override disconnectedCallback(): void {\n this.observer?.unobserve(this);\n super.disconnectedCallback();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["html", "property", "query", "ifDefined", "streamingListener", "ColorController", "LanguageResolutionController", "Focusable", "styles", "hue", "color", "altered", "event", "key", "delta", "valueAsNumber", "focusOptions", "rect", "width", "height", "left", "top", "centerX", "centerY", "pointX", "pointY", "value", "button", "pointerId", "pointerType", "diameter", "borderWidth", "trackWidth", "radius", "diameterAfterBoarder", "radiusAfterBoarder", "innerRadius", "innerDiameter", "innerRadiusAfterBorder", "innerDiameterAfterBorder", "clipPathBorders", "clipPath", "translateX", "translateY", "handleLocationStyles", "changed", "_a", "entries", "entry", "__decorateClass"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { css } from "@spectrum-web-components/base";
|
|
3
3
|
const styles = css`
|
|
4
|
-
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
4
|
+
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}:host{--spectrum-colorwheel-border-color:var(--system-color-wheel-border-color)}:host{touch-action:none}:host(:focus){outline:none}::slotted([slot=gradient]){border-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));border-style:solid;border-width:var(--_border-width);box-sizing:border-box;block-size:var(--mod-colorwheel-height,var(--spectrum-colorwheel-height));inline-size:var(--mod-colorwheel-width,var(--spectrum-colorwheel-width));z-index:0;border-radius:100%;position:relative}:host([dir=rtl]) .wheel,:host([dir=rtl]) ::slotted([slot=gradient]){transform:scaleX(-1)}
|
|
5
5
|
`;
|
|
6
6
|
export default styles;
|
|
7
7
|
//# sourceMappingURL=color-wheel.css.dev.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["color-wheel.css.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
4
|
+
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}:host{--spectrum-colorwheel-border-color:var(--system-color-wheel-border-color)}:host{touch-action:none}:host(:focus){outline:none}::slotted([slot=gradient]){border-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));border-style:solid;border-width:var(--_border-width);box-sizing:border-box;block-size:var(--mod-colorwheel-height,var(--spectrum-colorwheel-height));inline-size:var(--mod-colorwheel-width,var(--spectrum-colorwheel-width));z-index:0;border-radius:100%;position:relative}:host([dir=rtl]) .wheel,:host([dir=rtl]) ::slotted([slot=gradient]){transform:scaleX(-1)}\n`;\nexport default styles;"],
|
|
5
5
|
"mappings": ";AAWA,SAAS,WAAW;AACpB,MAAM,SAAS;AAAA;AAAA;AAGf,eAAe;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/src/color-wheel.css.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";import{css as e}from"@spectrum-web-components/base";const o=e`
|
|
2
|
-
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
2
|
+
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}:host{--spectrum-colorwheel-border-color:var(--system-color-wheel-border-color)}:host{touch-action:none}:host(:focus){outline:none}::slotted([slot=gradient]){border-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));border-style:solid;border-width:var(--_border-width);box-sizing:border-box;block-size:var(--mod-colorwheel-height,var(--spectrum-colorwheel-height));inline-size:var(--mod-colorwheel-width,var(--spectrum-colorwheel-width));z-index:0;border-radius:100%;position:relative}:host([dir=rtl]) .wheel,:host([dir=rtl]) ::slotted([slot=gradient]){transform:scaleX(-1)}
|
|
3
3
|
`;export default o;
|
|
4
4
|
//# sourceMappingURL=color-wheel.css.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["color-wheel.css.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
4
|
+
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}:host{--spectrum-colorwheel-border-color:var(--system-color-wheel-border-color)}:host{touch-action:none}:host(:focus){outline:none}::slotted([slot=gradient]){border-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));border-style:solid;border-width:var(--_border-width);box-sizing:border-box;block-size:var(--mod-colorwheel-height,var(--spectrum-colorwheel-height));inline-size:var(--mod-colorwheel-width,var(--spectrum-colorwheel-width));z-index:0;border-radius:100%;position:relative}:host([dir=rtl]) .wheel,:host([dir=rtl]) ::slotted([slot=gradient]){transform:scaleX(-1)}\n`;\nexport default styles;"],
|
|
5
5
|
"mappings": "aAWA,OAAS,OAAAA,MAAW,gCACpB,MAAMC,EAASD;AAAA;AAAA,EAGf,eAAeC",
|
|
6
6
|
"names": ["css", "styles"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { css } from "@spectrum-web-components/base";
|
|
3
3
|
const styles = css`
|
|
4
|
-
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
4
|
+
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}
|
|
5
5
|
`;
|
|
6
6
|
export default styles;
|
|
7
7
|
//# sourceMappingURL=spectrum-color-wheel.css.dev.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["spectrum-color-wheel.css.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
4
|
+
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}\n`;\nexport default styles;"],
|
|
5
5
|
"mappings": ";AAWA,SAAS,WAAW;AACpB,MAAM,SAAS;AAAA;AAAA;AAGf,eAAe;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";import{css as e}from"@spectrum-web-components/base";const o=e`
|
|
2
|
-
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
2
|
+
@media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}
|
|
3
3
|
`;export default o;
|
|
4
4
|
//# sourceMappingURL=spectrum-color-wheel.css.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["spectrum-color-wheel.css.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;
|
|
4
|
+
"sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n @media (forced-colors:active){:host{--highcontrast-colorwheel-border-color-disabled:GrayText;--highcontrast-colorwheel-fill-color-disabled:Canvas;forced-color-adjust:none}}:host{--spectrum-colorwheel-width:var(--mod-colorwheel-width,var(--spectrum-color-wheel-width));--spectrum-colorwheel-height:var(--mod-colorwheel-height,var(--spectrum-color-wheel-width));--spectrum-colorwheel-fill-color-disabled:var(--mod-colorwheel-fill-color-disabled,var(--spectrum-disabled-background-color));--spectrum-colorwheel-border-width:var(--mod-colorwheel-border-width,var(--spectrum-border-width-100));--spectrum-colorwheel-track-width:var(--mod-colorwheel-track-width,var(--spectrum-color-control-track-width));--_track-width:var(--spectrum-colorwheel-track-width);--_border-width:var(--spectrum-colorwheel-border-width);min-inline-size:var(--mod-colorwheel-min-width,var(--spectrum-color-wheel-minimum-width));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:1}:host([disabled]){pointer-events:none}:host([dragged]){z-index:1}.inner{inline-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));block-size:var(--mod-colorwheel-colorarea-container-size,var(--spectrum-colorwheel-colorarea-container-size));margin:auto;display:flex;position:absolute;inset-block:0;inset-inline:0}.colorarea-container{block-size:auto;inline-size:100%;margin:var(--mod-colorwheel-colorarea-margin,var(--spectrum-color-wheel-color-area-margin));justify-content:center;align-items:center;display:flex}.slider{opacity:0;z-index:0;pointer-events:none;block-size:100%;inline-size:100%;margin:0;position:absolute;inset-block-start:0;inset-inline-start:0}.handle{transform:translate(calc(var(--spectrum-colorwheel-width)/2 - var(--spectrum-colorwheel-track-width)/2));inset-block-start:50%;inset-inline:50%}.border{background-color:var(--mod-colorwheel-border-color,var(--spectrum-colorwheel-border-color));inline-size:var(--spectrum-colorwheel-width);block-size:var(--spectrum-colorwheel-height);clip-path:path(evenodd,var(--mod-colorwheel-path-borders,var(--spectrum-colorwheel-path-borders)));position:relative}:host([disabled]) .border{background-color:var(--highcontrast-colorwheel-border-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}.wheel{inset-block:var(--spectrum-colorwheel-border-width);inset-inline:var(--spectrum-colorwheel-border-width);clip-path:path(evenodd,var(--mod-colorwheel-path,var(--spectrum-colorwheel-path)));background:conic-gradient(from 90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);position:absolute}:host([disabled]) .wheel{pointer-events:none;background:var(--highcontrast-colorwheel-fill-color-disabled,var(--spectrum-colorwheel-fill-color-disabled))}\n`;\nexport default styles;"],
|
|
5
5
|
"mappings": "aAWA,OAAS,OAAAA,MAAW,gCACpB,MAAMC,EAASD;AAAA;AAAA,EAGf,eAAeC",
|
|
6
6
|
"names": ["css", "styles"]
|
|
7
7
|
}
|