@scania/tegel 1.3.1 → 1.3.3-event-types.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 (81) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-chip.cjs.entry.js +11 -1
  3. package/dist/cjs/tds-dropdown.cjs.entry.js +9 -2
  4. package/dist/cjs/tds-popover-core.cjs.entry.js +5 -0
  5. package/dist/cjs/tegel.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +3 -3
  7. package/dist/collection/components/button/test/basic/button.e2e.js +35 -0
  8. package/dist/collection/components/button/test/danger/button.e2e.js +18 -0
  9. package/dist/collection/components/button/test/disabled/button.e2e.js +24 -0
  10. package/dist/collection/components/button/test/ghost/button.e2e.js +18 -0
  11. package/dist/collection/components/button/test/icon/button.e2e.js +38 -0
  12. package/dist/collection/components/button/test/secondary/button.e2e.js +18 -0
  13. package/dist/collection/components/chip/chip.js +12 -2
  14. package/dist/collection/components/dropdown/dropdown.css +3 -0
  15. package/dist/collection/components/dropdown/dropdown.js +28 -3
  16. package/dist/collection/components/dropdown/dropdown.stories.js +17 -1
  17. package/dist/collection/components/dropdown/test/basic/dropdown.e2e.js +41 -0
  18. package/dist/collection/components/dropdown/test/default/dropdown.e2e.js +76 -0
  19. package/dist/collection/components/dropdown/test/error/dropdown.e2e.js +36 -0
  20. package/dist/collection/components/dropdown/test/filter/dropdown.e2e.js +56 -0
  21. package/dist/collection/components/dropdown/test/filter/normalize-text-false/dropdown.e2e.js +43 -0
  22. package/dist/collection/components/dropdown/test/multiselect/dropdown.e2e.js +81 -0
  23. package/dist/collection/components/message/message.stories.js +0 -1
  24. package/dist/collection/components/message/test/error/message.e2e.js +33 -0
  25. package/dist/collection/components/message/test/information/message.e2e.js +33 -0
  26. package/dist/collection/components/message/test/success/message.e2e.js +33 -0
  27. package/dist/collection/components/message/test/warning/message.e2e.js +33 -0
  28. package/dist/collection/components/popover-core/popover-core.js +5 -0
  29. package/dist/collection/components/side-menu/side-menu.js +3 -3
  30. package/dist/collection/components/stepper/stepper.js +1 -1
  31. package/dist/collection/components/table/table/table.js +1 -1
  32. package/dist/collection/components/table/table/test/batch/table.e2e.js +24 -0
  33. package/dist/collection/components/table/table/test/default/table.e2e.js +46 -0
  34. package/dist/collection/components/table/table/test/expandable-row/table.e2e.js +64 -0
  35. package/dist/collection/components/table/table/test/filtering/table.e2e.js +41 -0
  36. package/dist/collection/components/table/table/test/multiselect/table.e2e.js +47 -0
  37. package/dist/collection/components/table/table/test/pagination/table.e2e.js +53 -0
  38. package/dist/collection/components/table/table/test/sorting/table.e2e.js +36 -0
  39. package/dist/collection/components/table/table-component-filtering.stories.js +2 -0
  40. package/dist/collection/components/table/table-component-pagination.stories.js +2 -0
  41. package/dist/collection/components/textarea/test/basic/textarea.e2e.js +26 -0
  42. package/dist/collection/components/textarea/test/default/textarea.e2e.js +34 -0
  43. package/dist/collection/components/textarea/test/read-only/textarea.e2e.js +26 -0
  44. package/dist/collection/index.js +1 -0
  45. package/dist/components/popover-core.js +5 -0
  46. package/dist/components/tds-chip.js +12 -2
  47. package/dist/components/tds-dropdown.js +10 -2
  48. package/dist/esm/loader.js +1 -1
  49. package/dist/esm/tds-chip.entry.js +11 -1
  50. package/dist/esm/tds-dropdown.entry.js +9 -2
  51. package/dist/esm/tds-popover-core.entry.js +5 -0
  52. package/dist/esm/tegel.js +1 -1
  53. package/dist/tegel/p-33dfc79a.entry.js +1 -0
  54. package/dist/tegel/{p-9e1430c5.entry.js → p-49c03547.entry.js} +1 -1
  55. package/dist/tegel/p-c1f3d3a9.entry.js +1 -0
  56. package/dist/tegel/tegel.css +2 -2
  57. package/dist/tegel/tegel.esm.js +1 -1
  58. package/dist/types/component-event-listeners-edited.d.ts +1700 -0
  59. package/dist/types/components/block/block.d.ts +11 -0
  60. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +1 -0
  61. package/dist/types/components/dropdown/dropdown.d.ts +7 -3
  62. package/dist/types/components/dropdown/dropdown.stories.d.ts +13 -0
  63. package/dist/types/components/header/header-launcher/header-launcher.d.ts +15 -0
  64. package/dist/types/components/popover-canvas/popover-canvas.d.ts +27 -0
  65. package/dist/types/components/popover-core/popover-core.d.ts +47 -0
  66. package/dist/types/components/popover-menu/popover-menu.d.ts +28 -0
  67. package/dist/types/components/side-menu/side-menu-item/side-menu-item.d.ts +24 -0
  68. package/dist/types/components/side-menu/side-menu.d.ts +45 -0
  69. package/dist/types/components/table/table-body/table-body.d.ts +24 -0
  70. package/dist/types/components/table/table-body-cell/table-body-cell.d.ts +27 -0
  71. package/dist/types/components/table/table-body-row/table-body-row.d.ts +28 -0
  72. package/dist/types/components/table/table-body-row-expandable/table-body-row-expandable.d.ts +29 -0
  73. package/dist/types/components/table/table-header/table-header.d.ts +39 -0
  74. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +56 -0
  75. package/dist/types/components/table/table-toolbar/table-toolbar.d.ts +29 -0
  76. package/dist/types/components/tooltip/tooltip.d.ts +34 -0
  77. package/dist/types/components.d.ts +9 -1
  78. package/dist/types/index.d.ts +1 -0
  79. package/package.json +4 -2
  80. package/dist/tegel/p-e5fd7377.entry.js +0 -1
  81. package/dist/tegel/p-ff006811.entry.js +0 -1
@@ -175,7 +175,7 @@ export class TdsStepper {
175
175
  "references": {
176
176
  "InternalTdsStepperPropChange": {
177
177
  "location": "local",
178
- "path": "/home/runner/work/tegel/tegel/packages/core/src/components/stepper/stepper.tsx",
178
+ "path": "/Users/johnny/dev/scania/tegel/packages/core/src/components/stepper/stepper.tsx",
179
179
  "id": "src/components/stepper/stepper.tsx::InternalTdsStepperPropChange"
180
180
  }
181
181
  }
@@ -255,7 +255,7 @@ export class TdsTable {
255
255
  "references": {
256
256
  "InternalTdsTablePropChange": {
257
257
  "location": "local",
258
- "path": "/home/runner/work/tegel/tegel/packages/core/src/components/table/table/table.tsx",
258
+ "path": "/Users/johnny/dev/scania/tegel/packages/core/src/components/table/table/table.tsx",
259
259
  "id": "src/components/table/table/table.tsx::InternalTdsTablePropChange"
260
260
  }
261
261
  }
@@ -0,0 +1,24 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/table/table/test/batch/index.html';
4
+ test.describe('tds-table-batch', () => {
5
+ test('renders batch table correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tableComponent = page.getByRole('table');
8
+ await expect(tableComponent).toHaveCount(1);
9
+ /* Check diff on screenshot */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('table has a settings button', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ const tdsTableToolbarSettings = page.getByRole('img');
15
+ await expect(tdsTableToolbarSettings).toHaveCount(1);
16
+ await expect(tdsTableToolbarSettings).toBeVisible();
17
+ });
18
+ test('table has a [Download] button', async ({ page }) => {
19
+ await page.goto(componentTestPath);
20
+ const tdsTableToolbarDownloadButton = page.getByRole('button', { name: /Download/ });
21
+ await expect(tdsTableToolbarDownloadButton).toHaveCount(1);
22
+ await expect(tdsTableToolbarDownloadButton).toBeVisible();
23
+ });
24
+ });
@@ -0,0 +1,46 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/table/table/test/default/index.html';
4
+ test.describe('tds-table-default', () => {
5
+ test('renders default table correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tableComponent = page.getByRole('table');
8
+ await expect(tableComponent).toHaveCount(1);
9
+ /** Check screenshot diff */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('table has four columns', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ const tableHeaderCells = page.locator('tds-header-cell');
15
+ await expect(tableHeaderCells).toHaveCount(4);
16
+ });
17
+ test('columns are: Truck type, Driver name, Country, Mileage', async ({ page }) => {
18
+ await page.goto(componentTestPath);
19
+ /* Expect each header to be visible */
20
+ await expect(page.getByText('Truck type')).toBeVisible();
21
+ await expect(page.getByText('Driver name')).toBeVisible();
22
+ await expect(page.getByText('Country')).toBeVisible();
23
+ await expect(page.getByText('Mileage')).toBeVisible();
24
+ });
25
+ test('Row should contain the correct number of rows with', async ({ page }) => {
26
+ await page.goto(componentTestPath);
27
+ /* Expect the number of rows to be correct amount */
28
+ const tableBodyRows = page.locator('tds-table-body-row');
29
+ await expect(tableBodyRows).toHaveCount(6);
30
+ });
31
+ test('table has the correct text inside each cell', async ({ page }) => {
32
+ await page.goto(componentTestPath);
33
+ /* Checks all rows to see that they have the correct amount of tds-body-cells with values provided */
34
+ const promises = [];
35
+ for (let i = 1; i <= 8; i++) {
36
+ const tableBodyCellHasText = page
37
+ .locator('tds-body-cell')
38
+ .filter({ hasText: `Test value ${i}` });
39
+ promises.push(expect(tableBodyCellHasText).toHaveCount(3));
40
+ promises.push(expect(tableBodyCellHasText.first()).toBeVisible());
41
+ promises.push(expect(tableBodyCellHasText.nth(1)).toBeVisible());
42
+ promises.push(expect(tableBodyCellHasText.nth(2)).toBeVisible());
43
+ }
44
+ await Promise.all(promises);
45
+ });
46
+ });
@@ -0,0 +1,64 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/table/table/test/expandable-row/index.html';
4
+ test.describe('tds-table-expandable-row', () => {
5
+ test('render expandable-row table correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tableComponent = page.getByRole('table');
8
+ await expect(tableComponent).toHaveCount(1);
9
+ /* check of diff in component screenshot */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('each row has expand checkbox', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ const tableBodyRowsExpandInput = page.getByRole('cell').getByRole('checkbox');
15
+ await expect(tableBodyRowsExpandInput).toHaveCount(3);
16
+ });
17
+ test('under first row opened expanded row with text "Hello world 1"', async ({ page }) => {
18
+ await page.goto(componentTestPath);
19
+ const tableBodyRowFirstInput = page.getByRole('cell').nth(1);
20
+ const tableBodyExpandableRowSlot = page.getByText(/Hello world 1/);
21
+ await expect(tableBodyRowFirstInput).toHaveCount(1);
22
+ await expect(tableBodyExpandableRowSlot).toHaveCount(1);
23
+ await expect(tableBodyExpandableRowSlot).toBeHidden();
24
+ await tableBodyRowFirstInput.click();
25
+ await expect(tableBodyExpandableRowSlot).toBeVisible();
26
+ /* check input screenshot diff */
27
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
28
+ });
29
+ test('under second row opened expanded row with text "Hello to you too"', async ({ page }) => {
30
+ await page.goto(componentTestPath);
31
+ const tableBodyRowSecondInput = page.getByRole('cell').nth(2);
32
+ const tableBodyExpandableRowSlot = page.getByText(/Hello to you too/);
33
+ await expect(tableBodyRowSecondInput).toHaveCount(1);
34
+ await expect(tableBodyExpandableRowSlot).toHaveCount(1);
35
+ await expect(tableBodyExpandableRowSlot).toBeHidden();
36
+ await tableBodyRowSecondInput.click();
37
+ await expect(tableBodyExpandableRowSlot).toBeVisible();
38
+ /* check input screenshot diff */
39
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
40
+ });
41
+ test('under third row opened expanded row with a button with text "Call to action"', async ({ page, }) => {
42
+ await page.goto(componentTestPath);
43
+ const tableBodyRowThirdInput = page.getByRole('cell').nth(3);
44
+ const tableBodyRowButton = page.getByText(/Call to action/);
45
+ await expect(tableBodyRowThirdInput).toHaveCount(1);
46
+ await expect(tableBodyRowButton).toHaveCount(1);
47
+ await expect(tableBodyRowButton).toBeHidden();
48
+ await tableBodyRowThirdInput.click();
49
+ await expect(tableBodyRowButton).toBeVisible();
50
+ /* check input screenshot diff */
51
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
52
+ });
53
+ test('double click on expand button in first row -> expanded row should be closed', async ({ page, }) => {
54
+ await page.goto(componentTestPath);
55
+ const tableBodyRowFirstInput = page.getByRole('cell').nth(1);
56
+ await tableBodyRowFirstInput.dblclick();
57
+ const tableBodyFirstExpandableRowSlot = page.getByText(/Hello world 1/);
58
+ const tableBodySecondExpandableRowSlot = page.getByText(/Hello to you too/);
59
+ const tableBodyThirdExpandableRowSlot = page.getByText(/Call to action/);
60
+ await expect(tableBodyFirstExpandableRowSlot).toBeHidden();
61
+ await expect(tableBodySecondExpandableRowSlot).toBeHidden();
62
+ await expect(tableBodyThirdExpandableRowSlot).toBeHidden();
63
+ });
64
+ });
@@ -0,0 +1,41 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/table/table/test/filtering/index.html';
4
+ test.describe('tds-table-filtering', () => {
5
+ test('renders filtering table correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tableComponent = page.getByRole('table');
8
+ await expect(tableComponent).toHaveCount(1);
9
+ /* Check diff of screenshot */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('table has header "Filter"', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ /* Search for header by text and see if it exists */
15
+ const tdsTableToolbarCaption = page.getByText('Filter');
16
+ await expect(tdsTableToolbarCaption).toHaveCount(1);
17
+ await expect(tdsTableToolbarCaption).toBeVisible();
18
+ });
19
+ test('search button inside the header exists', async ({ page }) => {
20
+ await page.goto(componentTestPath);
21
+ const tdsTableToolbarSearchIcon = page.getByRole('img');
22
+ await expect(tdsTableToolbarSearchIcon).toHaveCount(1);
23
+ await expect(tdsTableToolbarSearchIcon).toBeVisible();
24
+ });
25
+ test('look for textbox and click it', async ({ page }) => {
26
+ await page.goto(componentTestPath);
27
+ const tdsTableToolbarSearchInput = page.getByRole('textbox');
28
+ await tdsTableToolbarSearchInput.click();
29
+ /* Check diff of screenshot after click */
30
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
31
+ });
32
+ test('clicking on search button opens field for entering data', async ({ page }) => {
33
+ await page.goto(componentTestPath);
34
+ const tdsTableToolbarSearchInput = page.getByRole('textbox');
35
+ await expect(tdsTableToolbarSearchInput).toHaveCount(1);
36
+ await expect(tdsTableToolbarSearchInput).toBeVisible();
37
+ await tdsTableToolbarSearchInput.fill('Some test text');
38
+ /* Check diff of screenshot after filled */
39
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
40
+ });
41
+ });
@@ -0,0 +1,47 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/table/table/test/multiselect/index.html';
4
+ test.describe('tds-table-multiselect', () => {
5
+ test('renders multiselect table correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tableComponent = page.getByRole('table');
8
+ await expect(tableComponent).toHaveCount(1);
9
+ /* Check diff on screenshot for component */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('table header contains checkbox', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ const tableHeaderCheckbox = page.getByRole('checkbox').first();
15
+ await expect(tableHeaderCheckbox).toHaveCount(1);
16
+ await expect(tableHeaderCheckbox).toBeVisible();
17
+ });
18
+ test('row should contain the correct number of checkboxes in each row', async ({ page }) => {
19
+ await page.goto(componentTestPath);
20
+ const tableBodyRowCheckboxes = page.getByRole('checkbox');
21
+ await expect(tableBodyRowCheckboxes).toHaveCount(5);
22
+ /* Check if each checkbox is visible */
23
+ const promises = [];
24
+ for (let i = 0; i < 5; i++) {
25
+ promises.push(expect(tableBodyRowCheckboxes.nth(i)).toBeVisible());
26
+ }
27
+ await Promise.all(promises);
28
+ });
29
+ test('can check every checkbox in the table', async ({ page }) => {
30
+ await page.goto(componentTestPath);
31
+ const tableCheckboxes = page.getByRole('cell');
32
+ await expect(tableCheckboxes).toHaveCount(5);
33
+ const myEventSpyAll = await page.spyOnEvent('tdsSelectAll');
34
+ const myEventSpy = await page.spyOnEvent('tdsSelect');
35
+ /* Click each one */
36
+ await tableCheckboxes.first().click();
37
+ await tableCheckboxes.nth(1).click();
38
+ await tableCheckboxes.nth(2).click();
39
+ await tableCheckboxes.nth(3).click();
40
+ await tableCheckboxes.last().click();
41
+ /* check so correct events have been called */
42
+ expect(myEventSpyAll).toHaveReceivedEventTimes(1);
43
+ expect(myEventSpy).toHaveReceivedEventTimes(4);
44
+ /* Check diff on screenshot for component */
45
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
46
+ });
47
+ });
@@ -0,0 +1,53 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/table/table/test/pagination/index.html';
4
+ test.describe('tds-table-pagination', () => {
5
+ test('renders pagination table correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tableComponent = page.getByRole('table');
8
+ await expect(tableComponent).toHaveCount(1);
9
+ /* Check screenshots for diffs */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('table has a footer', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ const tableFooter = page.locator('tds-table-footer');
15
+ await expect(tableFooter).toHaveCount(1);
16
+ });
17
+ test('footer has field for number of page, value = 1', async ({ page }) => {
18
+ await page.goto(componentTestPath);
19
+ const tableFooterPaginationSpinbutton = page.getByRole('spinbutton');
20
+ await expect(tableFooterPaginationSpinbutton).toHaveCount(1);
21
+ await expect(tableFooterPaginationSpinbutton).toBeVisible();
22
+ await expect(tableFooterPaginationSpinbutton).toHaveValue('1');
23
+ });
24
+ test('footer contains text "of 4 pages"', async ({ page }) => {
25
+ await page.goto(componentTestPath);
26
+ const tableFooterOfPagesText = page.getByText(/of 4 pages/);
27
+ await expect(tableFooterOfPagesText).toHaveCount(1);
28
+ await expect(tableFooterOfPagesText).toBeVisible();
29
+ });
30
+ test('Footer contains left chevron button, it is disabled', async ({ page }) => {
31
+ await page.goto(componentTestPath);
32
+ const tableFooterLeftChevronButton = page.getByRole('button').first();
33
+ await expect(tableFooterLeftChevronButton).toBeVisible();
34
+ await expect(tableFooterLeftChevronButton).toHaveAttribute('disabled');
35
+ });
36
+ test('Footer contains right chevron button, it is not disabled', async ({ page }) => {
37
+ await page.goto(componentTestPath);
38
+ const tableFooterRightChevronButton = page.getByRole('button').last();
39
+ await expect(tableFooterRightChevronButton).toBeVisible();
40
+ await expect(tableFooterRightChevronButton).not.toHaveAttribute('disabled');
41
+ });
42
+ test('footer contains buttons that are clickable and change value in input', async ({ page }) => {
43
+ await page.goto(componentTestPath);
44
+ const tableFooterPaginationSpinbutton = page.getByRole('spinbutton');
45
+ await expect(tableFooterPaginationSpinbutton).toHaveValue('1');
46
+ const tableFooterRightChevronButton = page.getByRole('button').last();
47
+ await tableFooterRightChevronButton.click();
48
+ await expect(tableFooterPaginationSpinbutton).toHaveValue('2');
49
+ const tableFooterLeftChevronButton = page.getByRole('button').first();
50
+ await tableFooterLeftChevronButton.click();
51
+ await expect(tableFooterPaginationSpinbutton).toHaveValue('1');
52
+ });
53
+ });
@@ -0,0 +1,36 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/table/table/test/sorting/index.html';
4
+ test.describe('tds-table-sorting', () => {
5
+ test('renders sorting table correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tableComponent = page.getByRole('table');
8
+ await expect(tableComponent).toHaveCount(1);
9
+ /* Check for diffs in screenshot */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('table has header "Sorting"', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ /* Search for header by text and see if it exists */
15
+ const tdsTableToolbarCaption = page.getByText('Sorting');
16
+ await expect(tdsTableToolbarCaption).toHaveCount(1);
17
+ await expect(tdsTableToolbarCaption).toBeVisible();
18
+ });
19
+ test('column headers are clickable', async ({ page }) => {
20
+ await page.goto(componentTestPath);
21
+ const myEventSpy = await page.spyOnEvent('tdsSort');
22
+ const truckTypeHeader = page.getByText('Truck type');
23
+ await truckTypeHeader.click();
24
+ expect(myEventSpy).toHaveReceivedEventTimes(1);
25
+ const driverNameHeader = page.getByText('Driver name');
26
+ await driverNameHeader.click();
27
+ expect(myEventSpy).toHaveReceivedEventTimes(2);
28
+ const countryHeader = page.getByText('Country');
29
+ await countryHeader.click();
30
+ expect(myEventSpy).toHaveReceivedEventTimes(3);
31
+ const mileageHeader = page.getByText('Mileage');
32
+ await mileageHeader.click();
33
+ expect(myEventSpy).toHaveReceivedEventTimes(4);
34
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
35
+ });
36
+ });
@@ -133,6 +133,7 @@ const FilteringTemplate = ({ modeVariant, compactDesign, responsiveDesign, verti
133
133
  <tds-header-cell cell-key='country' cell-value='Country' ${column3Width ? `custom-width="${column3Width}"` : ''}></tds-header-cell>
134
134
  <tds-header-cell cell-key='mileage' cell-value='Mileage' text-align='right' ${column4Width ? `custom-width="${column4Width}"` : ''}></tds-header-cell>
135
135
  </tds-table-header>
136
+ <tds-table-body>
136
137
  <tds-table-body-row>
137
138
  <tds-body-cell cell-value="Test value 1" cell-key="truck"></tds-body-cell>
138
139
  <tds-body-cell cell-value="Test value 2" cell-key="driver"></tds-body-cell>
@@ -169,6 +170,7 @@ const FilteringTemplate = ({ modeVariant, compactDesign, responsiveDesign, verti
169
170
  <tds-body-cell cell-value="Test value 7" cell-key="country"></tds-body-cell>
170
171
  <tds-body-cell cell-value="Test value 8" cell-key="mileage"></tds-body-cell>
171
172
  </tds-table-body-row>
173
+ </tds-table-body>
172
174
  <tds-table-footer>
173
175
  </tds-table-footer>
174
176
  </tds-table>
@@ -133,6 +133,7 @@ const PaginationTemplate = ({ modeVariant, compactDesign, responsiveDesign, vert
133
133
  <tds-header-cell cell-key='country' cell-value='Country' ${column3Width ? `custom-width="${column3Width}"` : ''}></tds-header-cell>
134
134
  <tds-header-cell cell-key='mileage' cell-value='Mileage' text-align='right' ${column4Width ? `custom-width="${column4Width}"` : ''}></tds-header-cell>
135
135
  </tds-table-header>
136
+ <tds-table-body>
136
137
  <tds-table-body-row>
137
138
  <tds-body-cell cell-value="Test value 1" cell-key="truck"></tds-body-cell>
138
139
  <tds-body-cell cell-value="Test value 2" cell-key="driver"></tds-body-cell>
@@ -169,6 +170,7 @@ const PaginationTemplate = ({ modeVariant, compactDesign, responsiveDesign, vert
169
170
  <tds-body-cell cell-value="Test value 7" cell-key="country"></tds-body-cell>
170
171
  <tds-body-cell cell-value="Test value 8" cell-key="mileage"></tds-body-cell>
171
172
  </tds-table-body-row>
173
+ </tds-table-body>
172
174
  <tds-table-footer pages="4" pagination></tds-table-footer>
173
175
  </tds-table>
174
176
  <!-- Note: Code below is just for demo purposes -->
@@ -0,0 +1,26 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/textarea/test/basic/index.html';
4
+ test.describe('tds-textarea', () => {
5
+ test('renders default textarea correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tdsTextarea = page.getByTestId('tds-textarea-testid');
8
+ await expect(tdsTextarea).toHaveCount(1);
9
+ /* Expect no difference in screenshot */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('test if able to type in textarea', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ const textarea = page.getByRole('textbox');
15
+ /* Expect to have received an event from clicking on the textarea */
16
+ const myEventSpy = await page.spyOnEvent('click');
17
+ await textarea.click();
18
+ expect(myEventSpy).toHaveReceivedEvent();
19
+ /* Expect the textbox to have the cursor text style */
20
+ const textareaCursorState = await textarea.evaluate((style) => getComputedStyle(style).cursor);
21
+ expect(textareaCursorState).toBe('text');
22
+ /* Expect the inputValue of textarea to have "Adding some text" after it has been typed */
23
+ await textarea.fill('Adding some text');
24
+ expect(await textarea.inputValue()).toBe('Adding some text');
25
+ });
26
+ });
@@ -0,0 +1,34 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/textarea/test/default/index.html';
4
+ test.describe('tds-textarea-default', () => {
5
+ test('renders default textarea correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tdsTextarea = page.getByTestId('tds-textarea-testid');
8
+ await expect(tdsTextarea).toHaveCount(1);
9
+ /* Expect no difference in screenshot */
10
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
+ });
12
+ test('test if able to type in textarea', async ({ page }) => {
13
+ await page.goto(componentTestPath);
14
+ const textarea = page.getByRole('textbox');
15
+ /* Expect to have received an event from clicking on the textarea */
16
+ const myEventSpy = await page.spyOnEvent('click');
17
+ await textarea.click();
18
+ expect(myEventSpy).toHaveReceivedEvent();
19
+ /* Expect the textbox to have the cursor text style */
20
+ const textareaCursorState = await textarea.evaluate((style) => getComputedStyle(style).cursor);
21
+ expect(textareaCursorState).toBe('text');
22
+ /* Expect the inputValue of textarea to have "Adding some text" after it has been typed */
23
+ await textarea.fill('Adding some text');
24
+ expect(await textarea.inputValue()).toBe('Adding some text');
25
+ /* Expect no difference in screenshot */
26
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
27
+ });
28
+ test('not able to find label if "no-label" is set', async ({ page }) => {
29
+ await page.goto(componentTestPath);
30
+ const textareaLabel = page.getByText('Label');
31
+ await expect(textareaLabel).toHaveCount(0);
32
+ await expect(textareaLabel).toBeHidden();
33
+ });
34
+ });
@@ -0,0 +1,26 @@
1
+ import { test } from "stencil-playwright";
2
+ import { expect } from "@playwright/test";
3
+ const componentTestPath = 'src/components/textarea/test/read-only/index.html';
4
+ test.describe('tds-textarea-read-only', () => {
5
+ test('renders read-only textarea correctly', async ({ page }) => {
6
+ await page.goto(componentTestPath);
7
+ const tdsTextarea = page.getByTestId('tds-textarea-testid');
8
+ await expect(tdsTextarea).toHaveCount(1);
9
+ /* Expect the tds-textarea to have the read-only attribute */
10
+ await expect(tdsTextarea).toHaveAttribute('read-only');
11
+ /* Expect no diff on screenshot */
12
+ await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
13
+ });
14
+ test('read-only textarea - native textarea should have readonly attribute', async ({ page }) => {
15
+ await page.goto(componentTestPath);
16
+ const textarea = page.getByRole('textbox');
17
+ /* Expect the textarea within tds-textarea to have the readonly attribute */
18
+ await expect(textarea).toHaveAttribute('readonly');
19
+ });
20
+ test('be able to find label if "outside" is set', async ({ page }) => {
21
+ await page.goto(componentTestPath);
22
+ const textareaLabel = page.getByText('Label');
23
+ await expect(textareaLabel).toHaveCount(1);
24
+ await expect(textareaLabel).toBeVisible();
25
+ });
26
+ });
@@ -1 +1,2 @@
1
1
  export * from './components';
2
+ export * from './component-event-listeners-edited';
@@ -1846,6 +1846,11 @@ const TdsPopoverCore = /*@__PURE__*/ proxyCustomElement(class TdsPopoverCore ext
1846
1846
  }
1847
1847
  }
1848
1848
  }
1849
+ /* To enable initial loading of a component if user controls show prop*/
1850
+ componentWillLoad() {
1851
+ this.setIsShown(this.show);
1852
+ }
1853
+ /* To observe any change of show prop after an initial load */
1849
1854
  onShowChange(newValue) {
1850
1855
  this.setIsShown(newValue);
1851
1856
  }
@@ -11,7 +11,17 @@ const TdsChip$1 = /*@__PURE__*/ proxyCustomElement(class TdsChip extends HTMLEle
11
11
  this.tdsChange = createEvent(this, "tdsChange", 6);
12
12
  this.tdsClick = createEvent(this, "tdsClick", 6);
13
13
  this.handleChange = () => {
14
- this.checked = !this.checked;
14
+ if (this.type === 'checkbox') {
15
+ // Toggle the prop on click
16
+ this.checked = !this.checked;
17
+ }
18
+ else if (this.type === 'radio') {
19
+ // Always set it to true to enforce visual update for selected state
20
+ this.checked = true;
21
+ }
22
+ else {
23
+ console.error('Unsupported type in Chip component!');
24
+ }
15
25
  this.tdsChange.emit({
16
26
  chipId: this.chipId,
17
27
  checked: this.checked,
@@ -62,7 +72,7 @@ const TdsChip$1 = /*@__PURE__*/ proxyCustomElement(class TdsChip extends HTMLEle
62
72
  "type": [1],
63
73
  "size": [1],
64
74
  "chipId": [1, "chip-id"],
65
- "checked": [516],
75
+ "checked": [1540],
66
76
  "name": [1],
67
77
  "value": [1]
68
78
  }]);
@@ -59,7 +59,7 @@ const appendHiddenInput = (element, name, value, disabled, additionalAttributes)
59
59
  input.value = value || '';
60
60
  };
61
61
 
62
- const dropdownCss = ":host button{all:unset;height:100%;width:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);border-radius:4px 4px 0 0}:host button:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host button .value-wrapper{padding:0 16px;display:flex;align-items:center;justify-content:space-between}:host button.placeholder{color:var(--tds-dropdown-placeholder-color);line-height:1.3}:host button.value{color:var(--tds-dropdown-value-color);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);line-height:1.3}:host button:focus{border-bottom-color:var(--tds-dropdown-border-bottom-open)}:host button:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--tds-dropdown-border-bottom-open)}:host button.error{border-bottom:1px solid var(--tds-negative)}:host button.error:focus{border-bottom-color:transparent}:host button.error:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host button:disabled{color:var(--tds-dropdown-disabled-color);border-bottom:1px solid transparent}:host .filter{display:flex;align-items:center;justify-content:space-between;height:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);padding-left:16px;border-radius:4px 4px 0 0}:host .filter:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host .filter.disabled{color:var(--tds-dropdown-disabled-color)}:host .filter .value-wrapper{display:flex;width:100%;height:100%}:host .filter .label-inside-as-placeholder{position:absolute;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);color:var(--tds-dropdown-placeholder-color)}:host .filter .label-inside-as-placeholder.lg{top:20px}:host .filter .label-inside-as-placeholder.md{top:16px}:host .filter .label-inside-as-placeholder.sm{display:none}:host .filter .label-inside-as-placeholder.selected{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .filter .label-inside-as-placeholder.selected.lg{top:12px}:host .filter .label-inside-as-placeholder.selected.md{top:8px}:host .filter .label-inside-as-placeholder.selected.sm{display:none}:host .filter .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .filter.focus{border-bottom-color:transparent}:host .filter.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-dropdown-border-bottom-open)}:host .filter.error{border-bottom:1px solid var(--tds-negative)}:host .filter.error.focus{border-bottom-color:transparent}:host .filter.error.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host .filter input{flex:1;all:unset;width:100%}:host .filter input::placeholder{color:var(--tds-dropdown-placeholder-color)}:host .filter input:disabled::placeholder{color:var(--tds-dropdown-disabled-color)}:host .filter tds-icon{margin-right:16px}:host{display:block;position:relative;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls)}:host .label-outside{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);color:var(--tds-dropdown-label-color);margin-bottom:8px}:host .label-outside.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select{position:relative}:host .dropdown-select.disabled .label-inside,:host .dropdown-select.disabled .placeholder,:host .dropdown-select.disabled .label-inside-as-placeholder,:host .dropdown-select.disabled .value-wrapper{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select .label-inside{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);color:var(--tds-dropdown-label-inside-color)}:host .dropdown-select .label-inside.lg{top:12px;left:16px}:host .dropdown-select .label-inside.md{top:8px;left:16px}:host .dropdown-select .label-inside.sm{display:none}:host .dropdown-select .label-inside+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select .placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .dropdown-select .label-inside-as-placeholder{color:var(--tds-dropdown-placeholder-color)}:host .dropdown-select .label-inside-as-placeholder.selected{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .dropdown-select .label-inside-as-placeholder.selected.lg{top:12px}:host .dropdown-select .label-inside-as-placeholder.selected.md{top:8px}:host .dropdown-select .label-inside-as-placeholder.selected.sm{display:none}:host .dropdown-select .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select.lg{height:55px}:host .dropdown-select.md{height:47px}:host .dropdown-select.sm{height:39px}:host .helper{margin-top:4px;color:var(--tds-dropdown-helper-color);font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:flex;align-items:center;gap:8px}:host .helper.error{color:var(--tds-negative)}:host .helper.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-list{z-index:100;position:absolute;margin-top:1px;width:100%;transform-origin:top;transition:transform 0.2s ease-in-out;box-shadow:rgba(0, 0, 0, 0.1) 0 2px 3px 0;border-radius:0 0 4px 4px;overflow-y:auto}:host .dropdown-list::-webkit-scrollbar{width:4px;background-color:inherit}:host .dropdown-list::-webkit-scrollbar-thumb{background-color:var(--tds-grey-300)}:host .dropdown-list ::-webkit-scrollbar-button{height:0;width:0}:host .dropdown-list.lg{max-height:312px}:host .dropdown-list.md{max-height:312px}:host .dropdown-list.sm{max-height:260px}:host .dropdown-list.up{bottom:100%;margin-top:0;margin-bottom:1px;transform-origin:bottom;display:flex;flex-direction:column-reverse;box-shadow:rgba(0, 0, 0, 0.1) 0 -1px 3px 0;border-radius:4px 4px 0 0}:host .dropdown-list.up.label-outside{bottom:calc(100% - 24px)}:host .dropdown-list.closed{transform:scaleY(0);visibility:hidden}:host .dropdown-list.open{transform:scaleY(1)}:host .dropdown-list .no-result{font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);display:flex;align-items:center;padding:0 16px;background-color:var(--tds-dropdown-bg)}:host .dropdown-list .no-result.lg{height:56px}:host .dropdown-list .no-result.md{height:48px}:host .dropdown-list .no-result.sm{height:40px}:host tds-icon{transition:transform 0.2s ease-in-out}:host tds-icon.open{transform:rotateZ(180deg)}";
62
+ const dropdownCss = "@charset \"UTF-8\";:host button{all:unset;height:100%;width:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);border-radius:4px 4px 0 0}:host button:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host button .value-wrapper{padding:0 16px;display:flex;align-items:center;justify-content:space-between}:host button.placeholder{color:var(--tds-dropdown-placeholder-color);line-height:1.3}:host button.value{color:var(--tds-dropdown-value-color);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);line-height:1.3}:host button:focus{border-bottom-color:var(--tds-dropdown-border-bottom-open)}:host button:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--tds-dropdown-border-bottom-open)}:host button.error{border-bottom:1px solid var(--tds-negative)}:host button.error:focus{border-bottom-color:transparent}:host button.error:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host button:disabled{color:var(--tds-dropdown-disabled-color);border-bottom:1px solid transparent}:host .filter{display:flex;align-items:center;justify-content:space-between;height:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);padding-left:16px;border-radius:4px 4px 0 0}:host .filter:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host .filter.disabled{color:var(--tds-dropdown-disabled-color)}:host .filter .value-wrapper{display:flex;width:100%;height:100%}:host .filter .label-inside-as-placeholder{position:absolute;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);line-height:1.3;color:var(--tds-dropdown-placeholder-color)}:host .filter .label-inside-as-placeholder.lg{top:20px}:host .filter .label-inside-as-placeholder.md{top:16px}:host .filter .label-inside-as-placeholder.sm{display:none}:host .filter .label-inside-as-placeholder.selected{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .filter .label-inside-as-placeholder.selected.lg{top:12px}:host .filter .label-inside-as-placeholder.selected.md{top:8px}:host .filter .label-inside-as-placeholder.selected.sm{display:none}:host .filter .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .filter.focus{border-bottom-color:transparent}:host .filter.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-dropdown-border-bottom-open)}:host .filter.error{border-bottom:1px solid var(--tds-negative)}:host .filter.error.focus{border-bottom-color:transparent}:host .filter.error.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host .filter input{flex:1;all:unset;width:100%}:host .filter input::placeholder{color:var(--tds-dropdown-placeholder-color)}:host .filter input:disabled::placeholder{color:var(--tds-dropdown-disabled-color)}:host .filter tds-icon{margin-right:16px}:host{display:block;position:relative;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls)}:host .label-outside{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);color:var(--tds-dropdown-label-color);margin-bottom:8px}:host .label-outside.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select{position:relative}:host .dropdown-select.disabled .label-inside,:host .dropdown-select.disabled .placeholder,:host .dropdown-select.disabled .label-inside-as-placeholder,:host .dropdown-select.disabled .value-wrapper{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select .label-inside{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);color:var(--tds-dropdown-label-inside-color)}:host .dropdown-select .label-inside.lg{top:12px;left:16px}:host .dropdown-select .label-inside.md{top:8px;left:16px}:host .dropdown-select .label-inside.sm{display:none}:host .dropdown-select .label-inside+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select .placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .dropdown-select .label-inside-as-placeholder{color:var(--tds-dropdown-placeholder-color)}:host .dropdown-select .label-inside-as-placeholder.selected{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .dropdown-select .label-inside-as-placeholder.selected.lg{top:12px}:host .dropdown-select .label-inside-as-placeholder.selected.md{top:8px}:host .dropdown-select .label-inside-as-placeholder.selected.sm{display:none}:host .dropdown-select .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select.lg{height:55px}:host .dropdown-select.md{height:47px}:host .dropdown-select.sm{height:39px}:host .helper{margin-top:4px;color:var(--tds-dropdown-helper-color);font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:flex;align-items:center;gap:8px}:host .helper.error{color:var(--tds-negative)}:host .helper.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-list{z-index:100;position:absolute;margin-top:1px;width:100%;transform-origin:top;transition:transform 0.2s ease-in-out;box-shadow:rgba(0, 0, 0, 0.1) 0 2px 3px 0;border-radius:0 0 4px 4px;overflow-y:auto}:host .dropdown-list::-webkit-scrollbar{width:4px;background-color:inherit}:host .dropdown-list::-webkit-scrollbar-thumb{background-color:var(--tds-grey-300)}:host .dropdown-list ::-webkit-scrollbar-button{height:0;width:0}:host .dropdown-list.lg{max-height:312px}:host .dropdown-list.md{max-height:312px}:host .dropdown-list.sm{max-height:260px}:host .dropdown-list.up{bottom:100%;margin-top:0;margin-bottom:1px;transform-origin:bottom;display:flex;flex-direction:column-reverse;box-shadow:rgba(0, 0, 0, 0.1) 0 -1px 3px 0;border-radius:4px 4px 0 0}:host .dropdown-list.up.label-outside{bottom:calc(100% - 24px)}:host .dropdown-list.closed{transform:scaleY(0);visibility:hidden}:host .dropdown-list.open{transform:scaleY(1)}:host .dropdown-list .no-result{font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);display:flex;align-items:center;padding:0 16px;background-color:var(--tds-dropdown-bg)}:host .dropdown-list .no-result.lg{height:56px}:host .dropdown-list .no-result.md{height:48px}:host .dropdown-list .no-result.sm{height:40px}:host tds-icon{transition:transform 0.2s ease-in-out}:host tds-icon.open{transform:rotateZ(180deg)}";
63
63
 
64
64
  const TdsDropdown$1 = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends HTMLElement {
65
65
  constructor() {
@@ -149,7 +149,9 @@ const TdsDropdown$1 = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends
149
149
  }
150
150
  else {
151
151
  this.filterResult = children.filter((element) => {
152
- if (!element.textContent.toLowerCase().includes(query.toLowerCase())) {
152
+ if (!this.normalizeString(element.textContent)
153
+ .toLowerCase()
154
+ .includes(this.normalizeString(query).toLowerCase())) {
153
155
  element.setAttribute('hidden', '');
154
156
  }
155
157
  else {
@@ -184,6 +186,7 @@ const TdsDropdown$1 = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends
184
186
  this.error = false;
185
187
  this.multiselect = false;
186
188
  this.filter = false;
189
+ this.normalizeText = true;
187
190
  this.noResultText = 'No result';
188
191
  this.defaultValue = undefined;
189
192
  this.open = false;
@@ -333,6 +336,10 @@ const TdsDropdown$1 = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends
333
336
  this.setDefaultOption();
334
337
  }
335
338
  }
339
+ /** Method to check if we should normalize text */
340
+ normalizeString(text) {
341
+ return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
342
+ }
336
343
  /** Method that resets the dropdown without emitting an event. */
337
344
  internalReset() {
338
345
  this.getChildren().forEach((element) => {
@@ -426,6 +433,7 @@ const TdsDropdown$1 = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends
426
433
  "error": [4],
427
434
  "multiselect": [4],
428
435
  "filter": [4],
436
+ "normalizeText": [4, "normalize-text"],
429
437
  "noResultText": [1, "no-result-text"],
430
438
  "defaultValue": [1, "default-value"],
431
439
  "open": [32],