@warp-ds/elements 2.3.0-next.15 → 2.3.0-next.17

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.
@@ -1,5 +1,5 @@
1
- import { StoryObj } from '@storybook/react';
2
- import { Slider } from './react';
1
+ import { StoryObj } from "@storybook/react";
2
+ import { Slider } from "./react";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("@lit/react").ReactWebComponent<import("./slider").WarpSlider, {}>;
@@ -16,3 +16,4 @@ export declare const Step: Story;
16
16
  export declare const OverUnder: Story;
17
17
  export declare const SingleError: Story;
18
18
  export declare const RangeError: Story;
19
+ export declare const TestCase: Story;
@@ -1,11 +1,11 @@
1
- import React, { useState } from 'react';
2
- import { Slider, SliderThumb } from './react';
3
- const locale = 'nb';
1
+ import React, { useState } from "react";
2
+ import { Slider, SliderThumb } from "./react";
3
+ const locale = "nb";
4
4
  const getNumberFormatter = (locale, opts = {}) => {
5
5
  return (value) => new Intl.NumberFormat(locale, { maximumFractionDigits: 0, ...opts }).format(value);
6
6
  };
7
7
  export default {
8
- title: 'Forms/Slider and Range Slider',
8
+ title: "Forms/Slider and Range Slider",
9
9
  component: Slider,
10
10
  };
11
11
  export const Single = {
@@ -24,7 +24,7 @@ export const Range = {
24
24
  // Take a suffix attribute on `<Slider>` I think, have `<SliderThumb>` get from that.
25
25
  export const SuffixSquareMeters = {
26
26
  args: {
27
- suffix: '',
27
+ suffix: "",
28
28
  },
29
29
  render({ suffix }) {
30
30
  return (React.createElement(Slider, { label: "Apartment size", min: "0", max: "250", suffix: suffix, formatter: getNumberFormatter(locale) },
@@ -34,7 +34,7 @@ export const SuffixSquareMeters = {
34
34
  };
35
35
  export const SuffixCurrency = {
36
36
  args: {
37
- suffix: 'kr',
37
+ suffix: "kr",
38
38
  },
39
39
  render({ suffix }) {
40
40
  return (React.createElement(Slider, { label: "Price", min: "0", max: "250000", suffix: suffix, formatter: getNumberFormatter(locale) },
@@ -44,7 +44,7 @@ export const SuffixCurrency = {
44
44
  };
45
45
  export const SuffixKilometers = {
46
46
  args: {
47
- suffix: 'km',
47
+ suffix: "km",
48
48
  },
49
49
  render({ suffix }) {
50
50
  return (React.createElement(Slider, { label: "Distance", min: "0", max: "250000", suffix: suffix, formatter: getNumberFormatter(locale) },
@@ -54,7 +54,7 @@ export const SuffixKilometers = {
54
54
  };
55
55
  export const Marks = {
56
56
  args: {
57
- suffix: 'km',
57
+ suffix: "km",
58
58
  },
59
59
  render({ suffix }) {
60
60
  return (React.createElement(React.Fragment, null,
@@ -73,20 +73,20 @@ export const Step = {
73
73
  };
74
74
  export const OverUnder = {
75
75
  render() {
76
- const [overUnderFrom, setOverUnderFrom] = useState('');
77
- const [overUnderTo, setOverUnderTo] = useState('');
76
+ const [overUnderFrom, setOverUnderFrom] = useState("");
77
+ const [overUnderTo, setOverUnderTo] = useState("");
78
78
  return (React.createElement(React.Fragment, null,
79
79
  React.createElement("form", { id: "overunder", style: { marginBottom: 16 }, lang: "nb", onInput: (val) => {
80
80
  const formData = new FormData(val.currentTarget);
81
- setOverUnderFrom(formData.get('from'));
82
- setOverUnderTo(formData.get('to'));
81
+ setOverUnderFrom(formData.get("from"));
82
+ setOverUnderTo(formData.get("to"));
83
83
  } },
84
84
  React.createElement(Slider, { label: "Produksjons\u00E5r", min: "1950", max: "2025", "data-testid": "overunder", formatter: (value) => {
85
- if (value === '1950') {
86
- return 'Før 1950';
85
+ if (value === "1950") {
86
+ return "Før 1950";
87
87
  }
88
- if (value === '2025') {
89
- return 'Etter 2025';
88
+ if (value === "2025") {
89
+ return "Etter 2025";
90
90
  }
91
91
  return value;
92
92
  } },
@@ -116,3 +116,25 @@ export const RangeError = {
116
116
  React.createElement(SliderThumb, { slot: "to", name: "to" })));
117
117
  },
118
118
  };
119
+ export const TestCase = {
120
+ render() {
121
+ const [fromValue, setFromValue] = useState("0");
122
+ const [toValue, setToValue] = useState("150000");
123
+ return (React.createElement(React.Fragment, null,
124
+ React.createElement("form", { id: "overunder", style: { marginBottom: 16 }, lang: "nb", onInput: (val) => {
125
+ const formData = new FormData(val.currentTarget);
126
+ setFromValue(formData.get("from"));
127
+ setToValue(formData.get("to"));
128
+ } },
129
+ React.createElement(Slider, { label: "Pris", min: "0", max: "700000" },
130
+ React.createElement(SliderThumb, { slot: "from", "aria-label": "Fra pris", name: "from", value: fromValue }),
131
+ React.createElement(SliderThumb, { slot: "to", "aria-label": "Til pris", "aria-description": "700000 inkluderer prisen derfra og opp", name: "to", value: toValue }))),
132
+ React.createElement("p", null, "Drag the slider to show the value below. See the Code tab for how to format the labels."),
133
+ React.createElement("output", null,
134
+ React.createElement("dl", null,
135
+ React.createElement("dt", null, "From:"),
136
+ React.createElement("dd", null, fromValue),
137
+ React.createElement("dt", null, "To:"),
138
+ React.createElement("dd", null, toValue)))));
139
+ },
140
+ };
@@ -1,8 +1,8 @@
1
- import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
- import '../affix/index.js';
3
- import '../attention/index.js';
4
- import '../textfield/index.js';
5
- import './index.js';
1
+ import type { Meta, StoryObj } from "@storybook/web-components-vite";
2
+ import "../affix/index.js";
3
+ import "../attention/index.js";
4
+ import "../textfield/index.js";
5
+ import "./index.js";
6
6
  declare const meta: Meta;
7
7
  export default meta;
8
8
  type Story = StoryObj;
@@ -1,12 +1,12 @@
1
- import { getStorybookHelpers } from '@wc-toolkit/storybook-helpers';
2
- import { html } from 'lit';
3
- import '../affix/index.js';
4
- import '../attention/index.js';
5
- import '../textfield/index.js';
6
- import './index.js';
7
- const { events: sliderEvents, args: sliderArgs, argTypes: sliderArgTypes, } = getStorybookHelpers('w-slider');
1
+ import { getStorybookHelpers } from "@wc-toolkit/storybook-helpers";
2
+ import { html } from "lit";
3
+ import "../affix/index.js";
4
+ import "../attention/index.js";
5
+ import "../textfield/index.js";
6
+ import "./index.js";
7
+ const { events: sliderEvents, args: sliderArgs, argTypes: sliderArgTypes, } = getStorybookHelpers("w-slider");
8
8
  const meta = {
9
- title: 'Forms/Slider and Range Slider',
9
+ title: "Forms/Slider and Range Slider",
10
10
  args: sliderArgs,
11
11
  argTypes: sliderArgTypes,
12
12
  parameters: {
@@ -46,8 +46,8 @@ export const Range = {
46
46
  // Take a suffix attribute on `<w-slider>` I think, have `<w-slider-thumb>` get from that.
47
47
  export const SuffixSquareMeters = {
48
48
  args: {
49
- locale: 'nb',
50
- suffix: '',
49
+ locale: "nb",
50
+ suffix: "",
51
51
  },
52
52
  render({ locale, suffix }) {
53
53
  return html `
@@ -78,8 +78,8 @@ export const SuffixSquareMeters = {
78
78
  };
79
79
  export const SuffixCurrency = {
80
80
  args: {
81
- locale: 'nb',
82
- suffix: 'kr',
81
+ locale: "nb",
82
+ suffix: "kr",
83
83
  },
84
84
  render({ locale, suffix }) {
85
85
  return html `
@@ -103,10 +103,10 @@ export const SuffixCurrency = {
103
103
  </w-slider>
104
104
  <script type="module">
105
105
  const currencySlider = document.querySelector(
106
- 'w-slider[data-testid="currency"]',
106
+ 'w-slider[data-testid="currency"]'
107
107
  );
108
108
  currencySlider.formatter = window.getNumberFormatter(
109
- "${locale}",
109
+ "${locale}"
110
110
  ).format;
111
111
  </script>
112
112
  `;
@@ -114,8 +114,8 @@ export const SuffixCurrency = {
114
114
  };
115
115
  export const SuffixKilometers = {
116
116
  args: {
117
- locale: 'nb',
118
- suffix: 'km',
117
+ locale: "nb",
118
+ suffix: "km",
119
119
  },
120
120
  render({ locale, suffix }) {
121
121
  return html `
@@ -146,9 +146,9 @@ export const SuffixKilometers = {
146
146
  };
147
147
  export const Marks = {
148
148
  args: {
149
- locale: 'nb',
150
- step: '5',
151
- markers: '5',
149
+ locale: "nb",
150
+ step: "5",
151
+ markers: "5",
152
152
  },
153
153
  render({ markers, step }) {
154
154
  return html `
@@ -217,7 +217,7 @@ export const OverUnder = {
217
217
  <script>
218
218
  /** Here is how you can show labels to indicate min and max values are "up to and including" and "this value and above". */
219
219
  const overunderSlider = document.querySelector(
220
- 'w-slider[data-testid="overunder"]',
220
+ 'w-slider[data-testid="overunder"]'
221
221
  );
222
222
  overunderSlider.formatter = function (value, type) {
223
223
  if (value === "" && type === "from") {
@@ -243,7 +243,7 @@ export const OverUnder = {
243
243
  };
244
244
  export const SingleError = {
245
245
  args: {
246
- locale: 'nb',
246
+ locale: "nb",
247
247
  },
248
248
  render() {
249
249
  return html `
@@ -260,7 +260,9 @@ export const RangeError = {
260
260
  return html `
261
261
  <form id="rangeerror" style="margin-bottom: 16px">
262
262
  <w-slider label="Production year" min="1950" max="2025" over under>
263
- <p slot="description">Try typing a from value higher than a to value</p>
263
+ <p slot="description">
264
+ Try typing a from value higher than a to value
265
+ </p>
264
266
  <w-slider-thumb slot="from" name="from"></w-slider-thumb>
265
267
  <w-slider-thumb slot="to" name="to"></w-slider-thumb>
266
268
  </w-slider>
@@ -297,24 +299,26 @@ export const TestCase = {
297
299
  <form id="overunder" style="margin-bottom: 16px" lang="nb">
298
300
  <w-slider
299
301
  label="Pris"
300
- suffix="kr"
302
+ suffix="kr"
301
303
  min="0"
302
304
  max="700000"
303
305
  data-testid="overunder"
304
306
  allow-values-outside-range="true"
305
- step="10000"
307
+ step="10000"
306
308
  >
307
309
  <w-slider-thumb
308
310
  slot="from"
309
311
  aria-label="Fra år"
310
312
  aria-description="1950 inkluderer kjøretøy produsert fram til 1950"
311
313
  name="from"
314
+ value="0"
312
315
  ></w-slider-thumb>
313
316
  <w-slider-thumb
314
317
  slot="to"
315
318
  aria-label="Til år"
316
319
  aria-description="2025 inkluderer kjøretøy produsert etter 2025"
317
320
  name="to"
321
+ value="150000"
318
322
  ></w-slider-thumb>
319
323
  </w-slider>
320
324
  </form>
@@ -333,7 +337,7 @@ export const TestCase = {
333
337
  <script>
334
338
  /** Here is how you can show labels to indicate min and max values are "up to and including" and "this value and above". */
335
339
  const overunderSlider = document.querySelector(
336
- 'w-slider[data-testid="overunder"]',
340
+ 'w-slider[data-testid="overunder"]'
337
341
  );
338
342
  overunderSlider.formatter = function (value, type) {
339
343
  if (value === "" && type === "from") {
@@ -2489,7 +2489,7 @@ var K=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var l=(h,o,i,r
2489
2489
  text-overflow: ellipsis;
2490
2490
  z-index: 1;
2491
2491
  }
2492
- `;import{css as ee}from"lit";var D=ee`*,:before,:after{--w-rotate:0;--w-rotate-x:0;--w-rotate-y:0;--w-rotate-z:0;--w-scale-x:1;--w-scale-y:1;--w-scale-z:1;--w-skew-x:0;--w-skew-y:0;--w-translate-x:0;--w-translate-y:0;--w-translate-z:0}.focus\\:\\[--w-outline-offset\\:-2px\\]:focus{--w-outline-offset:-2px}.bg-transparent{background-color:#0000}.border-1{border-width:1px}.rounded-4{border-radius:4px}.caret-current{caret-color:currentColor}.block{display:block}.focusable:focus{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:focus-visible{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:not(:focus-visible){outline:none}.outline-\\[--w-s-color-border-negative\\]\\!{outline-color:var(--w-s-color-border-negative)!important}.relative{position:relative}.static{position:static}.s-bg{background-color:var(--w-s-color-background)}.s-bg-disabled-subtle{background-color:var(--w-s-color-background-disabled-subtle)}.s-text{color:var(--w-s-color-text)}.s-text-disabled{color:var(--w-s-color-text-disabled)}.s-text-negative{color:var(--w-s-color-text-negative)}.s-text-subtle{color:var(--w-s-color-text-subtle)}.placeholder\\:s-text-placeholder::placeholder{color:var(--w-s-color-text-placeholder)}.s-border-disabled{border-color:var(--w-s-color-border-disabled)}.s-border-negative{border-color:var(--w-s-color-border-negative)}.s-border-strong{border-color:var(--w-s-color-border-strong)}.hover\\:s-border-negative-hover:hover{border-color:var(--w-s-color-border-negative-hover)}.hover\\:s-border-strong-hover:hover{border-color:var(--w-s-color-border-strong-hover)}.active\\:s-border-selected:active{border-color:var(--w-s-color-border-selected)}.w-full{width:100%}.min-h-\\[42\\]{min-height:4.2rem}.mb-0{margin-bottom:0}.mt-4{margin-top:.4rem}.px-8{padding-left:.8rem;padding-right:.8rem}.py-12{padding-top:1.2rem;padding-bottom:1.2rem}.pb-4{padding-bottom:.4rem}.pl-0{padding-left:0}.pl-8{padding-left:.8rem}.pr-40{padding-right:4rem}.pl-\\[var\\(--w-prefix-width\\,_40px\\)\\]{padding-left:var(--w-prefix-width,40px)}.cursor-pointer{cursor:pointer}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:grayscale}.font-bold{font-weight:700}.font-normal{font-weight:400}.pointer-events-none{pointer-events:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-m{font-size:var(--w-font-size-m);line-height:var(--w-line-height-m)}.text-s{font-size:var(--w-font-size-s);line-height:var(--w-line-height-s)}.text-xs{font-size:var(--w-font-size-xs);line-height:var(--w-line-height-xs)}.leading-m{line-height:var(--w-line-height-m)}@media (min-width:480px){.sm\\:min-h-\\[45\\]{min-height:4.5rem}}`;var x={base:"block text-m leading-m mb-0 px-8 py-12 rounded-4 w-full focusable focus:[--w-outline-offset:-2px] caret-current",default:"border-1 s-text s-bg s-border-strong hover:s-border-strong-hover active:s-border-selected",disabled:"border-1 s-text-disabled s-bg-disabled-subtle s-border-disabled pointer-events-none",invalid:"border-1 s-text-negative s-bg s-border-negative hover:s-border-negative-hover outline-[--w-s-color-border-negative]!",readOnly:"pl-0 bg-transparent pointer-events-none",placeholder:"placeholder:s-text-placeholder",suffix:"pr-40",prefix:"pl-[var(--w-prefix-width,_40px)]",textArea:"min-h-[42] sm:min-h-[45]"},ae={base:"antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",optional:"pl-8 font-normal text-s s-text-subtle"},N={base:"text-xs mt-4 block",color:"s-text-subtle",colorInvalid:"s-text-negative"},s=class extends B(G){constructor(){super(...arguments);this.type="text";this._hasPrefix=!1;this._hasSuffix=!1}updated(i){i.has("value")&&this.setValue(this.value),this.formatter&&(this.mask.innerText=this.formatter(this.value))}get _inputstyles(){return Y([x.base,this._hasSuffix&&x.suffix,this._hasPrefix&&x.prefix,!this.invalid&&!this.disabled&&!(this.readonly||this.readOnly)&&x.default,this.invalid&&!this.disabled&&!(this.readonly||this.readOnly)&&x.invalid,!this.invalid&&this.disabled&&!(this.readonly||this.readOnly)&&x.disabled,!this.invalid&&!this.disabled&&(this.readonly||this.readOnly)&&x.readOnly])}get _helptextstyles(){return Y([N.base,this.invalid?N.colorInvalid:N.color])}get _label(){if(this.label)return j`<label for="${this._id}" class=${ae.base}>${this.label}</label>`}get _helpId(){if(this.helpText)return`${this._id}__hint`}get _id(){return"textfield"}get _error(){if(this.invalid&&this._helpId)return this._helpId}handler(i){let{name:r,value:n}=i.currentTarget;this.value=n;let g=new CustomEvent(i.type,{detail:{name:r,value:n,target:i.target}});this.dispatchEvent(g)}prefixSlotChange(){this.renderRoot.querySelector("slot[name=prefix]").assignedElements().length&&(this._hasPrefix=!0)}suffixSlotChange(){this.renderRoot.querySelector("slot[name=suffix]").assignedElements().length&&(this._hasSuffix=!0)}render(){return j`
2492
+ `;import{css as ee}from"lit";var D=ee`*,:before,:after{--w-rotate:0;--w-rotate-x:0;--w-rotate-y:0;--w-rotate-z:0;--w-scale-x:1;--w-scale-y:1;--w-scale-z:1;--w-skew-x:0;--w-skew-y:0;--w-translate-x:0;--w-translate-y:0;--w-translate-z:0}.focus\\:\\[--w-outline-offset\\:-2px\\]:focus{--w-outline-offset:-2px}.bg-transparent{background-color:#0000}.border-1{border-width:1px}.rounded-4{border-radius:4px}.caret-current{caret-color:currentColor}.block{display:block}.focusable:focus{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:focus-visible{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:not(:focus-visible){outline:none}.outline-\\[--w-s-color-border-negative\\]\\!{outline-color:var(--w-s-color-border-negative)!important}.relative{position:relative}.static{position:static}.s-bg{background-color:var(--w-s-color-background)}.s-bg-disabled-subtle{background-color:var(--w-s-color-background-disabled-subtle)}.s-text{color:var(--w-s-color-text)}.s-text-disabled{color:var(--w-s-color-text-disabled)}.s-text-negative{color:var(--w-s-color-text-negative)}.s-text-subtle{color:var(--w-s-color-text-subtle)}.placeholder\\:s-text-placeholder::placeholder{color:var(--w-s-color-text-placeholder)}.s-border-disabled{border-color:var(--w-s-color-border-disabled)}.s-border-negative{border-color:var(--w-s-color-border-negative)}.s-border-strong{border-color:var(--w-s-color-border-strong)}.hover\\:s-border-negative-hover:hover{border-color:var(--w-s-color-border-negative-hover)}.hover\\:s-border-strong-hover:hover{border-color:var(--w-s-color-border-strong-hover)}.active\\:s-border-selected:active{border-color:var(--w-s-color-border-selected)}.w-full{width:100%}.min-h-\\[42\\]{min-height:4.2rem}.mb-0{margin-bottom:0}.mt-4{margin-top:.4rem}.px-8{padding-left:.8rem;padding-right:.8rem}.py-12{padding-top:1.2rem;padding-bottom:1.2rem}.pb-4{padding-bottom:.4rem}.pl-0{padding-left:0}.pl-8{padding-left:.8rem}.pr-40{padding-right:4rem}.pl-\\[var\\(--w-prefix-width\\,_40px\\)\\]{padding-left:var(--w-prefix-width,40px)}.cursor-pointer{cursor:pointer}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:grayscale}.font-bold{font-weight:700}.font-normal{font-weight:400}.pointer-events-none{pointer-events:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-m{font-size:var(--w-font-size-m);line-height:var(--w-line-height-m)}.text-s{font-size:var(--w-font-size-s);line-height:var(--w-line-height-s)}.text-xs{font-size:var(--w-font-size-xs);line-height:var(--w-line-height-xs)}.leading-m{line-height:var(--w-line-height-m)}@media (min-width:480px){.sm\\:min-h-\\[45\\]{min-height:4.5rem}}`;var x={base:"block text-m leading-m mb-0 px-8 py-12 rounded-4 w-full focusable focus:[--w-outline-offset:-2px] caret-current",default:"border-1 s-text s-bg s-border-strong hover:s-border-strong-hover active:s-border-selected",disabled:"border-1 s-text-disabled s-bg-disabled-subtle s-border-disabled pointer-events-none",invalid:"border-1 s-text-negative s-bg s-border-negative hover:s-border-negative-hover outline-[--w-s-color-border-negative]!",readOnly:"pl-0 bg-transparent pointer-events-none",placeholder:"placeholder:s-text-placeholder",suffix:"pr-40",prefix:"pl-[var(--w-prefix-width,_40px)]",textArea:"min-h-[42] sm:min-h-[45]"},ae={base:"antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",optional:"pl-8 font-normal text-s s-text-subtle"},N={base:"text-xs mt-4 block",color:"s-text-subtle",colorInvalid:"s-text-negative"},s=class extends B(G){constructor(){super(...arguments);this.type="text";this._hasPrefix=!1;this._hasSuffix=!1}updated(i){i.has("value")&&(this.setValue(this.value),this.formatter&&(this.mask.innerText=this.formatter(this.value)))}get _inputstyles(){return Y([x.base,this._hasSuffix&&x.suffix,this._hasPrefix&&x.prefix,!this.invalid&&!this.disabled&&!(this.readonly||this.readOnly)&&x.default,this.invalid&&!this.disabled&&!(this.readonly||this.readOnly)&&x.invalid,!this.invalid&&this.disabled&&!(this.readonly||this.readOnly)&&x.disabled,!this.invalid&&!this.disabled&&(this.readonly||this.readOnly)&&x.readOnly])}get _helptextstyles(){return Y([N.base,this.invalid?N.colorInvalid:N.color])}get _label(){if(this.label)return j`<label for="${this._id}" class=${ae.base}>${this.label}</label>`}get _helpId(){if(this.helpText)return`${this._id}__hint`}get _id(){return"textfield"}get _error(){if(this.invalid&&this._helpId)return this._helpId}handler(i){let{name:r,value:n}=i.currentTarget;this.value=n;let g=new CustomEvent(i.type,{detail:{name:r,value:n,target:i.target}});this.dispatchEvent(g)}prefixSlotChange(){this.renderRoot.querySelector("slot[name=prefix]").assignedElements().length&&(this._hasPrefix=!0)}suffixSlotChange(){this.renderRoot.querySelector("slot[name=suffix]").assignedElements().length&&(this._hasSuffix=!0)}render(){return j`
2493
2493
  ${this._label}
2494
2494
  <div
2495
2495
  class="${te({"w-textfield":!0,"w-textfield--has-prefix":this._hasPrefix,"w-textfield--has-suffix":this._hasSuffix})}">