@warp-ds/elements 2.10.0-next.20 → 2.10.0-next.22

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 (56) hide show
  1. package/dist/custom-elements.json +38 -0
  2. package/dist/docs/slider/api.md +16 -0
  3. package/dist/docs/slider/slider.md +16 -0
  4. package/dist/index.d.ts +8 -0
  5. package/dist/packages/checkbox-group/checkbox-group.js +6 -6
  6. package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
  7. package/dist/packages/checkbox-group/checkbox-group.test.js +93 -6
  8. package/dist/packages/combobox/combobox.test.js +101 -0
  9. package/dist/packages/radio-group/radio-group.js +1 -1
  10. package/dist/packages/radio-group/radio-group.js.map +2 -2
  11. package/dist/packages/radio-group/radio-group.test.js +78 -9
  12. package/dist/packages/select/locales/da/messages.mjs +1 -1
  13. package/dist/packages/select/locales/en/messages.mjs +1 -1
  14. package/dist/packages/select/locales/fi/messages.mjs +1 -1
  15. package/dist/packages/select/locales/nb/messages.mjs +1 -1
  16. package/dist/packages/select/locales/sv/messages.mjs +1 -1
  17. package/dist/packages/select/select.js +5 -5
  18. package/dist/packages/select/select.js.map +2 -2
  19. package/dist/packages/select/select.test.js +52 -0
  20. package/dist/packages/slider/locales/da/messages.mjs +1 -1
  21. package/dist/packages/slider/locales/en/messages.mjs +1 -1
  22. package/dist/packages/slider/locales/fi/messages.mjs +1 -1
  23. package/dist/packages/slider/locales/nb/messages.mjs +1 -1
  24. package/dist/packages/slider/locales/sv/messages.mjs +1 -1
  25. package/dist/packages/slider/react.d.ts +1 -1
  26. package/dist/packages/slider/slider.d.ts +8 -0
  27. package/dist/packages/slider/slider.js +52 -13
  28. package/dist/packages/slider/slider.js.map +3 -3
  29. package/dist/packages/slider/slider.react.stories.d.ts +1 -1
  30. package/dist/packages/slider/slider.stories.d.ts +2 -0
  31. package/dist/packages/slider/slider.stories.js +36 -0
  32. package/dist/packages/slider/slider.test.js +107 -0
  33. package/dist/packages/step/step.js +6 -6
  34. package/dist/packages/step/step.js.map +4 -4
  35. package/dist/packages/step/styles.d.ts +1 -0
  36. package/dist/packages/step/styles.js +2 -0
  37. package/dist/packages/textarea/locales/da/messages.mjs +1 -1
  38. package/dist/packages/textarea/locales/en/messages.mjs +1 -1
  39. package/dist/packages/textarea/locales/fi/messages.mjs +1 -1
  40. package/dist/packages/textarea/locales/nb/messages.mjs +1 -1
  41. package/dist/packages/textarea/locales/sv/messages.mjs +1 -1
  42. package/dist/packages/textarea/textarea.d.ts +1 -0
  43. package/dist/packages/textarea/textarea.js +20 -20
  44. package/dist/packages/textarea/textarea.js.map +4 -4
  45. package/dist/packages/textarea/textarea.test.js +73 -0
  46. package/dist/packages/textfield/locales/da/messages.mjs +1 -1
  47. package/dist/packages/textfield/locales/en/messages.mjs +1 -1
  48. package/dist/packages/textfield/locales/fi/messages.mjs +1 -1
  49. package/dist/packages/textfield/locales/nb/messages.mjs +1 -1
  50. package/dist/packages/textfield/locales/sv/messages.mjs +1 -1
  51. package/dist/packages/textfield/textfield.js +11 -11
  52. package/dist/packages/textfield/textfield.js.map +2 -2
  53. package/dist/packages/textfield/textfield.test.js +71 -0
  54. package/dist/web-types.json +13 -2
  55. package/eik/index.js +13 -13
  56. package/package.json +1 -1
@@ -1,8 +1,15 @@
1
+ import { i18n } from "@lingui/core";
1
2
  import { server, userEvent } from "vitest/browser";
2
3
  import { html } from "lit";
3
4
  import { expect, test, vi } from "vitest";
4
5
  import { render } from "vitest-browser-lit";
5
6
  import "./select.js";
7
+ import { messages } from "./locales/en/messages.mjs";
8
+ import { messages as nbMessages } from "./locales/nb/messages.mjs";
9
+ // Initialize i18n with English locale for tests
10
+ i18n.load("en", messages);
11
+ i18n.load("nb", nbMessages);
12
+ i18n.activate("en");
6
13
  test("works in a form", async () => {
7
14
  const component = html `
8
15
  <form data-testid="flavour">
@@ -247,3 +254,48 @@ test.skipIf(server.browser === "chromium" && server.config.env.CI)("submits the
247
254
  await userEvent.keyboard("{Enter}");
248
255
  expect(onSubmit).toHaveBeenCalled();
249
256
  });
257
+ test("renders optional indicator as 'Optional' without parentheses", async () => {
258
+ const page = render(html `
259
+ <w-select label="Country" optional>
260
+ <option value="no">Norway</option>
261
+ <option value="se">Sweden</option>
262
+ </w-select>
263
+ `);
264
+ await expect.element(page.getByText("Optional")).toBeVisible();
265
+ expect(page.getByText("(optional)").query()).toBeNull();
266
+ });
267
+ test("includes optional indicator in the accessible name", async () => {
268
+ const page = render(html `
269
+ <w-select label="Country" optional>
270
+ <option value="no">Norway</option>
271
+ <option value="se">Sweden</option>
272
+ </w-select>
273
+ `);
274
+ await expect
275
+ .element(page.getByRole("combobox", { name: /Country.*Optional/ }))
276
+ .toBeVisible();
277
+ });
278
+ test("does not render optional indicator when there is no label", async () => {
279
+ const page = render(html `
280
+ <w-select aria-label="Country" optional>
281
+ <option value="no">Norway</option>
282
+ <option value="se">Sweden</option>
283
+ </w-select>
284
+ `);
285
+ await expect.element(page.getByLabelText("Country")).toBeVisible();
286
+ expect(page.getByText("Optional").query()).toBeNull();
287
+ });
288
+ test("renders localized optional text based on document lang", async () => {
289
+ const originalLang = document.documentElement.lang;
290
+ document.documentElement.lang = "nb";
291
+ const page = render(html `
292
+ <w-select label="Country" optional data-testid="field">
293
+ <option value="no">Norway</option>
294
+ <option value="se">Sweden</option>
295
+ </w-select>
296
+ `);
297
+ const el = page.getByTestId("field").element();
298
+ await el.updateComplete;
299
+ await expect.element(page.getByText("Valgfri")).toBeVisible();
300
+ document.documentElement.lang = originalLang;
301
+ });
@@ -1 +1 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Værdien skal være mellem \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumværdien må ikke være mindre end minimumværdien\"],\"slider.error.required\":[\"Dette felt er påkrævet\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valgfri\"],\"slider.error.out_of_bounds\":[\"Værdien skal være mellem \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumværdien må ikke være mindre end minimumværdien\"],\"slider.error.required\":[\"Dette felt er påkrævet\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
@@ -1 +1 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Value must be between \",[\"min\"],\" and \",[\"max\"]],\"slider.error.overlap\":[\"The maximum value cannot be less than the minimum\"],\"slider.error.required\":[\"This field is required\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Optional\"],\"slider.error.out_of_bounds\":[\"Value must be between \",[\"min\"],\" and \",[\"max\"]],\"slider.error.overlap\":[\"The maximum value cannot be less than the minimum\"],\"slider.error.required\":[\"This field is required\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
@@ -1 +1 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Arvon on oltava välillä \",[\"min\"],\" - \",[\"max\"]],\"slider.error.overlap\":[\"Maksimiarvo ei voi olla pienempi kuin minimiarvo\"],\"slider.error.required\":[\"Tämä kenttä on pakollinen\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valinnainen\"],\"slider.error.out_of_bounds\":[\"Arvon on oltava välillä \",[\"min\"],\" - \",[\"max\"]],\"slider.error.overlap\":[\"Maksimiarvo ei voi olla pienempi kuin minimiarvo\"],\"slider.error.required\":[\"Tämä kenttä on pakollinen\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
@@ -1 +1 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Verdien må være mellom \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumsverdien kan ikke være mindre enn minimumsverdien\"],\"slider.error.required\":[\"Dette feltet er påkrevd\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valgfri\"],\"slider.error.out_of_bounds\":[\"Verdien må være mellom \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumsverdien kan ikke være mindre enn minimumsverdien\"],\"slider.error.required\":[\"Dette feltet er påkrevd\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
@@ -1 +1 @@
1
- /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Värdet måste vara mellan \",[\"min\"],\" och \",[\"max\"]],\"slider.error.overlap\":[\"Maxvärdet kan inte vara mindre än minimivärdet\"],\"slider.error.required\":[\"Detta fält är obligatoriskt\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valfritt\"],\"slider.error.out_of_bounds\":[\"Värdet måste vara mellan \",[\"min\"],\" och \",[\"max\"]],\"slider.error.overlap\":[\"Maxvärdet kan inte vara mindre än minimivärdet\"],\"slider.error.required\":[\"Detta fält är obligatoriskt\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { WarpSlider } from "./slider.js";
3
3
  export { SliderThumb } from "../slider-thumb/react.js";
4
- export declare const Slider: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpSlider>, "fieldset" | "label" | "disabled" | "invalid" | "helpText" | "max" | "min" | "required" | "step" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "updated" | "render" | "renderOptions" | "error" | "openEnded" | "markers" | "suffix" | "valueFormatter" | "tooltipFormatter" | "labelFormatter" | "hiddenTextfield" | "_invalidMessage" | "_hasInternalError" | "_showError" | "_tabbableElements" | "edgeMin" | "edgeMax" | "componentHasError" | "errorText"> & {} & Partial<Omit<WarpSlider, keyof HTMLElement>> & React.RefAttributes<WarpSlider>, "ref">, "help-text" | "open-ended" | "hidden-textfield"> & {
4
+ export declare const Slider: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpSlider>, "fieldset" | "label" | "disabled" | "invalid" | "helpText" | "optional" | "max" | "min" | "required" | "step" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "updated" | "_label" | "render" | "renderOptions" | "error" | "openEnded" | "markers" | "suffix" | "valueFormatter" | "tooltipFormatter" | "labelFormatter" | "hiddenTextfield" | "_invalidMessage" | "_hasInternalError" | "_showError" | "_tabbableElements" | "_hasLabel" | "edgeMin" | "edgeMax" | "componentHasError" | "errorText"> & {} & Partial<Omit<WarpSlider, keyof HTMLElement>> & React.RefAttributes<WarpSlider>, "ref">, "help-text" | "open-ended" | "hidden-textfield"> & {
5
5
  openEnded?: boolean;
6
6
  helpText?: string;
7
7
  hiddenTextfield?: boolean;
@@ -48,6 +48,10 @@ declare class WarpSlider extends LitElement {
48
48
  * Ensures a child slider thumb has a value before allowing the containing form to submit
49
49
  */
50
50
  required: boolean;
51
+ /**
52
+ * Whether to show the optional indicator after the label.
53
+ */
54
+ optional: boolean;
51
55
  /**
52
56
  * The minimum allowed value in the range inputs
53
57
  * @default 0
@@ -98,6 +102,8 @@ declare class WarpSlider extends LitElement {
98
102
  _showError: boolean;
99
103
  /** @internal */
100
104
  _tabbableElements: Array<HTMLElement>;
105
+ /** @internal */
106
+ _hasLabel: boolean;
101
107
  constructor();
102
108
  /** @internal */
103
109
  get edgeMin(): string | undefined;
@@ -109,6 +115,8 @@ declare class WarpSlider extends LitElement {
109
115
  get componentHasError(): boolean;
110
116
  /** @internal */
111
117
  get errorText(): string;
118
+ private _handleLabelSlotChange;
119
+ get _label(): import("lit").TemplateResult<1>;
112
120
  render(): import("lit").TemplateResult<1>;
113
121
  }
114
122
  export { WarpSlider };
@@ -1,4 +1,4 @@
1
- var me=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var P=a=>{throw TypeError(a)};var c=(a,r,e,o)=>{for(var t=o>1?void 0:o?ve(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(o?s(r,e,t):s(t))||t);return o&&t&&me(r,e,t),t};var fe=(a,r,e)=>r.has(a)||P("Cannot "+e);var R=(a,r,e)=>r.has(a)?P("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(a):r.set(a,e);var h=(a,r,e)=>(fe(a,r,"access private method"),e);import{html as x,LitElement as le,nothing as j}from"lit";import{property as g,query as qe,state as T}from"lit/decorators.js";var p=a=>typeof a=="string",we=a=>typeof a=="function",H=new Map,V="en";function $(a){return[...Array.isArray(a)?a:[a],V]}function A(a,r,e){let o=$(a);e||(e="default");let t;if(typeof e=="string")switch(t={day:"numeric",month:"short",year:"numeric"},e){case"full":t.weekday="long";case"long":t.month="long";break;case"short":t.month="numeric";break}else t=e;return z(()=>E("date",o,e),()=>new Intl.DateTimeFormat(o,t)).format(p(r)?new Date(r):r)}function xe(a,r,e){let o;if(e||(e="default"),typeof e=="string")switch(o={second:"numeric",minute:"numeric",hour:"numeric"},e){case"full":case"long":o.timeZoneName="short";break;case"short":delete o.second}else o=e;return A(a,r,o)}function C(a,r,e){let o=$(a);return z(()=>E("number",o,e),()=>new Intl.NumberFormat(o,e)).format(r)}function X(a,r,e,{offset:o=0,...t}){let i=$(a),s=r?z(()=>E("plural-ordinal",i),()=>new Intl.PluralRules(i,{type:"ordinal"})):z(()=>E("plural-cardinal",i),()=>new Intl.PluralRules(i,{type:"cardinal"}));return t[e]??t[s.select(e-o)]??t.other}function z(a,r){let e=a(),o=H.get(e);return o||(o=r(),H.set(e,o)),o}function E(a,r,e){let o=r.join("-");return`${a}-${o}-${JSON.stringify(e)}`}var Z=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,B=a=>a.replace(/\\u([a-fA-F0-9]{4})|\\x([a-fA-F0-9]{2})/g,(r,e,o)=>{if(e){let t=parseInt(e,16);return String.fromCharCode(t)}else{let t=parseInt(o,16);return String.fromCharCode(t)}}),J="%__lingui_octothorpe__%",ke=(a,r,e={})=>{let o=r||a,t=s=>typeof s=="object"?s:e[s],i=(s,n)=>{let b=Object.keys(e).length?t("number"):void 0,v=C(o,s,b);return n.replace(new RegExp(J,"g"),v)};return{plural:(s,n)=>{let{offset:b=0}=n,v=X(o,!1,s,n);return i(s-b,v)},selectordinal:(s,n)=>{let{offset:b=0}=n,v=X(o,!0,s,n);return i(s-b,v)},select:ye,number:(s,n)=>C(o,s,t(n)||{style:n}),date:(s,n)=>A(o,s,t(n)||n),time:(s,n)=>xe(o,s,t(n)||n)}},ye=(a,r)=>r[a]??r.other;function _e(a,r,e){return(o={},t)=>{let i=ke(r,e,t),s=(b,v=!1)=>Array.isArray(b)?b.reduce((k,y)=>{if(y==="#"&&v)return k+J;if(p(y))return k+y;let[I,f,O]=y,S={};f==="plural"||f==="selectordinal"||f==="select"?Object.entries(O).forEach(([F,pe])=>{S[F]=s(pe,f==="plural"||f==="selectordinal")}):S=O;let _;if(f){let F=i[f];_=F(o[I],S)}else _=o[I];return _==null?k:k+_},""):b,n=s(a);return p(n)&&Z.test(n)?B(n):p(n)?n:n?String(n):""}}var ze=Object.defineProperty,Ee=(a,r,e)=>r in a?ze(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e,Me=(a,r,e)=>(Ee(a,typeof r!="symbol"?r+"":r,e),e),N=class{constructor(){Me(this,"_events",{})}on(r,e){var o;return(o=this._events)[r]??(o[r]=[]),this._events[r].push(e),()=>this.removeListener(r,e)}removeListener(r,e){let o=this._getListeners(r);if(!o)return;let t=o.indexOf(e);~t&&o.splice(t,1)}emit(r,...e){let o=this._getListeners(r);o&&o.map(t=>t.apply(this,e))}_getListeners(r){let e=this._events[r];return Array.isArray(e)?e:!1}},Te=Object.defineProperty,Le=(a,r,e)=>r in a?Te(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e,w=(a,r,e)=>(Le(a,typeof r!="symbol"?r+"":r,e),e),Y=class extends N{constructor(r){super(),w(this,"_locale",""),w(this,"_locales"),w(this,"_localeData",{}),w(this,"_messages",{}),w(this,"_missing"),w(this,"_messageCompiler"),w(this,"t",this._.bind(this)),r.missing!=null&&(this._missing=r.missing),r.messages!=null&&this.load(r.messages),r.localeData!=null&&this.loadLocaleData(r.localeData),(typeof r.locale=="string"||r.locales)&&this.activate(r.locale??V,r.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){return this._messages[this._locale]??{}}get localeData(){return this._localeData[this._locale]??{}}_loadLocaleData(r,e){let o=this._localeData[r];o?Object.assign(o,e):this._localeData[r]=e}setMessagesCompiler(r){return this._messageCompiler=r,this}loadLocaleData(r,e){typeof r=="string"?this._loadLocaleData(r,e):Object.keys(r).forEach(o=>this._loadLocaleData(o,r[o])),this.emit("change")}_load(r,e){let o=this._messages[r];o?Object.assign(o,e):this._messages[r]=e}load(r,e){typeof r=="string"&&typeof e=="object"?this._load(r,e):Object.entries(r).forEach(([o,t])=>this._load(o,t)),this.emit("change")}loadAndActivate({locale:r,locales:e,messages:o}){this._locale=r,this._locales=e||void 0,this._messages[this._locale]=o,this.emit("change")}activate(r,e){this._locale=r,this._locales=e,this.emit("change")}_(r,e,o){if(!this.locale)throw new Error("Lingui: Attempted to call a translation function without setting a locale.\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\nThis issue may also occur due to a race condition in your initialization logic.");let t=o?.message;r||(r=""),p(r)||(e=r.values||e,t=r.message,r=r.id);let i=this.messages[r],s=i===void 0,n=this._missing;if(n&&s)return we(n)?n(this._locale,r):n;s&&this.emit("missing",{id:r,locale:this._locale});let b=i||t||r;return p(b)&&(this._messageCompiler?b=this._messageCompiler(b):console.warn(`Uncompiled message detected! Message:
1
+ var me=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var P=a=>{throw TypeError(a)};var c=(a,r,e,o)=>{for(var t=o>1?void 0:o?ve(r,e):r,i=a.length-1,n;i>=0;i--)(n=a[i])&&(t=(o?n(r,e,t):n(t))||t);return o&&t&&me(r,e,t),t};var fe=(a,r,e)=>r.has(a)||P("Cannot "+e);var R=(a,r,e)=>r.has(a)?P("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(a):r.set(a,e);var h=(a,r,e)=>(fe(a,r,"access private method"),e);import{css as qe,html as x,LitElement as le,nothing as T}from"lit";import{property as g,query as De,state as k}from"lit/decorators.js";var u=a=>typeof a=="string",we=a=>typeof a=="function",H=new Map,X="en";function Y(a){return[...Array.isArray(a)?a:[a],X]}function I(a,r,e){let o=Y(a);e||(e="default");let t;if(typeof e=="string")switch(t={day:"numeric",month:"short",year:"numeric"},e){case"full":t.weekday="long";case"long":t.month="long";break;case"short":t.month="numeric";break}else t=e;return E(()=>M("date",o,e),()=>new Intl.DateTimeFormat(o,t)).format(u(r)?new Date(r):r)}function xe(a,r,e){let o;if(e||(e="default"),typeof e=="string")switch(o={second:"numeric",minute:"numeric",hour:"numeric"},e){case"full":case"long":o.timeZoneName="short";break;case"short":delete o.second}else o=e;return I(a,r,o)}function $(a,r,e){let o=Y(a);return E(()=>M("number",o,e),()=>new Intl.NumberFormat(o,e)).format(r)}function V(a,r,e,{offset:o=0,...t}){let i=Y(a),n=r?E(()=>M("plural-ordinal",i),()=>new Intl.PluralRules(i,{type:"ordinal"})):E(()=>M("plural-cardinal",i),()=>new Intl.PluralRules(i,{type:"cardinal"}));return t[e]??t[n.select(e-o)]??t.other}function E(a,r){let e=a(),o=H.get(e);return o||(o=r(),H.set(e,o)),o}function M(a,r,e){let o=r.join("-");return`${a}-${o}-${JSON.stringify(e)}`}var Z=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,B=a=>a.replace(/\\u([a-fA-F0-9]{4})|\\x([a-fA-F0-9]{2})/g,(r,e,o)=>{if(e){let t=parseInt(e,16);return String.fromCharCode(t)}else{let t=parseInt(o,16);return String.fromCharCode(t)}}),J="%__lingui_octothorpe__%",ke=(a,r,e={})=>{let o=r||a,t=n=>typeof n=="object"?n:e[n],i=(n,s)=>{let b=Object.keys(e).length?t("number"):void 0,v=$(o,n,b);return s.replace(new RegExp(J,"g"),v)};return{plural:(n,s)=>{let{offset:b=0}=s,v=V(o,!1,n,s);return i(n-b,v)},selectordinal:(n,s)=>{let{offset:b=0}=s,v=V(o,!0,n,s);return i(n-b,v)},select:ye,number:(n,s)=>$(o,n,t(s)||{style:s}),date:(n,s)=>I(o,n,t(s)||s),time:(n,s)=>xe(o,n,t(s)||s)}},ye=(a,r)=>r[a]??r.other;function _e(a,r,e){return(o={},t)=>{let i=ke(r,e,t),n=(b,v=!1)=>Array.isArray(b)?b.reduce((y,_)=>{if(_==="#"&&v)return y+J;if(u(_))return y+_;let[D,f,O]=_,F={};f==="plural"||f==="selectordinal"||f==="select"?Object.entries(O).forEach(([C,ue])=>{F[C]=n(ue,f==="plural"||f==="selectordinal")}):F=O;let z;if(f){let C=i[f];z=C(o[D],F)}else z=o[D];return z==null?y:y+z},""):b,s=n(a);return u(s)&&Z.test(s)?B(s):u(s)?s:s?String(s):""}}var ze=Object.defineProperty,Ee=(a,r,e)=>r in a?ze(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e,Me=(a,r,e)=>(Ee(a,typeof r!="symbol"?r+"":r,e),e),A=class{constructor(){Me(this,"_events",{})}on(r,e){var o;return(o=this._events)[r]??(o[r]=[]),this._events[r].push(e),()=>this.removeListener(r,e)}removeListener(r,e){let o=this._getListeners(r);if(!o)return;let t=o.indexOf(e);~t&&o.splice(t,1)}emit(r,...e){let o=this._getListeners(r);o&&o.map(t=>t.apply(this,e))}_getListeners(r){let e=this._events[r];return Array.isArray(e)?e:!1}},Le=Object.defineProperty,Te=(a,r,e)=>r in a?Le(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e,w=(a,r,e)=>(Te(a,typeof r!="symbol"?r+"":r,e),e),N=class extends A{constructor(r){super(),w(this,"_locale",""),w(this,"_locales"),w(this,"_localeData",{}),w(this,"_messages",{}),w(this,"_missing"),w(this,"_messageCompiler"),w(this,"t",this._.bind(this)),r.missing!=null&&(this._missing=r.missing),r.messages!=null&&this.load(r.messages),r.localeData!=null&&this.loadLocaleData(r.localeData),(typeof r.locale=="string"||r.locales)&&this.activate(r.locale??X,r.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){return this._messages[this._locale]??{}}get localeData(){return this._localeData[this._locale]??{}}_loadLocaleData(r,e){let o=this._localeData[r];o?Object.assign(o,e):this._localeData[r]=e}setMessagesCompiler(r){return this._messageCompiler=r,this}loadLocaleData(r,e){typeof r=="string"?this._loadLocaleData(r,e):Object.keys(r).forEach(o=>this._loadLocaleData(o,r[o])),this.emit("change")}_load(r,e){let o=this._messages[r];o?Object.assign(o,e):this._messages[r]=e}load(r,e){typeof r=="string"&&typeof e=="object"?this._load(r,e):Object.entries(r).forEach(([o,t])=>this._load(o,t)),this.emit("change")}loadAndActivate({locale:r,locales:e,messages:o}){this._locale=r,this._locales=e||void 0,this._messages[this._locale]=o,this.emit("change")}activate(r,e){this._locale=r,this._locales=e,this.emit("change")}_(r,e,o){if(!this.locale)throw new Error("Lingui: Attempted to call a translation function without setting a locale.\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\nThis issue may also occur due to a race condition in your initialization logic.");let t=o?.message;r||(r=""),u(r)||(e=r.values||e,t=r.message,r=r.id);let i=this.messages[r],n=i===void 0,s=this._missing;if(s&&n)return we(s)?s(this._locale,r):s;n&&this.emit("missing",{id:r,locale:this._locale});let b=i||t||r;return u(b)&&(this._messageCompiler?b=this._messageCompiler(b):console.warn(`Uncompiled message detected! Message:
2
2
 
3
3
  > ${b}
4
4
 
@@ -6,7 +6,7 @@ That means you use raw catalog or your catalog doesn't have a translation for th
6
6
  ICU features such as interpolation and plurals will not work properly for that message.
7
7
 
8
8
  Please compile your catalog first.
9
- `)),p(b)&&Z.test(b)?B(b):p(b)?b:_e(b,this._locale,this._locales)(e,o?.formats)}date(r,e){return A(this._locales||this._locale,r,e)}number(r,e){return C(this._locales||this._locale,r,e)}};function Se(a={}){return new Y(a)}var u=Se();var Fe=["en","nb","fi","da","sv"],D="en",M=a=>Fe.find(r=>a===r||a.toLowerCase().includes(r))||D;function U(){if(typeof window>"u"){let a=process.env.NMP_LANGUAGE||Intl.DateTimeFormat().resolvedOptions().locale;return M(a)}try{let a=G(document);if(a)return M(a);let r=$e();if(r)return M(r);let e=G(ee());return e?M(e):D}catch(a){return console.warn("could not detect locale, falling back to source locale",a),D}}var Q=(a,r,e,o,t)=>{u.load("en",a),u.load("nb",r),u.load("fi",e),u.load("da",o),u.load("sv",t);let i=U();u.activate(i),W(),Ne()},Ce="warp-i18n-change";function W(){typeof window>"u"||window.dispatchEvent(new Event(Ce))}var K=!1;function Ne(){if(K||typeof window>"u"||!document?.documentElement)return;K=!0;let a=()=>{let t=U();u.locale!==t&&(u.activate(t),W())},r=new MutationObserver(t=>{for(let i of t)if(i.type==="attributes"&&i.attributeName==="lang"){a();break}});r.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]});let e=ee();e&&e.documentElement&&e!==document&&r.observe(e.documentElement,{attributes:!0,attributeFilter:["lang"]});let o=Ye();o&&r.observe(o,{attributes:!0,attributeFilter:["lang"]})}function ee(){try{return window.parent?.document??null}catch{return null}}function G(a){try{return a?.documentElement?.lang??""}catch{return""}}function Ye(){try{return window.frameElement??null}catch{return null}}function $e(){try{return window.frameElement?.getAttribute?.("lang")??""}catch{return""}}import{css as Ae}from"lit";import{unsafeCSS as De}from"lit";var re=Ae`
9
+ `)),u(b)&&Z.test(b)?B(b):u(b)?b:_e(b,this._locale,this._locales)(e,o?.formats)}date(r,e){return I(this._locales||this._locale,r,e)}number(r,e){return $(this._locales||this._locale,r,e)}};function Se(a={}){return new N(a)}var p=Se();var Fe=["en","nb","fi","da","sv"],j="en",L=a=>Fe.find(r=>a===r||a.toLowerCase().includes(r))||j;function U(){if(typeof window>"u"){let a=process.env.NMP_LANGUAGE||Intl.DateTimeFormat().resolvedOptions().locale;return L(a)}try{let a=G(document);if(a)return L(a);let r=Ne();if(r)return L(r);let e=G(ee());return e?L(e):j}catch(a){return console.warn("could not detect locale, falling back to source locale",a),j}}var Q=(a,r,e,o,t)=>{p.load("en",a),p.load("nb",r),p.load("fi",e),p.load("da",o),p.load("sv",t);let i=U();p.activate(i),W(),$e()},Ce="warp-i18n-change";function W(){typeof window>"u"||window.dispatchEvent(new Event(Ce))}var K=!1;function $e(){if(K||typeof window>"u"||!document?.documentElement)return;K=!0;let a=()=>{let t=U();p.locale!==t&&(p.activate(t),W())},r=new MutationObserver(t=>{for(let i of t)if(i.type==="attributes"&&i.attributeName==="lang"){a();break}});r.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]});let e=ee();e&&e.documentElement&&e!==document&&r.observe(e.documentElement,{attributes:!0,attributeFilter:["lang"]});let o=Ae();o&&r.observe(o,{attributes:!0,attributeFilter:["lang"]})}function ee(){try{return window.parent?.document??null}catch{return null}}function G(a){try{return a?.documentElement?.lang??""}catch{return""}}function Ae(){try{return window.frameElement??null}catch{return null}}function Ne(){try{return window.frameElement?.getAttribute?.("lang")??""}catch{return""}}import{css as Ye}from"lit";import{unsafeCSS as Ie}from"lit";var re=Ye`
10
10
  *,
11
11
  :before,
12
12
  :after {
@@ -279,7 +279,7 @@ Please compile your catalog first.
279
279
  svg {
280
280
  pointer-events: none;
281
281
  }
282
- `,Ze=De(`*, :before, :after {
282
+ `,Be=Ie(`*, :before, :after {
283
283
  --w-rotate: 0;
284
284
  --w-rotate-x: 0;
285
285
  --w-rotate-y: 0;
@@ -2445,7 +2445,7 @@ Please compile your catalog first.
2445
2445
  display: none
2446
2446
  }
2447
2447
  }
2448
- `);var oe=JSON.parse('{"slider.error.out_of_bounds":["V\xE6rdien skal v\xE6re mellem ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumv\xE6rdien m\xE5 ikke v\xE6re mindre end minimumv\xE6rdien"],"slider.error.required":["Dette felt er p\xE5kr\xE6vet"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var te=JSON.parse('{"slider.error.out_of_bounds":["Value must be between ",["min"]," and ",["max"]],"slider.error.overlap":["The maximum value cannot be less than the minimum"],"slider.error.required":["This field is required"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ae=JSON.parse('{"slider.error.out_of_bounds":["Arvon on oltava v\xE4lill\xE4 ",["min"]," - ",["max"]],"slider.error.overlap":["Maksimiarvo ei voi olla pienempi kuin minimiarvo"],"slider.error.required":["T\xE4m\xE4 kentt\xE4 on pakollinen"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ie=JSON.parse('{"slider.error.out_of_bounds":["Verdien m\xE5 v\xE6re mellom ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumsverdien kan ikke v\xE6re mindre enn minimumsverdien"],"slider.error.required":["Dette feltet er p\xE5krevd"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var se=JSON.parse('{"slider.error.out_of_bounds":["V\xE4rdet m\xE5ste vara mellan ",["min"]," och ",["max"]],"slider.error.overlap":["Maxv\xE4rdet kan inte vara mindre \xE4n minimiv\xE4rdet"],"slider.error.required":["Detta f\xE4lt \xE4r obligatoriskt"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');import{css as je}from"lit";var ne=je`
2448
+ `);var oe=JSON.parse('{"select.label.optional":["Valgfri"],"slider.error.out_of_bounds":["V\xE6rdien skal v\xE6re mellem ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumv\xE6rdien m\xE5 ikke v\xE6re mindre end minimumv\xE6rdien"],"slider.error.required":["Dette felt er p\xE5kr\xE6vet"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var te=JSON.parse('{"select.label.optional":["Optional"],"slider.error.out_of_bounds":["Value must be between ",["min"]," and ",["max"]],"slider.error.overlap":["The maximum value cannot be less than the minimum"],"slider.error.required":["This field is required"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ae=JSON.parse('{"select.label.optional":["Valinnainen"],"slider.error.out_of_bounds":["Arvon on oltava v\xE4lill\xE4 ",["min"]," - ",["max"]],"slider.error.overlap":["Maksimiarvo ei voi olla pienempi kuin minimiarvo"],"slider.error.required":["T\xE4m\xE4 kentt\xE4 on pakollinen"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ie=JSON.parse('{"select.label.optional":["Valgfri"],"slider.error.out_of_bounds":["Verdien m\xE5 v\xE6re mellom ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumsverdien kan ikke v\xE6re mindre enn minimumsverdien"],"slider.error.required":["Dette feltet er p\xE5krevd"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ne=JSON.parse('{"select.label.optional":["Valfritt"],"slider.error.out_of_bounds":["V\xE4rdet m\xE5ste vara mellan ",["min"]," och ",["max"]],"slider.error.overlap":["Maxv\xE4rdet kan inte vara mindre \xE4n minimiv\xE4rdet"],"slider.error.required":["Detta f\xE4lt \xE4r obligatoriskt"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');import{css as je}from"lit";var se=je`
2449
2449
  .w-slider {
2450
2450
  position: relative;
2451
2451
  border: none;
@@ -2615,23 +2615,35 @@ Please compile your catalog first.
2615
2615
  bottom: 0;
2616
2616
  grid-area: slider;
2617
2617
  }
2618
- `;var l,m,de,ce,be,he,ge,ue,q,L,d=class extends le{constructor(){super();R(this,l);this.disabled=!1;this.openEnded=!1;this.invalid=!1;this.required=!1;this.hiddenTextfield=!1;this._invalidMessage="";this._hasInternalError=!1;this._showError=!1;this._tabbableElements=[];Q(te,ie,ae,oe,se)}get edgeMin(){return this.openEnded?(Number(this.min)-1).toString():this.min}get edgeMax(){return this.openEnded?(Number(this.max)+1).toString():this.max}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.step&&this.fieldset.style.setProperty("--step",String(this.step)),this.min!==void 0&&this.fieldset.style.setProperty("--min",this.edgeMin),this.max!==void 0&&this.fieldset.style.setProperty("--max",this.max),this.markers&&this.fieldset.style.setProperty("--markers",String(this.markers)),this.openEnded&&this.fieldset.style.setProperty("--over-under-offset","1");let e=this.querySelectorAll("w-slider-thumb");if(e.length===2){this.fieldset.style.setProperty("--range-slider-magic-pixel","1px");let t=[...e];this._tabbableElements[0]=t[0].shadowRoot.querySelector("input"),this._tabbableElements[1]=t[1].shadowRoot.querySelector("input"),this._tabbableElements[2]=t[0].shadowRoot.querySelector("w-textfield"),this._tabbableElements[3]=t[1].shadowRoot.querySelector("w-textfield")}else if(e.length===1){let t=[...e];this._tabbableElements[0]=t[0].shadowRoot.querySelector("input"),this._tabbableElements[1]=t[0].shadowRoot.querySelector("w-textfield")}this.invalid&&this.error&&(this._showError=!0),h(this,l,m).call(this)}updated(e){(e.has("disabled")||e.has("required")||e.has("min")||e.has("step")||e.has("max")||e.has("suffix")||e.has("labelFormatter")||e.has("valueFormatter")||e.has("_invalidMessage")||e.has("_hasInternalError"))&&h(this,l,m).call(this),(e.has("error")||e.has("invalid"))&&(this.error&&this.invalid?this._showError=!0:this._showError=!1,h(this,l,m).call(this))}get componentHasError(){return this.invalid||this._hasInternalError}get errorText(){return this._showError?this.error||this._invalidMessage:""}render(){return x`
2618
+ `;var l,m,de,ce,be,he,ge,pe,q,S,d=class extends le{constructor(){super();R(this,l);this.disabled=!1;this.openEnded=!1;this.invalid=!1;this.required=!1;this.optional=!1;this.hiddenTextfield=!1;this._invalidMessage="";this._hasInternalError=!1;this._showError=!1;this._tabbableElements=[];this._hasLabel=!1;Q(te,ie,ae,oe,ne)}get edgeMin(){return this.openEnded?(Number(this.min)-1).toString():this.min}get edgeMax(){return this.openEnded?(Number(this.max)+1).toString():this.max}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.step&&this.fieldset.style.setProperty("--step",String(this.step)),this.min!==void 0&&this.fieldset.style.setProperty("--min",this.edgeMin),this.max!==void 0&&this.fieldset.style.setProperty("--max",this.max),this.markers&&this.fieldset.style.setProperty("--markers",String(this.markers)),this.openEnded&&this.fieldset.style.setProperty("--over-under-offset","1"),this.label&&(this._hasLabel=!0);let e=this.querySelectorAll("w-slider-thumb");if(e.length===2){this.fieldset.style.setProperty("--range-slider-magic-pixel","1px");let t=[...e];this._tabbableElements[0]=t[0].shadowRoot.querySelector("input"),this._tabbableElements[1]=t[1].shadowRoot.querySelector("input"),this._tabbableElements[2]=t[0].shadowRoot.querySelector("w-textfield"),this._tabbableElements[3]=t[1].shadowRoot.querySelector("w-textfield")}else if(e.length===1){let t=[...e];this._tabbableElements[0]=t[0].shadowRoot.querySelector("input"),this._tabbableElements[1]=t[0].shadowRoot.querySelector("w-textfield")}this.invalid&&this.error&&(this._showError=!0),h(this,l,m).call(this)}updated(e){(e.has("disabled")||e.has("required")||e.has("min")||e.has("step")||e.has("max")||e.has("suffix")||e.has("labelFormatter")||e.has("valueFormatter")||e.has("_invalidMessage")||e.has("_hasInternalError"))&&h(this,l,m).call(this),(e.has("error")||e.has("invalid"))&&(this.error&&this.invalid?this._showError=!0:this._showError=!1,h(this,l,m).call(this))}get componentHasError(){return this.invalid||this._hasInternalError}get errorText(){return this._showError?this.error||this._invalidMessage:""}_handleLabelSlotChange(e){let t=e.target.assignedElements().length>0;this._hasLabel=t||!!this.label,console.log("Label content changed, has label:",this._hasLabel)}get _label(){let e=this._hasLabel&&this.optional&&!this.required?x`<span class="w-slider__optional"
2619
+ >${p._({id:"select.label.optional",message:"Optional",comment:"Shown behind label when marked as optional"})}</span
2620
+ >`:T;return this.label?x`<legend class="w-slider__label">
2621
+ <slot
2622
+ id="label"
2623
+ name="label"
2624
+ @slotchange=${this._handleLabelSlotChange}
2625
+ >${this.label}</slot
2626
+ >${e}
2627
+ </legend>`:x`<slot
2628
+ id="label"
2629
+ name="label"
2630
+ @slotchange=${this._handleLabelSlotChange}
2631
+ ></slot
2632
+ >${e}`}render(){return x`
2619
2633
  <fieldset
2620
2634
  id="fieldset"
2621
2635
  class="w-slider"
2622
2636
  @input="${h(this,l,ce)}"
2623
2637
  @focusout="${h(this,l,be)}"
2624
- @slidervalidity="${h(this,l,ue)}"
2638
+ @slidervalidity="${h(this,l,pe)}"
2625
2639
  @thumbreset="${h(this,l,de)}"
2626
2640
  @keydown="${h(this,l,he)}"
2627
- aria-invalid="${this.errorText?"true":j}"
2641
+ aria-invalid="${this.errorText?"true":T}"
2628
2642
  ?disabled="${this.disabled}"
2629
2643
  >
2630
- ${this.label?x`<legend class="w-slider__label">
2631
- <slot id="label" name="label">${this.label}</slot>
2632
- </legend>`:x`<slot id="label" name="label"></slot>`}
2644
+ ${this._label}
2633
2645
  <slot class="w-slider__description" name="description"></slot>
2634
- ${this.markers?x`<div class="w-slider__markers"></div>`:j}
2646
+ ${this.markers?x`<div class="w-slider__markers"></div>`:T}
2635
2647
  <div class="w-slider__range">
2636
2648
  <div class="w-slider__active-range"></div>
2637
2649
  </div>
@@ -2653,7 +2665,34 @@ Please compile your catalog first.
2653
2665
  ${this.errorText}
2654
2666
  </p>`:this.helpText?x`<p class="w-slider__help-text" aria-describes="fieldset">
2655
2667
  ${this.helpText}
2656
- </p>`:j}
2668
+ </p>`:T}
2657
2669
  </fieldset>
2658
- `}};l=new WeakSet,m=function(){let e=this.querySelectorAll("w-slider-thumb"),o=!1;for(let t of e.values())t.min=this.edgeMin,t.max=this.edgeMax,t.step=this.step,t.suffix=this.suffix??"",t.required=this.required,t.labelFormatter=this.labelFormatter,t.valueFormatter=this.valueFormatter,t.tooltipFormatter=this.tooltipFormatter,t.openEnded=this.openEnded,t._hiddenTextfield=this.hiddenTextfield,t.ariaLabel||(t.slot||(t.ariaLabel=this.label||null),t.slot==="from"&&(t.ariaLabel=`${this.label} min`),t.slot==="to"&&(t.ariaLabel=`${this.label} max`)),(t.slot==="from"||t.slot==="to")&&(o=!0),t.disabled=this.disabled,t.invalid=!!this.errorText,h(this,l,L).call(this,t);o?(this.fieldset.style.setProperty("--active-range-inline-start-padding","var(--w-slider-thumb-size, 28px)"),this.fieldset.style.setProperty("--active-range-inline-end-padding","var(--w-slider-thumb-size, 28px)")):this.fieldset.style.setProperty("--active-range-border-radius","4px")},de=function(e){e.stopPropagation();let o=e.target;h(this,l,L).call(this,o)},ce=function(e){let o=e.target;h(this,l,L).call(this,o),o.slot&&h(this,l,ge).call(this)},be=function(){this.componentHasError?this._showError=!0:this._showError=!1,h(this,l,m).call(this)},he=function(e){if(e.key==="Tab"){let o=this._tabbableElements.indexOf(e.target.shadowRoot.activeElement);if(o===-1)return;let t=e.shiftKey?-1:1,i=this._tabbableElements[o+t];if(!i)return;e.preventDefault(),i.focus()}},ge=function(){let e=null,o=null,t=this.querySelectorAll("w-slider-thumb");for(let i of t.values())i.slot==="from"&&(e=i),i.slot==="to"&&(o=i);!e||!o||!e.invalid&&o.invalid},ue=function(e){e.stopPropagation();let o=this._hasInternalError||this.invalid,t=e.target;if(this._hasInternalError=!!e.detail.invalid||this.invalid,this._invalidMessage=e.detail.invalid,o===!0&&this._hasInternalError===!1){let i=this.querySelectorAll("w-slider-thumb");for(let s of i.values())s!==t&&s.updateFieldAfterValidation()}},q=function(e,o){return o.value??=this.openEnded?"":e,o.value===""?e:o.value},L=function(e){let o=e.slot;o||this.fieldset.style.setProperty("--from","0"),o==="from"&&this.fieldset.style.setProperty("--from",h(this,l,q).call(this,this.edgeMin,e)),(!o||o==="to")&&this.fieldset.style.setProperty("--to",h(this,l,q).call(this,this.edgeMax,e))},d.shadowRootOptions={...le.shadowRootOptions,delegatesFocus:!0},d.styles=[re,ne],c([g({reflect:!0})],d.prototype,"label",2),c([g({type:Boolean,reflect:!0})],d.prototype,"disabled",2),c([g({type:Boolean,attribute:"open-ended"})],d.prototype,"openEnded",2),c([g({type:String,reflect:!0})],d.prototype,"error",2),c([g({type:String,reflect:!0,attribute:"help-text"})],d.prototype,"helpText",2),c([g({type:Boolean,reflect:!0})],d.prototype,"invalid",2),c([g({type:Boolean,reflect:!0})],d.prototype,"required",2),c([g({reflect:!0})],d.prototype,"min",2),c([g({reflect:!0})],d.prototype,"max",2),c([g({type:Number,reflect:!0})],d.prototype,"markers",2),c([g({type:Number,reflect:!0})],d.prototype,"step",2),c([g({reflect:!0})],d.prototype,"suffix",2),c([g({type:Boolean,reflect:!0,attribute:"hidden-textfield"})],d.prototype,"hiddenTextfield",2),c([g({attribute:!1})],d.prototype,"valueFormatter",2),c([g({attribute:!1})],d.prototype,"tooltipFormatter",2),c([g({attribute:!1})],d.prototype,"labelFormatter",2),c([qe("fieldset")],d.prototype,"fieldset",2),c([T()],d.prototype,"_invalidMessage",2),c([T()],d.prototype,"_hasInternalError",2),c([T()],d.prototype,"_showError",2),c([T()],d.prototype,"_tabbableElements",2);customElements.get("w-slider")||customElements.define("w-slider",d);export{d as WarpSlider};
2670
+ `}};l=new WeakSet,m=function(){let e=this.querySelectorAll("w-slider-thumb"),o=!1;for(let t of e.values())t.min=this.edgeMin,t.max=this.edgeMax,t.step=this.step,t.suffix=this.suffix??"",t.required=this.required,t.labelFormatter=this.labelFormatter,t.valueFormatter=this.valueFormatter,t.tooltipFormatter=this.tooltipFormatter,t.openEnded=this.openEnded,t._hiddenTextfield=this.hiddenTextfield,t.ariaLabel||(t.slot||(t.ariaLabel=this.label||null),t.slot==="from"&&(t.ariaLabel=`${this.label} min`),t.slot==="to"&&(t.ariaLabel=`${this.label} max`)),(t.slot==="from"||t.slot==="to")&&(o=!0),t.disabled=this.disabled,t.invalid=!!this.errorText,h(this,l,S).call(this,t);o?(this.fieldset.style.setProperty("--active-range-inline-start-padding","var(--w-slider-thumb-size, 28px)"),this.fieldset.style.setProperty("--active-range-inline-end-padding","var(--w-slider-thumb-size, 28px)")):this.fieldset.style.setProperty("--active-range-border-radius","4px")},de=function(e){e.stopPropagation();let o=e.target;h(this,l,S).call(this,o)},ce=function(e){let o=e.target;h(this,l,S).call(this,o),o.slot&&h(this,l,ge).call(this)},be=function(){this.componentHasError?this._showError=!0:this._showError=!1,h(this,l,m).call(this)},he=function(e){if(e.key==="Tab"){let o=this._tabbableElements.indexOf(e.target.shadowRoot.activeElement);if(o===-1)return;let t=e.shiftKey?-1:1,i=this._tabbableElements[o+t];if(!i)return;e.preventDefault(),i.focus()}},ge=function(){let e=null,o=null,t=this.querySelectorAll("w-slider-thumb");for(let i of t.values())i.slot==="from"&&(e=i),i.slot==="to"&&(o=i);!e||!o||!e.invalid&&o.invalid},pe=function(e){e.stopPropagation();let o=this._hasInternalError||this.invalid,t=e.target;if(this._hasInternalError=!!e.detail.invalid||this.invalid,this._invalidMessage=e.detail.invalid,o===!0&&this._hasInternalError===!1){let i=this.querySelectorAll("w-slider-thumb");for(let n of i.values())n!==t&&n.updateFieldAfterValidation()}},q=function(e,o){return o.value??=this.openEnded?"":e,o.value===""?e:o.value},S=function(e){let o=e.slot;o||this.fieldset.style.setProperty("--from","0"),o==="from"&&this.fieldset.style.setProperty("--from",h(this,l,q).call(this,this.edgeMin,e)),(!o||o==="to")&&this.fieldset.style.setProperty("--to",h(this,l,q).call(this,this.edgeMax,e))},d.shadowRootOptions={...le.shadowRootOptions,delegatesFocus:!0},d.styles=[re,se,qe`
2671
+ :host {
2672
+ /* Added style API for optional only just to mirror other optional implementations */
2673
+ /* The rest of the styling API still needs to be implemented */
2674
+ --_padding-left: var(--w-c-slider-optional-padding-left, 0.8rem);
2675
+ --_font-weight: var(--w-c-slider-optional-font-weight, 400);
2676
+ --_font-size: var(
2677
+ --w-c-slider-optional-font-size,
2678
+ var(--w-font-size-s)
2679
+ );
2680
+ --_line-height: var(
2681
+ --w-c-slider-optional-line-height,
2682
+ var(--w-line-height-s)
2683
+ );
2684
+ --_color: var(
2685
+ --w-c-slider-optional-color,
2686
+ var(--w-s-color-text-subtle)
2687
+ );
2688
+ }
2689
+
2690
+ .w-slider__optional {
2691
+ padding-left: var(--_padding-left);
2692
+ font-weight: var(--_font-weight);
2693
+ font-size: var(--_font-size);
2694
+ line-height: var(--_line-height);
2695
+ color: var(--_color);
2696
+ }
2697
+ `],c([g({reflect:!0})],d.prototype,"label",2),c([g({type:Boolean,reflect:!0})],d.prototype,"disabled",2),c([g({type:Boolean,attribute:"open-ended"})],d.prototype,"openEnded",2),c([g({type:String,reflect:!0})],d.prototype,"error",2),c([g({type:String,reflect:!0,attribute:"help-text"})],d.prototype,"helpText",2),c([g({type:Boolean,reflect:!0})],d.prototype,"invalid",2),c([g({type:Boolean,reflect:!0})],d.prototype,"required",2),c([g({type:Boolean,reflect:!0})],d.prototype,"optional",2),c([g({reflect:!0})],d.prototype,"min",2),c([g({reflect:!0})],d.prototype,"max",2),c([g({type:Number,reflect:!0})],d.prototype,"markers",2),c([g({type:Number,reflect:!0})],d.prototype,"step",2),c([g({reflect:!0})],d.prototype,"suffix",2),c([g({type:Boolean,reflect:!0,attribute:"hidden-textfield"})],d.prototype,"hiddenTextfield",2),c([g({attribute:!1})],d.prototype,"valueFormatter",2),c([g({attribute:!1})],d.prototype,"tooltipFormatter",2),c([g({attribute:!1})],d.prototype,"labelFormatter",2),c([De("fieldset")],d.prototype,"fieldset",2),c([k()],d.prototype,"_invalidMessage",2),c([k()],d.prototype,"_hasInternalError",2),c([k()],d.prototype,"_showError",2),c([k()],d.prototype,"_tabbableElements",2),c([k()],d.prototype,"_hasLabel",2);customElements.get("w-slider")||customElements.define("w-slider",d);export{d as WarpSlider};
2659
2698
  //# sourceMappingURL=slider.js.map