@warp-ds/elements 2.6.0-next.4 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/custom-elements.json +145 -143
  2. package/dist/index.d.ts +52 -52
  3. package/dist/packages/affix/affix.d.ts +1 -2
  4. package/dist/packages/affix/affix.js +35 -19
  5. package/dist/packages/affix/affix.js.map +4 -4
  6. package/dist/packages/alert/alert.d.ts +2 -5
  7. package/dist/packages/alert/alert.js +32 -16
  8. package/dist/packages/alert/alert.js.map +4 -4
  9. package/dist/packages/alert/alert.test.js +1 -3
  10. package/dist/packages/attention/attention.d.ts +2 -2
  11. package/dist/packages/attention/attention.js +53 -26
  12. package/dist/packages/attention/attention.js.map +4 -4
  13. package/dist/packages/button/button.react.stories.d.ts +1 -1
  14. package/dist/packages/button/button.stories.d.ts +1 -4
  15. package/dist/packages/button/button.stories.js +11 -16
  16. package/dist/packages/card/card.d.ts +1 -1
  17. package/dist/packages/combobox/combobox.react.stories.d.ts +1 -1
  18. package/dist/packages/datepicker/datepicker.d.ts +1 -3
  19. package/dist/packages/datepicker/datepicker.js +66 -41
  20. package/dist/packages/datepicker/datepicker.js.map +4 -4
  21. package/dist/packages/datepicker/datepicker.react.stories.d.ts +1 -1
  22. package/dist/packages/expandable/expandable.d.ts +1 -2
  23. package/dist/packages/expandable/expandable.js +39 -23
  24. package/dist/packages/expandable/expandable.js.map +4 -4
  25. package/dist/packages/icon/icon.js +2 -2
  26. package/dist/packages/icon/icon.js.map +4 -4
  27. package/dist/packages/icon/icon.react.stories.js +274 -2
  28. package/dist/packages/icon/icon.stories.js +273 -1
  29. package/dist/packages/link/link.react.stories.d.ts +1 -1
  30. package/dist/packages/modal-header/modal-header.d.ts +1 -2
  31. package/dist/packages/modal-header/modal-header.js +39 -14
  32. package/dist/packages/modal-header/modal-header.js.map +4 -4
  33. package/dist/packages/page-indicator/page-indicator.test.js +40 -20
  34. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -0
  35. package/dist/packages/pagination/pagination.a11y.test.js +36 -0
  36. package/dist/packages/pagination/pagination.d.ts +1 -3
  37. package/dist/packages/pagination/pagination.js +57 -34
  38. package/dist/packages/pagination/pagination.js.map +4 -4
  39. package/dist/packages/pill/pill.d.ts +1 -1
  40. package/dist/packages/pill/pill.js +38 -13
  41. package/dist/packages/pill/pill.js.map +4 -4
  42. package/dist/packages/pill/pill.test.js +1 -3
  43. package/dist/packages/select/select.d.ts +1 -1
  44. package/dist/packages/select/select.js +44 -19
  45. package/dist/packages/select/select.js.map +4 -4
  46. package/dist/packages/select/select.react.stories.d.ts +1 -1
  47. package/dist/packages/step/step.d.ts +1 -1
  48. package/dist/packages/step/step.js +38 -13
  49. package/dist/packages/step/step.js.map +4 -4
  50. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -0
  51. package/dist/packages/step-indicator/step-indicator.a11y.test.js +66 -0
  52. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -0
  53. package/dist/packages/textarea/textarea.a11y.test.js +115 -0
  54. package/dist/packages/textarea/textarea.js +6 -6
  55. package/dist/packages/textarea/textarea.js.map +4 -4
  56. package/dist/packages/textarea/textarea.react.stories.d.ts +1 -1
  57. package/dist/packages/textarea/textarea.test.js +3 -1
  58. package/dist/packages/textfield/textfield.react.stories.d.ts +1 -1
  59. package/dist/packages/toast/toast.d.ts +1 -4
  60. package/dist/packages/toast/toast.js +38 -13
  61. package/dist/packages/toast/toast.js.map +4 -4
  62. package/dist/setup-tests.d.ts +10 -0
  63. package/dist/setup-tests.js +61 -0
  64. package/dist/web-types.json +47 -47
  65. package/package.json +2 -2
@@ -5,18 +5,22 @@ import './page-indicator.js';
5
5
  test('renders the correct number of dots', async () => {
6
6
  const component = html `<w-page-indicator page-count="5" selected-page="1"></w-page-indicator>`;
7
7
  const page = render(component);
8
- await expect.poll(() => {
8
+ await expect
9
+ .poll(() => {
9
10
  const element = page.container.querySelector('w-page-indicator');
10
11
  return element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot').length;
11
- }).toBe(5);
12
+ })
13
+ .toBe(5);
12
14
  });
13
15
  test('renders a single dot when page-count is 1', async () => {
14
16
  const component = html `<w-page-indicator page-count="1" selected-page="1"></w-page-indicator>`;
15
17
  const page = render(component);
16
- await expect.poll(() => {
18
+ await expect
19
+ .poll(() => {
17
20
  const element = page.container.querySelector('w-page-indicator');
18
21
  return element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot').length;
19
- }).toBe(1);
22
+ })
23
+ .toBe(1);
20
24
  });
21
25
  test('has aria-label on the container', async () => {
22
26
  const component = html `<w-page-indicator page-count="5" selected-page="3"></w-page-indicator>`;
@@ -27,75 +31,91 @@ test('has aria-label on the container', async () => {
27
31
  test('marks the selected dot with correct class', async () => {
28
32
  const component = html `<w-page-indicator page-count="5" selected-page="2"></w-page-indicator>`;
29
33
  const page = render(component);
30
- await expect.poll(() => {
34
+ await expect
35
+ .poll(() => {
31
36
  const element = page.container.querySelector('w-page-indicator');
32
37
  const dots = element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot');
33
38
  const selectedDots = element?.shadowRoot?.querySelectorAll('.w-page-indicator--selecteddot');
34
39
  return dots?.length === 5 && selectedDots?.length === 1;
35
- }).toBe(true);
40
+ })
41
+ .toBe(true);
36
42
  });
37
43
  test('selected dot is at correct position', async () => {
38
44
  const component = html `<w-page-indicator page-count="3" selected-page="2"></w-page-indicator>`;
39
45
  const page = render(component);
40
- await expect.poll(() => {
46
+ await expect
47
+ .poll(() => {
41
48
  const element = page.container.querySelector('w-page-indicator');
42
49
  const dots = element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot');
43
50
  return dots?.[1]?.classList.contains('w-page-indicator--selecteddot');
44
- }).toBe(true);
51
+ })
52
+ .toBe(true);
45
53
  });
46
54
  test('validates page-count to minimum of 1', async () => {
47
55
  const component = html `<w-page-indicator page-count="0" selected-page="1"></w-page-indicator>`;
48
56
  const page = render(component);
49
- await expect.poll(() => {
57
+ await expect
58
+ .poll(() => {
50
59
  const element = page.container.querySelector('w-page-indicator');
51
60
  return element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot').length;
52
- }).toBe(1);
61
+ })
62
+ .toBe(1);
53
63
  });
54
64
  test('validates page-count for negative values', async () => {
55
65
  const component = html `<w-page-indicator page-count="-5" selected-page="1"></w-page-indicator>`;
56
66
  const page = render(component);
57
- await expect.poll(() => {
67
+ await expect
68
+ .poll(() => {
58
69
  const element = page.container.querySelector('w-page-indicator');
59
70
  return element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot').length;
60
- }).toBe(1);
71
+ })
72
+ .toBe(1);
61
73
  });
62
74
  test('clamps selected-page to valid range (too high)', async () => {
63
75
  const component = html `<w-page-indicator page-count="3" selected-page="10"></w-page-indicator>`;
64
76
  const page = render(component);
65
77
  // Should clamp to page 3 (the max) - verify selected dot is at position 3 (index 2)
66
- await expect.poll(() => {
78
+ await expect
79
+ .poll(() => {
67
80
  const element = page.container.querySelector('w-page-indicator');
68
81
  const dots = element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot');
69
82
  return dots?.[2]?.classList.contains('w-page-indicator--selecteddot');
70
- }).toBe(true);
83
+ })
84
+ .toBe(true);
71
85
  });
72
86
  test('clamps selected-page to valid range (too low)', async () => {
73
87
  const component = html `<w-page-indicator page-count="3" selected-page="0"></w-page-indicator>`;
74
88
  const page = render(component);
75
89
  // Should clamp to page 1 (the min) - verify selected dot is at position 1 (index 0)
76
- await expect.poll(() => {
90
+ await expect
91
+ .poll(() => {
77
92
  const element = page.container.querySelector('w-page-indicator');
78
93
  const dots = element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot');
79
94
  return dots?.[0]?.classList.contains('w-page-indicator--selecteddot');
80
- }).toBe(true);
95
+ })
96
+ .toBe(true);
81
97
  });
82
98
  test('handles decimal page-count by flooring', async () => {
83
99
  const component = html `<w-page-indicator page-count="3.7" selected-page="1"></w-page-indicator>`;
84
100
  const page = render(component);
85
- await expect.poll(() => {
101
+ await expect
102
+ .poll(() => {
86
103
  const element = page.container.querySelector('w-page-indicator');
87
104
  return element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot').length;
88
- }).toBe(3);
105
+ })
106
+ .toBe(3);
89
107
  });
90
108
  test('handles decimal selected-page by flooring', async () => {
91
109
  const component = html `<w-page-indicator page-count="5" selected-page="2.9"></w-page-indicator>`;
92
110
  const page = render(component);
93
111
  // Should floor to page 2 - verify selected dot is at position 2 (index 1)
94
- await expect.poll(() => {
112
+ await expect
113
+ .poll(() => {
95
114
  const element = page.container.querySelector('w-page-indicator');
96
115
  const dots = element?.shadowRoot?.querySelectorAll('.w-page-indicator--dot');
97
116
  return dots?.[1]?.classList.contains('w-page-indicator--selecteddot');
98
- }).toBe(true);
117
+ })
118
+ .toBe(true);
99
119
  });
100
120
  test('updates when selected-page changes', async () => {
101
121
  const container = document.createElement('div');
@@ -0,0 +1 @@
1
+ import './pagination.js';
@@ -0,0 +1,36 @@
1
+ import { html } from 'lit';
2
+ import { describe, expect, test } from 'vitest';
3
+ import { render } from 'vitest-browser-lit';
4
+ import './pagination.js';
5
+ describe('w-pagination accessibility (WCAG 2.2)', () => {
6
+ describe('axe-core automated checks', () => {
7
+ test('default state has no violations', async () => {
8
+ const page = render(html `<w-pagination current-page="5" pages="10" base-url="/page/"></w-pagination>`);
9
+ await expect(page).toHaveNoAxeViolations();
10
+ });
11
+ test('first page (no first or previous links) has no violations', async () => {
12
+ const page = render(html `<w-pagination current-page="1" pages="10" base-url="/page/"></w-pagination>`);
13
+ await expect(page).toHaveNoAxeViolations();
14
+ });
15
+ });
16
+ describe('WCAG 1.3.1 - Info and Relationships', () => {
17
+ test('page links expose accessible names', async () => {
18
+ const page = render(html `<w-pagination current-page="3" pages="5" base-url="/page/"></w-pagination>`);
19
+ await expect.element(page.getByRole('link', { name: 'Page 3' })).toBeVisible();
20
+ await expect.element(page.getByRole('link', { name: 'Page 2' })).toBeVisible();
21
+ });
22
+ });
23
+ describe('WCAG 4.1.2 - Name, Role, Value', () => {
24
+ test('current page is exposed via aria-current', async () => {
25
+ const page = render(html `<w-pagination current-page="4" pages="8" base-url="/page/"></w-pagination>`);
26
+ await expect.element(page.getByRole('link', { name: 'Page 4' })).toHaveAttribute('aria-current', 'page');
27
+ await expect.element(page.getByRole('link', { name: 'Page 3' })).not.toHaveAttribute('aria-current', 'page');
28
+ });
29
+ test('navigation controls have accessible names', async () => {
30
+ const page = render(html `<w-pagination current-page="4" pages="8" base-url="/page/"></w-pagination>`);
31
+ await expect.element(page.getByRole('link', { name: 'First page' })).toBeVisible();
32
+ await expect.element(page.getByRole('link', { name: 'Previous page' })).toBeVisible();
33
+ await expect.element(page.getByRole('link', { name: 'Next page' })).toBeVisible();
34
+ });
35
+ });
36
+ });
@@ -1,7 +1,5 @@
1
1
  import { LitElement } from 'lit';
2
- import '@warp-ds/icons/elements/chevron-double-left-16';
3
- import '@warp-ds/icons/elements/chevron-left-16';
4
- import '@warp-ds/icons/elements/chevron-right-16';
2
+ import '../icon/icon.js';
5
3
  /**
6
4
  * Pagination allows users to navigate through multiple pages of content by providing navigation controls with page numbers and directional arrows.
7
5
  *
@@ -1,5 +1,5 @@
1
- var Me=Object.create;var C=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,Oe=Object.prototype.hasOwnProperty;var H=r=>{throw TypeError(r)};var Z=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Ce=(r,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Le(e))!Oe.call(r,a)&&a!==o&&C(r,a,{get:()=>e[a],enumerable:!(t=X(e,a))||t.enumerable});return r};var $e=(r,e,o)=>(o=r!=null?Me(Ee(r)):{},Ce(e||!r||!r.__esModule?C(o,"default",{value:r,enumerable:!0}):o,r));var x=(r,e,o,t)=>{for(var a=t>1?void 0:t?X(e,o):e,i=r.length-1,n;i>=0;i--)(n=r[i])&&(a=(t?n(e,o,a):n(a))||a);return t&&a&&C(e,o,a),a};var De=(r,e,o)=>e.has(r)||H("Cannot "+o);var q=(r,e,o)=>e.has(r)?H("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,o);var K=(r,e,o)=>(De(r,e,"access private method"),o);var G=Z(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.errorMessages=m.ErrorType=void 0;var w;(function(r){r.MalformedUnicode="MALFORMED_UNICODE",r.MalformedHexadecimal="MALFORMED_HEXADECIMAL",r.CodePointLimit="CODE_POINT_LIMIT",r.OctalDeprecation="OCTAL_DEPRECATION",r.EndOfString="END_OF_STRING"})(w=m.ErrorType||(m.ErrorType={}));m.errorMessages=new Map([[w.MalformedUnicode,"malformed Unicode character escape sequence"],[w.MalformedHexadecimal,"malformed hexadecimal character escape sequence"],[w.CodePointLimit,"Unicode codepoint must not be greater than 0x10FFFF in escape sequence"],[w.OctalDeprecation,'"0"-prefixed octal literals and octal escape sequences are deprecated; for octal literals use the "0o" prefix instead'],[w.EndOfString,"malformed escape sequence at end of string"]])});var W=Z(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});g.unraw=g.errorMessages=g.ErrorType=void 0;var d=G();Object.defineProperty(g,"ErrorType",{enumerable:!0,get:function(){return d.ErrorType}});Object.defineProperty(g,"errorMessages",{enumerable:!0,get:function(){return d.errorMessages}});function Fe(r){return!r.match(/[^a-f0-9]/i)?parseInt(r,16):NaN}function z(r,e,o){let t=Fe(r);if(Number.isNaN(t)||o!==void 0&&o!==r.length)throw new SyntaxError(d.errorMessages.get(e));return t}function je(r){let e=z(r,d.ErrorType.MalformedHexadecimal,2);return String.fromCharCode(e)}function V(r,e){let o=z(r,d.ErrorType.MalformedUnicode,4);if(e!==void 0){let t=z(e,d.ErrorType.MalformedUnicode,4);return String.fromCharCode(o,t)}return String.fromCharCode(o)}function Ie(r){return r.charAt(0)==="{"&&r.charAt(r.length-1)==="}"}function Te(r){if(!Ie(r))throw new SyntaxError(d.errorMessages.get(d.ErrorType.MalformedUnicode));let e=r.slice(1,-1),o=z(e,d.ErrorType.MalformedUnicode);try{return String.fromCodePoint(o)}catch(t){throw t instanceof RangeError?new SyntaxError(d.errorMessages.get(d.ErrorType.CodePointLimit)):t}}function Be(r,e=!1){if(e)throw new SyntaxError(d.errorMessages.get(d.ErrorType.OctalDeprecation));let o=parseInt(r,8);return String.fromCharCode(o)}var Ae=new Map([["b","\b"],["f","\f"],["n",`
2
- `],["r","\r"],["t"," "],["v","\v"],["0","\0"]]);function Ye(r){return Ae.get(r)||r}var Ue=/\\(?:(\\)|x([\s\S]{0,2})|u(\{[^}]*\}?)|u([\s\S]{4})\\u([^{][\s\S]{0,3})|u([\s\S]{0,4})|([0-3]?[0-7]{1,2})|([\s\S])|$)/g;function Q(r,e=!1){return r.replace(Ue,function(o,t,a,i,n,s,c,p,h){if(t!==void 0)return"\\";if(a!==void 0)return je(a);if(i!==void 0)return Te(i);if(n!==void 0)return V(n,s);if(c!==void 0)return V(c);if(p==="0")return"\0";if(p!==void 0)return Be(p,!e);if(h!==void 0)return Ye(h);throw new SyntaxError(d.errorMessages.get(d.ErrorType.EndOfString))})}g.unraw=Q;g.default=Q});var oe=$e(W(),1);var u=r=>typeof r=="string",Je=r=>typeof r=="function",ee=new Map,te="en";function j(r){return[...Array.isArray(r)?r:[r],te]}function I(r,e,o){let t=j(r);o||(o="default");let a;if(typeof o=="string")switch(a={day:"numeric",month:"short",year:"numeric"},o){case"full":a.weekday="long";case"long":a.month="long";break;case"short":a.month="numeric";break}else a=o;return N(()=>S("date",t,o),()=>new Intl.DateTimeFormat(t,a)).format(u(e)?new Date(e):e)}function Re(r,e,o){let t;if(o||(o="default"),typeof o=="string")switch(t={second:"numeric",minute:"numeric",hour:"numeric"},o){case"full":case"long":t.timeZoneName="short";break;case"short":delete t.second}else t=o;return I(r,e,t)}function $(r,e,o){let t=j(r);return N(()=>S("number",t,o),()=>new Intl.NumberFormat(t,o)).format(e)}function re(r,e,o,{offset:t=0,...a}){var s,c;let i=j(r),n=e?N(()=>S("plural-ordinal",i),()=>new Intl.PluralRules(i,{type:"ordinal"})):N(()=>S("plural-cardinal",i),()=>new Intl.PluralRules(i,{type:"cardinal"}));return(c=(s=a[o])!=null?s:a[n.select(o-t)])!=null?c:a.other}function N(r,e){let o=r(),t=ee.get(o);return t||(t=e(),ee.set(o,t)),t}function S(r,e,o){let t=e.join("-");return`${r}-${t}-${JSON.stringify(o)}`}var ae=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,ne="%__lingui_octothorpe__%",Xe=(r,e,o={})=>{let t=e||r,a=n=>typeof n=="object"?n:o[n],i=(n,s)=>{let c=Object.keys(o).length?a("number"):void 0,p=$(t,n,c);return s.replace(new RegExp(ne,"g"),p)};return{plural:(n,s)=>{let{offset:c=0}=s,p=re(t,!1,n,s);return i(n-c,p)},selectordinal:(n,s)=>{let{offset:c=0}=s,p=re(t,!0,n,s);return i(n-c,p)},select:He,number:(n,s)=>$(t,n,a(s)||{style:s}),date:(n,s)=>I(t,n,a(s)||s),time:(n,s)=>Re(t,n,a(s)||s)}},He=(r,e)=>{var o;return(o=e[r])!=null?o:e.other};function Ze(r,e,o){return(t={},a)=>{let i=Xe(e,o,a),n=(c,p=!1)=>Array.isArray(c)?c.reduce((h,y)=>{if(y==="#"&&p)return h+ne;if(u(y))return h+y;let[J,v,R]=y,E={};v==="plural"||v==="selectordinal"||v==="select"?Object.entries(R).forEach(([O,Pe])=>{E[O]=n(Pe,v==="plural"||v==="selectordinal")}):E=R;let _;if(v){let O=i[v];_=O(t[J],E)}else _=t[J];return _==null?h:h+_},""):c,s=n(r);return u(s)&&ae.test(s)?(0,oe.unraw)(s):u(s)?s:s?String(s):""}}var qe=Object.defineProperty,Ke=(r,e,o)=>e in r?qe(r,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[e]=o,Ge=(r,e,o)=>(Ke(r,typeof e!="symbol"?e+"":e,o),o),D=class{constructor(){Ge(this,"_events",{})}on(e,o){var a;var t;return(a=(t=this._events)[e])!=null||(t[e]=[]),this._events[e].push(o),()=>this.removeListener(e,o)}removeListener(e,o){let t=this._getListeners(e);if(!t)return;let a=t.indexOf(o);~a&&t.splice(a,1)}emit(e,...o){let t=this._getListeners(e);t&&t.map(a=>a.apply(this,o))}_getListeners(e){let o=this._events[e];return Array.isArray(o)?o:!1}},Ve=Object.defineProperty,Qe=(r,e,o)=>e in r?Ve(r,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[e]=o,f=(r,e,o)=>(Qe(r,typeof e!="symbol"?e+"":e,o),o),F=class extends D{constructor(e){var o;super(),f(this,"_locale",""),f(this,"_locales"),f(this,"_localeData",{}),f(this,"_messages",{}),f(this,"_missing"),f(this,"_messageCompiler"),f(this,"t",this._.bind(this)),e.missing!=null&&(this._missing=e.missing),e.messages!=null&&this.load(e.messages),e.localeData!=null&&this.loadLocaleData(e.localeData),(typeof e.locale=="string"||e.locales)&&this.activate((o=e.locale)!=null?o:te,e.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){var e;return(e=this._messages[this._locale])!=null?e:{}}get localeData(){var e;return(e=this._localeData[this._locale])!=null?e:{}}_loadLocaleData(e,o){let t=this._localeData[e];t?Object.assign(t,o):this._localeData[e]=o}setMessagesCompiler(e){return this._messageCompiler=e,this}loadLocaleData(e,o){typeof e=="string"?this._loadLocaleData(e,o):Object.keys(e).forEach(t=>this._loadLocaleData(t,e[t])),this.emit("change")}_load(e,o){let t=this._messages[e];t?Object.assign(t,o):this._messages[e]=o}load(e,o){typeof e=="string"&&typeof o=="object"?this._load(e,o):Object.entries(e).forEach(([t,a])=>this._load(t,a)),this.emit("change")}loadAndActivate({locale:e,locales:o,messages:t}){this._locale=e,this._locales=o||void 0,this._messages[this._locale]=t,this.emit("change")}activate(e,o){this._locale=e,this._locales=o,this.emit("change")}_(e,o,t){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 a=t==null?void 0:t.message;e||(e=""),u(e)||(o=e.values||o,a=e.message,e=e.id);let i=this.messages[e],n=i===void 0,s=this._missing;if(s&&n)return Je(s)?s(this._locale,e):s;n&&this.emit("missing",{id:e,locale:this._locale});let c=i||a||e;return u(c)&&(this._messageCompiler?c=this._messageCompiler(c):console.warn(`Uncompiled message detected! Message:
1
+ var ke=Object.create;var F=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty;var B=o=>{throw TypeError(o)};var G=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports);var Pe=(o,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of ye(e))!ze.call(o,a)&&a!==r&&F(o,a,{get:()=>e[a],enumerable:!(t=q(e,a))||t.enumerable});return o};var Me=(o,e,r)=>(r=o!=null?ke(_e(o)):{},Pe(e||!o||!o.__esModule?F(r,"default",{value:o,enumerable:!0}):r,o));var g=(o,e,r,t)=>{for(var a=t>1?void 0:t?q(e,r):e,s=o.length-1,i;s>=0;s--)(i=o[s])&&(a=(t?i(e,r,a):i(a))||a);return t&&a&&F(e,r,a),a};var Se=(o,e,r)=>e.has(o)||B("Cannot "+r);var J=(o,e,r)=>e.has(o)?B("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,r);var V=(o,e,r)=>(Se(o,e,"access private method"),r);var K=G(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.errorMessages=w.ErrorType=void 0;var k;(function(o){o.MalformedUnicode="MALFORMED_UNICODE",o.MalformedHexadecimal="MALFORMED_HEXADECIMAL",o.CodePointLimit="CODE_POINT_LIMIT",o.OctalDeprecation="OCTAL_DEPRECATION",o.EndOfString="END_OF_STRING"})(k=w.ErrorType||(w.ErrorType={}));w.errorMessages=new Map([[k.MalformedUnicode,"malformed Unicode character escape sequence"],[k.MalformedHexadecimal,"malformed hexadecimal character escape sequence"],[k.CodePointLimit,"Unicode codepoint must not be greater than 0x10FFFF in escape sequence"],[k.OctalDeprecation,'"0"-prefixed octal literals and octal escape sequences are deprecated; for octal literals use the "0o" prefix instead'],[k.EndOfString,"malformed escape sequence at end of string"]])});var ee=G(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.unraw=b.errorMessages=b.ErrorType=void 0;var l=K();Object.defineProperty(b,"ErrorType",{enumerable:!0,get:function(){return l.ErrorType}});Object.defineProperty(b,"errorMessages",{enumerable:!0,get:function(){return l.errorMessages}});function Ee(o){return!o.match(/[^a-f0-9]/i)?parseInt(o,16):NaN}function M(o,e,r){let t=Ee(o);if(Number.isNaN(t)||r!==void 0&&r!==o.length)throw new SyntaxError(l.errorMessages.get(e));return t}function Ce(o){let e=M(o,l.ErrorType.MalformedHexadecimal,2);return String.fromCharCode(e)}function Q(o,e){let r=M(o,l.ErrorType.MalformedUnicode,4);if(e!==void 0){let t=M(e,l.ErrorType.MalformedUnicode,4);return String.fromCharCode(r,t)}return String.fromCharCode(r)}function $e(o){return o.charAt(0)==="{"&&o.charAt(o.length-1)==="}"}function Ne(o){if(!$e(o))throw new SyntaxError(l.errorMessages.get(l.ErrorType.MalformedUnicode));let e=o.slice(1,-1),r=M(e,l.ErrorType.MalformedUnicode);try{return String.fromCodePoint(r)}catch(t){throw t instanceof RangeError?new SyntaxError(l.errorMessages.get(l.ErrorType.CodePointLimit)):t}}function Le(o,e=!1){if(e)throw new SyntaxError(l.errorMessages.get(l.ErrorType.OctalDeprecation));let r=parseInt(o,8);return String.fromCharCode(r)}var Oe=new Map([["b","\b"],["f","\f"],["n",`
2
+ `],["r","\r"],["t"," "],["v","\v"],["0","\0"]]);function Fe(o){return Oe.get(o)||o}var De=/\\(?:(\\)|x([\s\S]{0,2})|u(\{[^}]*\}?)|u([\s\S]{4})\\u([^{][\s\S]{0,3})|u([\s\S]{0,4})|([0-3]?[0-7]{1,2})|([\s\S])|$)/g;function W(o,e=!1){return o.replace(De,function(r,t,a,s,i,n,c,p,v){if(t!==void 0)return"\\";if(a!==void 0)return Ce(a);if(s!==void 0)return Ne(s);if(i!==void 0)return Q(i,n);if(c!==void 0)return Q(c);if(p==="0")return"\0";if(p!==void 0)return Le(p,!e);if(v!==void 0)return Fe(v);throw new SyntaxError(l.errorMessages.get(l.ErrorType.EndOfString))})}b.unraw=W;b.default=W});var te=Me(ee(),1);var u=o=>typeof o=="string",Te=o=>typeof o=="function",re=new Map,ae="en";function Y(o){return[...Array.isArray(o)?o:[o],ae]}function A(o,e,r){let t=Y(o);r||(r="default");let a;if(typeof r=="string")switch(a={day:"numeric",month:"short",year:"numeric"},r){case"full":a.weekday="long";case"long":a.month="long";break;case"short":a.month="numeric";break}else a=r;return S(()=>E("date",t,r),()=>new Intl.DateTimeFormat(t,a)).format(u(e)?new Date(e):e)}function je(o,e,r){let t;if(r||(r="default"),typeof r=="string")switch(t={second:"numeric",minute:"numeric",hour:"numeric"},r){case"full":case"long":t.timeZoneName="short";break;case"short":delete t.second}else t=r;return A(o,e,t)}function D(o,e,r){let t=Y(o);return S(()=>E("number",t,r),()=>new Intl.NumberFormat(t,r)).format(e)}function oe(o,e,r,{offset:t=0,...a}){var n,c;let s=Y(o),i=e?S(()=>E("plural-ordinal",s),()=>new Intl.PluralRules(s,{type:"ordinal"})):S(()=>E("plural-cardinal",s),()=>new Intl.PluralRules(s,{type:"cardinal"}));return(c=(n=a[r])!=null?n:a[i.select(r-t)])!=null?c:a.other}function S(o,e){let r=o(),t=re.get(r);return t||(t=e(),re.set(r,t)),t}function E(o,e,r){let t=e.join("-");return`${o}-${t}-${JSON.stringify(r)}`}var ie=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,ne="%__lingui_octothorpe__%",Ye=(o,e,r={})=>{let t=e||o,a=i=>typeof i=="object"?i:r[i],s=(i,n)=>{let c=Object.keys(r).length?a("number"):void 0,p=D(t,i,c);return n.replace(new RegExp(ne,"g"),p)};return{plural:(i,n)=>{let{offset:c=0}=n,p=oe(t,!1,i,n);return s(i-c,p)},selectordinal:(i,n)=>{let{offset:c=0}=n,p=oe(t,!0,i,n);return s(i-c,p)},select:Ae,number:(i,n)=>D(t,i,a(n)||{style:n}),date:(i,n)=>A(t,i,a(n)||n),time:(i,n)=>je(t,i,a(n)||n)}},Ae=(o,e)=>{var r;return(r=e[o])!=null?r:e.other};function Ie(o,e,r){return(t={},a)=>{let s=Ye(e,r,a),i=(c,p=!1)=>Array.isArray(c)?c.reduce((v,z)=>{if(z==="#"&&p)return v+ne;if(u(z))return v+z;let[Z,f,H]=z,L={};f==="plural"||f==="selectordinal"||f==="select"?Object.entries(H).forEach(([O,xe])=>{L[O]=i(xe,f==="plural"||f==="selectordinal")}):L=H;let P;if(f){let O=s[f];P=O(t[Z],L)}else P=t[Z];return P==null?v:v+P},""):c,n=i(o);return u(n)&&ie.test(n)?(0,te.unraw)(n):u(n)?n:n?String(n):""}}var Re=Object.defineProperty,Ue=(o,e,r)=>e in o?Re(o,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[e]=r,Xe=(o,e,r)=>(Ue(o,typeof e!="symbol"?e+"":e,r),r),T=class{constructor(){Xe(this,"_events",{})}on(e,r){var a;var t;return(a=(t=this._events)[e])!=null||(t[e]=[]),this._events[e].push(r),()=>this.removeListener(e,r)}removeListener(e,r){let t=this._getListeners(e);if(!t)return;let a=t.indexOf(r);~a&&t.splice(a,1)}emit(e,...r){let t=this._getListeners(e);t&&t.map(a=>a.apply(this,r))}_getListeners(e){let r=this._events[e];return Array.isArray(r)?r:!1}},Ze=Object.defineProperty,He=(o,e,r)=>e in o?Ze(o,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[e]=r,x=(o,e,r)=>(He(o,typeof e!="symbol"?e+"":e,r),r),j=class extends T{constructor(e){var r;super(),x(this,"_locale",""),x(this,"_locales"),x(this,"_localeData",{}),x(this,"_messages",{}),x(this,"_missing"),x(this,"_messageCompiler"),x(this,"t",this._.bind(this)),e.missing!=null&&(this._missing=e.missing),e.messages!=null&&this.load(e.messages),e.localeData!=null&&this.loadLocaleData(e.localeData),(typeof e.locale=="string"||e.locales)&&this.activate((r=e.locale)!=null?r:ae,e.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){var e;return(e=this._messages[this._locale])!=null?e:{}}get localeData(){var e;return(e=this._localeData[this._locale])!=null?e:{}}_loadLocaleData(e,r){let t=this._localeData[e];t?Object.assign(t,r):this._localeData[e]=r}setMessagesCompiler(e){return this._messageCompiler=e,this}loadLocaleData(e,r){typeof e=="string"?this._loadLocaleData(e,r):Object.keys(e).forEach(t=>this._loadLocaleData(t,e[t])),this.emit("change")}_load(e,r){let t=this._messages[e];t?Object.assign(t,r):this._messages[e]=r}load(e,r){typeof e=="string"&&typeof r=="object"?this._load(e,r):Object.entries(e).forEach(([t,a])=>this._load(t,a)),this.emit("change")}loadAndActivate({locale:e,locales:r,messages:t}){this._locale=e,this._locales=r||void 0,this._messages[this._locale]=t,this.emit("change")}activate(e,r){this._locale=e,this._locales=r,this.emit("change")}_(e,r,t){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 a=t==null?void 0:t.message;e||(e=""),u(e)||(r=e.values||r,a=e.message,e=e.id);let s=this.messages[e],i=s===void 0,n=this._missing;if(n&&i)return Te(n)?n(this._locale,e):n;i&&this.emit("missing",{id:e,locale:this._locale});let c=s||a||e;return u(c)&&(this._messageCompiler?c=this._messageCompiler(c):console.warn(`Uncompiled message detected! Message:
3
3
 
4
4
  > ${c}
5
5
 
@@ -7,7 +7,32 @@ That means you use raw catalog or your catalog doesn't have a translation for th
7
7
  ICU features such as interpolation and plurals will not work properly for that message.
8
8
 
9
9
  Please compile your catalog first.
10
- `)),u(c)&&ae.test(c)?JSON.parse(`"${c}"`):u(c)?c:Ze(c,this._locale,this._locales)(o,t==null?void 0:t.formats)}date(e,o){return I(this._locales||this._locale,e,o)}number(e,o){return $(this._locales||this._locale,e,o)}};function We(r={}){return new F(r)}var l=We();import{css as Ur,html as k,LitElement as Jr,nothing as Y}from"lit";import{property as P}from"lit/decorators.js";import{LitElement as er}from"lit";import{unsafeStatic as rr,html as or}from"lit/static-html.js";var tr=JSON.parse('{"icon.title.chevron-double-left":["Dobbel pil til venstre"]}'),ar=JSON.parse('{"icon.title.chevron-double-left":["Double leftward arrow"]}'),nr=JSON.parse('{"icon.title.chevron-double-left":["Kaksi nuolta vasemmalle"]}'),ir=JSON.parse('{"icon.title.chevron-double-left":["Dobbelt venstrepil"]}'),sr=JSON.parse('{"icon.title.chevron-double-left":["Dubbel v\xE4nsterpil"]}'),ie=["en","nb","fi","da","sv"],se="en",lr=()=>{var r;let e;switch((r=process==null?void 0:process.env)==null?void 0:r.NMP_BRAND){case"FINN":e="nb";break;case"TORI":e="fi";break;case"BLOCKET":e="sv";break;case"DBA":e="da";break;default:e="en"}return e},le=()=>{var r;let e=(r=document==null?void 0:document.location)==null?void 0:r.hostname;return e!=null&&e.includes("finn")?"nb":e.includes("tori")?"fi":e.includes("blocket")?"sv":e.includes("dba")?"da":se},T=r=>ie.find(e=>r===e||r.toLowerCase().includes(e))||le();function cr(){var r;if(typeof window=="undefined"){let e=lr();return T(e)}try{let e=(r=document==null?void 0:document.documentElement)==null?void 0:r.lang,o=le();return ie.includes(e)?T(e!=null?e:o):(console.warn("Unsupported locale set in html lang tag, falling back to detection by hostname"),T(o))}catch(e){return console.warn("could not detect locale, falling back to source locale",e),se}}var dr=(r,e,o,t,a,i)=>r==="nb"?o:r==="fi"?t:r==="da"?a:r==="sv"?i:e,pr=(r,e,o,t,a)=>{let i=cr(),n=dr(i,r,e,o,t,a);l.load(i,n),l.activate(i)};pr(ar,tr,nr,ir,sr);var gr=class extends er{render(){let r=l.t({message:"Double leftward arrow",id:"icon.title.chevron-double-left",comment:"Title for chevron-double-left icon"});return or`<svg xmlns="http://www.w3.org/2000/svg"width="16"height="16"fill="none"viewBox="0 0 16 16" part="w-icon-chevron-double-left-16-part">${rr(`<title>${r}</title>`)}<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M7 13 2 8l5-5m7 10L9 8l5-5"></path></svg>`}};customElements.get("w-icon-chevron-double-left-16")||customElements.define("w-icon-chevron-double-left-16",gr);import{LitElement as ur}from"lit";import{unsafeStatic as br,html as hr}from"lit/static-html.js";var vr=JSON.parse('{"icon.title.chevron-left":["Pil til venstre"]}'),mr=JSON.parse('{"icon.title.chevron-left":["Leftward arrow"]}'),fr=JSON.parse('{"icon.title.chevron-left":["Nuoli vasemmalle"]}'),wr=JSON.parse('{"icon.title.chevron-left":["Pil til venstre"]}'),xr=JSON.parse('{"icon.title.chevron-left":["Pil v\xE4nster"]}'),ce=["en","nb","fi","da","sv"],de="en",kr=()=>{var r;let e;switch((r=process==null?void 0:process.env)==null?void 0:r.NMP_BRAND){case"FINN":e="nb";break;case"TORI":e="fi";break;case"BLOCKET":e="sv";break;case"DBA":e="da";break;default:e="en"}return e},pe=()=>{var r;let e=(r=document==null?void 0:document.location)==null?void 0:r.hostname;return e!=null&&e.includes("finn")?"nb":e.includes("tori")?"fi":e.includes("blocket")?"sv":e.includes("dba")?"da":de},B=r=>ce.find(e=>r===e||r.toLowerCase().includes(e))||pe();function yr(){var r;if(typeof window=="undefined"){let e=kr();return B(e)}try{let e=(r=document==null?void 0:document.documentElement)==null?void 0:r.lang,o=pe();return ce.includes(e)?B(e!=null?e:o):(console.warn("Unsupported locale set in html lang tag, falling back to detection by hostname"),B(o))}catch(e){return console.warn("could not detect locale, falling back to source locale",e),de}}var _r=(r,e,o,t,a,i)=>r==="nb"?o:r==="fi"?t:r==="da"?a:r==="sv"?i:e,zr=(r,e,o,t,a)=>{let i=yr(),n=_r(i,r,e,o,t,a);l.load(i,n),l.activate(i)};zr(mr,vr,fr,wr,xr);var Nr=class extends ur{render(){let r=l.t({message:"Leftward arrow",id:"icon.title.chevron-left",comment:"Title for chevron-left icon"});return hr`<svg xmlns="http://www.w3.org/2000/svg"width="16"height="16"fill="none"viewBox="0 0 16 16" part="w-icon-chevron-left-16-part">${br(`<title>${r}</title>`)}<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M10.5 13.75 5 8.25l5.5-5.5"></path></svg>`}};customElements.get("w-icon-chevron-left-16")||customElements.define("w-icon-chevron-left-16",Nr);import{LitElement as Sr}from"lit";import{unsafeStatic as Pr,html as Mr}from"lit/static-html.js";var Lr=JSON.parse('{"icon.title.chevron-right":["Pil til h\xF8yre"]}'),Er=JSON.parse('{"icon.title.chevron-right":["Rightward arrow"]}'),Or=JSON.parse('{"icon.title.chevron-right":["Nuoli oikealle"]}'),Cr=JSON.parse('{"icon.title.chevron-right":["Pil til h\xF8jre"]}'),$r=JSON.parse('{"icon.title.chevron-right":["Pil h\xF6ger"]}'),ge=["en","nb","fi","da","sv"],ue="en",Dr=()=>{var r;let e;switch((r=process==null?void 0:process.env)==null?void 0:r.NMP_BRAND){case"FINN":e="nb";break;case"TORI":e="fi";break;case"BLOCKET":e="sv";break;case"DBA":e="da";break;default:e="en"}return e},be=()=>{var r;let e=(r=document==null?void 0:document.location)==null?void 0:r.hostname;return e!=null&&e.includes("finn")?"nb":e.includes("tori")?"fi":e.includes("blocket")?"sv":e.includes("dba")?"da":ue},A=r=>ge.find(e=>r===e||r.toLowerCase().includes(e))||be();function Fr(){var r;if(typeof window=="undefined"){let e=Dr();return A(e)}try{let e=(r=document==null?void 0:document.documentElement)==null?void 0:r.lang,o=be();return ge.includes(e)?A(e!=null?e:o):(console.warn("Unsupported locale set in html lang tag, falling back to detection by hostname"),A(o))}catch(e){return console.warn("could not detect locale, falling back to source locale",e),ue}}var jr=(r,e,o,t,a,i)=>r==="nb"?o:r==="fi"?t:r==="da"?a:r==="sv"?i:e,Ir=(r,e,o,t,a)=>{let i=Fr(),n=jr(i,r,e,o,t,a);l.load(i,n),l.activate(i)};Ir(Er,Lr,Or,Cr,$r);var Tr=class extends Sr{render(){let r=l.t({message:"Rightward arrow",id:"icon.title.chevron-right",comment:"Title for chevron-right icon"});return Mr`<svg xmlns="http://www.w3.org/2000/svg"width="16"height="16"fill="none"viewBox="0 0 16 16" part="w-icon-chevron-right-16-part">${Pr(`<title>${r}</title>`)}<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m5.5 13.75 5.5-5.5-5.5-5.5"></path></svg>`}};customElements.get("w-icon-chevron-right-16")||customElements.define("w-icon-chevron-right-16",Tr);var Br=["en","nb","fi","da","sv"],ve="en",he=r=>Br.find(e=>r===e||r.toLowerCase().includes(e))||ve;function Ar(){if(typeof window=="undefined"){let r=process.env.NMP_LANGUAGE||Intl.DateTimeFormat().resolvedOptions().locale;return he(r)}try{let r=document.documentElement.lang;return he(r)}catch(r){return console.warn("could not detect locale, falling back to source locale",r),ve}}var me=(r,e,o,t,a)=>{l.load("en",r),l.load("nb",e),l.load("fi",o),l.load("da",t),l.load("sv",a);let i=Ar();l.activate(i)};import{css as fe}from"lit";var we=fe`
10
+ `)),u(c)&&ie.test(c)?JSON.parse(`"${c}"`):u(c)?c:Ie(c,this._locale,this._locales)(r,t==null?void 0:t.formats)}date(e,r){return A(this._locales||this._locale,e,r)}number(e,r){return D(this._locales||this._locale,e,r)}};function qe(o={}){return new j(o)}var d=qe();import{css as or,html as _,LitElement as tr,nothing as U}from"lit";import{property as C}from"lit/decorators.js";import{html as Ge,LitElement as Je}from"lit";import{property as I,state as Ve}from"lit/decorators.js";import{classMap as Ke}from"lit/directives/class-map.js";import{css as Be}from"lit";var se=Be`
11
+ :host {
12
+ display: inline-block;
13
+ }
14
+ .w-icon {
15
+ --_w-icon-size: var(--w-icon-size, 24px);
16
+ height: var(--_w-icon-size);
17
+ width: var(--_w-icon-size);
18
+ display: flex;
19
+ }
20
+ .w-icon svg {
21
+ pointer-events: none;
22
+ height: var(--_w-icon-size);
23
+ width: var(--_w-icon-size);
24
+ }
25
+ .w-icon--s {
26
+ --w-icon-size: 16px;
27
+ }
28
+ .w-icon--m {
29
+ --w-icon-size: 24px;
30
+ }
31
+ .w-icon--l {
32
+ --w-icon-size: 32px;
33
+ }
34
+
35
+ `;var R=new Map,Qe='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"></svg>';function We(o,e={}){var t;let r=(t=e.responseParser)!=null?t:(a=>a.text());return R.has(o)||R.set(o,fetch(o).then(r)),R.get(o)}var h=class extends Je{constructor(){super(...arguments);this.name="";this.size="medium";this.locale="en";this.svg=null}async fetchIcon(r){let t=`https://assets.finn.no/pkg/eikons/v1/${this.locale}/${r}.svg`;try{let a=await We(t);return new DOMParser().parseFromString(a,"text/html").body.querySelector("svg")}catch(a){return null}}firstUpdated(){this.loadIcon()}updated(r){(r.has("name")||r.has("locale"))&&this.loadIcon()}async loadIcon(){if(!this.name){this.svg=null;return}let r=await this.fetchIcon(this.name);r||(r=new DOMParser().parseFromString(Qe,"text/html").body.firstElementChild),this.svg=r}render(){let r={"w-icon":!0,"w-icon--s":this.size==="small","w-icon--m":this.size==="medium","w-icon--l":this.size==="large"},t=typeof this.size=="string"&&this.size.endsWith("px")?`--w-icon-size: ${this.size};`:"";return Ge`<div class="${Ke(r)}" style="${t}" part="w-${this.name.toLowerCase()}">${this.svg}</div>`}};h.styles=[se],g([I({type:String,reflect:!0})],h.prototype,"name",2),g([I({type:String,reflect:!0})],h.prototype,"size",2),g([I({type:String,reflect:!0})],h.prototype,"locale",2),g([Ve()],h.prototype,"svg",2);customElements.get("w-icon")||customElements.define("w-icon",h);var er=["en","nb","fi","da","sv"],le="en",ce=o=>er.find(e=>o===e||o.toLowerCase().includes(e))||le;function y(){if(typeof window=="undefined"){let o=process.env.NMP_LANGUAGE||Intl.DateTimeFormat().resolvedOptions().locale;return ce(o)}try{let o=document.documentElement.lang;return ce(o)}catch(o){return console.warn("could not detect locale, falling back to source locale",o),le}}var de=(o,e,r,t,a)=>{d.load("en",o),d.load("nb",e),d.load("fi",r),d.load("da",t),d.load("sv",a);let s=y();d.activate(s)};import{css as pe}from"lit";var ge=pe`
11
36
  *,
12
37
  :before,
13
38
  :after {
@@ -280,7 +305,7 @@ Please compile your catalog first.
280
305
  svg {
281
306
  pointer-events: none;
282
307
  }
283
- `,mo=fe`*, :before, :after {
308
+ `,kr=pe`*, :before, :after {
284
309
  --w-rotate: 0;
285
310
  --w-rotate-x: 0;
286
311
  --w-rotate-y: 0;
@@ -2446,58 +2471,56 @@ Please compile your catalog first.
2446
2471
  display: none
2447
2472
  }
2448
2473
  }
2449
- `;var xe=JSON.parse('{"pagination.aria.first-page":["F\xF8rste side"],"pagination.aria.icon-suffix":["ikon"],"pagination.aria.next-page":["N\xE6ste side"],"pagination.aria.page":["Side ",["currentPage"]],"pagination.aria.pagination":["Sider"],"pagination.aria.prev-page":["Forrige side"]}');var ke=JSON.parse('{"pagination.aria.first-page":["First page"],"pagination.aria.icon-suffix":["icon"],"pagination.aria.next-page":["Next page"],"pagination.aria.page":["Page ",["currentPage"]],"pagination.aria.pagination":["Pages"],"pagination.aria.prev-page":["Previous page"]}');var ye=JSON.parse('{"pagination.aria.first-page":["Ensimm\xE4inen sivu"],"pagination.aria.icon-suffix":["kuvake"],"pagination.aria.next-page":["Seuraava sivu"],"pagination.aria.page":["Sivu ",["currentPage"]],"pagination.aria.pagination":["Sivut"],"pagination.aria.prev-page":["Edellinen sivu"]}');var _e=JSON.parse('{"pagination.aria.first-page":["F\xF8rste side"],"pagination.aria.icon-suffix":["ikon"],"pagination.aria.next-page":["Neste side"],"pagination.aria.page":["Side ",["currentPage"]],"pagination.aria.pagination":["Sider"],"pagination.aria.prev-page":["Forrige side"]}');var ze=JSON.parse('{"pagination.aria.first-page":["F\xF6rsta sidan"],"pagination.aria.icon-suffix":["ikon"],"pagination.aria.next-page":["N\xE4sta sida"],"pagination.aria.page":["Sida ",["currentPage"]],"pagination.aria.pagination":["Sidor"],"pagination.aria.prev-page":["F\xF6reg\xE5ende sida"]}');import{css as Yr}from"lit";var Ne=Yr`*,: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}.hover\\:bg-clip-padding:hover{-webkit-background-clip:padding-box;background-clip:padding-box}.hover\\:bg-\\[--w-color-button-pill-background-hover\\]:hover{background-color:var(--w-color-button-pill-background-hover)}.active\\:bg-\\[--w-color-button-pill-background-active\\]:active{background-color:var(--w-color-button-pill-background-active)}.border-0{border-width:0}.rounded-full{border-radius:9999px}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.hover\\:no-underline:hover,.focus\\:no-underline:focus{text-decoration:none}.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}.items-center{align-items:center}.justify-center{justify-content:center}.static{position:static}.s-bg-primary{background-color:var(--w-s-color-background-primary)}.s-text-inverted{color:var(--w-s-color-text-inverted)}.s-text-link{color:var(--w-s-color-text-link)}.s-icon{color:var(--w-s-color-icon)}.min-h-\\[44px\\]{min-height:44px}.min-w-\\[44px\\]{min-width:44px}.p-4{padding:.4rem}.p-8{padding:.8rem}.visible{visibility:visible}.font-bold{font-weight:700}.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}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:768px){.md\\:block{display:block}.md\\:hidden{display:none}}`;var U=l._({id:"pagination.aria.icon-suffix",message:"icon",comment:"Suffix added at the end of icon titles when img semantics are lost on an html element"}),M="hover:no-underline focus:no-underline focusable inline-flex justify-center items-center transition-colors ease-in-out min-h-[44px] min-w-[44px] p-4 rounded-full border-0 hover:bg-clip-padding",L,Se,b=class extends Jr{constructor(){super();q(this,L);this.currentPageNumber=1;this.visiblePages=7;me(ke,_e,ye,xe,ze)}get shouldShowShowFirstPageButton(){return this.currentPageNumber-2>0}get shouldShowPreviousPageButton(){return this.currentPageNumber-1>0}get shouldShowNextPageButton(){return this.currentPageNumber<this.pages}get currentPageIndex(){return this.currentPageNumber-1}get visiblePageNumbers(){if(this.pages<=this.visiblePages)return Array.from({length:this.pages},(i,n)=>n+1);let o=Math.floor(this.visiblePages/2),t=Math.max(1,this.currentPageNumber-o),a=Math.min(this.pages,t+this.visiblePages-1);return a-t+1<this.visiblePages&&(t=Math.max(1,a-this.visiblePages+1)),Array.from({length:a-t+1},(i,n)=>t+n)}render(){let o=this.visiblePageNumbers;return k`<nav class="flex items-center justify-center p-8" @click="${K(this,L,Se)}">
2474
+ `;var be=JSON.parse('{"pagination.aria.first-page":["F\xF8rste side"],"pagination.aria.icon-suffix":["ikon"],"pagination.aria.next-page":["N\xE6ste side"],"pagination.aria.page":["Side ",["currentPage"]],"pagination.aria.pagination":["Sider"],"pagination.aria.prev-page":["Forrige side"]}');var ue=JSON.parse('{"pagination.aria.first-page":["First page"],"pagination.aria.icon-suffix":["icon"],"pagination.aria.next-page":["Next page"],"pagination.aria.page":["Page ",["currentPage"]],"pagination.aria.pagination":["Pages"],"pagination.aria.prev-page":["Previous page"]}');var he=JSON.parse('{"pagination.aria.first-page":["Ensimm\xE4inen sivu"],"pagination.aria.icon-suffix":["kuvake"],"pagination.aria.next-page":["Seuraava sivu"],"pagination.aria.page":["Sivu ",["currentPage"]],"pagination.aria.pagination":["Sivut"],"pagination.aria.prev-page":["Edellinen sivu"]}');var me=JSON.parse('{"pagination.aria.first-page":["F\xF8rste side"],"pagination.aria.icon-suffix":["ikon"],"pagination.aria.next-page":["Neste side"],"pagination.aria.page":["Side ",["currentPage"]],"pagination.aria.pagination":["Sider"],"pagination.aria.prev-page":["Forrige side"]}');var ve=JSON.parse('{"pagination.aria.first-page":["F\xF6rsta sidan"],"pagination.aria.icon-suffix":["ikon"],"pagination.aria.next-page":["N\xE4sta sida"],"pagination.aria.page":["Sida ",["currentPage"]],"pagination.aria.pagination":["Sidor"],"pagination.aria.prev-page":["F\xF6reg\xE5ende sida"]}');import{css as rr}from"lit";var fe=rr`*,: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}.hover\\:bg-clip-padding:hover{-webkit-background-clip:padding-box;background-clip:padding-box}.hover\\:bg-\\[--w-color-button-pill-background-hover\\]:hover{background-color:var(--w-color-button-pill-background-hover)}.active\\:bg-\\[--w-color-button-pill-background-active\\]:active{background-color:var(--w-color-button-pill-background-active)}.border-0{border-width:0}.rounded-full{border-radius:9999px}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.hover\\:no-underline:hover,.focus\\:no-underline:focus{text-decoration:none}.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}.items-center{align-items:center}.justify-center{justify-content:center}.static{position:static}.s-bg-primary{background-color:var(--w-s-color-background-primary)}.s-text-inverted{color:var(--w-s-color-text-inverted)}.s-text-link{color:var(--w-s-color-text-link)}.s-icon{color:var(--w-s-color-icon)}.min-h-\\[44px\\]{min-height:44px}.min-w-\\[44px\\]{min-width:44px}.p-4{padding:.4rem}.p-8{padding:.8rem}.visible{visibility:visible}.font-bold{font-weight:700}.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}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:768px){.md\\:block{display:block}.md\\:hidden{display:none}}`;var X=()=>d._({id:"pagination.aria.icon-suffix",message:"icon",comment:"Suffix added at the end of icon titles when img semantics are lost on an html element"}),$="hover:no-underline focus:no-underline focusable inline-flex justify-center items-center transition-colors ease-in-out min-h-[44px] min-w-[44px] p-4 rounded-full border-0 hover:bg-clip-padding",N,we,m=class extends tr{constructor(){super();J(this,N);this.currentPageNumber=1;this.visiblePages=7;de(ue,me,he,be,ve)}get shouldShowShowFirstPageButton(){return this.currentPageNumber-2>0}get shouldShowPreviousPageButton(){return this.currentPageNumber-1>0}get shouldShowNextPageButton(){return this.currentPageNumber<this.pages}get currentPageIndex(){return this.currentPageNumber-1}get visiblePageNumbers(){if(this.pages<=this.visiblePages)return Array.from({length:this.pages},(s,i)=>i+1);let r=Math.floor(this.visiblePages/2),t=Math.max(1,this.currentPageNumber-r),a=Math.min(this.pages,t+this.visiblePages-1);return a-t+1<this.visiblePages&&(t=Math.max(1,a-this.visiblePages+1)),Array.from({length:a-t+1},(s,i)=>t+i)}render(){let r=this.visiblePageNumbers;return _`<nav class="flex items-center justify-center p-8" @click="${V(this,N,we)}">
2450
2475
  <h1 class="sr-only">
2451
- ${l._({id:"pagination.aria.pagination",message:"Pages",comment:"Default screenreader message for pagination container in the pagination component"})}
2476
+ ${d._({id:"pagination.aria.pagination",message:"Pages",comment:"Default screenreader message for pagination container in the pagination component"})}
2452
2477
  </h1>
2453
2478
  <div class="flex items-center s-text-link">
2454
- ${this.shouldShowShowFirstPageButton?k`<a
2479
+ ${this.shouldShowShowFirstPageButton?_`<a
2455
2480
  data-page-number="1"
2456
2481
  href="${this.baseUrl}1"
2457
- class="${M+" s-icon hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]"}">
2482
+ class="${$+" s-icon hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]"}">
2458
2483
  <span class="sr-only"
2459
- >${l._({id:"pagination.aria.first-page",message:"First page",comment:"Default screenreader message for first page link in the pagination component"})},</span
2484
+ >${d._({id:"pagination.aria.first-page",message:"First page",comment:"Default screenreader message for first page link in the pagination component"})},</span
2460
2485
  >
2461
- <w-icon-chevron-double-left-16 class="pointer-events-none flex items-center"></w-icon-chevron-double-left-16>
2462
- <span class="sr-only">${U}</span>
2463
- </a>`:Y}
2464
- ${this.shouldShowPreviousPageButton?k`<a
2486
+ <w-icon name="ChevronDoubleLeft" size="small" locale="${y()}" class="pointer-events-none flex items-center" class="flex"></w-icon>
2487
+ <span class="sr-only">${X()}</span>
2488
+ </a>`:U}
2489
+ ${this.shouldShowPreviousPageButton?_`<a
2465
2490
  data-page-number="${this.currentPageNumber-1}"
2466
2491
  href="${this.baseUrl}${this.currentPageNumber-1}"
2467
- class="${M+" s-icon hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]"}">
2492
+ class="${$+" s-icon hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]"}">
2468
2493
  <span class="sr-only"
2469
- >${l._({id:"pagination.aria.prev-page",message:"Previous page",comment:"Default screenreader message for previous page link in the pagination component"})},</span
2494
+ >${d._({id:"pagination.aria.prev-page",message:"Previous page",comment:"Default screenreader message for previous page link in the pagination component"})},</span
2470
2495
  >
2471
- <w-icon-chevron-left-16 class="pointer-events-none flex items-center"></w-icon-chevron-left-16>
2472
- <span class="sr-only">${U}</span>
2473
- </a>`:Y}
2496
+ <w-icon name="ChevronLeft" size="small" locale="${y()}" class="pointer-events-none flex items-center" class="flex"></w-icon>
2497
+ <span class="sr-only">${X()}</span>
2498
+ </a>`:U}
2474
2499
  <div class="hidden md:block">
2475
- ${o.map(t=>{let a=t===this.currentPageNumber,i=`${this.baseUrl}${t}`,n=M;a?n+=" s-bg-primary s-text-inverted":n+=" hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]";let s=l._({id:"pagination.aria.page",message:"Page {currentPage}",values:{currentPage:t},comment:"Default screenreader message for page link in the pagination component"});return k`<a
2500
+ ${r.map(t=>{let a=t===this.currentPageNumber,s=`${this.baseUrl}${t}`,i=$;a?i+=" s-bg-primary s-text-inverted":i+=" hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]";let n=d._({id:"pagination.aria.page",message:"Page {currentPage}",values:{currentPage:t},comment:"Default screenreader message for page link in the pagination component"});return _`<a
2476
2501
  data-page-number="${t}"
2477
- aria-label="${s}"
2478
- href="${i}"
2479
- class="${n}"
2502
+ aria-label="${n}"
2503
+ href="${s}"
2504
+ class="${i}"
2480
2505
  aria-current="${a?"page":""}"
2481
2506
  >${t}</a
2482
2507
  >`})}
2483
2508
  </div>
2484
- <span class="block md:hidden p-8 font-bold">${l._({id:"pagination.label.current-page",message:"Page {currentPage}",values:{currentPage:this.currentPageNumber},comment:"Default message for current page label in the pagination component"})}</span>
2485
- ${this.shouldShowNextPageButton?k`<a
2509
+ <span class="block md:hidden p-8 font-bold">${d._({id:"pagination.label.current-page",message:"Page {currentPage}",values:{currentPage:this.currentPageNumber},comment:"Default message for current page label in the pagination component"})}</span>
2510
+ ${this.shouldShowNextPageButton?_`<a
2486
2511
  data-page-number="${this.currentPageNumber+1}"
2487
2512
  href="${this.baseUrl}${this.currentPageNumber+1}"
2488
- class="${M+" s-icon hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]"}">
2513
+ class="${$+" s-icon hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]"}">
2489
2514
  <span class="sr-only">
2490
- ${l._({id:"pagination.aria.next-page",message:"Next page",comment:"Default screenreader message for next page link in the pagination component"})},</span
2515
+ ${d._({id:"pagination.aria.next-page",message:"Next page",comment:"Default screenreader message for next page link in the pagination component"})},</span
2491
2516
  >
2492
- <w-icon-chevron-right-16 class="pointer-events-none flex items-center"></w-icon-chevron-right-16>
2493
- <span class="sr-only">${U}</span>
2494
- </a>`:Y}
2517
+ <w-icon name="ChevronRight" size="small" locale="${y()}" class="pointer-events-none flex items-center" class="flex"></w-icon>
2518
+ <span class="sr-only">${X()}</span>
2519
+ </a>`:U}
2495
2520
  </div>
2496
- </nav>`}};L=new WeakSet,Se=function(o){let t=o.target.getAttribute("data-page-number");this.dispatchEvent(new CustomEvent("page-click",{detail:{clickedPage:t},bubbles:!0,composed:!0}))},b.styles=[we,Ne,Ur`
2497
- w-icon-chevron-left-16,
2498
- w-icon-chevron-double-left-16,
2499
- w-icon-chevron-right-16 {
2521
+ </nav>`}};N=new WeakSet,we=function(r){let t=r.target.getAttribute("data-page-number");this.dispatchEvent(new CustomEvent("page-click",{detail:{clickedPage:t},bubbles:!0,composed:!0}))},m.styles=[ge,fe,or`
2522
+ w-icon {
2500
2523
  height: 16px;
2501
2524
  }
2502
- `],x([P({type:String,reflect:!0,attribute:"base-url"})],b.prototype,"baseUrl",2),x([P({type:Number,reflect:!0})],b.prototype,"pages",2),x([P({type:Number,reflect:!0,attribute:"current-page"})],b.prototype,"currentPageNumber",2),x([P({type:Number,reflect:!0,attribute:"visible-pages"})],b.prototype,"visiblePages",2);customElements.get("w-pagination")||customElements.define("w-pagination",b);export{b as WarpPagination};
2525
+ `],g([C({type:String,reflect:!0,attribute:"base-url"})],m.prototype,"baseUrl",2),g([C({type:Number,reflect:!0})],m.prototype,"pages",2),g([C({type:Number,reflect:!0,attribute:"current-page"})],m.prototype,"currentPageNumber",2),g([C({type:Number,reflect:!0,attribute:"visible-pages"})],m.prototype,"visiblePages",2);customElements.get("w-pagination")||customElements.define("w-pagination",m);export{m as WarpPagination};
2503
2526
  //# sourceMappingURL=pagination.js.map