@luzmo/lucero 2.5.2 → 2.6.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/components/color-area/color-area.d.ts +15 -0
- package/components/color-area/index.cjs +1 -1
- package/components/color-area/index.d.ts +1 -0
- package/components/color-area/index.js +1 -1
- package/components/color-area-CFBE-rG3.cjs +80 -0
- package/components/{color-area-qlEAp8ZN.js → color-area-GGa8KJyd.js} +85 -44
- package/components/color-handle/index.cjs +1 -1
- package/components/color-handle/index.js +1 -1
- package/components/{color-handle-Dc0uLgkf.js → color-handle-Ya92rdpA.js} +5 -2
- package/components/{color-handle-BE0Z1gTU.cjs → color-handle-hJ7Kblh4.cjs} +1 -1
- package/components/color-menu/color-menu.d.ts +11 -0
- package/components/color-menu/index.cjs +1 -1
- package/components/color-menu/index.d.ts +1 -0
- package/components/color-menu/index.js +1 -1
- package/components/{color-menu-Cus3S-Re.cjs → color-menu-COhe5VUB.cjs} +1 -1
- package/components/{color-menu-BxFQnH79.js → color-menu-Ct3f01bI.js} +6 -3
- package/components/color-picker/color-picker.d.ts +13 -0
- package/components/color-picker/index.cjs +1 -1
- package/components/color-picker/index.d.ts +1 -0
- package/components/color-picker/index.js +1 -1
- package/components/{color-picker-orFSIqoZ.js → color-picker-DWERcNZi.js} +5 -2
- package/components/{color-picker-BTT1O-76.cjs → color-picker-ELa0yF2F.cjs} +1 -1
- package/components/color-slider/color-slider.d.ts +17 -0
- package/components/color-slider/index.cjs +1 -1
- package/components/color-slider/index.d.ts +1 -0
- package/components/color-slider/index.js +1 -1
- package/components/{color-slider-X1EArAnx.js → color-slider-DNd_ZrD6.js} +95 -56
- package/components/color-slider-IYBn2DL7.cjs +58 -0
- package/components/index.cjs +1 -1
- package/components/index.js +8 -8
- package/components/interaction-BjXWVy_C.cjs +18 -0
- package/components/interaction-BpCLJ1OV.js +83 -0
- package/components/number-field/index.cjs +1 -1
- package/components/number-field/index.js +1 -1
- package/components/number-field/number-field.d.ts +4 -0
- package/components/{number-field-Ceeli_mh.cjs → number-field-CV7g2Q20.cjs} +2 -2
- package/components/{number-field-D9UqpqpW.js → number-field-Crol6vc9.js} +15 -9
- package/components/slider/index.cjs +1 -1
- package/components/slider/index.d.ts +1 -0
- package/components/slider/index.js +1 -1
- package/components/slider/slider.d.ts +18 -0
- package/components/{slider-Ch7OgTdj.js → slider-BFTuAXK1.js} +167 -151
- package/components/slider-Ce6qgPZ4.cjs +136 -0
- package/components/{streaming-listener-Bfyk6Fsx.cjs → streaming-listener-BzGZUHkj.cjs} +1 -1
- package/components/{streaming-listener-B6mDl4pZ.js → streaming-listener-DyS3scAi.js} +1 -1
- package/components/utils.cjs +1 -1
- package/components/utils.js +1 -1
- package/custom-elements.json +1 -1
- package/package.json +1 -1
- package/standalone/chunks/color-area-D-AVcZza.js +66 -0
- package/standalone/chunks/{color-handle-BLQiuRSS.js → color-handle-DO7dxFGx.js} +1 -1
- package/standalone/chunks/{color-menu-BDZh85nX.js → color-menu-DIX2y9m_.js} +1 -1
- package/standalone/chunks/color-slider-MSADvkPC.js +50 -0
- package/standalone/chunks/interaction-BQyflxg-.js +2 -0
- package/standalone/chunks/{number-field-Dc4nBa6l.js → number-field-BoIKbmIv.js} +2 -2
- package/standalone/chunks/{streaming-listener-DbMoHlSj.js → streaming-listener-0FSzb9QY.js} +1 -1
- package/standalone/color-area.js +1 -1
- package/standalone/color-handle.js +1 -1
- package/standalone/color-menu.js +1 -1
- package/standalone/color-picker.js +1 -1
- package/standalone/color-slider.js +1 -1
- package/standalone/manifest.json +7 -6
- package/standalone/number-field.js +1 -1
- package/standalone/slider.js +11 -10
- package/standalone/utils.js +1 -1
- package/utils/reactive-controllers/interaction.d.ts +85 -0
- package/components/color-area-D1fRozE0.cjs +0 -80
- package/components/color-slider-9Ck28Qdk.cjs +0 -57
- package/components/slider-C1AdDTfB.cjs +0 -135
- package/standalone/chunks/color-area-BCI2oMGd.js +0 -66
- package/standalone/chunks/color-slider-Bipcekrc.js +0 -49
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/*! * Lucero - The design system for Luzmo.
|
|
2
|
-
*
|
|
3
|
-
* Copyright © 2026 Luzmo
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
* Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
|
|
6
|
-
* This license allows users with a current active Luzmo account to use Lucero.
|
|
7
|
-
* This license terminates automatically if a user no longer has an active Luzmo account.
|
|
8
|
-
* Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
|
|
9
|
-
*
|
|
10
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
11
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
12
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
13
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
14
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
15
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
16
|
-
* SOFTWARE.
|
|
17
|
-
* */
|
|
18
|
-
require("./tokens.cjs");const e=require("./decorate-SO02l0A6.cjs"),t=require("./sized-mixin-CSajkMro.cjs"),n=require("./focusable-BIHTrJd6.cjs"),r=require("./language-resolution-B7D3hQ6_.cjs"),i=require("./manage-help-text-DtFJsl0k.cjs");require("./number-field-Ceeli_mh.cjs");let a=require("lit"),o=require("lit/decorators.js"),s=require("lit/directives/if-defined.js"),c=require("lit/directives/class-map.js"),l=require("lit/directives/style-map.js"),u=require("@internationalized/number"),d=require("lit/directives/repeat.js");var f={toNormalized(e,t,n){return n===t?0:(e-t)/(n-t)},fromNormalized(e,t,n){return e*(n-t)+t}},p=(e,t)=>{let n=e;for(let[e,r]of Object.entries(t))n=n.replaceAll(`{${e}}`,r);return n},m=e=>{if(!Number.isFinite(e))return 0;let t=Math.abs(e).toString(),n=t.match(/^\d+(?:\.(?<fraction>\d+))?e(?<exponent>[+-]\d+)$/);if(n?.groups){let{fraction:e=``,exponent:t}=n.groups;return Math.min(Math.max(e.length-Number(t),0),20)}let[,r=``]=t.split(`.`);return Math.min(r.length,20)},h=(e,t)=>{let n;try{n=e()}catch{n=void 0}if(typeof n==`number`&&!Number.isNaN(n))return n;let r=t();return Number.isNaN(r)?0:r},g=(e,t)=>Number.isFinite(e)?e:t,_=(e,t,n)=>Math.min(Math.max(e,Math.min(t,n)),Math.max(t,n)),v=(e,t,n,r)=>{let i=g(t,0),a=g(n,i),o=Number.isFinite(r)&&r>0?r:1,s=Number.isNaN(e)?i:e,c=Math.max(m(o),m(i),m(a)),l=i+Math.round((_(s,i,a)-i)/o)*o;return _(Number(l.toFixed(c)),i,a)},y=(e,t,n,r=f)=>_(h(()=>r.toNormalized(e,t,n),()=>f.toNormalized(e,t,n)),0,1),b=(e,t,n,r,i=f)=>{let a=_(e,0,1);return v(h(()=>i.fromNormalized(a,t,n),()=>f.fromNormalized(a,t,n)),t,n,r)},x=(e,t,n)=>{if(!Number.isFinite(e)||!Number.isFinite(t)||!Number.isFinite(n)||n<=0||t<=e)return[];let r=Math.floor((t-e)/n)+1;if(r>250)return[];let i=Math.max(m(e),m(n));return Array.from({length:r},(t,r)=>Number((e+r*n).toFixed(i)))},S=(e,t,n,r,i=f)=>{let a=t+(n-t)/2,o=r===!0?a:r===void 0?t:r,s=y(Number.isNaN(o)?t:o,t,n,i),c=y(e,t,n,i);return[Math.min(s,c),Math.max(s,c)]},C=(e,t)=>e+(t-e)/2,w=class{constructor(e,t,n,r){this._applySingleValue=t,this._formatHandleValue=n,this._formatHandleLabel=r,this._attachedHandles=new Set,this._inputMap=new WeakMap,this.activeIndex=0,this.draggingIndex=-1,this._host=e,this._host.addController(this)}hostConnected(){this.invalidate(),this._syncAttachments()}hostDisconnected(){this.draggingIndex=-1,this._detachHandles(),this._inputMap=new WeakMap,this._cachedModels=void 0}hostUpdate(){this._syncAttachments(),this._cachedModels=this._resolveModels()}hostUpdated(){this._syncInputReferences(),this._commitClampedValues()}get handles(){let e=this._host.shadowRoot?.querySelector(`slot[name="handle"]`);return(e?e.assignedElements():[...this._host.children]).filter(e=>e.localName===`luzmo-slider-handle`&&e.slot===`handle`)}get models(){return this._cachedModels??this._resolveModels()}get values(){return Object.fromEntries(this.models.map(({name:e,value:t})=>[e,t]))}invalidate(){this._cachedModels=void 0}requestHostUpdate(){this.invalidate(),this._host.requestUpdate()}inputForHandle(e){return this._inputMap.get(e)}setValue(e,t){let n=this.models[e];if(!n)return!1;this.activeIndex=e;let r=v(t,n.effectiveMin,n.effectiveMax,n.step);return r!==n.value&&(n.handle?n.handle.value=r:this._applySingleValue(r),this._cachedModels=this._resolveModels(),!0)}setNormalizedValue(e,t){let n=this.models[e];return n?this.setValue(e,b(t,n.min,n.max,n.step,n.normalization)):!1}nearestIndex(e){let t=this.models;return t.reduce((n,r,i)=>Math.abs(r.normalizedValue-e)<Math.abs(t[n].normalizedValue-e)?i:n,Math.min(Math.max(this.activeIndex,0),t.length-1))}reset(e){let t=this.models[e];return!t||t.defaultValue===void 0||!this.setValue(e,t.defaultValue)?!1:(this.dispatchInput(e),this.dispatchChange(e),!0)}dispatchInput(e){this._eventTarget(e).dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0}))}dispatchChange(e){this._eventTarget(e).dispatchEvent(new Event(`change`,{bubbles:!0,composed:!0}))}formatValue(e){let t=this.models[e];return t?this._formatHandleValue(t):``}_eventTarget(e){return this.models[e]?.handle??this._host}_syncInputReferences(){this._inputMap=new WeakMap;let e=this._host.shadowRoot?.querySelectorAll(`input[type="range"]`)??[];this.models.forEach((t,n)=>{t.handle&&e[n]&&this._inputMap.set(t.handle,e[n])})}_commitClampedValues(){for(let e of this.models)e.handle&&e.handle.value!==e.value&&(e.handle.value=e.value)}_syncAttachments(){let e=new Set(this._host.isConnected?this.handles:[]);for(let t of this._attachedHandles)e.has(t)||t.detachController(this);for(let t of e)t.attachController(this);this._attachedHandles=e}_detachHandles(){for(let e of this._attachedHandles)e.detachController(this);this._attachedHandles.clear()}_resolveModels(){let e=this.handles;if(e.length===0)return[this._resolveSingleModel()];let t=e.map(e=>{let t=typeof e.min==`number`&&Number.isFinite(e.min)?e.min:this._host.min,n=typeof e.max==`number`&&Number.isFinite(e.max)?e.max:this._host.max;return{min:t,max:Math.max(t,n)}}),n=e.map((e,n)=>{let{min:r,max:i}=t[n],a=this._resolveStep(e.step);return v(Number.isFinite(e.value)?e.value:C(r,i),r,i,a)}),r=new Set;return e.map((i,a)=>{let{min:o,max:s}=t[a],c=this._resolveStep(i.step),l=i.min===`previous`&&a>0?Math.max(o,n[a-1]):o,u=Math.max(l,i.max===`next`&&a<e.length-1?Math.min(s,n[a+1]):s),d=v(n[a],l,u,c),f=i.normalization;return{handle:i,name:this._uniqueName(i.name,a,r),label:this._formatHandleLabel(i,a),value:d,min:o,max:s,effectiveMin:l,effectiveMax:u,step:c,defaultValue:i.defaultValue,normalizedValue:y(d,o,s,f),normalization:f}})}_resolveSingleModel(){let{min:e,max:t,step:n,normalization:r}=this._host,i=v(this._host.value,e,t,n);return{name:`value`,label:this._host.label,value:i,min:e,max:t,effectiveMin:e,effectiveMax:t,step:n,defaultValue:this._host.defaultValue,normalizedValue:y(i,e,t,r),normalization:r}}_resolveStep(e){return e!==void 0&&Number.isFinite(e)&&e>0?e:this._host.step}_uniqueName(e,t,n){let r=e||`handle${t+1}`;if(!n.has(r))return n.add(r),r;let i=t+1;for(;n.has(`${r}${i}`);)i+=1;let a=`${r}${i}`;return n.add(a),a}};function T({model:e,index:t,total:n,grouped:r,label:i,appliedLabel:o,helpTextId:u,labelVisibility:d,formattedValue:f,activeIndex:p,draggingIndex:m,focusedIndex:h,invalid:g,readonly:_,disabled:v}){let y=n>1?e.label:i||o||e.label;return a.html`
|
|
19
|
-
<span
|
|
20
|
-
class=${(0,c.classMap)({handle:!0,"tooltip-open":m===t||h===t})}
|
|
21
|
-
data-handle-index=${t}
|
|
22
|
-
style=${(0,l.styleMap)({"inset-inline-start":`${e.normalizedValue*100}%`,"--slider-handle-color":e.handle?.color||void 0,"z-index":String(p===t?3:t+2)})}
|
|
23
|
-
>
|
|
24
|
-
${d===`none`?a.html`<span class="value-tooltip" aria-hidden="true"
|
|
25
|
-
>${f}</span
|
|
26
|
-
>`:a.nothing}
|
|
27
|
-
<input
|
|
28
|
-
data-handle-index=${t}
|
|
29
|
-
type="range"
|
|
30
|
-
min=${e.effectiveMin}
|
|
31
|
-
max=${e.effectiveMax}
|
|
32
|
-
step=${e.step}
|
|
33
|
-
.value=${String(e.value)}
|
|
34
|
-
aria-label=${(0,s.ifDefined)(y||void 0)}
|
|
35
|
-
aria-valuetext=${f}
|
|
36
|
-
aria-describedby=${(0,s.ifDefined)(r?void 0:u)}
|
|
37
|
-
aria-invalid=${(0,s.ifDefined)(g||void 0)}
|
|
38
|
-
aria-readonly=${(0,s.ifDefined)(_||void 0)}
|
|
39
|
-
?disabled=${v}
|
|
40
|
-
/>
|
|
41
|
-
</span>
|
|
42
|
-
`}function E({model:e,label:t,formatOptions:n,size:r,disabled:i,invalid:o,readonly:s,hideStepper:c,quiet:l,indeterminate:u,onInput:d,onChange:f}){return a.html`
|
|
43
|
-
<luzmo-number-field
|
|
44
|
-
id="number-field"
|
|
45
|
-
label=${t}
|
|
46
|
-
.value=${e.value}
|
|
47
|
-
.min=${e.effectiveMin}
|
|
48
|
-
.max=${e.effectiveMax}
|
|
49
|
-
.step=${e.step}
|
|
50
|
-
.formatOptions=${e.handle?.formatOptions??n}
|
|
51
|
-
size=${r}
|
|
52
|
-
?disabled=${i}
|
|
53
|
-
?invalid=${o}
|
|
54
|
-
?readonly=${s}
|
|
55
|
-
?hide-stepper=${c}
|
|
56
|
-
?quiet=${l}
|
|
57
|
-
?indeterminate=${u}
|
|
58
|
-
@input=${d}
|
|
59
|
-
@change=${f}
|
|
60
|
-
></luzmo-number-field>
|
|
61
|
-
`}function D(e,t,n,r,i){return e.length===0?a.nothing:a.html`
|
|
62
|
-
<div class="ticks" aria-hidden="true">
|
|
63
|
-
${(0,d.repeat)(e,e=>e,e=>{let o=`${y(e,t,n)*100}%`;return a.html`
|
|
64
|
-
<span
|
|
65
|
-
class="tick"
|
|
66
|
-
style=${(0,l.styleMap)({"inset-inline-start":o})}
|
|
67
|
-
></span>
|
|
68
|
-
${i?a.html`<span
|
|
69
|
-
class="tick-label"
|
|
70
|
-
style=${(0,l.styleMap)({"inset-inline-start":o})}
|
|
71
|
-
>${r.format(e)}</span
|
|
72
|
-
>`:a.nothing}
|
|
73
|
-
`})}
|
|
74
|
-
</div>
|
|
75
|
-
`}function O(e,t){if(e.length===0)return;if(e.length>1){let t=e.map(({normalizedValue:e})=>e).sort((e,t)=>e-t);return[t[0],t.at(-1)]}let n=e[0];return S(n.value,n.min,n.max,t,n.normalization)}function k(e,t){let n=O(e,t);if(!n)return a.nothing;let[r,i]=n;return a.html`
|
|
76
|
-
<span
|
|
77
|
-
class="fill"
|
|
78
|
-
style=${(0,l.styleMap)({"--slider-fill-start":`${r*100}%`,"--slider-fill-end":`${i*100}%`})}
|
|
79
|
-
></span>
|
|
80
|
-
`}function A(e,t,n){let[r,i]=O(e,t)??[0,0];return a.html`
|
|
81
|
-
<span class="ramp" aria-hidden="true">
|
|
82
|
-
<svg viewBox="0 0 240 16" preserveAspectRatio="none" focusable="false">
|
|
83
|
-
<path
|
|
84
|
-
class="ramp-track"
|
|
85
|
-
d="M240,4v8c0,2.3-1.9,4.1-4.2,4L1,9C0.4,9,0,8.5,0,8c0-0.5,0.4-1,1-1l234.8-7C238.1-0.1,240,1.7,240,4z"
|
|
86
|
-
></path>
|
|
87
|
-
</svg>
|
|
88
|
-
${n?a.html`
|
|
89
|
-
<span
|
|
90
|
-
class="ramp-fill"
|
|
91
|
-
style=${(0,l.styleMap)({"--slider-ramp-fill-start":`${r*100}%`,"--slider-ramp-fill-end":`${(1-i)*100}%`})}
|
|
92
|
-
></span>
|
|
93
|
-
`:a.nothing}
|
|
94
|
-
</span>
|
|
95
|
-
`}var j=`:host{min-inline-size:var(--luzmo-slider-min-inline-size,var(--slider-min-inline-size));min-block-size:var(--luzmo-slider-item-height,var(--slider-item-height));color:var(--slider-label-color);font-family:var(--luzmo-slider-font-family,var(--slider-font-family));flex-grow:1;display:block}:host([disabled]){cursor:not-allowed}.handle-slot{display:none}.control-row{align-items:center;gap:var(--slider-label-gap);inline-size:100%;display:flex}.track{min-inline-size:0;block-size:var(--luzmo-slider-item-height,var(--slider-item-height));cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;position:relative}.rail,.fill,.ramp{display:block;position:absolute;inset-block-start:calc(50% + var(--luzmo-slider-top-to-track,var(--slider-top-to-track)));transform:translateY(-50%)}.rail{block-size:var(--luzmo-slider-track-height,var(--slider-track-height));background:var(--highcontrast-slider-track-color,var(--slider-track-color));border-radius:var(--slider-track-radius);inset-inline:0}.fill{z-index:1;block-size:var(--luzmo-slider-track-height,var(--slider-track-height));background:var(--highcontrast-slider-fill-color,var(--luzmo-slider-fill-background,var(--slider-fill-background)));border-radius:var(--slider-track-radius);-webkit-mask-image:linear-gradient(to right, transparent 0, transparent var(--slider-fill-start), currentColor var(--slider-fill-start), currentColor var(--slider-fill-end), transparent var(--slider-fill-end), transparent 100%);mask-image:linear-gradient(to right, transparent 0, transparent var(--slider-fill-start), currentColor var(--slider-fill-start), currentColor var(--slider-fill-end), transparent var(--slider-fill-end), transparent 100%);inset-inline:0}.ramp{block-size:var(--slider-ramp-height);inset-inline:0}:host([ramp]) .rail{display:none}.ramp svg,.ramp-fill{block-size:100%;inline-size:100%;display:block;position:absolute;inset:0}.ramp-track{fill:var(--highcontrast-slider-track-color,var(--slider-track-color))}.ramp-fill{z-index:1;background:var(--highcontrast-slider-fill-color,var(--luzmo-slider-fill-background,var(--slider-fill-background)));clip-path:polygon(0 44%,100% 0,100% 100%,0 56%);-webkit-mask-image:linear-gradient(to right, transparent 0, transparent var(--slider-ramp-fill-start), currentColor var(--slider-ramp-fill-start), currentColor calc(100% - var(--slider-ramp-fill-end)), transparent calc(100% - var(--slider-ramp-fill-end)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, transparent var(--slider-ramp-fill-start), currentColor var(--slider-ramp-fill-start), currentColor calc(100% - var(--slider-ramp-fill-end)), transparent calc(100% - var(--slider-ramp-fill-end)), transparent 100%)}:host(:dir(rtl)) .ramp svg{transform:scaleX(-1)}:host(:dir(rtl)) .fill{-webkit-mask-image:linear-gradient(to left, transparent 0, transparent var(--slider-fill-start), currentColor var(--slider-fill-start), currentColor var(--slider-fill-end), transparent var(--slider-fill-end), transparent 100%);mask-image:linear-gradient(to left, transparent 0, transparent var(--slider-fill-start), currentColor var(--slider-fill-start), currentColor var(--slider-fill-end), transparent var(--slider-fill-end), transparent 100%)}:host(:dir(rtl)) .ramp-fill{clip-path:polygon(0 0,100% 44%,100% 56%,0 100%);-webkit-mask-image:linear-gradient(to left, transparent 0, transparent var(--slider-ramp-fill-start), currentColor var(--slider-ramp-fill-start), currentColor calc(100% - var(--slider-ramp-fill-end)), transparent calc(100% - var(--slider-ramp-fill-end)), transparent 100%);mask-image:linear-gradient(to left, transparent 0, transparent var(--slider-ramp-fill-start), currentColor var(--slider-ramp-fill-start), currentColor calc(100% - var(--slider-ramp-fill-end)), transparent calc(100% - var(--slider-ramp-fill-end)), transparent 100%)}.handle{box-sizing:border-box;inline-size:var(--slider-hit-size);block-size:var(--slider-hit-size);cursor:grab;place-items:center;margin-inline-start:var(--luzmo-slider-edge-to-handle,var(--slider-edge-to-handle));display:grid;position:absolute;inset-block-start:calc(50% + var(--luzmo-slider-top-to-handle,var(--slider-top-to-handle)));transform:translate(-50%,-50%)}:host(:dir(rtl)) .handle{transform:translate(50%,-50%)}.handle:before{box-sizing:border-box;inline-size:var(--slider-handle-visual-size);block-size:var(--slider-handle-visual-size);background:var(--highcontrast-slider-handle-background,var(--slider-handle-color,var(--slider-handle-background)));border:var(--slider-handle-border-width) solid var(--highcontrast-slider-handle-border-color,var(--slider-handle-color,var(--slider-handle-border-color)));box-shadow:var(--slider-handle-shadow);content:"";transition:background-color var(--luzmo-animation-duration), border-color var(--luzmo-animation-duration);border-radius:50%}:host([ramp]) .handle:before,:host([variant=unfilled]) .handle:before{border-color:var(--highcontrast-slider-handle-border-color,var(--slider-handle-color,var(--slider-handle-border-color-unfilled)))}.handle:hover:before,:host([dragging]) .handle:before{background:var(--highcontrast-slider-handle-background,var(--slider-handle-color,var(--luzmo-slider-background-color-hover,var(--slider-handle-background-hover))))}:host([dragging]) .handle:before{border-color:var(--highcontrast-slider-focus-color,var(--slider-handle-color,var(--slider-handle-border-color-active)))}:host([dragging]) .handle{cursor:grabbing}.handle:has(input:focus-visible):before{border-color:var(--highcontrast-slider-focus-color,var(--slider-focus-color));outline:var(--slider-focus-width) solid var(--highcontrast-slider-focus-color,var(--slider-focus-color));outline-offset:var(--slider-focus-offset)}.handle input{block-size:100%;inline-size:100%;cursor:inherit;opacity:0;pointer-events:none;margin:0;position:absolute;inset:0}.ticks{z-index:1;pointer-events:none;position:absolute;inset:0}.tick{inline-size:var(--slider-tick-width);block-size:var(--slider-tick-height);background:var(--highcontrast-slider-tick-color,var(--slider-tick-color));position:absolute;inset-block-start:calc(50% + var(--luzmo-slider-top-to-track,var(--slider-top-to-track)) + var(--slider-tick-offset));transform:translate(-50%)}:host(:dir(rtl)) .tick{transform:translate(50%)}.tick-label{color:var(--slider-label-color);font-size:var(--slider-tick-label-font-size);white-space:nowrap;position:absolute;inset-block-start:calc(50% + var(--luzmo-slider-top-to-handle,var(--slider-top-to-handle)) + var(--slider-handle-visual-size) / 2 + var(--slider-tick-label-gap));transform:translate(-50%)}:host(:dir(rtl)) .tick-label{transform:translate(50%)}.value-label{min-inline-size:max-content;color:var(--slider-label-color);font-size:var(--slider-label-font-size);flex:none}.value-tooltip{z-index:1;box-sizing:border-box;padding:var(--slider-tooltip-padding);color:var(--highcontrast-slider-tooltip-color,var(--slider-tooltip-color));background:var(--highcontrast-slider-tooltip-background,var(--slider-tooltip-background));border:var(--slider-tooltip-border-width) solid var(--highcontrast-slider-tooltip-border-color,var(--slider-tooltip-border-color));border-radius:var(--slider-tooltip-border-radius);font-size:var(--luzmo-slider-tooltip-font-size,var(--slider-tooltip-font-size));white-space:nowrap;visibility:hidden;opacity:0;transition:opacity var(--luzmo-animation-duration), visibility 0s linear var(--luzmo-animation-duration);pointer-events:none;line-height:1;position:absolute;inset-block-end:calc(50% + var(--slider-handle-visual-size) / 2 + var(--slider-tooltip-gap));inset-inline-start:50%;transform:translate(-50%)}:host(:dir(rtl)) .value-tooltip{transform:translate(50%)}.handle:hover .value-tooltip,.handle.tooltip-open .value-tooltip{visibility:visible;opacity:1;transition-delay:0s}:host([disabled]) .value-tooltip{visibility:hidden;opacity:0}luzmo-number-field{inline-size:var(--slider-editable-width);flex:none}.visually-hidden{inline-size:calc(var(--luzmo-spacing-1) / 2);block-size:calc(var(--luzmo-spacing-1) / 2);clip-path:inset(50%);white-space:nowrap;position:absolute;overflow:hidden}:host([readonly]:not([disabled])) .track,:host([readonly]:not([disabled])) .handle{cursor:default}:host([disabled]) .track,:host([disabled]) .handle{cursor:not-allowed}:host([disabled]) .rail{background:var(--highcontrast-slider-track-color,var(--luzmo-slider-background-color-disabled,var(--slider-track-color-disabled)))}:host([disabled]) .ramp-track{fill:var(--highcontrast-slider-track-color,var(--luzmo-slider-background-color-disabled,var(--slider-track-color-disabled)))}:host([disabled]) .ramp-fill,:host([disabled]) .fill{background:var(--highcontrast-slider-fill-color,var(--slider-fill-color-disabled))}:host([disabled]) .handle:before,:host([disabled]) .handle:hover:before{background:var(--highcontrast-slider-handle-background,var(--luzmo-slider-background-color-disabled-hover,var(--slider-handle-background-disabled)));border-color:var(--highcontrast-slider-handle-border-color,var(--slider-handle-border-color-disabled));box-shadow:none}@media (forced-colors:active){.rail{--highcontrast-slider-track-color:ButtonFace;--highcontrast-slider-track-border-color:ButtonText;border:var(--slider-handle-border-width) solid var(--highcontrast-slider-track-border-color);forced-color-adjust:none}.ramp{--highcontrast-slider-track-color:ButtonText;--highcontrast-slider-fill-color:Highlight;forced-color-adjust:none}.fill{--highcontrast-slider-fill-color:Highlight;forced-color-adjust:none}.tick{--highcontrast-slider-tick-color:ButtonText;forced-color-adjust:none}.handle:before{--highcontrast-slider-handle-background:Canvas;--highcontrast-slider-handle-border-color:ButtonText;forced-color-adjust:none}:host([dragging]) .handle:before{--highcontrast-slider-focus-color:Highlight}.handle:has(input:focus-visible):before{--highcontrast-slider-focus-color:Highlight}.value-tooltip{--highcontrast-slider-tooltip-background:Canvas;--highcontrast-slider-tooltip-border-color:CanvasText;--highcontrast-slider-tooltip-color:CanvasText;forced-color-adjust:none}:host([disabled]) .rail,:host([disabled]) .ramp-track,:host([disabled]) .ramp-fill,:host([disabled]) .tick,:host([disabled]) .fill,:host([disabled]) .handle:before{--highcontrast-slider-disabled-color:GrayText;--highcontrast-slider-track-color:var(--highcontrast-slider-disabled-color);--highcontrast-slider-track-border-color:var(--highcontrast-slider-disabled-color);--highcontrast-slider-fill-color:var(--highcontrast-slider-disabled-color);--highcontrast-slider-tick-color:var(--highcontrast-slider-disabled-color);--highcontrast-slider-handle-background:Canvas;--highcontrast-slider-handle-border-color:var(--highcontrast-slider-disabled-color)}}@media (prefers-reduced-motion:reduce){.handle:before,.value-tooltip{transition:none}}:host{--slider-font-family:var(--luzmo-font-family);--slider-min-inline-size:calc(3 * var(--luzmo-component-height-l));--slider-item-height:var(--luzmo-component-height);--slider-track-height:var(--luzmo-spacing-2);--slider-handle-base-size:calc(var(--luzmo-component-height) + var(--luzmo-spacing-2));--slider-hit-size:var(--luzmo-component-height);--slider-top-to-track:0px;--slider-top-to-handle:0px;--slider-edge-to-handle:0px;--slider-handle-scale:.5;--slider-handle-visual-size:calc(var(--luzmo-slider-handle-size,var(--slider-handle-base-size)) * var(--luzmo-slider-handle-scale,var(--slider-handle-scale)));--slider-track-radius:var(--luzmo-border-radius-full);--slider-track-color:var(--luzmo-border-color);--slider-track-color-disabled:var(--luzmo-background-color-disabled);--slider-fill-color:var(--luzmo-primary);--slider-fill-background:var(--slider-fill-color);--slider-fill-color-disabled:var(--luzmo-disabled-color);--slider-handle-background:var(--luzmo-background-color);--slider-handle-background-hover:var(--luzmo-background-color-hover);--slider-handle-background-disabled:var(--luzmo-background-color);--slider-handle-border-color:var(--luzmo-border-color);--slider-handle-border-color-unfilled:var(--luzmo-primary);--slider-handle-border-color-active:var(--luzmo-primary);--slider-handle-border-color-disabled:var(--luzmo-border-color-disabled);--slider-handle-border-width:var(--luzmo-border-width);--slider-handle-shadow:0 var(--luzmo-spacing-1) var(--luzmo-spacing-2) var(--luzmo-shadow-color);--slider-focus-color:var(--luzmo-primary);--slider-focus-width:var(--luzmo-border-width);--slider-focus-offset:var(--luzmo-border-width);--slider-label-color:var(--luzmo-font-color);--slider-label-font-size:var(--luzmo-font-size-s);--slider-label-gap:var(--luzmo-spacing-3);--slider-ramp-height:var(--luzmo-spacing-4);--slider-tick-color:var(--luzmo-border-color-full);--slider-tick-width:var(--luzmo-border-width);--slider-tick-height:var(--luzmo-spacing-3);--slider-tick-offset:calc(-1 * var(--slider-tick-height) / 2);--slider-tick-label-gap:var(--luzmo-spacing-2);--slider-tick-label-font-size:var(--luzmo-font-size-xs);--slider-tooltip-padding:var(--luzmo-spacing-2);--slider-tooltip-border-radius:calc(var(--luzmo-spacing-2) - var(--luzmo-border-width));--slider-tooltip-background:var(--luzmo-background-color);--slider-tooltip-border-color:var(--luzmo-border-color);--slider-tooltip-border-width:var(--luzmo-border-width);--slider-tooltip-color:var(--luzmo-font-color);--slider-tooltip-font-size:var(--slider-label-font-size);--slider-tooltip-gap:var(--luzmo-spacing-2);--slider-editable-width:calc(3 * var(--luzmo-component-height))}:host([ramp]){--slider-tick-height:calc(var(--slider-ramp-height) + 2 * var(--luzmo-spacing-1))}:host([size=s]){--slider-item-height:var(--luzmo-component-height-s);--slider-track-height:calc(var(--luzmo-spacing-2) - var(--luzmo-border-width));--slider-handle-base-size:var(--luzmo-component-height-s);--slider-hit-size:var(--luzmo-component-height-s);--slider-label-font-size:var(--luzmo-font-size-xs);--slider-ramp-height:var(--luzmo-spacing-3)}:host([size=l]){--slider-item-height:var(--luzmo-component-height-l);--slider-track-height:calc(var(--luzmo-spacing-3) - var(--luzmo-spacing-1));--slider-handle-base-size:var(--luzmo-component-height-l);--slider-hit-size:var(--luzmo-component-height-l);--slider-label-font-size:var(--luzmo-font-size-m);--slider-ramp-height:var(--luzmo-spacing-5)}:host([size=xl]){--slider-item-height:var(--luzmo-component-height-xl);--slider-track-height:calc(var(--luzmo-spacing-3) - var(--luzmo-border-width));--slider-handle-base-size:calc(var(--luzmo-component-height-l) + var(--luzmo-spacing-2));--slider-hit-size:var(--luzmo-component-height-xl);--slider-label-font-size:var(--luzmo-font-size-m);--slider-ramp-height:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-2))}`,M={handleName:`{label} {position}`},N=16,P=new Set([`filled`,`unfilled`]),F=new Set([`none`,`value`]),I={fromAttribute(e){if(e===null)return;if(e===``||e===`true`)return!0;let t=Number(e);return Number.isFinite(t)?t:void 0},toAttribute(e){return e===void 0?null:e===!0?``:String(e)}},L=class extends i.t(t.n(n.t),{mode:`internal`,live:`polite`}){constructor(...e){super(...e),this.label=``,this.labels={},this._appliedLabel=``,this.applyFocusElementLabel=e=>{this._appliedLabel=e},this.ramp=!1,this.ticks=!1,this.tickLabels=!1,this.editable=!1,this.hideStepper=!1,this.quiet=!1,this.indeterminate=!1,this.invalid=!1,this.readonly=!1,this.formatOptions={},this._languageResolver=new r.t(this),this._handleController=new w(this,e=>this._applySingleValue(e),e=>this._formatHandleValue(e),(e,t)=>this._formatHandleLabel(e,t)),this._rawValue=NaN,this._rawMin=0,this._rawMax=100,this._rawStep=1,this._rawTickStep=0,this._rawVariant=`filled`,this._rawLabelVisibility=`none`,this._focusedIndex=-1,this._formatterCache=new Map,this._pendingCommits=new Set,this._defaultAriaHandleText=(e,t)=>t.format(e),this._defaultAriaValueText=e=>this._formatValueList([...e.values()])}static get styles(){let e=super.styles;return[...Array.isArray(e)?e:e?[e]:[],(0,a.unsafeCSS)(j)]}set value(e){let t=Number.isFinite(e)?e:NaN;if(Object.is(t,this._rawValue))return;let n=this.value;this._rawValue=t,this.requestUpdate(`value`,n)}get value(){return Number.isFinite(this._rawValue)?this._rawValue:this.min+(this.max-this.min)/2}set min(e){let t=Number.isFinite(e)?e:0;if(t===this._rawMin)return;let n=this._rawMin;this._rawMin=t,this.requestUpdate(`min`,n)}get min(){return this._rawMin}set max(e){let t=Number.isFinite(e)?e:NaN;if(Object.is(t,this._rawMax))return;let n=this.max;this._rawMax=t,this.requestUpdate(`max`,n)}get max(){return this._rawMax>this._rawMin?this._rawMax:this._rawMin+100}set step(e){let t=Number.isFinite(e)&&e>0?e:1;if(t===this._rawStep)return;let n=this._rawStep;this._rawStep=t,this.requestUpdate(`step`,n)}get step(){return this._rawStep}set variant(e){let t=P.has(e)?e:`filled`;if(t===this._rawVariant)return;let n=this._rawVariant;this._rawVariant=t,this.requestUpdate(`variant`,n)}get variant(){return this._rawVariant}set labelVisibility(e){let t=F.has(e)?e:`none`;if(t===this._rawLabelVisibility)return;let n=this._rawLabelVisibility;this._rawLabelVisibility=t,this.requestUpdate(`labelVisibility`,n)}get labelVisibility(){return this._rawLabelVisibility}set tickStep(e){let t=Number.isFinite(e)&&e>0?e:0;if(t===this._rawTickStep)return;let n=this._rawTickStep;this._rawTickStep=t,this.requestUpdate(`tickStep`,n)}get tickStep(){return this._rawTickStep}set normalization(e){let t=this.normalization;this._normalization=e,this.requestUpdate(`normalization`,t)}get normalization(){return this._normalization??f}set getAriaHandleText(e){let t=this.getAriaHandleText;this._getAriaHandleText=e,this.requestUpdate(`getAriaHandleText`,t)}get getAriaHandleText(){return this._getAriaHandleText??this._defaultAriaHandleText}set getAriaValueText(e){let t=this.getAriaValueText;this._getAriaValueText=e,this.requestUpdate(`getAriaValueText`,t)}get getAriaValueText(){return this._getAriaValueText??this._defaultAriaValueText}get values(){return this._handleController.values}get focusElement(){return this.rangeInputs?.[Math.min(Math.max(this._handleController.activeIndex,0),this.rangeInputs.length-1)]??this}_applySingleValue(e){this.value=e}_normalizeRawValue(){if(!Number.isFinite(this._rawValue))return;let e=this._rawValue,t=v(this._rawValue,this.min,this.max,this.step);Object.is(t,this._rawValue)||(this._rawValue=t,this.requestUpdate(`value`,e))}_formatHandleValue(e){let t=e.handle?.formatOptions??this.formatOptions;return(e.handle?.getAriaHandleText??this.getAriaHandleText)(e.value,this._numberFormatter(this._withDefaultPrecision(t,e.step,e.min,e.max)))}_formatHandleLabel(e,t){if(e.label)return e.label;if(e.name)return e.name;let n=this.label||this._appliedLabel,r=this._numberFormatter({useGrouping:!1}).format(t+1);return n?p(this.labels.handleName??M.handleName,{label:n,position:r}):r}disconnectedCallback(){this._endDrag(),this._focusedIndex=-1,this._pendingCommits.clear(),super.disconnectedCallback()}_numberFormatter(e=this.formatOptions){let t=this._languageResolver.language;this._formatterCacheLanguage!==t&&(this._formatterCache.clear(),this._formatterCacheLanguage=t);let n=JSON.stringify(e??{}),r=this._formatterCache.get(n);if(r)return r;let i=this._createNumberFormatter(t,e??{});return this._formatterCache.size>=N&&this._formatterCache.clear(),this._formatterCache.set(n,i),i}_withDefaultPrecision(e,...t){return e.style!==void 0||e.minimumFractionDigits!==void 0||e.maximumFractionDigits!==void 0||e.minimumSignificantDigits!==void 0||e.maximumSignificantDigits!==void 0?e:{...e,maximumFractionDigits:Math.min(20,Math.max(...t.map(e=>m(e))))}}_createNumberFormatter(e,t){try{let n=new u.NumberFormatter(e,t);return n.format(1),n}catch{let{style:n,unit:r,...i}=t;return new u.NumberFormatter(e,i)}}_clearNumberFormatterCache(){this._formatterCache.clear(),this._formatterCacheLanguage=void 0}_formatValueList(e){if(e.length<2)return e[0]??``;try{return new Intl.ListFormat(this._languageResolver.language,{style:`short`,type:`unit`}).format(e)}catch{return e.join(`, `)}}get _formattedValues(){return new Map(this._handleController.models.map((e,t)=>[e.name,this._handleController.formatValue(t)]))}get _combinedValueText(){return this.getAriaValueText(this._formattedValues)}handleSlotChange(){this._handleController.draggingIndex>=0&&this._endDrag(),this._handleController.activeIndex=0,this._focusedIndex=-1,this._handleController.invalidate(),this.requestUpdate()}_normalizedPointerValue(e){let t=e.currentTarget.getBoundingClientRect(),n=t.width?(e.clientX-t.left)/t.width:0,r=this.isLTR?n:1-n;return Math.min(1,Math.max(0,r))}_capturePointer(e,t){try{e.setPointerCapture(t),this._capturedPointer={target:e,pointerId:t}}catch{this._capturedPointer=void 0}}_releaseCapturedPointer(){let e=this._capturedPointer;this._capturedPointer=void 0,e&&e.target.hasPointerCapture(e.pointerId)&&e.target.releasePointerCapture(e.pointerId)}_endDrag(){let e=this._handleController.draggingIndex;return this._releaseCapturedPointer(),this._handleController.draggingIndex=-1,this._dragStartValue=void 0,this.toggleAttribute(`dragging`,!1),e}handlePointerDown(e){if(this.disabled||this.readonly||e.button!==0)return;let t=e.currentTarget,n=e.target.closest(`[data-handle-index]`),r=this._normalizedPointerValue(e),i=n?Number(n.dataset.handleIndex):this._handleController.nearestIndex(r);this._handleController.activeIndex=i,this._handleController.draggingIndex=i,this._dragStartValue=this._handleController.models[i]?.value,this.toggleAttribute(`dragging`,!0),this._capturePointer(t,e.pointerId),this.indeterminate=!1,this._handleController.setNormalizedValue(i,r)&&this._handleController.dispatchInput(i),this.requestUpdate()}handlePointerMove(e){let t=this._handleController.draggingIndex;t<0||this.disabled||this.readonly||this._handleController.setNormalizedValue(t,this._normalizedPointerValue(e))&&(this._handleController.dispatchInput(t),this.requestUpdate())}handlePointerUp(){if(this._handleController.draggingIndex<0)return;let e=this._dragStartValue,t=this._endDrag();!this.disabled&&!this.readonly&&(this._handleController.models[t]?.value!==e&&this._handleController.dispatchChange(t),this.rangeInputs[t]?.focus({preventScroll:!0})),this.requestUpdate()}handleLostPointerCapture(){this.handlePointerCancel()}handlePointerCancel(){if(this._handleController.draggingIndex<0)return;let e=this._dragStartValue,t=this._endDrag();e!==void 0&&this._handleController.setValue(t,e)&&this._handleController.dispatchInput(t),this.requestUpdate()}_applyInputValue(e,t){Number.isFinite(t)&&(this.indeterminate=!1,this._handleController.setValue(e,t)&&(this._pendingCommits.add(e),this._handleController.dispatchInput(e)))}_commitValue(e,t){let n=Number.isFinite(t)&&this._handleController.setValue(e,t),r=this._pendingCommits.delete(e);(n||r)&&(this.indeterminate=!1,this._handleController.dispatchChange(e))}handleNativeInput(e,t){e.stopPropagation();let n=e.target;this.readonly?n.value=String(this._handleController.models[t]?.value):this._applyInputValue(t,n.valueAsNumber)}handleNativeChange(e,t){e.stopPropagation();let n=e.target;this.readonly?n.value=String(this._handleController.models[t]?.value):this._commitValue(t,n.valueAsNumber)}handleKeyDown(e,t){let n=this._handleController.models[t];if(!n||this.disabled)return;if(this.readonly){[`ArrowUp`,`ArrowDown`,`ArrowRight`,`ArrowLeft`,`Home`,`End`,`PageUp`,`PageDown`].includes(e.key)&&e.preventDefault();return}if(e.key===`Escape`){this._handleController.reset(t)&&(e.preventDefault(),e.stopPropagation(),this.requestUpdate());return}let r=e=>n.value+n.step*e,i=this.isLTR?1:-1,a;switch(e.key){case`ArrowUp`:a=r(1);break;case`ArrowDown`:a=r(-1);break;case`ArrowRight`:a=r(i);break;case`ArrowLeft`:a=r(-i);break;case`Home`:a=n.effectiveMin;break;case`End`:a=n.effectiveMax;break;case`PageUp`:a=r(5);break;case`PageDown`:a=r(-5);break;default:return}e.preventDefault(),e.stopPropagation(),this.indeterminate=!1,this._handleController.setValue(t,a)&&(this._handleController.dispatchInput(t),this._handleController.dispatchChange(t),this.requestUpdate())}handleTrackInput(e){let t=e.target;this.handleNativeInput(e,Number(t.dataset.handleIndex))}handleTrackChange(e){let t=e.target;this.handleNativeChange(e,Number(t.dataset.handleIndex))}handleTrackKeyDown(e){let t=e.target;this.handleKeyDown(e,Number(t.dataset.handleIndex))}handleTrackFocusIn(e){let t=e.target,n=Number(t.dataset.handleIndex);this._handleController.activeIndex=n,this._focusedIndex=n}handleTrackFocusOut(e){let t=e.target;this._focusedIndex===Number(t.dataset.handleIndex)&&(this._focusedIndex=-1)}handleTrackDoubleClick(e){let t=e.target.closest(`[data-handle-index]`);!t||this.disabled||this.readonly||(e.preventDefault(),this._handleController.reset(Number(t.dataset.handleIndex)))}handleNumberInput(e){if(e.stopPropagation(),this.readonly)return;let t=e.currentTarget;this._applyInputValue(0,t.value)}handleNumberChange(e){if(e.stopPropagation(),this.readonly)return;let t=e.currentTarget;this._commitValue(0,t.value)}get _hasFill(){return this.variant!==`unfilled`}_renderTicks(){if(!this.ticks)return a.nothing;let e=this.tickStep||this.step,t=x(this.min,this.max,e),n=this._numberFormatter(this._withDefaultPrecision(this.formatOptions,e,this.min,this.max));return D(t,this.min,this.max,n,this.tickLabels)}_renderFill(e){return!this._hasFill||this.ramp?a.nothing:k(e,this.fillStart)}render(){let e=this._handleController.models,t=this.labelVisibility===`value`,n=this.editable&&e.length===1?e[0]:void 0,r=e.length>1||n!==void 0,i=(0,d.repeat)(e,({name:e})=>e,(t,n)=>T({model:t,index:n,total:e.length,grouped:r,label:this.label,appliedLabel:this._appliedLabel,helpTextId:this.helpTextId,labelVisibility:this.labelVisibility,formattedValue:this._handleController.formatValue(n),activeIndex:this._handleController.activeIndex,draggingIndex:this._handleController.draggingIndex,focusedIndex:this._focusedIndex,invalid:this.invalid,readonly:this.readonly,disabled:this.disabled}));return a.html`
|
|
96
|
-
<slot
|
|
97
|
-
name="handle"
|
|
98
|
-
class="handle-slot"
|
|
99
|
-
@slotchange=${this.handleSlotChange}
|
|
100
|
-
></slot>
|
|
101
|
-
${r?a.html`<span id="slider-label" class="visually-hidden"
|
|
102
|
-
>${this.label||this._appliedLabel}</span
|
|
103
|
-
>`:a.nothing}
|
|
104
|
-
<div
|
|
105
|
-
class="control-row"
|
|
106
|
-
role=${(0,s.ifDefined)(r?`group`:void 0)}
|
|
107
|
-
aria-labelledby=${(0,s.ifDefined)(r?`slider-label`:void 0)}
|
|
108
|
-
aria-describedby=${(0,s.ifDefined)(r?this.helpTextId:void 0)}
|
|
109
|
-
>
|
|
110
|
-
<div
|
|
111
|
-
id="track"
|
|
112
|
-
class="track"
|
|
113
|
-
@pointerdown=${this.handlePointerDown}
|
|
114
|
-
@pointermove=${this.handlePointerMove}
|
|
115
|
-
@pointerup=${this.handlePointerUp}
|
|
116
|
-
@pointercancel=${this.handlePointerCancel}
|
|
117
|
-
@lostpointercapture=${this.handleLostPointerCapture}
|
|
118
|
-
@input=${this.handleTrackInput}
|
|
119
|
-
@change=${this.handleTrackChange}
|
|
120
|
-
@keydown=${this.handleTrackKeyDown}
|
|
121
|
-
@focusin=${this.handleTrackFocusIn}
|
|
122
|
-
@focusout=${this.handleTrackFocusOut}
|
|
123
|
-
@dblclick=${this.handleTrackDoubleClick}
|
|
124
|
-
>
|
|
125
|
-
<span class="rail"></span>
|
|
126
|
-
${this.ramp?A(e,this.fillStart,this._hasFill):a.nothing}
|
|
127
|
-
${this._renderFill(e)} ${this._renderTicks()} ${i}
|
|
128
|
-
</div>
|
|
129
|
-
${t?a.html`<output class="value-label"
|
|
130
|
-
>${this._combinedValueText}</output
|
|
131
|
-
>`:a.nothing}
|
|
132
|
-
${n?E({model:n,label:this.label||this._appliedLabel,formatOptions:this.formatOptions,size:this.size,disabled:this.disabled,invalid:this.invalid,readonly:this.readonly,hideStepper:this.hideStepper,quiet:this.quiet,indeterminate:this.indeterminate,onInput:this.handleNumberInput,onChange:this.handleNumberChange}):a.nothing}
|
|
133
|
-
</div>
|
|
134
|
-
${this.renderHelpText(this.invalid)}
|
|
135
|
-
`}willUpdate(e){super.willUpdate(e),(e.has(`value`)||e.has(`min`)||e.has(`max`)||e.has(`step`))&&this._normalizeRawValue(),(e.has(r.r)||e.has(`formatOptions`))&&this._clearNumberFormatterCache()}updated(e){super.updated(e),(e.has(`disabled`)&&this.disabled||e.has(`readonly`)&&this.readonly)&&(this._endDrag(),this._pendingCommits.clear())}};e.t([(0,o.property)({type:String})],L.prototype,`label`,void 0),e.t([(0,o.property)({attribute:!1})],L.prototype,`labels`,void 0),e.t([(0,o.state)()],L.prototype,`_appliedLabel`,void 0),e.t([(0,o.property)({type:Number,reflect:!0})],L.prototype,`value`,null),e.t([(0,o.property)({type:Number,reflect:!0})],L.prototype,`min`,null),e.t([(0,o.property)({type:Number,reflect:!0})],L.prototype,`max`,null),e.t([(0,o.property)({type:Number,reflect:!0})],L.prototype,`step`,null),e.t([(0,o.property)({type:Number,reflect:!0,attribute:`default-value`})],L.prototype,`defaultValue`,void 0),e.t([(0,o.property)({type:String,reflect:!0})],L.prototype,`variant`,null),e.t([(0,o.property)({type:Boolean,reflect:!0})],L.prototype,`ramp`,void 0),e.t([(0,o.property)({type:Boolean,reflect:!0})],L.prototype,`ticks`,void 0),e.t([(0,o.property)({type:String,reflect:!0,attribute:`label-visibility`})],L.prototype,`labelVisibility`,null),e.t([(0,o.property)({reflect:!0,attribute:`fill-start`,converter:I})],L.prototype,`fillStart`,void 0),e.t([(0,o.property)({type:Number,reflect:!0,attribute:`tick-step`})],L.prototype,`tickStep`,null),e.t([(0,o.property)({type:Boolean,reflect:!0,attribute:`tick-labels`})],L.prototype,`tickLabels`,void 0),e.t([(0,o.property)({type:Boolean,reflect:!0})],L.prototype,`editable`,void 0),e.t([(0,o.property)({type:Boolean,reflect:!0,attribute:`hide-stepper`})],L.prototype,`hideStepper`,void 0),e.t([(0,o.property)({type:Boolean,reflect:!0})],L.prototype,`quiet`,void 0),e.t([(0,o.property)({type:Boolean,reflect:!0})],L.prototype,`indeterminate`,void 0),e.t([(0,o.property)({type:Boolean,reflect:!0})],L.prototype,`invalid`,void 0),e.t([(0,o.property)({type:Boolean,reflect:!0})],L.prototype,`readonly`,void 0),e.t([(0,o.property)({attribute:!1})],L.prototype,`formatOptions`,void 0),e.t([(0,o.property)({attribute:!1})],L.prototype,`normalization`,null),e.t([(0,o.property)({attribute:!1})],L.prototype,`getAriaHandleText`,null),e.t([(0,o.property)({attribute:!1})],L.prototype,`getAriaValueText`,null),e.t([(0,o.queryAll)(`input[type="range"]`)],L.prototype,`rangeInputs`,void 0),e.t([(0,o.state)()],L.prototype,`_focusedIndex`,void 0);var R={fromAttribute(e){if(e===null)return;if(e===`previous`)return e;let t=Number(e);return Number.isFinite(t)?t:void 0},toAttribute(e){return e===void 0?null:String(e)}},z={fromAttribute(e){if(e===null)return;if(e===`next`)return e;let t=Number(e);return Number.isFinite(t)?t:void 0},toAttribute(e){return e===void 0?null:String(e)}},B=class extends e.n{constructor(...e){super(...e),this.name=``,this.label=``,this.value=NaN,this.color=``}set normalization(e){let t=this.normalization;this._normalization=e,this.requestUpdate(`normalization`,t)}get normalization(){return this._normalization??f}#e;attachController(e){this.#e=e}detachController(e){this.#e===e&&(this.#e=void 0)}get hasController(){return this.#e!==void 0}focus(e){this.#e?.inputForHandle(this)?.focus(e)}render(){return a.nothing}updated(e){super.updated(e),(e.has(`value`)||e.has(`min`)||e.has(`max`)||e.has(`step`)||e.has(`color`)||e.has(`name`)||e.has(`label`)||e.has(`defaultValue`)||e.has(`formatOptions`)||e.has(`normalization`)||e.has(`getAriaHandleText`))&&this.#e?.requestHostUpdate()}};e.t([(0,o.property)({type:String,reflect:!0})],B.prototype,`name`,void 0),e.t([(0,o.property)({type:String})],B.prototype,`label`,void 0),e.t([(0,o.property)({type:Number,reflect:!0})],B.prototype,`value`,void 0),e.t([(0,o.property)({type:Number,reflect:!0,attribute:`default-value`})],B.prototype,`defaultValue`,void 0),e.t([(0,o.property)({reflect:!0,converter:R})],B.prototype,`min`,void 0),e.t([(0,o.property)({reflect:!0,converter:z})],B.prototype,`max`,void 0),e.t([(0,o.property)({type:Number,reflect:!0})],B.prototype,`step`,void 0),e.t([(0,o.property)({type:String,reflect:!0})],B.prototype,`color`,void 0),e.t([(0,o.property)({attribute:!1})],B.prototype,`formatOptions`,void 0),e.t([(0,o.property)({attribute:!1})],B.prototype,`normalization`,null),e.t([(0,o.property)({attribute:!1})],B.prototype,`getAriaHandleText`,void 0),typeof customElements<`u`&&!customElements.get(`luzmo-slider-handle`)&&customElements.define(`luzmo-slider-handle`,B),typeof customElements<`u`&&!customElements.get(`luzmo-slider`)&&customElements.define(`luzmo-slider`,L),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return B}});
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import"../tokens.js";import{c as e,y as t}from"./lit-DWANyjiY.js";import{g as n,i as r,l as i,u as a,y as o}from"./lucero-runtime-DMlHjBe_.js";import{t as s}from"./language-resolution-BwIkGyuH.js";import{a as c,t as l}from"./platform-wNs7qaiE.js";import"./color-handle-BLQiuRSS.js";import{t as u}from"./color-controller-BlFueK6Y.js";import{t as d}from"./streaming-listener-DbMoHlSj.js";var f=`@media (forced-colors:active){:host{--highcontrast-color-area-border-color-disabled:GrayText;--highcontrast-color-area-border-color:Canvas;--highcontrast-color-area-fill-color-disabled:Canvas}.gradient,:host([disabled]){forced-color-adjust:none}}:host{cursor:default;-webkit-user-select:none;user-select:none;min-inline-size:var(--luzmo-color-area-min-width,64px);min-block-size:var(--luzmo-color-area-min-height,64px);inline-size:var(--luzmo-color-area-width,192px);block-size:var(--luzmo-color-area-height,192px);box-sizing:border-box;border-radius:var(--luzmo-color-area-border-radius,var(--luzmo-border-radius-s));display:inline-block;position:relative;border:var(--luzmo-color-area-border-width,var(--luzmo-border-width)) solid var(--highcontrast-color-area-border-color,var(--luzmo-color-area-border-color,var(--luzmo-border-color)))!important}:host([focused]){z-index:1}:host([disabled]){pointer-events:none;background:var(--highcontrast-color-area-fill-color-disabled,var(--luzmo-color-area-disabled-background-color,var(--luzmo-dimmed-color)));border:var(--luzmo-color-area-border-width,var(--luzmo-border-width)) solid var(--highcontrast-color-area-border-color-disabled)!important}:host([disabled]) .gradient{display:none}.handle{transform:translate(calc(var(--luzmo-color-area-width,192px) - var(--luzmo-border-width)));inset-block-start:0}:host([dir=rtl]) .handle{inset-inline-end:0}.handle:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){inset-inline-end:0}.gradient{border-radius:var(--luzmo-color-area-border-radius,var(--luzmo-border-radius-s));block-size:100%;inline-size:100%}.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}:host{touch-action:none}:host:before{pointer-events:none}.gradient{overflow:hidden}.handle{transform:translate(var(--luzmo-color-area-default-width), 0)}::slotted(*){width:100%;height:100%}:host([dir=rtl]) .gradient{transform:scaleX(-1)}.slider[orient=vertical]{appearance:slider-vertical}.slider:focus{z-index:1}.fieldset{border:0;margin:0;padding:0}`,p=class extends a{constructor(...e){super(...e),this.disabled=!1,this.focused=!1,this.labelX=`saturation`,this.labelY=`luminosity`,this.isLTR=!0,this.languageResolver=new s(this),this.colorController=new u(this,{manageAs:`hsv`}),this.activeAxis=`x`,this.step=.01,this.altered=0,this.activeKeys=/* @__PURE__ */ new Set,this._valueChanged=!1,this._pointerDown=!1,this.resizeRafId=0,this.handleResize=e=>{let t=e.at(-1);t&&(this.resizeRafId&&cancelAnimationFrame(this.resizeRafId),this.resizeRafId=requestAnimationFrame(()=>{this.resizeRafId=0,this.boundingClientRect=t.contentRect,this.requestUpdate()}))}}static get styles(){return[t(f)]}get hue(){return this.colorController.hue}set hue(e){this.colorController.hue=e}get value(){return this.colorController.colorValue}get color(){return this.colorController.colorValue}set color(e){this.colorController.color=e}get x(){return this.colorController.color.hsv.s/100}set x(e){if(e===this.x)return;let t=this.x;this.inputX?(this.inputX.value=e.toString(),this.colorController.color.set(`s`,this.inputX.valueAsNumber*100)):this.colorController.color.set(`s`,e*100),this.requestUpdate(`x`,t)}get y(){return this.colorController.color.hsv.v/100}set y(e){if(e===this.y)return;let t=this.y;this.inputY&&(this.inputY.value=e.toString(),this.colorController.color.set(`v`,this.inputY.valueAsNumber*100)),this.requestUpdate(`y`,t)}focus(e={}){super.focus(e),this.forwardFocus()}forwardFocus(){this.activeAxis===`x`?this.inputX.focus():this.inputY.focus()}handleFocus(){this.focused=!0,this._valueChanged=!1}handleBlur(){this._pointerDown||(this.altered=0,this.focused=!1,this._valueChanged=!1)}handleKeydown(e){let{code:t}=e;this.focused=!0,this.altered=[e.shiftKey,e.ctrlKey,e.altKey].filter(e=>!!e).length,(t.search(`Arrow`)===0||t.search(`Page`)===0||t.search(`Home`)===0||t.search(`End`)===0)&&(e.preventDefault(),this.activeKeys.add(t),this.handleKeypress())}handleKeypress(){let e=0,t=0,n=Math.max(this.step,this.altered*5*this.step);this.activeKeys.forEach(r=>{switch(r){case`ArrowUp`:t=n;break;case`ArrowDown`:t=n*-1;break;case`ArrowLeft`:e=this.step*(this.isLTR?-1:1);break;case`ArrowRight`:e=this.step*(this.isLTR?1:-1);break;case`PageUp`:t=n*10;break;case`PageDown`:t=n*-10;break;case`Home`:e=n*(this.isLTR?-10:10);break;case`End`:e=n*(this.isLTR?10:-10)}}),e===0?t!==0&&(this.activeAxis=`y`,this.inputY.focus()):(this.activeAxis=`x`,this.inputX.focus()),this.x=Math.min(1,Math.max(this.x+e,0)),this.y=Math.min(1,Math.max(this.y+t,0)),this.colorController.savePreviousColor(),(e!==0||t!==0)&&(this._valueChanged=!0,this.dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0})),this.dispatchEvent(new Event(`change`,{bubbles:!0,composed:!0,cancelable:!0}))||this.colorController.restorePreviousColor())}handleKeyup(e){e.preventDefault();let{code:t}=e;this.activeKeys.delete(t)}handleInput(e){let{valueAsNumber:t,name:n}=e.target;this[n]=t}handleChange(e){this.handleInput(e),this.dispatchEvent(new Event(`change`,{bubbles:!0,composed:!0,cancelable:!0}))}handlePointerdown(e){e.button===0?(this._pointerDown=!0,this.colorController.savePreviousColor(),this.boundingClientRect=this.getBoundingClientRect(),e.target.setPointerCapture(e.pointerId),e.pointerType===`mouse`&&(this.focused=!0)):e.preventDefault()}handlePointermove(e){let[t,n]=this.calculateHandlePosition(e);this._valueChanged=!1,this.x=t,this.y=n,this.dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0,cancelable:!0}))}handlePointerup(e){e.preventDefault(),this._pointerDown=!1,e.target.releasePointerCapture(e.pointerId);let t=this.dispatchEvent(new Event(`change`,{bubbles:!0,composed:!0,cancelable:!0}));this.inputX.focus(),e.pointerType===`mouse`&&(this.focused=!1),t||this.colorController.restorePreviousColor()}calculateHandlePosition(e){
|
|
3
|
-
/* c8 ignore next 3 */
|
|
4
|
-
if(!this.boundingClientRect)return[this.x,this.y];let t=this.boundingClientRect,n=t.left,r=t.top,i=e.clientX,a=e.clientY,o=t.width,s=t.height,c=Math.max(0,Math.min(1,(i-n)/o)),l=Math.max(0,Math.min(1,(a-r)/s));return[this.isLTR?c:1-c,1-l]}handleAreaPointerdown(e){e.button===0&&(e.stopPropagation(),e.preventDefault(),this.handle.dispatchEvent(new PointerEvent(`pointerdown`,e)),this.handlePointermove(e))}render(){let{width:t=0,height:n=0}=this.boundingClientRect||{},i=l()||c(),a=`Color Picker`,o=r(i?void 0:`2d slider`),s=this.labelX,u=this.labelY,f=new Intl.NumberFormat(this.languageResolver.language,{style:`percent`,unitDisplay:`narrow`}).format(this.x),p=new Intl.NumberFormat(this.languageResolver.language,{style:`percent`,unitDisplay:`narrow`}).format(this.y),m={background:`linear-gradient(to top, black 0%, hsla(${this.hue}, 100%, 0.01%, 0) 100%),linear-gradient(to right, white 0%, hsla(${this.hue}, 100%, 0.01%, 0) 100%), hsl(${this.hue}, 100%, 50%);`};return e`
|
|
5
|
-
<div
|
|
6
|
-
@pointerdown=${this.handleAreaPointerdown}
|
|
7
|
-
class="gradient"
|
|
8
|
-
style="background: ${m.background}"
|
|
9
|
-
>
|
|
10
|
-
<slot name="gradient"></slot>
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<luzmo-color-handle
|
|
14
|
-
tabindex=${r(this.focused?void 0:`0`)}
|
|
15
|
-
@focus=${this.forwardFocus}
|
|
16
|
-
?focused=${this.focused}
|
|
17
|
-
class="handle"
|
|
18
|
-
color=${this.colorController.getHslString()}
|
|
19
|
-
?disabled=${this.disabled}
|
|
20
|
-
style=${`transform: translate(${(this.isLTR?this.x:1-this.x)*t}px, ${n-this.y*n}px);`}
|
|
21
|
-
${d({start:[`pointerdown`,this.handlePointerdown],streamInside:[`pointermove`,this.handlePointermove],end:[[`pointerup`,`pointercancel`,`pointerleave`],this.handlePointerup]})}
|
|
22
|
-
></luzmo-color-handle>
|
|
23
|
-
|
|
24
|
-
<fieldset
|
|
25
|
-
class="fieldset"
|
|
26
|
-
aria-label=${r(i?a:void 0)}
|
|
27
|
-
>
|
|
28
|
-
<div role="presentation">
|
|
29
|
-
<input
|
|
30
|
-
type="range"
|
|
31
|
-
class="slider"
|
|
32
|
-
name="x"
|
|
33
|
-
aria-label=${i?s:`${s} ${a}`}
|
|
34
|
-
aria-roledescription=${o}
|
|
35
|
-
aria-orientation="horizontal"
|
|
36
|
-
aria-valuetext=${i?f:`${f}, ${s}${this._valueChanged?``:`, ${p}, ${u}`}`}
|
|
37
|
-
min="0"
|
|
38
|
-
max="1"
|
|
39
|
-
step=${this.step}
|
|
40
|
-
tabindex="-1"
|
|
41
|
-
.value=${String(this.x)}
|
|
42
|
-
@input=${this.handleInput}
|
|
43
|
-
@change=${this.handleChange}
|
|
44
|
-
/>
|
|
45
|
-
</div>
|
|
46
|
-
<div role="presentation">
|
|
47
|
-
<input
|
|
48
|
-
type="range"
|
|
49
|
-
class="slider"
|
|
50
|
-
name="y"
|
|
51
|
-
aria-label=${i?u:`${u} ${a}`}
|
|
52
|
-
aria-roledescription=${o}
|
|
53
|
-
aria-orientation="vertical"
|
|
54
|
-
aria-valuetext=${i?p:`${p}, ${u}${this._valueChanged?``:`, ${f}, ${s}`}`}
|
|
55
|
-
orient="vertical"
|
|
56
|
-
min="0"
|
|
57
|
-
max="1"
|
|
58
|
-
step=${this.step}
|
|
59
|
-
tabindex="-1"
|
|
60
|
-
.value=${String(this.y)}
|
|
61
|
-
@input=${this.handleInput}
|
|
62
|
-
@change=${this.handleChange}
|
|
63
|
-
/>
|
|
64
|
-
</div>
|
|
65
|
-
</fieldset>
|
|
66
|
-
`}firstUpdated(e){super.firstUpdated(e),this.boundingClientRect=this.getBoundingClientRect(),this.addEventListener(`focus`,this.handleFocus),this.addEventListener(`blur`,this.handleBlur),this.addEventListener(`keyup`,this.handleKeyup),this.addEventListener(`keydown`,this.handleKeydown)}updated(e){if(super.updated(e),this.x!==this.inputX.valueAsNumber&&this.colorController.color.set(`s`,this.inputX.valueAsNumber*100),this.y!==this.inputY.valueAsNumber&&this.colorController.color.set(`v`,(1-this.inputY.valueAsNumber)*100),e.has(`focused`)&&this.focused){let e=this.inputX.parentElement,t=this.inputY.parentElement;if(!e.shadowRoot&&!t.shadowRoot){e.attachShadow({mode:`open`}),t.attachShadow({mode:`open`});let n=`<div tabindex="-1"><slot></slot></div>`;e.shadowRoot.innerHTML=n,t.shadowRoot.innerHTML=n}}}connectedCallback(){super.connectedCallback(),!this.observer&&window.ResizeObserver&&(this.observer=new window.ResizeObserver(this.handleResize)),this.observer?.observe(this)}disconnectedCallback(){this.resizeRafId&&=(cancelAnimationFrame(this.resizeRafId),0),this.observer?.disconnect(),this.observer=void 0,super.disconnectedCallback()}};i([o({type:String,reflect:!0})],p.prototype,`dir`,void 0),i([o({type:Boolean,reflect:!0})],p.prototype,`disabled`,void 0),i([o({type:Boolean,reflect:!0})],p.prototype,`focused`,void 0),i([o({type:String,attribute:`label-x`})],p.prototype,`labelX`,void 0),i([o({type:String,attribute:`label-y`})],p.prototype,`labelY`,void 0),i([o({type:Boolean,attribute:`is-ltr`})],p.prototype,`isLTR`,void 0),i([n(`.handle`)],p.prototype,`handle`,void 0),i([o({type:Number})],p.prototype,`hue`,null),i([o({type:String})],p.prototype,`value`,null),i([o({type:String})],p.prototype,`color`,null),i([o({attribute:!1})],p.prototype,`activeAxis`,void 0),i([o({type:Number})],p.prototype,`x`,null),i([o({type:Number})],p.prototype,`y`,null),i([o({type:Number})],p.prototype,`step`,void 0),i([n(`[name="x"]`)],p.prototype,`inputX`,void 0),i([n(`[name="y"]`)],p.prototype,`inputY`,void 0),customElements.get(`luzmo-color-area`)||customElements.define(`luzmo-color-area`,p);export{p as t};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import"../tokens.js";import{c as e,y as t}from"./lit-DWANyjiY.js";import{a as n,g as r,i,l as a,y as o}from"./lucero-runtime-DMlHjBe_.js";import{t as s}from"./language-resolution-BwIkGyuH.js";import{t as c}from"./style-map-DmBaq1-c.js";import"./color-handle-BLQiuRSS.js";import{t as l}from"./streaming-listener-DbMoHlSj.js";function u(e,t){f(e)&&(e=`100%`);let n=p(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(e=t===360?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t)),e)}function d(e){return Math.min(1,Math.max(0,e))}function f(e){return typeof e==`string`&&e.indexOf(`.`)!==-1&&parseFloat(e)===1}function p(e){return typeof e==`string`&&e.indexOf(`%`)!==-1}function m(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function h(e){return Number(e)<=1?`${Number(e)*100}%`:e}function g(e){return e.length===1?`0`+e:String(e)}function _(e,t,n){return{r:u(e,255)*255,g:u(t,255)*255,b:u(n,255)*255}}function v(e,t,n){e=u(e,255),t=u(t,255),n=u(n,255);let r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=0,s=(r+i)/2;if(r===i)o=0,a=0;else{let c=r-i;switch(o=s>.5?c/(2-r-i):c/(r+i),r){case e:a=(t-n)/c+(t<n?6:0);break;case t:a=(n-e)/c+2;break;case n:a=(e-t)/c+4}a/=6}return{h:a,s:o,l:s}}function y(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function b(e,t,n){let r,i,a;if(e=u(e,360),t=u(t,100),n=u(n,100),t===0)i=n,a=n,r=n;else{let o=n<.5?n*(1+t):n+t-n*t,s=2*n-o;r=y(s,o,e+1/3),i=y(s,o,e),a=y(s,o,e-1/3)}return{r:r*255,g:i*255,b:a*255}}function x(e,t,n){e=u(e,255),t=u(t,255),n=u(n,255);let r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=r,s=r-i,c=r===0?0:s/r;if(r===i)a=0;else{switch(r){case e:a=(t-n)/s+(t<n?6:0);break;case t:a=(n-e)/s+2;break;case n:a=(e-t)/s+4}a/=6}return{h:a,s:c,v:o}}function S(e,t,n){e=u(e,360)*6,t=u(t,100),n=u(n,100);let r=Math.floor(e),i=e-r,a=n*(1-t),o=n*(1-i*t),s=n*(1-(1-i)*t),c=r%6,l=[n,o,a,a,s,n][c],d=[s,n,n,o,a,a][c],f=[a,a,s,n,n,o][c];return{r:l*255,g:d*255,b:f*255}}function C(e,t,n,r){let i=[g(Math.round(e).toString(16)),g(Math.round(t).toString(16)),g(Math.round(n).toString(16))];return r&&i[0].startsWith(i[0].charAt(1))&&i[1].startsWith(i[1].charAt(1))&&i[2].startsWith(i[2].charAt(1))?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join(``)}function w(e,t,n,r,i){let a=[g(Math.round(e).toString(16)),g(Math.round(t).toString(16)),g(Math.round(n).toString(16)),g(D(r))];return i&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join(``)}function T(e,t,n,r){let i=e/100,a=t/100,o=n/100,s=r/100;return{r:255*(1-i)*(1-s),g:255*(1-a)*(1-s),b:255*(1-o)*(1-s)}}function E(e,t,n){let r=1-e/255,i=1-t/255,a=1-n/255,o=Math.min(r,i,a);return o===1?(r=0,i=0,a=0):(r=(r-o)/(1-o)*100,i=(i-o)/(1-o)*100,a=(a-o)/(1-o)*100),o*=100,{c:Math.round(r),m:Math.round(i),y:Math.round(a),k:Math.round(o)}}function D(e){return Math.round(parseFloat(e)*255).toString(16)}function O(e){return k(e)/255}function k(e){return parseInt(e,16)}function A(e){return{r:e>>16,g:(e&65280)>>8,b:e&255}}var j={aliceblue:`#f0f8ff`,antiquewhite:`#faebd7`,aqua:`#00ffff`,aquamarine:`#7fffd4`,azure:`#f0ffff`,beige:`#f5f5dc`,bisque:`#ffe4c4`,black:`#000000`,blanchedalmond:`#ffebcd`,blue:`#0000ff`,blueviolet:`#8a2be2`,brown:`#a52a2a`,burlywood:`#deb887`,cadetblue:`#5f9ea0`,chartreuse:`#7fff00`,chocolate:`#d2691e`,coral:`#ff7f50`,cornflowerblue:`#6495ed`,cornsilk:`#fff8dc`,crimson:`#dc143c`,cyan:`#00ffff`,darkblue:`#00008b`,darkcyan:`#008b8b`,darkgoldenrod:`#b8860b`,darkgray:`#a9a9a9`,darkgreen:`#006400`,darkgrey:`#a9a9a9`,darkkhaki:`#bdb76b`,darkmagenta:`#8b008b`,darkolivegreen:`#556b2f`,darkorange:`#ff8c00`,darkorchid:`#9932cc`,darkred:`#8b0000`,darksalmon:`#e9967a`,darkseagreen:`#8fbc8f`,darkslateblue:`#483d8b`,darkslategray:`#2f4f4f`,darkslategrey:`#2f4f4f`,darkturquoise:`#00ced1`,darkviolet:`#9400d3`,deeppink:`#ff1493`,deepskyblue:`#00bfff`,dimgray:`#696969`,dimgrey:`#696969`,dodgerblue:`#1e90ff`,firebrick:`#b22222`,floralwhite:`#fffaf0`,forestgreen:`#228b22`,fuchsia:`#ff00ff`,gainsboro:`#dcdcdc`,ghostwhite:`#f8f8ff`,goldenrod:`#daa520`,gold:`#ffd700`,gray:`#808080`,green:`#008000`,greenyellow:`#adff2f`,grey:`#808080`,honeydew:`#f0fff0`,hotpink:`#ff69b4`,indianred:`#cd5c5c`,indigo:`#4b0082`,ivory:`#fffff0`,khaki:`#f0e68c`,lavenderblush:`#fff0f5`,lavender:`#e6e6fa`,lawngreen:`#7cfc00`,lemonchiffon:`#fffacd`,lightblue:`#add8e6`,lightcoral:`#f08080`,lightcyan:`#e0ffff`,lightgoldenrodyellow:`#fafad2`,lightgray:`#d3d3d3`,lightgreen:`#90ee90`,lightgrey:`#d3d3d3`,lightpink:`#ffb6c1`,lightsalmon:`#ffa07a`,lightseagreen:`#20b2aa`,lightskyblue:`#87cefa`,lightslategray:`#778899`,lightslategrey:`#778899`,lightsteelblue:`#b0c4de`,lightyellow:`#ffffe0`,lime:`#00ff00`,limegreen:`#32cd32`,linen:`#faf0e6`,magenta:`#ff00ff`,maroon:`#800000`,mediumaquamarine:`#66cdaa`,mediumblue:`#0000cd`,mediumorchid:`#ba55d3`,mediumpurple:`#9370db`,mediumseagreen:`#3cb371`,mediumslateblue:`#7b68ee`,mediumspringgreen:`#00fa9a`,mediumturquoise:`#48d1cc`,mediumvioletred:`#c71585`,midnightblue:`#191970`,mintcream:`#f5fffa`,mistyrose:`#ffe4e1`,moccasin:`#ffe4b5`,navajowhite:`#ffdead`,navy:`#000080`,oldlace:`#fdf5e6`,olive:`#808000`,olivedrab:`#6b8e23`,orange:`#ffa500`,orangered:`#ff4500`,orchid:`#da70d6`,palegoldenrod:`#eee8aa`,palegreen:`#98fb98`,paleturquoise:`#afeeee`,palevioletred:`#db7093`,papayawhip:`#ffefd5`,peachpuff:`#ffdab9`,peru:`#cd853f`,pink:`#ffc0cb`,plum:`#dda0dd`,powderblue:`#b0e0e6`,purple:`#800080`,rebeccapurple:`#663399`,red:`#ff0000`,rosybrown:`#bc8f8f`,royalblue:`#4169e1`,saddlebrown:`#8b4513`,salmon:`#fa8072`,sandybrown:`#f4a460`,seagreen:`#2e8b57`,seashell:`#fff5ee`,sienna:`#a0522d`,silver:`#c0c0c0`,skyblue:`#87ceeb`,slateblue:`#6a5acd`,slategray:`#708090`,slategrey:`#708090`,snow:`#fffafa`,springgreen:`#00ff7f`,steelblue:`#4682b4`,tan:`#d2b48c`,teal:`#008080`,thistle:`#d8bfd8`,tomato:`#ff6347`,turquoise:`#40e0d0`,violet:`#ee82ee`,wheat:`#f5deb3`,white:`#ffffff`,whitesmoke:`#f5f5f5`,yellow:`#ffff00`,yellowgreen:`#9acd32`};function M(e){let t={r:0,g:0,b:0},n=1,r=null,i=null,a=null,o=!1,s=!1;return typeof e==`string`&&(e=L(e)),typeof e==`object`&&(R(e.r)&&R(e.g)&&R(e.b)?(t=_(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)===`%`?`prgb`:`rgb`):R(e.h)&&R(e.s)&&R(e.v)?(r=h(e.s),i=h(e.v),t=S(e.h,r,i),o=!0,s=`hsv`):R(e.h)&&R(e.s)&&R(e.l)?(r=h(e.s),a=h(e.l),t=b(e.h,r,a),o=!0,s=`hsl`):R(e.c)&&R(e.m)&&R(e.y)&&R(e.k)&&(t=T(e.c,e.m,e.y,e.k),o=!0,s=`cmyk`),Object.prototype.hasOwnProperty.call(e,`a`)&&(n=e.a)),n=m(n),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var N=`(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)`,P=`[\\s|\\(]+(`+N+`)[,|\\s]+(`+N+`)[,|\\s]+(`+N+`)\\s*\\)?`,F=`[\\s|\\(]+(`+N+`)[,|\\s]+(`+N+`)[,|\\s]+(`+N+`)[,|\\s]+(`+N+`)\\s*\\)?`,I={CSS_UNIT:new RegExp(N),rgb:RegExp(`rgb`+P),rgba:RegExp(`rgba`+F),hsl:RegExp(`hsl`+P),hsla:RegExp(`hsla`+F),hsv:RegExp(`hsv`+P),hsva:RegExp(`hsva`+F),cmyk:RegExp(`cmyk`+F),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function L(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;let t=!1;if(j[e])e=j[e],t=!0;else if(e===`transparent`)return{r:0,g:0,b:0,a:0,format:`name`};let n=I.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=I.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=I.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=I.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=I.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=I.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=I.cmyk.exec(e),n?{c:n[1],m:n[2],y:n[3],k:n[4]}:(n=I.hex8.exec(e),n?{r:k(n[1]),g:k(n[2]),b:k(n[3]),a:O(n[4]),format:t?`name`:`hex8`}:(n=I.hex6.exec(e),n?{r:k(n[1]),g:k(n[2]),b:k(n[3]),format:t?`name`:`hex`}:(n=I.hex4.exec(e),n?{r:k(n[1]+n[1]),g:k(n[2]+n[2]),b:k(n[3]+n[3]),a:O(n[4]+n[4]),format:t?`name`:`hex8`}:(n=I.hex3.exec(e),n?{r:k(n[1]+n[1]),g:k(n[2]+n[2]),b:k(n[3]+n[3]),format:t?`name`:`hex`}:!1))))))))))}function R(e){return typeof e==`number`?!Number.isNaN(e):I.CSS_UNIT.test(e)}var z=class e{constructor(t=``,n={}){if(t instanceof e)return t;typeof t==`number`&&(t=A(t)),this.originalInput=t;let r=M(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=n.format??r.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}isDark(){return this.getBrightness()<128}isLight(){return!this.isDark()}getBrightness(){let e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3}getLuminance(){let e=this.toRgb(),t,n,r,i=e.r/255,a=e.g/255,o=e.b/255;return t=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,n=a<=.03928?a/12.92:((a+.055)/1.055)**2.4,r=o<=.03928?o/12.92:((o+.055)/1.055)**2.4,.2126*t+.7152*n+.0722*r}getAlpha(){return this.a}setAlpha(e){return this.a=m(e),this.roundA=Math.round(100*this.a)/100,this}isMonochrome(){let{s:e}=this.toHsl();return e===0}toHsv(){let e=x(this.r,this.g,this.b);return{h:e.h*360,s:e.s,v:e.v,a:this.a}}toHsvString(){let e=x(this.r,this.g,this.b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.v*100);return this.a===1?`hsv(${t}, ${n}%, ${r}%)`:`hsva(${t}, ${n}%, ${r}%, ${this.roundA})`}toHsl(){let e=v(this.r,this.g,this.b);return{h:e.h*360,s:e.s,l:e.l,a:this.a}}toHslString(){let e=v(this.r,this.g,this.b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.l*100);return this.a===1?`hsl(${t}, ${n}%, ${r}%)`:`hsla(${t}, ${n}%, ${r}%, ${this.roundA})`}toHex(e=!1){return C(this.r,this.g,this.b,e)}toHexString(e=!1){return`#`+this.toHex(e)}toHex8(e=!1){return w(this.r,this.g,this.b,this.a,e)}toHex8String(e=!1){return`#`+this.toHex8(e)}toHexShortString(e=!1){return this.a===1?this.toHexString(e):this.toHex8String(e)}toRgb(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}}toRgbString(){let e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return this.a===1?`rgb(${e}, ${t}, ${n})`:`rgba(${e}, ${t}, ${n}, ${this.roundA})`}toPercentageRgb(){let e=e=>`${Math.round(u(e,255)*100)}%`;return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}}toPercentageRgbString(){let e=e=>Math.round(u(e,255)*100);return this.a===1?`rgb(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%)`:`rgba(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%, ${this.roundA})`}toCmyk(){return{...E(this.r,this.g,this.b)}}toCmykString(){let{c:e,m:t,y:n,k:r}=E(this.r,this.g,this.b);return`cmyk(${e}, ${t}, ${n}, ${r})`}toName(){if(this.a===0)return`transparent`;if(this.a<1)return!1;let e=`#`+C(this.r,this.g,this.b,!1);for(let[t,n]of Object.entries(j))if(e===n)return t;return!1}toString(e){let t=!!e;e??=this.format;let n=!1,r=this.a<1&&this.a>=0;return!t&&r&&(e.startsWith(`hex`)||e===`name`)?e===`name`&&this.a===0?this.toName():this.toRgbString():(e===`rgb`&&(n=this.toRgbString()),e===`prgb`&&(n=this.toPercentageRgbString()),(e===`hex`||e===`hex6`)&&(n=this.toHexString()),e===`hex3`&&(n=this.toHexString(!0)),e===`hex4`&&(n=this.toHex8String(!0)),e===`hex8`&&(n=this.toHex8String()),e===`name`&&(n=this.toName()),e===`hsl`&&(n=this.toHslString()),e===`hsv`&&(n=this.toHsvString()),e===`cmyk`&&(n=this.toCmykString()),n||this.toHexString())}toNumber(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)}clone(){return new e(this.toString())}lighten(t=10){let n=this.toHsl();return n.l+=t/100,n.l=d(n.l),new e(n)}brighten(t=10){let n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)}darken(t=10){let n=this.toHsl();return n.l-=t/100,n.l=d(n.l),new e(n)}tint(e=10){return this.mix(`white`,e)}shade(e=10){return this.mix(`black`,e)}desaturate(t=10){let n=this.toHsl();return n.s-=t/100,n.s=d(n.s),new e(n)}saturate(t=10){let n=this.toHsl();return n.s+=t/100,n.s=d(n.s),new e(n)}greyscale(){return this.desaturate(100)}spin(t){let n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)}mix(t,n=50){let r=this.toRgb(),i=new e(t).toRgb(),a=n/100,o={r:(i.r-r.r)*a+r.r,g:(i.g-r.g)*a+r.g,b:(i.b-r.b)*a+r.b,a:(i.a-r.a)*a+r.a};return new e(o)}analogous(t=6,n=30){let r=this.toHsl(),i=360/n,a=[this];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,a.push(new e(r));return a}complement(){let t=this.toHsl();return t.h=(t.h+180)%360,new e(t)}monochromatic(t=6){let n=this.toHsv(),{h:r}=n,{s:i}=n,{v:a}=n,o=[],s=1/t;for(;t--;)o.push(new e({h:r,s:i,v:a})),a=(a+s)%1;return o}splitcomplement(){let t=this.toHsl(),{h:n}=t;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]}onBackground(t){let n=this.toRgb(),r=new e(t).toRgb(),i=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/i,g:(n.g*n.a+r.g*r.a*(1-n.a))/i,b:(n.b*n.a+r.b*r.a*(1-n.a))/i,a:i})}triad(){return this.polyad(3)}tetrad(){return this.polyad(4)}polyad(t){let n=this.toHsl(),{h:r}=n,i=[this],a=360/t;for(let o=1;o<t;o++)i.push(new e({h:(r+o*a)%360,s:n.s,l:n.l}));return i}equals(t){let n=new e(t);return this.format===`cmyk`||n.format===`cmyk`?this.toCmykString()===n.toCmykString():this.toRgbString()===n.toRgbString()}},B=/^hs[v|l]a?\s?\((\d{1,3}\.?\d*?),?\s?(\d{1,3})/,V=/(^hs[v|l]a?\s?\()\d{1,3}\.?\d*?(,?\s?)\d{1,3}/,H=/(^hs[v|l]a?\()\d{1,3}/,U=(e,t)=>t?e.toHexString():e.toHex(),W=class{setColorProcess(e,t,n,r){this.maintains===`hue`?this.setColorMaintainHue(e,t,n,r):this.maintains===`saturation`&&this.setColorMaintainSaturation(e,t,n,r)}setColorMaintainHue(e,t,n,r){let{h:i,s:a,v:o,a:s}=this._color.toHsv(),c;if(r&&n.startsWith(`hs`)){let e=B.exec(t);if(e!==null){let[,t]=e;c=Number(t)}}else if(!r&&n.startsWith(`hs`)){let t=e.originalInput;c=Object.values(t)[0]}this.hue=c||i,this.opacity=s??1,this.applyColorToState({h:i,s:a,v:o,a:s})}setColorMaintainSaturation(e,t,n,r){let{a:i}=this._color.toHsv();if(r&&n.startsWith(`hs`)){let e=B.exec(t);if(e!==null){let[,t,n]=e;this.hue=Number(t),this.saturation=Number(n)}}else if(!r&&n.startsWith(`hs`)){let t=e.originalInput,n=Object.values(t);this.hue=n[0],this.saturation=n[1]}else{let{h:t}=e.toHsv();this.hue=t}this.opacity=i??1,this.applyColorToState(e.toHsv())}constructor(e,{applyColorToState:t,extractColorFromState:n,maintains:r}){this.maintains=`hue`,this._hue=0,this._opacity=1,this.getColorProcesses={rgb:(e,t)=>t?e.toRgbString():e.toRgb(),prgb:(e,t)=>t?e.toPercentageRgbString():e.toPercentageRgb(),hex8:(e,t)=>t?e.toHex8String():e.toHex8(),name:e=>e.toName()||e.toRgbString(),hsl:(e,t)=>{if(this.maintains===`hue`){if(t)return e.toHslString().replace(H,`$1${this.hue}`);let{s:n,l:r,a:i}=e.toHsl();return{h:this.hue,s:n,l:r,a:i}}if(t)return e.toHslString().replace(V,`$1${this.hue}$2${this.saturation}`);let{s:n,l:r,a:i}=e.toHsl();return{h:this.hue,s:n,l:r,a:i}},hsv:(e,t)=>{if(this.maintains===`hue`){if(t)return e.toHsvString().replace(H,`$1${this.hue}`);let{s:n,v:r,a:i}=e.toHsv();return{h:this.hue,s:n,v:r,a:i}}if(t)return e.toHsvString().replace(V,`$1${this.hue}$2${this.saturation}`);let{s:n,v:r,a:i}=e.toHsv();return{h:this.hue,s:n,v:r,a:i}},hex:U,hex3:U,hex4:U,hex6:U},this._color=new z({h:0,s:1,v:1}),this._previousColor=new z({h:0,s:1,v:1}),this._format={format:``,isString:!1},this.host=e,this.applyColorToState=t,this.extractColorFromState=n,this.maintains=r||this.maintains}applyColorFromState(){this._color=new z(this.extractColorFromState(this))}get hue(){return this._hue}set hue(e){let t=Math.min(360,Math.max(0,e));if(t===this.hue)return;let n=this.hue,{s:r,v:i,a}=this._color.toHsv();this._color=new z({h:t,s:r,v:i,a}),this._hue=t,this.host.requestUpdate(`hue`,n)}get opacity(){return this._opacity}set opacity(e){let t=Math.min(1,Math.max(0,e));if(t===this.opacity)return;let n=this.opacity,{h:r,s:i,v:a}=this._color.toHsv();this._color=new z({h:r,s:i,v:a,a:t}),this._opacity=t,this.host.requestUpdate(`opacity`,n)}
|
|
3
|
-
/* c8 ignore next 3 */
|
|
4
|
-
get value(){return this.color}get color(){return this.getColorProcesses[this._format.format||`hex`](this._color,this._format.isString)}set color(e){
|
|
5
|
-
/* c8 ignore next 3 */
|
|
6
|
-
if(e===this.color)return;let t=this._color;this._color=new z(e);let n=this._color.format,r=typeof e==`string`||e instanceof String;n.startsWith(`hex`)&&(r=e.startsWith(`#`)),this._format={format:n,isString:r},this.setColorProcess(this._color,e,n,r),this.host.requestUpdate(`color`,t)}getColor(e){return this._color[{hsl:`toHsl`}[e]]()}setColor(e){this._color=e;let t=typeof this._color.originalInput==`string`||this._color.originalInput instanceof String;this.setColorProcess(this._color,e,this._color.format,t)}getHslString(){return this._color.toHslString()}savePreviousColor(){this._previousColor=this._color.clone()}restorePreviousColor(){this.setColor(this._previousColor)}},G=`.opacity-checkerboard{background:repeating-conic-gradient(var(--luzmo-color-loupe-checkerboard-light,#fff) 0 25%, var(--luzmo-color-loupe-checkerboard-dark,#e6e6e6) 0 50%) var(--luzmo-color-loupe-checkerboard-position,left top)/calc(var(--luzmo-color-loupe-checkerboard-size,8px) * 2) calc(var(--luzmo-color-loupe-checkerboard-size,8px) * 2);block-size:100%;inline-size:100%;position:absolute}:host{--luzmo-color-slider-gradient-fallback:red 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red 100%;touch-action:none}:host([vertical]) .handle{inset-block-start:unset;inset-block-end:0}:host([vertical]) .slider{appearance:slider-vertical}:host(:focus){outline:none}.gradient{overflow:hidden}::slotted(*){width:100%;height:100%}@media (forced-colors:active){:host{--highcontrast-color-slider-border-color:CanvasText;--highcontrast-color-slider-border-color-disabled:GrayText;--highcontrast-color-slider-background-color-disabled:Canvas;forced-color-adjust:none}}:host{--luzmo-color-handle-hitarea-border-radius:var(--luzmo-color-slider-handle-hitarea-border-radius,0px);min-inline-size:var(--luzmo-color-slider-minimum-length,80px);inline-size:var(--luzmo-color-slider-length,192px);block-size:var(--luzmo-color-slider-control-track-width,24px);-webkit-user-select:none;user-select:none;cursor:default;display:block;position:relative}:host([focused]){z-index:2}:host([disabled]){pointer-events:none}:host([disabled]) .gradient{display:none}:host([vertical]){min-block-size:var(--luzmo-color-slider-vertical-minimum-height,var(--luzmo-color-slider-minimum-length,80px));block-size:var(--luzmo-color-slider-vertical-height,var(--luzmo-color-slider-length,192px));min-inline-size:0;inline-size:var(--luzmo-color-slider-vertical-control-track-width,var(--luzmo-color-slider-control-track-height,24px));display:inline-block}:host([vertical]) .handle{inset-inline-start:50%}.handle{inset-block-start:50%;inset-inline-start:0}.checkerboard{--luzmo-color-slider-border-color-local:var(--highcontrast-color-slider-border-color,var(--luzmo-color-slider-border-color,var(--luzmo-border-color)))}.checkerboard:before{content:"";z-index:1;box-shadow:inset 0 0 0 var(--luzmo-color-slider-border-width,var(--luzmo-border-width)) var(--luzmo-color-slider-border-color-local);border-radius:var(--luzmo-color-slider-border-rounding,var(--luzmo-border-radius-s));position:absolute;inset:0}:host([disabled]) .checkerboard{--luzmo-color-slider-border-color-local:var(--highcontrast-color-slider-border-color-disabled,var(--luzmo-color-slider-border-color-disabled,var(--luzmo-dimmed-color)));background:var(--highcontrast-color-slider-background-color-disabled,var(--luzmo-color-slider-background-color-disabled,var(--luzmo-dimmed-color)))}.checkerboard,.gradient{border-radius:var(--luzmo-color-slider-border-rounding,var(--luzmo-border-radius-s));block-size:100%;inline-size:100%}:host([dir=rtl]) .gradient{transform:scaleX(-1)}.gradient:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){transform:scaleX(-1)}.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}`,K=class extends n{constructor(...e){super(...e),this.disabled=!1,this.focused=!1,this.label=`hue`,this.vertical=!1,this.languageResolver=new s(this),this.colorController=new W(this,{
|
|
7
|
-
/* c8 ignore next 3 */
|
|
8
|
-
applyColorToState:()=>{if(this.mode===`opacity`){let e=new z(this.colorController.color);this.sliderHandlePosition=100*e.getAlpha()}else this.sliderHandlePosition=100*(this.colorController.hue/360)},extractColorFromState:e=>this.mode===`opacity`?{...e.getColor(`hsl`),a:this.value}:{...e.getColor(`hsl`),h:this.value},maintains:`saturation`}),this.sliderHandlePosition=0,this.step=1,this.isLTR=!0,this._altered=0,this._pointerDown=!1}static get styles(){return[t(G)]}get value(){return this.mode===`opacity`?this.colorController.opacity:this.colorController.hue}set value(e){this.mode===`opacity`?this.colorController.opacity=e:this.colorController.hue=e}get color(){return this.colorController.color}set color(e){this.colorController.color=e}get altered(){return this._altered}set altered(e){this._altered=e,this.step=Math.max(1,this.altered*10)}get focusElement(){return this.input}handleKeydown(e){let{key:t}=e;this.focused=!0,this.altered=[e.shiftKey,e.ctrlKey,e.altKey].filter(e=>!!e).length;let n=0;switch(t){case`ArrowUp`:n=this.step;break;case`ArrowDown`:n=-this.step;break;case`ArrowLeft`:n=this.step*(this.isLTR?-1:1);break;case`ArrowRight`:n=this.step*(this.isLTR?1:-1);break;default:return}e.preventDefault();let r=100/(this.mode===`opacity`?100:360);this.sliderHandlePosition=Math.min(100,Math.max(0,this.sliderHandlePosition+n*r)),this.value=this.mode===`opacity`?Math.min(1,Math.max(0,this.value+n/100)):Math.min(360,Math.max(0,this.value+n)),this.colorController.applyColorFromState(),n!==0&&(this.dispatchEvent(new Event(`input`,{bubbles:!0,composed:!0})),this.dispatchEvent(new Event(`change`,{bubbles:!0,composed:!0})))}handleInput(e){let{valueAsNumber:t}=e.target;this.value=t,this.sliderHandlePosition=100*(this.mode===`opacity`?this.value:this.value/360),this.colorController.applyColorFromState()}handleChange(e){this.handleInput(e),this.dispatchEvent(new Event(`change`,{bubbles:!0,composed:!0}))}focus(e={}){super.focus(e),this.forwardFocus()}forwardFocus(){this.input.focus()}handleFocus(){this.focused=!0}handleBlur(){this._pointerDown||(this.altered=0,this.focused=!1)}handlePointerdown(e){e.button===0?(this._pointerDown=!0,this.colorController.savePreviousColor(),this.boundingClientRect=this.getBoundingClientRect(),e.target.setPointerCapture(e.pointerId),e.pointerType===`mouse`&&(this.focused=!0)):e.preventDefault()}handlePointermove(e){this.sliderHandlePosition=this.calculateHandlePosition(e),this.value=(this.mode===`opacity`?1:360)*(this.sliderHandlePosition/100),this.colorController.applyColorFromState(),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){
|
|
9
|
-
/* c8 ignore next 3 */
|
|
10
|
-
if(!this.boundingClientRect)return this.sliderHandlePosition;let t=this.boundingClientRect,n=this.vertical?t.top:t.left,r=this.vertical?e.clientY:e.clientX,i=this.vertical?t.height:t.width,a=Math.max(0,Math.min(1,(r-n)/i));return this.vertical||!this.isLTR?100-100*a:100*a}handleGradientPointerdown(e){e.button===0&&(e.stopPropagation(),e.preventDefault(),this.handle.dispatchEvent(new PointerEvent(`pointerdown`,e)),this.handlePointermove(e))}get handlePositionStyles(){return`${this.vertical?`inset-block-end`:`inset-inline-start`}: ${this.sliderHandlePosition}%`}get getColorSliderStyle(){let e=this.vertical?`top`:`right`;return this.mode===`opacity`?{background:`linear-gradient(to ${e}, transparent, ${new z(this.colorController.color).setAlpha(1).toRgbString()})`}:{background:`linear-gradient(to ${e}, var(--luzmo-color-slider-gradient, var(--luzmo-color-slider-gradient-fallback)))`}}render(){return e`
|
|
11
|
-
<div
|
|
12
|
-
class="opacity-checkerboard checkerboard"
|
|
13
|
-
role="presentation"
|
|
14
|
-
@pointerdown=${this.handleGradientPointerdown}
|
|
15
|
-
>
|
|
16
|
-
<div
|
|
17
|
-
class="gradient"
|
|
18
|
-
role="presentation"
|
|
19
|
-
style=${c(this.getColorSliderStyle)}
|
|
20
|
-
>
|
|
21
|
-
<slot name="gradient"></slot>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
<luzmo-color-handle
|
|
25
|
-
tabindex=${i(this.focused?void 0:`0`)}
|
|
26
|
-
@focus=${this.forwardFocus}
|
|
27
|
-
?focused=${this.focused}
|
|
28
|
-
class="handle"
|
|
29
|
-
color=${this.mode===`opacity`?this.color:`hsl(`+this.value+`, 100%, 50%)`}
|
|
30
|
-
?disabled=${this.disabled}
|
|
31
|
-
style=${this.handlePositionStyles}
|
|
32
|
-
${l({start:[`pointerdown`,this.handlePointerdown],streamInside:[`pointermove`,this.handlePointermove],end:[[`pointerup`,`pointercancel`,`pointerleave`],this.handlePointerup]})}
|
|
33
|
-
></luzmo-color-handle>
|
|
34
|
-
<input
|
|
35
|
-
type="range"
|
|
36
|
-
class="slider"
|
|
37
|
-
min="0"
|
|
38
|
-
max=${this.mode===`opacity`?`100`:`360`}
|
|
39
|
-
aria-orientation=${i(this.vertical?`vertical`:void 0)}
|
|
40
|
-
orient=${i(this.vertical?`vertical`:void 0)}
|
|
41
|
-
step=${this.step}
|
|
42
|
-
aria-label=${this.label}
|
|
43
|
-
.value=${String(this.mode===`opacity`?this.value*100:this.value)}
|
|
44
|
-
aria-valuetext=${`${new Intl.NumberFormat(this.languageResolver.language,{maximumFractionDigits:0,minimumIntegerDigits:1,style:`unit`,unit:this.mode===`opacity`?`percent`:`degree`,unitDisplay:`narrow`}).format(this.mode===`opacity`?this.value*100:this.value)}`}
|
|
45
|
-
@input=${this.handleInput}
|
|
46
|
-
@change=${this.handleChange}
|
|
47
|
-
@keydown=${this.handleKeydown}
|
|
48
|
-
/>
|
|
49
|
-
`}firstUpdated(e){super.firstUpdated(e),this.boundingClientRect=this.getBoundingClientRect(),this.addEventListener(`focus`,this.handleFocus),this.addEventListener(`blur`,this.handleBlur)}updated(e){e.has(`mode`)&&(this.handle.style.insetInlineStart=``,this.handle.style.insetBlockEnd=``,this.mode===`opacity`&&(this.colorController.color=new z(this.colorController.color).toRgbString(),this.handle.style.insetInlineStart=100*this.colorController.opacity+`%`))}};a([o({type:String,reflect:!0})],K.prototype,`dir`,void 0),a([o({type:String,reflect:!0})],K.prototype,`mode`,void 0),a([o({type:Boolean,reflect:!0})],K.prototype,`disabled`,void 0),a([o({type:Boolean,reflect:!0})],K.prototype,`focused`,void 0),a([r(`.handle`)],K.prototype,`handle`,void 0),a([o({type:String})],K.prototype,`label`,void 0),a([o({type:Boolean,reflect:!0})],K.prototype,`vertical`,void 0),a([o({type:Number})],K.prototype,`value`,null),a([o({type:Number,reflect:!0})],K.prototype,`sliderHandlePosition`,void 0),a([o({type:String})],K.prototype,`color`,null),a([o({type:Number})],K.prototype,`step`,void 0),a([o({type:Boolean,attribute:`is-ltr`})],K.prototype,`isLTR`,void 0),a([r(`input`)],K.prototype,`input`,void 0),customElements.get(`luzmo-color-slider`)||customElements.define(`luzmo-color-slider`,K);export{z as n,K as t};
|