@warp-ds/elements 2.5.1 → 2.6.0-next.1

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 (87) hide show
  1. package/dist/.storybook/utilities.d.ts +1 -0
  2. package/dist/.storybook/utilities.js +22 -14
  3. package/dist/custom-elements.json +2773 -2015
  4. package/dist/index.d.ts +1394 -998
  5. package/dist/packages/combobox/combobox.d.ts +5 -0
  6. package/dist/packages/combobox/combobox.js +12 -12
  7. package/dist/packages/combobox/combobox.js.map +3 -3
  8. package/dist/packages/combobox/combobox.stories.js +7 -7
  9. package/dist/packages/combobox/combobox.test.js +90 -0
  10. package/dist/packages/pagination/locales/da/messages.d.mts +1 -0
  11. package/dist/packages/pagination/locales/da/messages.mjs +1 -0
  12. package/dist/packages/pagination/locales/en/messages.d.mts +1 -0
  13. package/dist/packages/pagination/locales/en/messages.mjs +1 -0
  14. package/dist/packages/pagination/locales/fi/messages.d.mts +1 -0
  15. package/dist/packages/pagination/locales/fi/messages.mjs +1 -0
  16. package/dist/packages/pagination/locales/nb/messages.d.mts +1 -0
  17. package/dist/packages/pagination/locales/nb/messages.mjs +1 -0
  18. package/dist/packages/pagination/locales/sv/messages.d.mts +1 -0
  19. package/dist/packages/pagination/locales/sv/messages.mjs +1 -0
  20. package/dist/packages/pagination/pagination.d.ts +32 -0
  21. package/dist/packages/pagination/pagination.js +2503 -0
  22. package/dist/packages/pagination/pagination.js.map +7 -0
  23. package/dist/packages/pagination/pagination.react.stories.d.ts +21 -0
  24. package/dist/packages/pagination/pagination.react.stories.js +45 -0
  25. package/dist/packages/pagination/pagination.stories.d.ts +14 -0
  26. package/dist/packages/pagination/pagination.stories.js +56 -0
  27. package/dist/packages/pagination/pagination.test.d.ts +1 -0
  28. package/dist/packages/pagination/pagination.test.js +76 -0
  29. package/dist/packages/pagination/react.d.ts +5 -0
  30. package/dist/packages/pagination/react.js +15 -0
  31. package/dist/packages/pagination/styles.d.ts +1 -0
  32. package/dist/packages/pagination/styles.js +2 -0
  33. package/dist/packages/step/locales/da/messages.d.mts +1 -0
  34. package/dist/packages/step/locales/da/messages.mjs +1 -0
  35. package/dist/packages/step/locales/en/messages.d.mts +1 -0
  36. package/dist/packages/step/locales/en/messages.mjs +1 -0
  37. package/dist/packages/step/locales/fi/messages.d.mts +1 -0
  38. package/dist/packages/step/locales/fi/messages.mjs +1 -0
  39. package/dist/packages/step/locales/nb/messages.d.mts +1 -0
  40. package/dist/packages/step/locales/nb/messages.mjs +1 -0
  41. package/dist/packages/step/locales/sv/messages.d.mts +1 -0
  42. package/dist/packages/step/locales/sv/messages.mjs +1 -0
  43. package/dist/packages/step/react.d.ts +2 -0
  44. package/dist/packages/step/react.js +11 -0
  45. package/dist/packages/step/step.d.ts +22 -0
  46. package/dist/packages/step/step.js +2461 -0
  47. package/dist/packages/step/step.js.map +7 -0
  48. package/dist/packages/step-indicator/index.d.ts +2 -0
  49. package/dist/packages/step-indicator/index.js +2 -0
  50. package/dist/packages/step-indicator/react.d.ts +3 -0
  51. package/dist/packages/step-indicator/react.js +13 -0
  52. package/dist/packages/step-indicator/step-indicator.d.ts +14 -0
  53. package/dist/packages/step-indicator/step-indicator.js +2445 -0
  54. package/dist/packages/step-indicator/step-indicator.js.map +7 -0
  55. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +15 -0
  56. package/dist/packages/step-indicator/stepindicator.react.stories.js +112 -0
  57. package/dist/packages/step-indicator/stepindicator.stories.d.ts +13 -0
  58. package/dist/packages/step-indicator/stepindicator.stories.js +173 -0
  59. package/dist/packages/step-indicator/styles.d.ts +1 -0
  60. package/dist/packages/step-indicator/styles.js +2 -0
  61. package/dist/packages/textarea/locales/da/messages.d.mts +1 -0
  62. package/dist/packages/textarea/locales/da/messages.mjs +1 -0
  63. package/dist/packages/textarea/locales/en/messages.d.mts +1 -0
  64. package/dist/packages/textarea/locales/en/messages.mjs +1 -0
  65. package/dist/packages/textarea/locales/fi/messages.d.mts +1 -0
  66. package/dist/packages/textarea/locales/fi/messages.mjs +1 -0
  67. package/dist/packages/textarea/locales/nb/messages.d.mts +1 -0
  68. package/dist/packages/textarea/locales/nb/messages.mjs +1 -0
  69. package/dist/packages/textarea/locales/sv/messages.d.mts +1 -0
  70. package/dist/packages/textarea/locales/sv/messages.mjs +1 -0
  71. package/dist/packages/textarea/react.d.ts +11 -0
  72. package/dist/packages/textarea/react.js +21 -0
  73. package/dist/packages/textarea/styles.d.ts +1 -0
  74. package/dist/packages/textarea/styles.js +2 -0
  75. package/dist/packages/textarea/textarea.d.ts +62 -0
  76. package/dist/packages/textarea/textarea.js +2476 -0
  77. package/dist/packages/textarea/textarea.js.map +7 -0
  78. package/dist/packages/textarea/textarea.react.stories.d.ts +33 -0
  79. package/dist/packages/textarea/textarea.react.stories.js +41 -0
  80. package/dist/packages/textarea/textarea.stories.d.ts +20 -0
  81. package/dist/packages/textarea/textarea.stories.js +113 -0
  82. package/dist/packages/textarea/textarea.test.d.ts +1 -0
  83. package/dist/packages/textarea/textarea.test.js +172 -0
  84. package/dist/packages/utils.d.ts +1 -0
  85. package/dist/packages/utils.js +4 -0
  86. package/dist/web-types.json +568 -432
  87. package/package.json +18 -1
@@ -0,0 +1,76 @@
1
+ import { userEvent } from '@vitest/browser/context';
2
+ import { html } from 'lit';
3
+ import { expect, test, vi } from 'vitest';
4
+ import { render } from 'vitest-browser-lit';
5
+ import './pagination.js';
6
+ test('current page is the active page', async () => {
7
+ const component = html `<w-pagination current-page="5" pages="10" base-url="/page/"></w-pagination>`;
8
+ const page = render(component);
9
+ await expect.element(page.getByLabelText('Page 5')).toBeInTheDocument();
10
+ await expect.element(page.getByLabelText('Page 5')).toHaveAttribute('aria-current', 'page');
11
+ });
12
+ test('limits the number of displayed pages', async () => {
13
+ const component = html `<w-pagination current-page="10" pages="20" visible-pages="5" base-url="/page/"></w-pagination>`;
14
+ const page = render(component);
15
+ await expect.poll(() => page.getByRole('link').and(page.getByLabelText('Page ')).all()).toHaveLength(5);
16
+ });
17
+ test('shows link to first page if current page is page 3 or beyond', async () => {
18
+ const component = html `<w-pagination current-page="10" pages="20" base-url="/page/"></w-pagination>`;
19
+ const page = render(component);
20
+ await expect.poll(() => page.getByText('First page')).toBeInTheDocument();
21
+ });
22
+ test('does not show link to first page if current page is page 1 or 2', async () => {
23
+ for (let i = 1; i <= 2; i++) {
24
+ const component = html `<w-pagination current-page="${i}" pages="20" base-url="/page/"></w-pagination>`;
25
+ const page = render(component);
26
+ await expect.poll(() => page.getByText('First page').query()).not.toBeInTheDocument();
27
+ }
28
+ });
29
+ test('shows link to previous page if current page is page 2 or beyond', async () => {
30
+ const component = html `<w-pagination current-page="10" pages="20" base-url="/page/"></w-pagination>`;
31
+ const page = render(component);
32
+ await expect.poll(() => page.getByText('Previous page')).toBeInTheDocument();
33
+ });
34
+ test('does not show link to previous page if current page is the first page', async () => {
35
+ const component = html `<w-pagination current-page="1" pages="20" base-url="/page/"></w-pagination>`;
36
+ const page = render(component);
37
+ await expect.poll(() => page.getByText('Previous page').query()).not.toBeInTheDocument();
38
+ });
39
+ test('shows link to next page', async () => {
40
+ const component = html `<w-pagination current-page="15" pages="20" base-url="/page/"></w-pagination>`;
41
+ const page = render(component);
42
+ await expect.poll(() => page.getByText('Next page').query()).toBeInTheDocument();
43
+ });
44
+ test('does not show link to next page if current page is the last page', async () => {
45
+ const component = html `<w-pagination current-page="20" pages="20" base-url="/page/"></w-pagination>`;
46
+ const page = render(component);
47
+ await expect.poll(() => page.getByText('Next page').query()).not.toBeInTheDocument();
48
+ });
49
+ test('is able to get the correct data-page-number attribute from the element on click', async () => {
50
+ const component = html `<w-pagination current-page="15" pages="20" base-url="/page/" data-testid="pagination"></w-pagination>`;
51
+ const page = render(component);
52
+ await expect.poll(() => page.getByText('14').query()).toBeInTheDocument();
53
+ let clickedPage = null;
54
+ page
55
+ .getByTestId('pagination')
56
+ .element()
57
+ .addEventListener('click', (e) => {
58
+ e.preventDefault();
59
+ });
60
+ page
61
+ .getByTestId('pagination')
62
+ .element()
63
+ .addEventListener('page-click', (e) => {
64
+ clickedPage = e.detail.clickedPage;
65
+ });
66
+ const element = page.getByLabelText('page 14');
67
+ await userEvent.click(element);
68
+ await vi.waitFor(() => {
69
+ if (clickedPage === null) {
70
+ throw new Error('clickedPage was not set');
71
+ }
72
+ }, {
73
+ interval: 100,
74
+ });
75
+ expect(clickedPage).toEqual('14');
76
+ });
@@ -0,0 +1,5 @@
1
+ import { WarpPagination } from './pagination.js';
2
+ export declare const Pagination: import("@lit/react").ReactWebComponent<WarpPagination, {
3
+ onPageClick: string;
4
+ 'onpage-click': string;
5
+ }>;
@@ -0,0 +1,15 @@
1
+ import { createComponent } from '@lit/react';
2
+ import { LitElement } from 'lit';
3
+ import React from 'react';
4
+ // decouple from CDN by providing a dummy class
5
+ class Component extends LitElement {
6
+ }
7
+ export const Pagination = createComponent({
8
+ tagName: 'w-pagination',
9
+ elementClass: Component,
10
+ react: React,
11
+ events: {
12
+ onPageClick: 'page-click',
13
+ 'onpage-click': 'page-click',
14
+ },
15
+ });
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,2 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `*,: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}}`;
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"steps.aria.emptyCircle\":[\"Tom cirkel\"],\"steps.aria.active\":[\"Trinindikator aktiv cirkel\"],\"steps.aria.completed\":[\"Trinindikator fuldført cirkel\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"steps.aria.emptyCircle\":[\"Empty circle\"],\"steps.aria.active\":[\"Step indicator active circle\"],\"steps.aria.completed\":[\"Step indicator completed circle\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"steps.aria.emptyCircle\":[\"Tyhjä ympyrä\"],\"steps.aria.active\":[\"Vaiheilmaisin aktiivinen ympyrä\"],\"steps.aria.completed\":[\"Vaiheilmaisin valmis ympyrä\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"steps.aria.emptyCircle\":[\"Tom sirkel\"],\"steps.aria.active\":[\"Stegindikator aktiv sirkel\"],\"steps.aria.completed\":[\"Stegindikator hel sirkel\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"steps.aria.emptyCircle\":[\"Tom cirkel\"],\"steps.aria.active\":[\"Stegindikator aktiv cirkel\"],\"steps.aria.completed\":[\"Stegindikator fulländad cirkel\"]}");
@@ -0,0 +1,2 @@
1
+ import { WarpStep } from './step.js';
2
+ export declare const Step: import("@lit/react").ReactWebComponent<WarpStep, {}>;
@@ -0,0 +1,11 @@
1
+ import { createComponent } from '@lit/react';
2
+ import { LitElement } from 'lit';
3
+ import React from 'react';
4
+ // decouple from CDN by providing a dummy class
5
+ class Component extends LitElement {
6
+ }
7
+ export const Step = createComponent({
8
+ tagName: 'w-step',
9
+ elementClass: Component,
10
+ react: React,
11
+ });
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ import '@warp-ds/icons/elements/check-16';
3
+ export interface StepsContext {
4
+ horizontal?: boolean;
5
+ right?: boolean;
6
+ isLast?: boolean;
7
+ isFirst?: boolean;
8
+ }
9
+ /**
10
+ * Individual step component that shows a single step in a process
11
+ */
12
+ export declare class WarpStep extends LitElement {
13
+ active: boolean;
14
+ completed: boolean;
15
+ private _context;
16
+ static styles: import("lit").CSSResult[];
17
+ constructor();
18
+ connectedCallback(): void;
19
+ setContext(context: StepsContext): void;
20
+ getAriaLabel(): string;
21
+ render(): import("lit").TemplateResult<1>;
22
+ }