@warp-ds/elements 2.8.2-next.1 → 2.8.2-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/custom-elements.json +195 -121
- package/dist/index.d.ts +52 -22
- package/dist/packages/affix/affix.hydration.test.d.ts +1 -0
- package/dist/packages/affix/affix.hydration.test.js +33 -0
- package/dist/packages/affix/affix.js +5 -5
- package/dist/packages/affix/affix.js.map +3 -3
- package/dist/packages/alert/alert.d.ts +1 -0
- package/dist/packages/alert/alert.hydration.test.d.ts +1 -0
- package/dist/packages/alert/alert.hydration.test.js +47 -0
- package/dist/packages/alert/alert.js +7 -7
- package/dist/packages/alert/alert.js.map +3 -3
- package/dist/packages/alert/alert.test.js +21 -0
- package/dist/packages/attention/attention.hydration.test.d.ts +1 -0
- package/dist/packages/attention/attention.hydration.test.js +66 -0
- package/dist/packages/attention/attention.js +15 -15
- package/dist/packages/attention/attention.js.map +3 -3
- package/dist/packages/badge/badge.hydration.test.d.ts +1 -0
- package/dist/packages/badge/badge.hydration.test.js +50 -0
- package/dist/packages/badge/badge.js +2 -2
- package/dist/packages/badge/badge.js.map +3 -3
- package/dist/packages/badge/badge.test.js +14 -0
- package/dist/packages/box/box.hydration.test.d.ts +1 -0
- package/dist/packages/box/box.hydration.test.js +37 -0
- package/dist/packages/breadcrumbs/breadcrumbs.d.ts +1 -1
- package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -0
- package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +141 -0
- package/dist/packages/breadcrumbs/breadcrumbs.js +7 -7
- package/dist/packages/breadcrumbs/breadcrumbs.js.map +3 -3
- package/dist/packages/breadcrumbs/breadcrumbs.test.js +3 -1
- package/dist/packages/button/button.hydration.test.d.ts +1 -0
- package/dist/packages/button/button.hydration.test.js +43 -0
- package/dist/packages/button/button.js +9 -9
- package/dist/packages/button/button.js.map +3 -3
- package/dist/packages/button/button.react.stories.d.ts +1 -1
- package/dist/packages/card/card.hydration.test.d.ts +1 -0
- package/dist/packages/card/card.hydration.test.js +38 -0
- package/dist/packages/card/card.react.stories.d.ts +1 -1
- package/dist/packages/checkbox/checkbox.d.ts +17 -1
- package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -0
- package/dist/packages/checkbox/checkbox.hydration.test.js +47 -0
- package/dist/packages/checkbox/checkbox.js +20 -19
- package/dist/packages/checkbox/checkbox.js.map +3 -3
- package/dist/packages/checkbox/styles.js +10 -9
- package/dist/packages/checkbox-group/checkbox-group.d.ts +7 -0
- package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -0
- package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +40 -0
- package/dist/packages/checkbox-group/checkbox-group.js +14 -14
- package/dist/packages/checkbox-group/checkbox-group.js.map +3 -3
- package/dist/packages/checkbox-group/checkbox-group.test.js +10 -0
- package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -0
- package/dist/packages/combobox/combobox.hydration.test.js +43 -0
- package/dist/packages/combobox/combobox.js +2 -2
- package/dist/packages/combobox/combobox.js.map +2 -2
- package/dist/packages/combobox/combobox.react.stories.d.ts +1 -1
- package/dist/packages/combobox/combobox.test.js +5 -2
- package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -0
- package/dist/packages/datepicker/datepicker.hydration.test.js +40 -0
- package/dist/packages/datepicker/datepicker.js +5 -5
- package/dist/packages/datepicker/datepicker.js.map +3 -3
- package/dist/packages/datepicker/datepicker.react.stories.d.ts +1 -1
- package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -0
- package/dist/packages/expandable/expandable.hydration.test.js +47 -0
- package/dist/packages/expandable/expandable.js +12 -12
- package/dist/packages/expandable/expandable.js.map +3 -3
- package/dist/packages/icon/icon.hydration.test.d.ts +1 -0
- package/dist/packages/icon/icon.hydration.test.js +47 -0
- package/dist/packages/icon/icon.js +2 -2
- package/dist/packages/icon/icon.js.map +3 -3
- package/dist/packages/icon/icon.test.d.ts +1 -0
- package/dist/packages/icon/icon.test.js +51 -0
- package/dist/packages/link/link.hydration.test.d.ts +1 -0
- package/dist/packages/link/link.hydration.test.js +54 -0
- package/dist/packages/link/link.js +4 -4
- package/dist/packages/link/link.js.map +3 -3
- package/dist/packages/link/link.test.js +14 -0
- package/dist/packages/modal/modal.hydration.test.d.ts +1 -0
- package/dist/packages/modal/modal.hydration.test.js +25 -0
- package/dist/packages/modal-header/modal-header.js +6 -6
- package/dist/packages/modal-header/modal-header.js.map +3 -3
- package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -0
- package/dist/packages/page-indicator/page-indicator.hydration.test.js +41 -0
- package/dist/packages/page-indicator/page-indicator.js +7 -7
- package/dist/packages/page-indicator/page-indicator.js.map +3 -3
- package/dist/packages/page-indicator/page-indicator.test.js +23 -0
- package/dist/packages/pagination/pagination.d.ts +4 -0
- package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -0
- package/dist/packages/pagination/pagination.hydration.test.js +38 -0
- package/dist/packages/pagination/pagination.js +20 -20
- package/dist/packages/pagination/pagination.js.map +3 -3
- package/dist/packages/pagination/pagination.react.stories.d.ts +1 -1
- package/dist/packages/pagination/pagination.test.js +18 -0
- package/dist/packages/pill/pill.hydration.test.d.ts +1 -0
- package/dist/packages/pill/pill.hydration.test.js +32 -0
- package/dist/packages/pill/pill.js +5 -5
- package/dist/packages/pill/pill.js.map +3 -3
- package/dist/packages/radio/radio.a11y.test.js +15 -6
- package/dist/packages/radio/radio.d.ts +33 -1
- package/dist/packages/radio/radio.hydration.test.d.ts +1 -0
- package/dist/packages/radio/radio.hydration.test.js +29 -0
- package/dist/packages/radio/radio.js +7 -7
- package/dist/packages/radio/radio.js.map +3 -3
- package/dist/packages/radio/radio.test.js +22 -15
- package/dist/packages/radio-group/radio-group.a11y.test.js +4 -0
- package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -0
- package/dist/packages/radio-group/radio-group.hydration.test.js +32 -0
- package/dist/packages/radio-group/radio-group.js +17 -17
- package/dist/packages/radio-group/radio-group.js.map +3 -3
- package/dist/packages/radio-group/radio-group.test.js +3 -2
- package/dist/packages/select/select.hydration.test.d.ts +1 -0
- package/dist/packages/select/select.hydration.test.js +37 -0
- package/dist/packages/select/select.js +13 -13
- package/dist/packages/select/select.js.map +3 -3
- package/dist/packages/select/select.react.stories.d.ts +1 -1
- package/dist/packages/slider/slider.hydration.test.d.ts +1 -0
- package/dist/packages/slider/slider.hydration.test.js +33 -0
- package/dist/packages/slider/slider.js +9 -9
- package/dist/packages/slider/slider.js.map +3 -3
- package/dist/packages/slider/slider.test.js +54 -0
- package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -0
- package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +35 -0
- package/dist/packages/slider-thumb/slider-thumb.js +16 -16
- package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
- package/dist/packages/step/step.d.ts +1 -0
- package/dist/packages/step/step.hydration.test.d.ts +1 -0
- package/dist/packages/step/step.hydration.test.js +25 -0
- package/dist/packages/step/step.js +4 -4
- package/dist/packages/step/step.js.map +3 -3
- package/dist/packages/step-indicator/step-indicator.a11y.test.js +3 -1
- package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -0
- package/dist/packages/step-indicator/step-indicator.hydration.test.js +25 -0
- package/dist/packages/switch/switch.a11y.test.js +23 -9
- package/dist/packages/switch/switch.d.ts +6 -0
- package/dist/packages/switch/switch.hydration.test.d.ts +1 -0
- package/dist/packages/switch/switch.hydration.test.js +54 -0
- package/dist/packages/switch/switch.js +7 -13
- package/dist/packages/switch/switch.js.map +3 -3
- package/dist/packages/switch/switch.test.js +0 -5
- package/dist/packages/tab/tab.d.ts +39 -2
- package/dist/packages/tab/tab.hydration.test.d.ts +1 -0
- package/dist/packages/tab/tab.hydration.test.js +25 -0
- package/dist/packages/tab/tab.js +22 -12
- package/dist/packages/tab/tab.js.map +3 -3
- package/dist/packages/tab-panel/tab-panel.d.ts +23 -1
- package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -0
- package/dist/packages/tab-panel/tab-panel.hydration.test.js +21 -0
- package/dist/packages/tab-panel/tab-panel.js +18 -3
- package/dist/packages/tab-panel/tab-panel.js.map +3 -3
- package/dist/packages/tabs/tabs.a11y.test.js +59 -8
- package/dist/packages/tabs/tabs.hydration.test.d.ts +1 -0
- package/dist/packages/tabs/tabs.hydration.test.js +20 -0
- package/dist/packages/tabs/tabs.js +6 -6
- package/dist/packages/tabs/tabs.js.map +3 -3
- package/dist/packages/tabs/tabs.test.js +93 -1
- package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -0
- package/dist/packages/textarea/textarea.hydration.test.js +43 -0
- package/dist/packages/textarea/textarea.react.stories.d.ts +1 -1
- package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -0
- package/dist/packages/textfield/textfield.hydration.test.js +43 -0
- package/dist/packages/textfield/textfield.js +2 -2
- package/dist/packages/textfield/textfield.js.map +2 -2
- package/dist/packages/textfield/textfield.react.stories.d.ts +1 -1
- package/dist/packages/textfield/textfield.test.js +26 -0
- package/dist/packages/toast/toast.js +6 -6
- package/dist/packages/toast/toast.js.map +3 -3
- package/dist/packages/toast/toast.test.d.ts +1 -0
- package/dist/packages/toast/toast.test.js +58 -0
- package/dist/setup-tests.d.ts +2 -1
- package/dist/setup-tests.js +4 -3
- package/dist/tests/react-hydration.d.ts +20 -0
- package/dist/tests/react-hydration.js +138 -0
- package/dist/web-types.json +67 -63
- package/package.json +4 -3
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { describe, expect, test, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { setupHydrationWarningCapture, testHydration, testHydrationWithChildren } from '../../tests/react-hydration';
|
|
3
|
+
import './breadcrumbs.js';
|
|
4
|
+
describe('w-breadcrumbs React SSR hydration', () => {
|
|
5
|
+
beforeEach(() => setupHydrationWarningCapture());
|
|
6
|
+
afterEach(() => {
|
|
7
|
+
window.__HYDRATION_WARNINGS__ = [];
|
|
8
|
+
});
|
|
9
|
+
test('default (no attributes) hydrates without warnings', async () => {
|
|
10
|
+
const warnings = await testHydration('w-breadcrumbs', {});
|
|
11
|
+
expect(warnings).toEqual([]);
|
|
12
|
+
});
|
|
13
|
+
test('with aria-label hydrates without warnings', async () => {
|
|
14
|
+
const warnings = await testHydration('w-breadcrumbs', { 'aria-label': 'Navigation breadcrumbs' });
|
|
15
|
+
expect(warnings).toEqual([]);
|
|
16
|
+
});
|
|
17
|
+
// Tests for child elements - breadcrumbs consumes children and renders them
|
|
18
|
+
// in shadow DOM, which causes hydration mismatches. These use test.fails
|
|
19
|
+
// to document the known issues until they are fixed.
|
|
20
|
+
test.fails('with single link child hydrates without warnings', async () => {
|
|
21
|
+
const childrenHtml = '<a href="#/home">Home</a>';
|
|
22
|
+
const warnings = await testHydrationWithChildren('w-breadcrumbs', {}, childrenHtml);
|
|
23
|
+
expect(warnings).toEqual([]);
|
|
24
|
+
});
|
|
25
|
+
test.fails('with multiple link children hydrates without warnings', async () => {
|
|
26
|
+
// This tests the interleaving behavior - "/" separators are added between children
|
|
27
|
+
const childrenHtml = '<a href="#/home">Home</a><a href="#/category">Category</a>';
|
|
28
|
+
const warnings = await testHydrationWithChildren('w-breadcrumbs', {}, childrenHtml);
|
|
29
|
+
expect(warnings).toEqual([]);
|
|
30
|
+
});
|
|
31
|
+
test.fails('with three link children hydrates without warnings', async () => {
|
|
32
|
+
// More children = more separators interleaved
|
|
33
|
+
const childrenHtml = '<a href="#/home">Home</a><a href="#/category">Category</a><a href="#/page">Page</a>';
|
|
34
|
+
const warnings = await testHydrationWithChildren('w-breadcrumbs', {}, childrenHtml);
|
|
35
|
+
expect(warnings).toEqual([]);
|
|
36
|
+
});
|
|
37
|
+
test.fails('with links and span (current page) hydrates without warnings', async () => {
|
|
38
|
+
// Common pattern: links for navigation, span for current page
|
|
39
|
+
const childrenHtml = '<a href="#/home">Home</a><a href="#/category">Category</a><span aria-current="page">Current page</span>';
|
|
40
|
+
const warnings = await testHydrationWithChildren('w-breadcrumbs', {}, childrenHtml);
|
|
41
|
+
expect(warnings).toEqual([]);
|
|
42
|
+
});
|
|
43
|
+
test.fails('with span children hydrates without warnings', async () => {
|
|
44
|
+
// Non-link children get different CSS class (s-text vs s-text-link)
|
|
45
|
+
const childrenHtml = '<span>First</span><span>Second</span><span aria-current="page">Current</span>';
|
|
46
|
+
const warnings = await testHydrationWithChildren('w-breadcrumbs', {}, childrenHtml);
|
|
47
|
+
expect(warnings).toEqual([]);
|
|
48
|
+
});
|
|
49
|
+
test.fails('with mixed element types hydrates without warnings', async () => {
|
|
50
|
+
// Mix of different element types to ensure class assignment works correctly
|
|
51
|
+
const childrenHtml = '<a href="#/home">Home</a><span>Category</span><a href="#/page">Page</a>';
|
|
52
|
+
const warnings = await testHydrationWithChildren('w-breadcrumbs', {}, childrenHtml);
|
|
53
|
+
expect(warnings).toEqual([]);
|
|
54
|
+
});
|
|
55
|
+
test.fails('with aria-label and children hydrates without warnings', async () => {
|
|
56
|
+
const childrenHtml = '<a href="#/home">Home</a><a href="#/category">Category</a>';
|
|
57
|
+
const warnings = await testHydrationWithChildren('w-breadcrumbs', { 'aria-label': 'Breadcrumb navigation' }, childrenHtml);
|
|
58
|
+
expect(warnings).toEqual([]);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
// These tests verify the component's DOM manipulation behavior that can cause
|
|
62
|
+
// hydration mismatches. The breadcrumbs component currently:
|
|
63
|
+
// 1. Moves children from light DOM to shadow DOM
|
|
64
|
+
// 2. Adds CSS classes to child elements
|
|
65
|
+
// 3. Interleaves separator elements between children
|
|
66
|
+
//
|
|
67
|
+
// In SSR scenarios, children are rendered in light DOM. When the component
|
|
68
|
+
// hydrates client-side and moves/modifies them, React detects a mismatch.
|
|
69
|
+
//
|
|
70
|
+
// These tests use test.fails to document the known issues until they are fixed.
|
|
71
|
+
describe('w-breadcrumbs child element DOM stability', () => {
|
|
72
|
+
test.fails('should preserve children in light DOM (not move to shadow DOM)', async () => {
|
|
73
|
+
const container = document.createElement('div');
|
|
74
|
+
container.innerHTML = '<w-breadcrumbs><a href="#/home">Home</a><a href="#/category">Category</a></w-breadcrumbs>';
|
|
75
|
+
document.body.appendChild(container);
|
|
76
|
+
// Wait for custom element upgrade
|
|
77
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
78
|
+
const breadcrumbs = container.querySelector('w-breadcrumbs');
|
|
79
|
+
// Children should remain in light DOM, not be moved to shadow DOM
|
|
80
|
+
// Current behavior: children.length is 0 because they're moved to shadow DOM
|
|
81
|
+
expect(breadcrumbs?.children.length).toBe(2);
|
|
82
|
+
document.body.removeChild(container);
|
|
83
|
+
});
|
|
84
|
+
test.fails('should not add classes to light DOM link children', async () => {
|
|
85
|
+
const container = document.createElement('div');
|
|
86
|
+
container.innerHTML = '<w-breadcrumbs><a href="#/home">Home</a><a href="#/category">Category</a></w-breadcrumbs>';
|
|
87
|
+
document.body.appendChild(container);
|
|
88
|
+
// Wait for custom element upgrade
|
|
89
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
90
|
+
// Check light DOM children exist and don't have modified classes
|
|
91
|
+
const links = container.querySelectorAll('w-breadcrumbs > a');
|
|
92
|
+
expect(links.length).toBe(2);
|
|
93
|
+
for (const link of links) {
|
|
94
|
+
// Links should NOT have classes added by the component
|
|
95
|
+
expect(link.classList.contains('s-text-link')).toBe(false);
|
|
96
|
+
}
|
|
97
|
+
document.body.removeChild(container);
|
|
98
|
+
});
|
|
99
|
+
test.fails('should not add classes to light DOM span children', async () => {
|
|
100
|
+
const container = document.createElement('div');
|
|
101
|
+
container.innerHTML = '<w-breadcrumbs><span>First</span><span>Current</span></w-breadcrumbs>';
|
|
102
|
+
document.body.appendChild(container);
|
|
103
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
104
|
+
const spans = container.querySelectorAll('w-breadcrumbs > span');
|
|
105
|
+
expect(spans.length).toBe(2);
|
|
106
|
+
for (const span of spans) {
|
|
107
|
+
// Spans should NOT have classes added by the component
|
|
108
|
+
expect(span.classList.contains('s-text')).toBe(false);
|
|
109
|
+
}
|
|
110
|
+
document.body.removeChild(container);
|
|
111
|
+
});
|
|
112
|
+
test.fails('should not insert separator elements into light DOM', async () => {
|
|
113
|
+
const container = document.createElement('div');
|
|
114
|
+
container.innerHTML = '<w-breadcrumbs><a href="#/home">Home</a><a href="#/category">Category</a></w-breadcrumbs>';
|
|
115
|
+
document.body.appendChild(container);
|
|
116
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
117
|
+
const breadcrumbs = container.querySelector('w-breadcrumbs');
|
|
118
|
+
// Should only have the original 2 children, no separators added to light DOM
|
|
119
|
+
expect(breadcrumbs?.children.length).toBe(2);
|
|
120
|
+
// No separator spans should be in light DOM
|
|
121
|
+
const separators = container.querySelectorAll('w-breadcrumbs > span.select-none');
|
|
122
|
+
expect(separators.length).toBe(0);
|
|
123
|
+
document.body.removeChild(container);
|
|
124
|
+
});
|
|
125
|
+
test.fails('should preserve original child element attributes in light DOM', async () => {
|
|
126
|
+
const container = document.createElement('div');
|
|
127
|
+
container.innerHTML = '<w-breadcrumbs><a href="#/home" data-test="home">Home</a><span aria-current="page">Current</span></w-breadcrumbs>';
|
|
128
|
+
document.body.appendChild(container);
|
|
129
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
130
|
+
const link = container.querySelector('w-breadcrumbs > a');
|
|
131
|
+
const span = container.querySelector('w-breadcrumbs > span');
|
|
132
|
+
// Children should exist in light DOM
|
|
133
|
+
expect(link).not.toBeNull();
|
|
134
|
+
expect(span).not.toBeNull();
|
|
135
|
+
// Original attributes should be preserved
|
|
136
|
+
expect(link?.getAttribute('href')).toBe('#/home');
|
|
137
|
+
expect(link?.getAttribute('data-test')).toBe('home');
|
|
138
|
+
expect(span?.getAttribute('aria-current')).toBe('page');
|
|
139
|
+
document.body.removeChild(container);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
var
|
|
2
|
-
`],["r","\r"],["t"," "],["v","\v"],["0","\0"]]);function Ee(o){return
|
|
1
|
+
var pe=Object.create;var A=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var he=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var P=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports);var ve=(o,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of ue(e))!me.call(o,a)&&a!==r&&A(o,a,{get:()=>e[a],enumerable:!(t=ge(e,a))||t.enumerable});return o};var fe=(o,e,r)=>(r=o!=null?pe(he(o)):{},ve(e||!o||!o.__esModule?A(r,"default",{value:o,enumerable:!0}):r,o));var $=P(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.errorMessages=m.ErrorType=void 0;var f;(function(o){o.MalformedUnicode="MALFORMED_UNICODE",o.MalformedHexadecimal="MALFORMED_HEXADECIMAL",o.CodePointLimit="CODE_POINT_LIMIT",o.OctalDeprecation="OCTAL_DEPRECATION",o.EndOfString="END_OF_STRING"})(f=m.ErrorType||(m.ErrorType={}));m.errorMessages=new Map([[f.MalformedUnicode,"malformed Unicode character escape sequence"],[f.MalformedHexadecimal,"malformed hexadecimal character escape sequence"],[f.CodePointLimit,"Unicode codepoint must not be greater than 0x10FFFF in escape sequence"],[f.OctalDeprecation,'"0"-prefixed octal literals and octal escape sequences are deprecated; for octal literals use the "0o" prefix instead'],[f.EndOfString,"malformed escape sequence at end of string"]])});var U=P(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.unraw=p.errorMessages=p.ErrorType=void 0;var c=$();Object.defineProperty(p,"ErrorType",{enumerable:!0,get:function(){return c.ErrorType}});Object.defineProperty(p,"errorMessages",{enumerable:!0,get:function(){return c.errorMessages}});function we(o){return!o.match(/[^a-f0-9]/i)?parseInt(o,16):NaN}function y(o,e,r){let t=we(o);if(Number.isNaN(t)||r!==void 0&&r!==o.length)throw new SyntaxError(c.errorMessages.get(e));return t}function xe(o){let e=y(o,c.ErrorType.MalformedHexadecimal,2);return String.fromCharCode(e)}function H(o,e){let r=y(o,c.ErrorType.MalformedUnicode,4);if(e!==void 0){let t=y(e,c.ErrorType.MalformedUnicode,4);return String.fromCharCode(r,t)}return String.fromCharCode(r)}function ke(o){return o.charAt(0)==="{"&&o.charAt(o.length-1)==="}"}function ye(o){if(!ke(o))throw new SyntaxError(c.errorMessages.get(c.ErrorType.MalformedUnicode));let e=o.slice(1,-1),r=y(e,c.ErrorType.MalformedUnicode);try{return String.fromCodePoint(r)}catch(t){throw t instanceof RangeError?new SyntaxError(c.errorMessages.get(c.ErrorType.CodePointLimit)):t}}function _e(o,e=!1){if(e)throw new SyntaxError(c.errorMessages.get(c.ErrorType.OctalDeprecation));let r=parseInt(o,8);return String.fromCharCode(r)}var ze=new Map([["b","\b"],["f","\f"],["n",`
|
|
2
|
+
`],["r","\r"],["t"," "],["v","\v"],["0","\0"]]);function Ee(o){return ze.get(o)||o}var Me=/\\(?:(\\)|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 X(o,e=!1){return o.replace(Me,function(r,t,a,l,i,n,s,d,u){if(t!==void 0)return"\\";if(a!==void 0)return xe(a);if(l!==void 0)return ye(l);if(i!==void 0)return H(i,n);if(s!==void 0)return H(s);if(d==="0")return"\0";if(d!==void 0)return _e(d,!e);if(u!==void 0)return Ee(u);throw new SyntaxError(c.errorMessages.get(c.ErrorType.EndOfString))})}p.unraw=X;p.default=X});var q=fe(U(),1);var g=o=>typeof o=="string",Le=o=>typeof o=="function",Z=new Map,J="en";function D(o){return[...Array.isArray(o)?o:[o],J]}function I(o,e,r){let t=D(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 _(()=>z("date",t,r),()=>new Intl.DateTimeFormat(t,a)).format(g(e)?new Date(e):e)}function Ce(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 I(o,e,t)}function O(o,e,r){let t=D(o);return _(()=>z("number",t,r),()=>new Intl.NumberFormat(t,r)).format(e)}function R(o,e,r,{offset:t=0,...a}){var n,s;let l=D(o),i=e?_(()=>z("plural-ordinal",l),()=>new Intl.PluralRules(l,{type:"ordinal"})):_(()=>z("plural-cardinal",l),()=>new Intl.PluralRules(l,{type:"cardinal"}));return(s=(n=a[r])!=null?n:a[i.select(r-t)])!=null?s:a.other}function _(o,e){let r=o(),t=Z.get(r);return t||(t=e(),Z.set(r,t)),t}function z(o,e,r){let t=e.join("-");return`${o}-${t}-${JSON.stringify(r)}`}var G=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,V="%__lingui_octothorpe__%",Oe=(o,e,r={})=>{let t=e||o,a=i=>typeof i=="object"?i:r[i],l=(i,n)=>{let s=Object.keys(r).length?a("number"):void 0,d=O(t,i,s);return n.replace(new RegExp(V,"g"),d)};return{plural:(i,n)=>{let{offset:s=0}=n,d=R(t,!1,i,n);return l(i-s,d)},selectordinal:(i,n)=>{let{offset:s=0}=n,d=R(t,!0,i,n);return l(i-s,d)},select:Ne,number:(i,n)=>O(t,i,a(n)||{style:n}),date:(i,n)=>I(t,i,a(n)||n),time:(i,n)=>Ce(t,i,a(n)||n)}},Ne=(o,e)=>{var r;return(r=e[o])!=null?r:e.other};function Se(o,e,r){return(t={},a)=>{let l=Oe(e,r,a),i=(s,d=!1)=>Array.isArray(s)?s.reduce((u,x)=>{if(x==="#"&&d)return u+V;if(g(x))return u+x;let[j,h,F]=x,L={};h==="plural"||h==="selectordinal"||h==="select"?Object.entries(F).forEach(([C,be])=>{L[C]=i(be,h==="plural"||h==="selectordinal")}):L=F;let k;if(h){let C=l[h];k=C(t[j],L)}else k=t[j];return k==null?u:u+k},""):s,n=i(o);return g(n)&&G.test(n)?(0,q.unraw)(n):g(n)?n:n?String(n):""}}var De=Object.defineProperty,Ie=(o,e,r)=>e in o?De(o,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[e]=r,Te=(o,e,r)=>(Ie(o,typeof e!="symbol"?e+"":e,r),r),N=class{constructor(){Te(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}},Ye=Object.defineProperty,je=(o,e,r)=>e in o?Ye(o,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[e]=r,v=(o,e,r)=>(je(o,typeof e!="symbol"?e+"":e,r),r),S=class extends N{constructor(e){var r;super(),v(this,"_locale",""),v(this,"_locales"),v(this,"_localeData",{}),v(this,"_messages",{}),v(this,"_missing"),v(this,"_messageCompiler"),v(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:J,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=""),g(e)||(r=e.values||r,a=e.message,e=e.id);let l=this.messages[e],i=l===void 0,n=this._missing;if(n&&i)return Le(n)?n(this._locale,e):n;i&&this.emit("missing",{id:e,locale:this._locale});let s=l||a||e;return g(s)&&(this._messageCompiler?s=this._messageCompiler(s):console.warn(`Uncompiled message detected! Message:
|
|
3
3
|
|
|
4
|
-
> ${
|
|
4
|
+
> ${s}
|
|
5
5
|
|
|
6
6
|
That means you use raw catalog or your catalog doesn't have a translation for the message and fallback was used.
|
|
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
|
-
`)),g(
|
|
10
|
+
`)),g(s)&&G.test(s)?JSON.parse(`"${s}"`):g(s)?s:Se(s,this._locale,this._locales)(r,t==null?void 0:t.formats)}date(e,r){return I(this._locales||this._locale,e,r)}number(e,r){return O(this._locales||this._locale,e,r)}};function Fe(o={}){return new S(o)}var b=Fe();function K(o,e){return o.flatMap(r=>[r,e]).slice(0,-1)}import{html as Y,LitElement as Ze}from"lit";var Ae=["en","nb","fi","da","sv"],T="en",E=o=>Ae.find(e=>o===e||o.toLowerCase().includes(e))||T;function W(){if(typeof window=="undefined"){let o=process.env.NMP_LANGUAGE||Intl.DateTimeFormat().resolvedOptions().locale;return E(o)}try{let o=Q(document);if(o)return E(o);let e=Xe();if(e)return E(e);let r=Q(oe());return r?E(r):T}catch(o){return console.warn("could not detect locale, falling back to source locale",o),T}}var ee=(o,e,r,t,a)=>{b.load("en",o),b.load("nb",e),b.load("fi",r),b.load("da",t),b.load("sv",a);let l=W();b.activate(l),re(),$e()},Pe="warp-i18n-change";function re(){typeof window!="undefined"&&window.dispatchEvent(new Event(Pe))}var B=!1;function $e(){if(B||typeof window=="undefined"||!(document!=null&&document.documentElement))return;B=!0;let o=()=>{let a=W();b.locale!==a&&(b.activate(a),re())},e=new MutationObserver(a=>{for(let l of a)if(l.type==="attributes"&&l.attributeName==="lang"){o();break}});e.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]});let r=oe();r&&r.documentElement&&r!==document&&e.observe(r.documentElement,{attributes:!0,attributeFilter:["lang"]});let t=He();t&&e.observe(t,{attributes:!0,attributeFilter:["lang"]})}function oe(){var o,e;try{return(e=(o=window.parent)==null?void 0:o.document)!=null?e:null}catch(r){return null}}function Q(o){var e,r;try{return(r=(e=o==null?void 0:o.documentElement)==null?void 0:e.lang)!=null?r:""}catch(t){return""}}function He(){var o;try{return(o=window.frameElement)!=null?o:null}catch(e){return null}}function Xe(){var o,e,r;try{return(r=(e=(o=window.frameElement)==null?void 0:o.getAttribute)==null?void 0:e.call(o,"lang"))!=null?r:""}catch(t){return""}}import{css as te}from"lit";var ae=te`
|
|
11
11
|
*,
|
|
12
12
|
:before,
|
|
13
13
|
:after {
|
|
@@ -280,7 +280,7 @@ Please compile your catalog first.
|
|
|
280
280
|
svg {
|
|
281
281
|
pointer-events: none;
|
|
282
282
|
}
|
|
283
|
-
`,
|
|
283
|
+
`,rr=te`*, :before, :after {
|
|
284
284
|
--w-rotate: 0;
|
|
285
285
|
--w-rotate-x: 0;
|
|
286
286
|
--w-rotate-y: 0;
|
|
@@ -2446,10 +2446,10 @@ Please compile your catalog first.
|
|
|
2446
2446
|
display: none
|
|
2447
2447
|
}
|
|
2448
2448
|
}
|
|
2449
|
-
`;var
|
|
2449
|
+
`;var ne=JSON.parse('{"breadcrumbs.ariaLabel":["Du er her"]}');var ie=JSON.parse('{"breadcrumbs.ariaLabel":["You are here"]}');var se=JSON.parse('{"breadcrumbs.ariaLabel":["Olet t\xE4ss\xE4"]}');var le=JSON.parse('{"breadcrumbs.ariaLabel":["Her er du"]}');var ce=JSON.parse('{"breadcrumbs.ariaLabel":["Du \xE4r h\xE4r"]}');import{css as Ue}from"lit";var de=Ue`*,: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}.flex{display:flex}.static{position:static}.s-text{color:var(--w-s-color-text)}.s-text-link{color:var(--w-s-color-text-link)}.s-icon{color:var(--w-s-color-icon)}.space-x-8>:not([hidden])~:not([hidden]){--w-space-x-reverse:0;margin-left:calc(.8rem*calc(1 - var(--w-space-x-reverse)));margin-right:calc(.8rem*var(--w-space-x-reverse))}.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}.select-none{-webkit-user-select:none;user-select:none}`;var w={wrapper:"flex space-x-8",text:"s-text",link:"s-text-link",separator:"select-none s-icon",a11y:"sr-only"},Re=Y`<span class=${w.separator}>/</span>`,M=class extends Ze{constructor(){super(),this._internals=this.attachInternals(),ee(ie,le,se,ne,ce),this._internals.ariaLabel=b._({id:"breadcrumbs.ariaLabel",message:"You are here",comment:"Default screen reader message for the breadcrumb component"})}connectedCallback(){super.connectedCallback(),this._internals.role="navigation";let r=Array.from(this.children).flat(Number.POSITIVE_INFINITY).filter(t=>t).map((t,a)=>{if(typeof t=="string"){let l=a===this.children.length-1;return Y`<span class=${w.text} aria-current=${l?"page":void 0}>${t}</span>`}return t.classList.add(t.tagName==="A"?w.link:w.text),t});this._children=K(r,Re)}render(){return Y`
|
|
2450
2450
|
<nav aria-labelledby="breadCrumbLabel">
|
|
2451
2451
|
<h2 id="breadCrumbLabel" class=${w.a11y}>${this.ariaLabel}</h2>
|
|
2452
2452
|
<div class=${w.wrapper}>${this._children}</div>
|
|
2453
2453
|
</nav>
|
|
2454
|
-
`}};
|
|
2454
|
+
`}};M.styles=[ae,de];customElements.get("w-breadcrumbs")||customElements.define("w-breadcrumbs",M);export{M as WarpBreadcrumbs};
|
|
2455
2455
|
//# sourceMappingURL=breadcrumbs.js.map
|