@warp-ds/elements 2.6.0 → 2.7.0-next.1

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.
Files changed (47) hide show
  1. package/dist/custom-elements.json +800 -0
  2. package/dist/index.d.ts +341 -0
  3. package/dist/packages/slider/Slider.d.ts +2 -0
  4. package/dist/packages/slider/Slider.js +8 -0
  5. package/dist/packages/slider/index.d.ts +2 -0
  6. package/dist/packages/slider/index.js +2 -0
  7. package/dist/packages/slider/locales/da/messages.d.mts +1 -0
  8. package/dist/packages/slider/locales/da/messages.mjs +1 -0
  9. package/dist/packages/slider/locales/en/messages.d.mts +1 -0
  10. package/dist/packages/slider/locales/en/messages.mjs +1 -0
  11. package/dist/packages/slider/locales/fi/messages.d.mts +1 -0
  12. package/dist/packages/slider/locales/fi/messages.mjs +1 -0
  13. package/dist/packages/slider/locales/nb/messages.d.mts +1 -0
  14. package/dist/packages/slider/locales/nb/messages.mjs +1 -0
  15. package/dist/packages/slider/locales/sv/messages.d.mts +1 -0
  16. package/dist/packages/slider/locales/sv/messages.mjs +1 -0
  17. package/dist/packages/slider/react.d.ts +3 -0
  18. package/dist/packages/slider/react.js +13 -0
  19. package/dist/packages/slider/slider.d.ts +64 -0
  20. package/dist/packages/slider/slider.js +2641 -0
  21. package/dist/packages/slider/slider.js.map +7 -0
  22. package/dist/packages/slider/slider.react.stories.d.ts +19 -0
  23. package/dist/packages/slider/slider.react.stories.js +161 -0
  24. package/dist/packages/slider/slider.stories.d.ts +26 -0
  25. package/dist/packages/slider/slider.stories.js +464 -0
  26. package/dist/packages/slider/slider.test.d.ts +5 -0
  27. package/dist/packages/slider/slider.test.js +380 -0
  28. package/dist/packages/slider/styles/w-slider.styles.d.ts +1 -0
  29. package/dist/packages/slider/styles/w-slider.styles.js +154 -0
  30. package/dist/packages/slider/styles.d.ts +1 -0
  31. package/dist/packages/slider/styles.js +2 -0
  32. package/dist/packages/slider-thumb/SliderThumb.d.ts +2 -0
  33. package/dist/packages/slider-thumb/SliderThumb.js +8 -0
  34. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +2 -0
  35. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +3 -0
  36. package/dist/packages/slider-thumb/react.d.ts +6 -0
  37. package/dist/packages/slider-thumb/react.js +15 -0
  38. package/dist/packages/slider-thumb/slider-thumb.d.ts +72 -0
  39. package/dist/packages/slider-thumb/slider-thumb.js +2774 -0
  40. package/dist/packages/slider-thumb/slider-thumb.js.map +7 -0
  41. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.d.ts +1 -0
  42. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +194 -0
  43. package/dist/packages/textfield/styles/w-textfield.styles.js +6 -0
  44. package/dist/packages/textfield/textfield.js +7 -1
  45. package/dist/packages/textfield/textfield.js.map +2 -2
  46. package/dist/web-types.json +169 -1
  47. package/package.json +1 -1
@@ -0,0 +1,194 @@
1
+ import { css } from 'lit';
2
+ /* For some reason the pseudoselectors for webkit and moz must be separate blocks :shrug: */
3
+ export const wSliderThumbStyles = css `
4
+ .w-slider-thumb {
5
+ position: relative;
6
+ display: grid;
7
+ pointer-events: none; /* For range inputs we position two of these on top of each other. Let clicks go through the top one. */
8
+ grid-template-areas:
9
+ "slider slider slider"
10
+ "frommarker . tomarker"
11
+ "fromtextfield . totextfield";
12
+ grid-template-columns: 1fr 24px 1fr;
13
+ }
14
+
15
+ .w-slider-thumb__range {
16
+ appearance: none;
17
+ background-color: transparent;
18
+ grid-area: slider;
19
+ height: 44px; /* touch target */
20
+ margin-left: 0;
21
+ pointer-events: none; /* let clicks pass through for range slider where we place two inputs over each other */
22
+ }
23
+
24
+ .w-slider-thumb__range::-webkit-slider-runnable-track {
25
+ box-shadow: none;
26
+ color: var(--w-s-color-text);
27
+ height: var(--w-slider-track-height);
28
+ }
29
+
30
+ /*
31
+ Use anchor positioning to place the tooltip target in relation to the slider thumb.
32
+ We use a polyfill to bring support to older Safari, Firefox at time of writing.
33
+ */
34
+ .w-slider-thumb__range::-webkit-slider-thumb {
35
+ anchor-name: --thumb;
36
+
37
+ appearance: none;
38
+ cursor: pointer;
39
+ background: var(--w-slider-thumb-background);
40
+ border-radius: 50%;
41
+ height: var(--w-slider-thumb-size, 28px);
42
+ margin-top: calc(
43
+ -1 * calc(var(--w-slider-thumb-offset) - calc(
44
+ var(--w-slider-track-height) / 2
45
+ ))
46
+ );
47
+ pointer-events: initial;
48
+ width: var(--w-slider-thumb-size, 28px);
49
+ z-index: 1;
50
+ }
51
+
52
+ .w-slider-thumb__range[disabled]::-webkit-slider-thumb {
53
+ cursor: auto;
54
+ }
55
+
56
+ .w-slider-thumb__range::-moz-range-thumb {
57
+ anchor-name: --thumb;
58
+
59
+ appearance: none;
60
+ cursor: pointer;
61
+ background: var(--w-slider-thumb-background);
62
+ border-radius: 50%;
63
+ border-color: transparent;
64
+ height: var(--w-slider-thumb-size, 28px);
65
+ margin-top: calc(
66
+ -1 * calc(var(--w-slider-thumb-offset) - calc(
67
+ var(--w-slider-track-height) / 2
68
+ ))
69
+ );
70
+ pointer-events: initial;
71
+ width: var(--w-slider-thumb-size, 28px);
72
+ z-index: 1;
73
+
74
+ box-shadow: none;
75
+ }
76
+
77
+ .w-slider-thumb__range[disabled]::-moz-range-thumb {
78
+ cursor: auto;
79
+ }
80
+
81
+ .w-slider-thumb__range:active::-webkit-slider-thumb,
82
+ .w-slider-thumb__range:hover::-webkit-slider-thumb {
83
+ background: var(--w-slider-thumb-background);
84
+ box-shadow: var(--w-shadow-slider-handle-hover);
85
+ }
86
+
87
+ .w-slider-thumb__range:focus,
88
+ .w-slider-thumb__range:focus-visible {
89
+ outline: none;
90
+ }
91
+
92
+ .w-slider-thumb__range:focus-visible::-webkit-slider-thumb {
93
+ outline: 2px solid var(--w-s-color-border-focus);
94
+ outline-offset: var(--w-outline-offset, 1px);
95
+ box-shadow: none;
96
+ }
97
+
98
+ .w-slider-thumb__range:active::-moz-range-thumb,
99
+ .w-slider-thumb__range:hover::-moz-range-thumb {
100
+ background: var(--w-s-color-background-primary-hover);
101
+ box-shadow: var(--w-shadow-slider-handle-hover);
102
+ }
103
+
104
+ .w-slider-thumb__range:focus-visible::-moz-range-thumb {
105
+ outline: 2px solid var(--w-s-color-border-focus);
106
+ outline-offset: var(--w-outline-offset, 1px);
107
+ box-shadow: none;
108
+ }
109
+
110
+ .w-slider-thumb__tooltip-target {
111
+ display: block;
112
+ pointer-events: none;
113
+ position: absolute;
114
+ border: 2px solid transparent;
115
+ border-radius: 20px;
116
+ width: 8px;
117
+ height: 8px;
118
+ position-anchor: --thumb;
119
+ position-area: center; /* Position the tooltip target right on the range thumb */
120
+ }
121
+
122
+ /* Uncomment this to debug the invisible anchor target */
123
+ /* .w-slider-thumb__tooltip-target { border-color: lime; } */
124
+
125
+ .w-slider-thumb__from-marker,
126
+ .w-slider-thumb__to-marker {
127
+ margin-inline: 2px; /* visual alignment with input border, slider thumb */
128
+ color: var(--w-s-color-text-subtle);
129
+ font-size: var(--w-font-size-s);
130
+ line-height: var(--w-line-height-s);
131
+ }
132
+
133
+ .w-slider-thumb__from-marker {
134
+ grid-area: frommarker;
135
+ }
136
+
137
+ .w-slider-thumb__to-marker {
138
+ grid-area: tomarker;
139
+ text-align: right;
140
+ }
141
+
142
+ .w-slider-thumb__textfield {
143
+ margin-top: 12px;
144
+ pointer-events: auto;
145
+ grid-row: 3 / 4;
146
+ grid-column: 1 / 3; /* Single sliders should have the text field use the fromtextfield _and_ gap portion of the CSS grid. */
147
+ }
148
+
149
+ :host([slot="from"]) .w-slider-thumb__textfield {
150
+ grid-column: 1 / 2; /* Range sliders should leave the gap empty. */
151
+ }
152
+
153
+ :host([slot="from"]) .w-slider-thumb__range {
154
+ margin-left: var(--w-slider-thumb-size, 28px);
155
+ }
156
+
157
+ :host([slot="to"]) .w-slider-thumb__range {
158
+ margin-right: var(--w-slider-thumb-size, 28px);
159
+ }
160
+
161
+
162
+ :host([slot="from"]) .w-slider-thumb__tooltip-target {
163
+ transform: translateX(calc(-1 * var(--transform-offset, 0px) - 1px));
164
+ }
165
+
166
+ :host([slot="from"]) .w-slider-thumb__range::-webkit-slider-thumb {
167
+ transform: translateX(calc(-1 * var(--w-slider-thumb-size, 28px) - 1px));
168
+ }
169
+
170
+ :host([slot="from"]) .w-slider-thumb__range::-moz-range-thumb {
171
+ transform: translateX(calc(-1 * var(--w-slider-thumb-size, 28px) - 1px));
172
+ }
173
+
174
+ :host([slot="to"]) .w-slider-thumb__textfield {
175
+ grid-row: 3 / 4;
176
+ grid-column: 3 / 4;
177
+ }
178
+
179
+ :host([slot="to"]) .w-slider-thumb__tooltip-target {
180
+ transform: translateX(calc(var(--transform-offset, 0px) - 1px));
181
+ }
182
+
183
+ :host([slot="to"]) .w-slider-thumb__range::-webkit-slider-thumb {
184
+ transform: translateX(calc(var(--w-slider-thumb-size, 28px) - 1px));
185
+ }
186
+
187
+ :host([slot="to"]) .w-slider-thumb__range::-moz-range-thumb {
188
+ transform: translateX(calc(var(--w-slider-thumb-size, 28px) - 1px));
189
+ }
190
+
191
+ w-textfield {
192
+ --w-textfield-placeholder-color-text: var(--w-s-color-text);
193
+ }
194
+ `;
@@ -34,6 +34,12 @@ export const wTextfieldStyles = css `
34
34
  display: none;
35
35
  }
36
36
 
37
+
38
+ /* It's supposed to behave like a placeholder, but look like a value. Don't tell the designers 🤫 */
39
+ input::placeholder {
40
+ color: var(--w-textfield-placeholder-color-text, var(--w-s-color-text-placeholder));
41
+ }
42
+
37
43
  /* Could also consider giving the input mask a background color instead of this */
38
44
  .w-textfield__input-wrapper:has(.w-textfield__mask):not(:focus-within) input {
39
45
  color: transparent;
@@ -1,4 +1,4 @@
1
- var te=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var R=a=>{throw TypeError(a)};var d=(a,e,r,o)=>{for(var l=o>1?void 0:o?ae(e,r):e,u=a.length-1,w;u>=0;u--)(w=a[u])&&(l=(o?w(e,r,l):w(l))||l);return o&&l&&te(e,r,l),l};var U=(a,e,r)=>e.has(a)||R("Cannot "+r);var H=(a,e,r)=>(U(a,e,"read from private field"),r?r.call(a):e.get(a)),D=(a,e,r)=>e.has(a)?R("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,r),G=(a,e,r,o)=>(U(a,e,"write to private field"),o?o.call(a,r):e.set(a,r),r);var j=function(){for(var a=[],e=arguments.length;e--;)a[e]=arguments[e];return a.reduce(function(r,o){return r.concat(typeof o=="string"?o:Array.isArray(o)?j.apply(void 0,o):typeof o=="object"&&o?Object.keys(o).map(function(l){return o[l]?l:""}):"")},[]).join(" ")};var n=function(a,e,r,o){if(r==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?a!==e||!o:!e.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?o:r==="a"?o.call(a):o?o.value:e.get(a)},h=function(a,e,r,o,l){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!l)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?a!==e||!l:!e.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?l.call(a,r):l?l.value=r:e.set(a,r),r};function J(a){var e,r,o,l,u,w,k,re,_,A,F,L,E,z,Y,f,X,O,Z;class oe extends a{constructor(...t){var i,b,p;super(...t),e.add(this),this.internals=this.attachInternals(),r.set(this,!1),o.set(this,!1),l.set(this,!1),u.set(this,void 0),w.set(this,void 0),k.set(this,!0),_.set(this,""),A.set(this,()=>{h(this,l,!0,"f"),h(this,r,!0,"f"),n(this,e,"m",f).call(this)}),F.set(this,()=>{h(this,r,!1,"f"),n(this,e,"m",X).call(this,this.shouldFormValueUpdate()?n(this,_,"f"):""),!this.validity.valid&&n(this,l,"f")&&h(this,o,!0,"f");let m=n(this,e,"m",f).call(this);this.validationMessageCallback&&this.validationMessageCallback(m?this.internals.validationMessage:"")}),L.set(this,()=>{var m;n(this,k,"f")&&this.validationTarget&&(this.internals.setValidity(this.validity,this.validationMessage,this.validationTarget),h(this,k,!1,"f")),h(this,l,!0,"f"),h(this,o,!0,"f"),n(this,e,"m",f).call(this),(m=this===null||this===void 0?void 0:this.validationMessageCallback)===null||m===void 0||m.call(this,this.showError?this.internals.validationMessage:"")}),E.set(this,void 0),z.set(this,!1),Y.set(this,Promise.resolve()),(i=this.addEventListener)===null||i===void 0||i.call(this,"focus",n(this,A,"f")),(b=this.addEventListener)===null||b===void 0||b.call(this,"blur",n(this,F,"f")),(p=this.addEventListener)===null||p===void 0||p.call(this,"invalid",n(this,L,"f")),this.setValue(null)}static get formAssociated(){return!0}static get validators(){return this.formControlValidators||[]}static get observedAttributes(){let t=this.validators.map(p=>p.attribute).flat(),i=super.observedAttributes||[];return[...new Set([...i,...t])]}static getValidator(t){return this.validators.find(i=>i.attribute===t)||null}static getValidators(t){return this.validators.filter(i=>{var b;if(i.attribute===t||!((b=i.attribute)===null||b===void 0)&&b.includes(t))return!0})}get form(){return this.internals.form}get showError(){return n(this,e,"m",f).call(this)}checkValidity(){return this.internals.checkValidity()}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}attributeChangedCallback(t,i,b){var p;(p=super.attributeChangedCallback)===null||p===void 0||p.call(this,t,i,b);let $=this.constructor.getValidators(t);$!=null&&$.length&&this.validationTarget&&this.setValue(n(this,_,"f"))}setValue(t){var i;h(this,o,!1,"f"),(i=this.validationMessageCallback)===null||i===void 0||i.call(this,""),h(this,_,t,"f");let p=this.shouldFormValueUpdate()?t:null;this.internals.setFormValue(p),n(this,e,"m",X).call(this,p),this.valueChangedCallback&&this.valueChangedCallback(p),n(this,e,"m",f).call(this)}shouldFormValueUpdate(){return!0}get validationComplete(){return new Promise(t=>t(n(this,Y,"f")))}formResetCallback(){var t,i;h(this,l,!1,"f"),h(this,o,!1,"f"),n(this,e,"m",f).call(this),(t=this.resetFormControl)===null||t===void 0||t.call(this),(i=this.validationMessageCallback)===null||i===void 0||i.call(this,n(this,e,"m",f).call(this)?this.validationMessage:"")}}return r=new WeakMap,o=new WeakMap,l=new WeakMap,u=new WeakMap,w=new WeakMap,k=new WeakMap,_=new WeakMap,A=new WeakMap,F=new WeakMap,L=new WeakMap,E=new WeakMap,z=new WeakMap,Y=new WeakMap,e=new WeakSet,re=function(){let t=this.getRootNode(),i=`${this.localName}[name="${this.getAttribute("name")}"]`;return t.querySelectorAll(i)},f=function(){if(this.hasAttribute("disabled"))return!1;let t=n(this,o,"f")||n(this,l,"f")&&!this.validity.valid&&!n(this,r,"f");return t&&this.internals.states?this.internals.states.add("--show-error"):this.internals.states&&this.internals.states.delete("--show-error"),t},X=function(t){let i=this.constructor,b={},p=i.validators,m=[],$=p.some(v=>v.isValid instanceof Promise);n(this,z,"f")||(h(this,Y,new Promise(v=>{h(this,E,v,"f")}),"f"),h(this,z,!0,"f")),n(this,u,"f")&&(n(this,u,"f").abort(),h(this,w,n(this,u,"f"),"f"));let M=new AbortController;h(this,u,M,"f");let S,B=!1;p.length&&(p.forEach(v=>{let N=v.key||"customError",y=v.isValid(this,t,M.signal);y instanceof Promise?(m.push(y),y.then(I=>{I!=null&&(b[N]=!I,S=n(this,e,"m",Z).call(this,v,t),n(this,e,"m",O).call(this,b,S))})):(b[N]=!y,this.validity[N]!==!y&&(B=!0),!y&&!S&&(S=n(this,e,"m",Z).call(this,v,t)))}),Promise.allSettled(m).then(()=>{var v;M!=null&&M.signal.aborted||(h(this,z,!1,"f"),(v=n(this,E,"f"))===null||v===void 0||v.call(this))}),(B||!$)&&n(this,e,"m",O).call(this,b,S))},O=function(t,i){if(this.validationTarget)this.internals.setValidity(t,i,this.validationTarget),h(this,k,!1,"f");else{if(this.internals.setValidity(t,i),this.internals.validity.valid)return;h(this,k,!0,"f")}},Z=function(t,i){if(this.validityCallback){let b=this.validityCallback(t.key||"customError");if(b)return b}return t.message instanceof Function?t.message(this,i):t.message},oe}import{html as P,LitElement as ee,nothing as se}from"lit";import{property as c,query as le}from"lit/decorators.js";import{classMap as de}from"lit/directives/class-map.js";import{ifDefined as g}from"lit/directives/if-defined.js";import{css as K}from"lit";var Q=K`
1
+ var te=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var R=a=>{throw TypeError(a)};var d=(a,e,r,o)=>{for(var l=o>1?void 0:o?ae(e,r):e,u=a.length-1,w;u>=0;u--)(w=a[u])&&(l=(o?w(e,r,l):w(l))||l);return o&&l&&te(e,r,l),l};var U=(a,e,r)=>e.has(a)||R("Cannot "+r);var H=(a,e,r)=>(U(a,e,"read from private field"),r?r.call(a):e.get(a)),D=(a,e,r)=>e.has(a)?R("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,r),G=(a,e,r,o)=>(U(a,e,"write to private field"),o?o.call(a,r):e.set(a,r),r);var j=function(){for(var a=[],e=arguments.length;e--;)a[e]=arguments[e];return a.reduce(function(r,o){return r.concat(typeof o=="string"?o:Array.isArray(o)?j.apply(void 0,o):typeof o=="object"&&o?Object.keys(o).map(function(l){return o[l]?l:""}):"")},[]).join(" ")};var n=function(a,e,r,o){if(r==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?a!==e||!o:!e.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?o:r==="a"?o.call(a):o?o.value:e.get(a)},h=function(a,e,r,o,l){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!l)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?a!==e||!l:!e.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?l.call(a,r):l?l.value=r:e.set(a,r),r};function J(a){var e,r,o,l,u,w,k,re,_,A,F,L,E,z,Y,f,X,O,Z;class oe extends a{constructor(...t){var i,b,p;super(...t),e.add(this),this.internals=this.attachInternals(),r.set(this,!1),o.set(this,!1),l.set(this,!1),u.set(this,void 0),w.set(this,void 0),k.set(this,!0),_.set(this,""),A.set(this,()=>{h(this,l,!0,"f"),h(this,r,!0,"f"),n(this,e,"m",f).call(this)}),F.set(this,()=>{h(this,r,!1,"f"),n(this,e,"m",X).call(this,this.shouldFormValueUpdate()?n(this,_,"f"):""),!this.validity.valid&&n(this,l,"f")&&h(this,o,!0,"f");let m=n(this,e,"m",f).call(this);this.validationMessageCallback&&this.validationMessageCallback(m?this.internals.validationMessage:"")}),L.set(this,()=>{var m;n(this,k,"f")&&this.validationTarget&&(this.internals.setValidity(this.validity,this.validationMessage,this.validationTarget),h(this,k,!1,"f")),h(this,l,!0,"f"),h(this,o,!0,"f"),n(this,e,"m",f).call(this),(m=this===null||this===void 0?void 0:this.validationMessageCallback)===null||m===void 0||m.call(this,this.showError?this.internals.validationMessage:"")}),E.set(this,void 0),z.set(this,!1),Y.set(this,Promise.resolve()),(i=this.addEventListener)===null||i===void 0||i.call(this,"focus",n(this,A,"f")),(b=this.addEventListener)===null||b===void 0||b.call(this,"blur",n(this,F,"f")),(p=this.addEventListener)===null||p===void 0||p.call(this,"invalid",n(this,L,"f")),this.setValue(null)}static get formAssociated(){return!0}static get validators(){return this.formControlValidators||[]}static get observedAttributes(){let t=this.validators.map(p=>p.attribute).flat(),i=super.observedAttributes||[];return[...new Set([...i,...t])]}static getValidator(t){return this.validators.find(i=>i.attribute===t)||null}static getValidators(t){return this.validators.filter(i=>{var b;if(i.attribute===t||!((b=i.attribute)===null||b===void 0)&&b.includes(t))return!0})}get form(){return this.internals.form}get showError(){return n(this,e,"m",f).call(this)}checkValidity(){return this.internals.checkValidity()}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}attributeChangedCallback(t,i,b){var p;(p=super.attributeChangedCallback)===null||p===void 0||p.call(this,t,i,b);let $=this.constructor.getValidators(t);$!=null&&$.length&&this.validationTarget&&this.setValue(n(this,_,"f"))}setValue(t){var i;h(this,o,!1,"f"),(i=this.validationMessageCallback)===null||i===void 0||i.call(this,""),h(this,_,t,"f");let p=this.shouldFormValueUpdate()?t:null;this.internals.setFormValue(p),n(this,e,"m",X).call(this,p),this.valueChangedCallback&&this.valueChangedCallback(p),n(this,e,"m",f).call(this)}shouldFormValueUpdate(){return!0}get validationComplete(){return new Promise(t=>t(n(this,Y,"f")))}formResetCallback(){var t,i;h(this,l,!1,"f"),h(this,o,!1,"f"),n(this,e,"m",f).call(this),(t=this.resetFormControl)===null||t===void 0||t.call(this),(i=this.validationMessageCallback)===null||i===void 0||i.call(this,n(this,e,"m",f).call(this)?this.validationMessage:"")}}return r=new WeakMap,o=new WeakMap,l=new WeakMap,u=new WeakMap,w=new WeakMap,k=new WeakMap,_=new WeakMap,A=new WeakMap,F=new WeakMap,L=new WeakMap,E=new WeakMap,z=new WeakMap,Y=new WeakMap,e=new WeakSet,re=function(){let t=this.getRootNode(),i=`${this.localName}[name="${this.getAttribute("name")}"]`;return t.querySelectorAll(i)},f=function(){if(this.hasAttribute("disabled"))return!1;let t=n(this,o,"f")||n(this,l,"f")&&!this.validity.valid&&!n(this,r,"f");return t&&this.internals.states?this.internals.states.add("--show-error"):this.internals.states&&this.internals.states.delete("--show-error"),t},X=function(t){let i=this.constructor,b={},p=i.validators,m=[],$=p.some(v=>v.isValid instanceof Promise);n(this,z,"f")||(h(this,Y,new Promise(v=>{h(this,E,v,"f")}),"f"),h(this,z,!0,"f")),n(this,u,"f")&&(n(this,u,"f").abort(),h(this,w,n(this,u,"f"),"f"));let M=new AbortController;h(this,u,M,"f");let S,B=!1;p.length&&(p.forEach(v=>{let I=v.key||"customError",y=v.isValid(this,t,M.signal);y instanceof Promise?(m.push(y),y.then(N=>{N!=null&&(b[I]=!N,S=n(this,e,"m",Z).call(this,v,t),n(this,e,"m",O).call(this,b,S))})):(b[I]=!y,this.validity[I]!==!y&&(B=!0),!y&&!S&&(S=n(this,e,"m",Z).call(this,v,t)))}),Promise.allSettled(m).then(()=>{var v;M!=null&&M.signal.aborted||(h(this,z,!1,"f"),(v=n(this,E,"f"))===null||v===void 0||v.call(this))}),(B||!$)&&n(this,e,"m",O).call(this,b,S))},O=function(t,i){if(this.validationTarget)this.internals.setValidity(t,i,this.validationTarget),h(this,k,!1,"f");else{if(this.internals.setValidity(t,i),this.internals.validity.valid)return;h(this,k,!0,"f")}},Z=function(t,i){if(this.validityCallback){let b=this.validityCallback(t.key||"customError");if(b)return b}return t.message instanceof Function?t.message(this,i):t.message},oe}import{html as P,LitElement as ee,nothing as se}from"lit";import{property as c,query as le}from"lit/decorators.js";import{classMap as de}from"lit/directives/class-map.js";import{ifDefined as g}from"lit/directives/if-defined.js";import{css as K}from"lit";var Q=K`
2
2
  *,
3
3
  :before,
4
4
  :after {
@@ -2471,6 +2471,12 @@ var te=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var R=a=>{th
2471
2471
  display: none;
2472
2472
  }
2473
2473
 
2474
+
2475
+ /* It's supposed to behave like a placeholder, but look like a value. Don't tell the designers 🤫 */
2476
+ input::placeholder {
2477
+ color: var(--w-textfield-placeholder-color-text, var(--w-s-color-text-placeholder));
2478
+ }
2479
+
2474
2480
  /* Could also consider giving the input mask a background color instead of this */
2475
2481
  .w-textfield__input-wrapper:has(.w-textfield__mask):not(:focus-within) input {
2476
2482
  color: transparent;