@scania/tegel 1.4.0 → 1.5.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 (218) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-dropdown.cjs.entry.js +17 -13
  3. package/dist/cjs/tds-header-cell.cjs.entry.js +2 -2
  4. package/dist/cjs/tds-icon.cjs.entry.js +3 -2
  5. package/dist/cjs/tds-modal.cjs.entry.js +1 -1
  6. package/dist/cjs/tegel.cjs.js +1 -1
  7. package/dist/collection/components/dropdown/dropdown.css +1 -0
  8. package/dist/collection/components/dropdown/dropdown.js +16 -12
  9. package/dist/collection/components/icon/icon.js +23 -5
  10. package/dist/collection/components/modal/modal.css +1 -1
  11. package/dist/collection/components/table/table-header-cell/table-header-cell.js +13 -10
  12. package/dist/components/icon.js +4 -2
  13. package/dist/components/tds-dropdown.js +17 -13
  14. package/dist/components/tds-header-cell.js +2 -2
  15. package/dist/components/tds-modal.js +1 -1
  16. package/dist/esm/loader.js +1 -1
  17. package/dist/esm/tds-dropdown.entry.js +17 -13
  18. package/dist/esm/tds-header-cell.entry.js +2 -2
  19. package/dist/esm/tds-icon.entry.js +3 -2
  20. package/dist/esm/tds-modal.entry.js +1 -1
  21. package/dist/esm/tegel.js +1 -1
  22. package/dist/tegel/p-15f8ac46.entry.js +1 -0
  23. package/dist/tegel/p-3b597a64.entry.js +1 -0
  24. package/dist/tegel/{p-6dc8f2dd.entry.js → p-78853c02.entry.js} +1 -1
  25. package/dist/tegel/p-7d93c35b.entry.js +1 -0
  26. package/dist/tegel/tegel.esm.js +1 -1
  27. package/dist/types/components/dropdown/dropdown.d.ts +2 -0
  28. package/dist/types/components/icon/icon.d.ts +6 -3
  29. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +14 -8
  30. package/dist/types/components.d.ts +20 -12
  31. package/package.json +1 -1
  32. package/dist/collection/components/accordion/accordion.stories.js +0 -100
  33. package/dist/collection/components/accordion/test/basic/accordion.e2e.js +0 -19
  34. package/dist/collection/components/accordion/test/disabled/accordion.e2e.js +0 -19
  35. package/dist/collection/components/accordion/test/expanded/accordion.e2e.js +0 -24
  36. package/dist/collection/components/accordion/test/padding-reset/accordion.e2e.js +0 -24
  37. package/dist/collection/components/badge/badge.stories.js +0 -106
  38. package/dist/collection/components/badge/test/basic/badge.e2e.js +0 -10
  39. package/dist/collection/components/badge/test/value/badge.e2e.js +0 -11
  40. package/dist/collection/components/banner/banner.stories.js +0 -92
  41. package/dist/collection/components/banner/test/basic/banner.e2e.js +0 -15
  42. package/dist/collection/components/banner/test/default/banner.e2e.js +0 -37
  43. package/dist/collection/components/banner/test/error/banner.e2e.js +0 -15
  44. package/dist/collection/components/banner/test/information/banner.e2e.js +0 -15
  45. package/dist/collection/components/block/block.stories.js +0 -49
  46. package/dist/collection/components/breadcrumbs/breadcrumbs.stories.js +0 -36
  47. package/dist/collection/components/breadcrumbs/test/default/breadcrumbs.e2e.js +0 -33
  48. package/dist/collection/components/button/button.stories.js +0 -185
  49. package/dist/collection/components/button/test/basic/button.e2e.js +0 -35
  50. package/dist/collection/components/button/test/danger/button.e2e.js +0 -18
  51. package/dist/collection/components/button/test/disabled/button.e2e.js +0 -24
  52. package/dist/collection/components/button/test/ghost/button.e2e.js +0 -18
  53. package/dist/collection/components/button/test/icon/button.e2e.js +0 -38
  54. package/dist/collection/components/button/test/secondary/button.e2e.js +0 -18
  55. package/dist/collection/components/card/card.stories.js +0 -163
  56. package/dist/collection/components/card/test/basic/card.e2e.js +0 -10
  57. package/dist/collection/components/card/test/clickable/card.e2e.js +0 -21
  58. package/dist/collection/components/card/test/default/card.e2e.js +0 -33
  59. package/dist/collection/components/checkbox/checkbox.stories.js +0 -93
  60. package/dist/collection/components/chip/chip.stories.js +0 -230
  61. package/dist/collection/components/datetime/datetime.stories.js +0 -219
  62. package/dist/collection/components/divider/divider.stories.js +0 -62
  63. package/dist/collection/components/dropdown/dropdown.stories.js +0 -260
  64. package/dist/collection/components/dropdown/test/basic/dropdown.e2e.js +0 -41
  65. package/dist/collection/components/dropdown/test/default/dropdown.e2e.js +0 -76
  66. package/dist/collection/components/dropdown/test/error/dropdown.e2e.js +0 -36
  67. package/dist/collection/components/dropdown/test/filter/dropdown.e2e.js +0 -56
  68. package/dist/collection/components/dropdown/test/filter/hide-no-result-message/dropdown.e2e.js +0 -23
  69. package/dist/collection/components/dropdown/test/filter/normalize-text-false/dropdown.e2e.js +0 -43
  70. package/dist/collection/components/dropdown/test/multiselect/dropdown.e2e.js +0 -81
  71. package/dist/collection/components/footer/footer.stories.js +0 -145
  72. package/dist/collection/components/footer/test/default/footer.e2e.js +0 -34
  73. package/dist/collection/components/header/header.stories.js +0 -82
  74. package/dist/collection/components/header/test/default/header.e2e.js +0 -44
  75. package/dist/collection/components/icon/icon.stories.js +0 -48
  76. package/dist/collection/components/link/link.stories.js +0 -59
  77. package/dist/collection/components/message/message.stories.js +0 -109
  78. package/dist/collection/components/message/test/basic/message.e2e.js +0 -16
  79. package/dist/collection/components/message/test/error/message.e2e.js +0 -28
  80. package/dist/collection/components/message/test/information/message.e2e.js +0 -10
  81. package/dist/collection/components/message/test/success/message.e2e.js +0 -10
  82. package/dist/collection/components/message/test/warning/message.e2e.js +0 -10
  83. package/dist/collection/components/modal/modal.stories.js +0 -119
  84. package/dist/collection/components/modal/test/default/modal.e2e.js +0 -28
  85. package/dist/collection/components/modal/test/open-close/modal.e2e.js +0 -63
  86. package/dist/collection/components/modal/test/prevent-true/modal.e2e.js +0 -13
  87. package/dist/collection/components/popover-canvas/popover-canvas.stories.js +0 -92
  88. package/dist/collection/components/popover-canvas/test/default/popover-canvas.e2e.js +0 -30
  89. package/dist/collection/components/popover-canvas/test/show-false/popover-canvas.e2e.js +0 -30
  90. package/dist/collection/components/popover-canvas/test/show-true/popover-canvas.e2e.js +0 -30
  91. package/dist/collection/components/popover-menu/popover-menu.stories.js +0 -146
  92. package/dist/collection/components/popover-menu/test/default/popover-menu.e2e.js +0 -60
  93. package/dist/collection/components/popover-menu/test/icons-fluid/popover-menu.e2e.js +0 -27
  94. package/dist/collection/components/popover-menu/test/show/popover-menu.e2e.js +0 -20
  95. package/dist/collection/components/popover-menu/test/show-false/popover-menu.e2e.js +0 -20
  96. package/dist/collection/components/radio-button/radio-button.stories.js +0 -91
  97. package/dist/collection/components/side-menu/side-menu.stories.js +0 -224
  98. package/dist/collection/components/side-menu/test/collapsible/side-menu.e2e.js +0 -28
  99. package/dist/collection/components/side-menu/test/default/side-menu.e2e.js +0 -38
  100. package/dist/collection/components/slider/slider.stories.js +0 -243
  101. package/dist/collection/components/spinner/spinner.stories.js +0 -61
  102. package/dist/collection/components/stepper/stepper.stories.js +0 -95
  103. package/dist/collection/components/table/table/test/batch/table.e2e.js +0 -24
  104. package/dist/collection/components/table/table/test/default/table.e2e.js +0 -46
  105. package/dist/collection/components/table/table/test/expandable-row/table.e2e.js +0 -64
  106. package/dist/collection/components/table/table/test/filtering/table.e2e.js +0 -41
  107. package/dist/collection/components/table/table/test/multiselect/table.e2e.js +0 -47
  108. package/dist/collection/components/table/table/test/pagination/table.e2e.js +0 -53
  109. package/dist/collection/components/table/table/test/sorting/table.e2e.js +0 -36
  110. package/dist/collection/components/table/table-component-basic.stories.js +0 -184
  111. package/dist/collection/components/table/table-component-batch-actions.stories.js +0 -188
  112. package/dist/collection/components/table/table-component-custom-width.stories.js +0 -174
  113. package/dist/collection/components/table/table-component-expandable-rows.stories.js +0 -160
  114. package/dist/collection/components/table/table-component-filtering.stories.js +0 -195
  115. package/dist/collection/components/table/table-component-multiselect.stories.js +0 -211
  116. package/dist/collection/components/table/table-component-pagination.stories.js +0 -196
  117. package/dist/collection/components/table/table-component-sorting.stories.js +0 -240
  118. package/dist/collection/components/tabs/folder-tabs/folder-tabs.stories.js +0 -105
  119. package/dist/collection/components/tabs/inline-tabs/inline-tabs.stories.js +0 -99
  120. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.stories.js +0 -101
  121. package/dist/collection/components/text-field/text-field.stories.js +0 -247
  122. package/dist/collection/components/textarea/test/basic/textarea.e2e.js +0 -26
  123. package/dist/collection/components/textarea/test/default/textarea.e2e.js +0 -34
  124. package/dist/collection/components/textarea/test/read-only/textarea.e2e.js +0 -26
  125. package/dist/collection/components/textarea/textarea.stories.js +0 -188
  126. package/dist/collection/components/toast/toast.stories.js +0 -90
  127. package/dist/collection/components/toggle/toggle.stories.js +0 -95
  128. package/dist/collection/components/tooltip/tooltip.stories.js +0 -126
  129. package/dist/collection/stories/Installation/angular.stories.js +0 -111
  130. package/dist/collection/stories/Installation/javascript.stories.js +0 -99
  131. package/dist/collection/stories/Installation/react.stories.js +0 -117
  132. package/dist/collection/stories/announcements/announce-tegel.stories.js +0 -262
  133. package/dist/collection/stories/announcements/prefix-change.stories.js +0 -93
  134. package/dist/collection/stories/formatHtmlPreview.js +0 -10
  135. package/dist/collection/stories/foundations/color/color-brand.stories.js +0 -38
  136. package/dist/collection/stories/foundations/color/color-scales.stories.js +0 -71
  137. package/dist/collection/stories/foundations/color/color-semantic.stories.js +0 -40
  138. package/dist/collection/stories/foundations/grid/grid.stories.js +0 -386
  139. package/dist/collection/stories/foundations/spacing/spacing-element.stories.js +0 -100
  140. package/dist/collection/stories/foundations/spacing/spacing-layout.stories.js +0 -94
  141. package/dist/collection/stories/foundations/typography/typography-body.stories.js +0 -16
  142. package/dist/collection/stories/foundations/typography/typography-detail.stories.js +0 -17
  143. package/dist/collection/stories/foundations/typography/typography-headline.stories.js +0 -39
  144. package/dist/collection/stories/foundations/typography/typography-paragraph.stories.js +0 -12
  145. package/dist/collection/stories/patterns/navigation/navigation-basic.stories.js +0 -85
  146. package/dist/collection/stories/patterns/navigation/navigation-fewitems.stories.js +0 -259
  147. package/dist/collection/stories/patterns/navigation/navigation-manyitems.stories.js +0 -247
  148. package/dist/collection/stories/patterns/navigation/navigation-user-menu.stories.js +0 -140
  149. package/dist/collection/stories/tegel.stories.js +0 -283
  150. package/dist/collection/stories/utility/color/background-color.stories.js +0 -96
  151. package/dist/collection/stories/utility/color/text-color.stories.js +0 -94
  152. package/dist/tegel/p-556600b1.entry.js +0 -1
  153. package/dist/tegel/p-c6553022.entry.js +0 -1
  154. package/dist/tegel/p-f801cf0e.entry.js +0 -1
  155. package/dist/types/components/accordion/accordion.stories.d.ts +0 -77
  156. package/dist/types/components/badge/badge.stories.d.ts +0 -73
  157. package/dist/types/components/banner/banner.stories.d.ts +0 -69
  158. package/dist/types/components/block/block.stories.d.ts +0 -32
  159. package/dist/types/components/breadcrumbs/breadcrumbs.stories.d.ts +0 -16
  160. package/dist/types/components/button/button.stories.d.ts +0 -147
  161. package/dist/types/components/card/card.stories.d.ts +0 -128
  162. package/dist/types/components/checkbox/checkbox.stories.d.ts +0 -65
  163. package/dist/types/components/chip/chip.stories.d.ts +0 -99
  164. package/dist/types/components/datetime/datetime.stories.d.ts +0 -151
  165. package/dist/types/components/divider/divider.stories.d.ts +0 -58
  166. package/dist/types/components/dropdown/dropdown.stories.d.ts +0 -205
  167. package/dist/types/components/footer/footer.stories.d.ts +0 -44
  168. package/dist/types/components/header/header.stories.d.ts +0 -32
  169. package/dist/types/components/icon/icon.stories.d.ts +0 -36
  170. package/dist/types/components/link/link.stories.d.ts +0 -44
  171. package/dist/types/components/message/message.stories.d.ts +0 -88
  172. package/dist/types/components/modal/modal.stories.d.ts +0 -78
  173. package/dist/types/components/popover-canvas/popover-canvas.stories.d.ts +0 -27
  174. package/dist/types/components/popover-menu/popover-menu.stories.d.ts +0 -51
  175. package/dist/types/components/radio-button/radio-button.stories.d.ts +0 -39
  176. package/dist/types/components/side-menu/side-menu.stories.d.ts +0 -65
  177. package/dist/types/components/slider/slider.stories.d.ts +0 -235
  178. package/dist/types/components/spinner/spinner.stories.d.ts +0 -46
  179. package/dist/types/components/stepper/stepper.stories.d.ts +0 -80
  180. package/dist/types/components/table/table-component-basic.stories.d.ts +0 -144
  181. package/dist/types/components/table/table-component-batch-actions.stories.d.ts +0 -139
  182. package/dist/types/components/table/table-component-custom-width.stories.d.ts +0 -131
  183. package/dist/types/components/table/table-component-expandable-rows.stories.d.ts +0 -131
  184. package/dist/types/components/table/table-component-filtering.stories.d.ts +0 -131
  185. package/dist/types/components/table/table-component-multiselect.stories.d.ts +0 -147
  186. package/dist/types/components/table/table-component-pagination.stories.d.ts +0 -131
  187. package/dist/types/components/table/table-component-sorting.stories.d.ts +0 -183
  188. package/dist/types/components/tabs/folder-tabs/folder-tabs.stories.d.ts +0 -69
  189. package/dist/types/components/tabs/inline-tabs/inline-tabs.stories.d.ts +0 -61
  190. package/dist/types/components/tabs/navigation-tabs/navigation-tabs.stories.d.ts +0 -61
  191. package/dist/types/components/text-field/text-field.stories.d.ts +0 -201
  192. package/dist/types/components/textarea/textarea.stories.d.ts +0 -139
  193. package/dist/types/components/toast/toast.stories.d.ts +0 -64
  194. package/dist/types/components/toggle/toggle.stories.d.ts +0 -74
  195. package/dist/types/components/tooltip/tooltip.stories.d.ts +0 -66
  196. package/dist/types/stories/Installation/angular.stories.d.ts +0 -6
  197. package/dist/types/stories/Installation/javascript.stories.d.ts +0 -7
  198. package/dist/types/stories/Installation/react.stories.d.ts +0 -6
  199. package/dist/types/stories/announcements/announce-tegel.stories.d.ts +0 -6
  200. package/dist/types/stories/announcements/prefix-change.stories.d.ts +0 -6
  201. package/dist/types/stories/formatHtmlPreview.d.ts +0 -2
  202. package/dist/types/stories/foundations/color/color-brand.stories.d.ts +0 -13
  203. package/dist/types/stories/foundations/color/color-scales.stories.d.ts +0 -30
  204. package/dist/types/stories/foundations/color/color-semantic.stories.d.ts +0 -13
  205. package/dist/types/stories/foundations/grid/grid.stories.d.ts +0 -35
  206. package/dist/types/stories/foundations/spacing/spacing-element.stories.d.ts +0 -8
  207. package/dist/types/stories/foundations/spacing/spacing-layout.stories.d.ts +0 -8
  208. package/dist/types/stories/foundations/typography/typography-body.stories.d.ts +0 -8
  209. package/dist/types/stories/foundations/typography/typography-detail.stories.d.ts +0 -8
  210. package/dist/types/stories/foundations/typography/typography-headline.stories.d.ts +0 -21
  211. package/dist/types/stories/foundations/typography/typography-paragraph.stories.d.ts +0 -8
  212. package/dist/types/stories/patterns/navigation/navigation-basic.stories.d.ts +0 -23
  213. package/dist/types/stories/patterns/navigation/navigation-fewitems.stories.d.ts +0 -23
  214. package/dist/types/stories/patterns/navigation/navigation-manyitems.stories.d.ts +0 -38
  215. package/dist/types/stories/patterns/navigation/navigation-user-menu.stories.d.ts +0 -33
  216. package/dist/types/stories/tegel.stories.d.ts +0 -6
  217. package/dist/types/stories/utility/color/background-color.stories.d.ts +0 -64
  218. package/dist/types/stories/utility/color/text-color.stories.d.ts +0 -64
@@ -1,20 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/popover-menu/test/show/index.html';
4
- test.describe('tds-popover-menu-show', () => {
5
- test('renders show=true popover-menu correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- /* Check diff on screenshot */
8
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
9
- });
10
- test('clicking the trigger button should keep the popover menu dialog open when it is open by default', async ({ page, }) => {
11
- await page.goto(componentTestPath);
12
- const triggerButton = page.getByRole('button').filter({ has: page.getByRole('img') });
13
- const dropDownList = page.getByRole('list');
14
- await expect(triggerButton).toBeVisible();
15
- await expect(dropDownList).toBeVisible();
16
- await triggerButton.click();
17
- await expect(triggerButton).toBeVisible();
18
- await expect(dropDownList).toBeVisible();
19
- });
20
- });
@@ -1,20 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/popover-menu/test/show-false/index.html';
4
- test.describe('tds-popover-menu-show-false', () => {
5
- test('renders show=false popover-menu correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- /* Check diff on screenshot */
8
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
9
- });
10
- test('clicking the trigger button should not open the popover menu dialog when show is false', async ({ page, }) => {
11
- await page.goto(componentTestPath);
12
- const triggerButton = page.getByRole('button').filter({ has: page.getByRole('img') });
13
- const dropDownList = page.getByRole('list');
14
- await expect(triggerButton).toBeVisible();
15
- await expect(dropDownList).toBeHidden();
16
- await triggerButton.click();
17
- await expect(triggerButton).toBeVisible();
18
- await expect(dropDownList).toBeHidden();
19
- });
20
- });
@@ -1,91 +0,0 @@
1
- import formatHtmlPreview from "../../stories/formatHtmlPreview";
2
- import readme from "./readme.md";
3
- import { ComponentsFolder } from "../../utils/constants";
4
- export default {
5
- title: `${ComponentsFolder}/Radio Button`,
6
- parameters: {
7
- notes: readme,
8
- layout: 'centered',
9
- design: [
10
- {
11
- name: 'Figma',
12
- type: 'figma',
13
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9266%3A17335&t=Ne6myqwca5m00de7-1',
14
- },
15
- {
16
- name: 'Link',
17
- type: 'link',
18
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9266%3A17335&t=Ne6myqwca5m00de7-1',
19
- },
20
- ],
21
- },
22
- argTypes: {
23
- label: {
24
- name: 'Label text',
25
- description: 'Sets the label for the Radio Button.',
26
- controls: {
27
- type: 'text',
28
- },
29
- },
30
- disabled: {
31
- name: 'Disabled',
32
- description: 'Disables the Radio Button.',
33
- control: {
34
- type: 'boolean',
35
- },
36
- table: {
37
- defaultValue: { summary: false },
38
- },
39
- },
40
- },
41
- args: {
42
- label: 'Label text',
43
- disabled: false,
44
- },
45
- };
46
- const Template = ({ label, disabled }) => formatHtmlPreview(`
47
- <style>
48
- .demo-fieldset-reset {
49
- border: 0;
50
- margin: 0;
51
- min-width: 0;
52
- padding: 0;
53
- }
54
- </style>
55
-
56
- <fieldset class="demo-fieldset-reset">
57
- <tds-radio-button
58
- name="rb-example"
59
- value="option1"
60
- radio-id="option-1"
61
- required=false
62
- ${disabled ? 'disabled' : ''}
63
- checked="true"
64
- >
65
- <div slot="label">
66
- ${label} 1
67
- </div>
68
- </tds-radio-button>
69
-
70
- <tds-radio-button
71
- name="rb-example"
72
- value="option2"
73
- radio-id="option-2"
74
- required=false
75
- ${disabled ? 'disabled' : ''}
76
- >
77
- <div slot="label">
78
- ${label} 2
79
- </div>
80
- </tds-radio-button>
81
-
82
- </fieldset>
83
-
84
- <!-- Script tag with eventlistener for demo purposes. -->
85
- <script>
86
- document.addEventListener('tdsChange', (event) => {
87
- console.log(event)
88
- })
89
- </script>
90
- `);
91
- export const Default = Template.bind({});
@@ -1,224 +0,0 @@
1
- import formatHtmlPreview from "../../stories/formatHtmlPreview";
2
- import readme from "./readme.md";
3
- import readmeSideMenuUser from "./side-menu-user/readme.md";
4
- import readmeSideMenuOverlay from "./side-menu-overlay/readme.md";
5
- import readmeSideMenuCloseButton from "./side-menu-close-button/readme.md";
6
- import readmeSideMenuCollapseButton from "./side-menu-collapse-button/readme.md";
7
- import readmeSideMenuDropdown from "./side-menu-dropdown/readme.md";
8
- import readmeSideMenuItem from "./side-menu-item/readme.md";
9
- import readmeSideMenuDropdownList from "./side-menu-dropdown-list/readme.md";
10
- import readmeSideMenuDropdownListItem from "./side-menu-dropdown-list-item/readme.md";
11
- import { ComponentsFolder } from "../../utils/constants";
12
- export default {
13
- title: `${ComponentsFolder}/Side Menu`,
14
- parameters: {
15
- notes: {
16
- 'Side Menu': readme,
17
- 'Side Menu Item': readmeSideMenuItem,
18
- 'Side Menu Dropdown': readmeSideMenuDropdown,
19
- 'Side Menu Dropdown List': readmeSideMenuDropdownList,
20
- 'Side Menu Dropdown List Item': readmeSideMenuDropdownListItem,
21
- 'Side Menu User': readmeSideMenuUser,
22
- 'Side Menu Collapse Button': readmeSideMenuCollapseButton,
23
- 'Side Menu Close Button': readmeSideMenuCloseButton,
24
- 'Side Menu Overlay': readmeSideMenuOverlay,
25
- },
26
- layout: 'fullscreen',
27
- docs: {
28
- source: {
29
- state: 'closed',
30
- },
31
- },
32
- design: [
33
- {
34
- name: 'Figma',
35
- type: 'figma',
36
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=11142%3A42941&t=Ne6myqwca5m00de7-1',
37
- },
38
- {
39
- name: 'Link',
40
- type: 'link',
41
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=11142%3A42941&t=Ne6myqwca5m00de7-1',
42
- },
43
- ],
44
- },
45
- argTypes: {
46
- persistent: {
47
- name: 'Persistent',
48
- description: 'Set the Side Menu to always show. This should be used if there are more navigation items to show than can always fit in the Header, more than three Header items is a good rule of thumb.',
49
- control: {
50
- type: 'boolean',
51
- },
52
- },
53
- collapsible: {
54
- name: 'Collapsible',
55
- description: 'Make the Side Menu collapsible',
56
- control: {
57
- type: 'boolean',
58
- },
59
- if: { arg: 'persistent', truthy: true },
60
- },
61
- collapsed: {
62
- name: 'Collapsed',
63
- description: 'Collapsed Side Menu',
64
- control: {
65
- type: 'boolean',
66
- },
67
- if: { arg: 'collapsible', truthy: true },
68
- },
69
- },
70
- args: {
71
- persistent: true,
72
- collapsible: false,
73
- collapsed: false,
74
- },
75
- };
76
- const Template = ({ persistent, collapsible, collapsed }) => formatHtmlPreview(`
77
- <script>
78
- /* For demonstration purposes only. Do this in the preferred way of your framework instead. */
79
- window.demoSideMenu = document.querySelector('#demo-side-menu');
80
- </script>
81
- <style>
82
- :root {
83
- --app-bar-height: 64px;
84
- }
85
-
86
- /* Note: to make the layout fill the entire viewport height you'll need to set the */
87
- /* height of the parent element and all of its ancestors to 100%. */
88
- /* Please note that using 'vh' for this can cause issues on some mobile browsers. */
89
- .demo-layout {
90
- min-height: 100%;
91
- display: flex;
92
- flex-direction: column;
93
- }
94
- .demo-header {
95
- position: sticky;
96
- top: 0;
97
- }
98
- .demo-wrap-side-menu-and-main {
99
- display: flex;
100
- flex-grow: 1;
101
- }
102
- ${persistent
103
- ? `
104
- /* the lg breakpoint is used here to match the breakpoint used in the Header */
105
- @media (min-width: 992px) {
106
- #demo-side-menu {
107
- /* We suggest you attach the persistent Side Menu to your layout like this: */
108
- height: calc(100vh - var(--app-bar-height));
109
- position: sticky;
110
- top: var(--app-bar-height);
111
- left: 0px;
112
- }
113
- }`
114
- : ''}
115
- /* If an extra button in the Header is required except on */
116
- /* very narrow screens, you can use classes like these: */
117
- .demo-hide {
118
- display: none;
119
- }
120
-
121
- /* https://tegel.scania.com/components/header#:~:text=breakpoints%20larger%20than-,%24small%2D375.,-On%20smaller%20breakpoints */
122
- @media (min-width: 375px) {
123
- .demo-xs-hide {
124
- display: none;
125
- }
126
- .demo-xs-show {
127
- display: block;
128
- }
129
- }
130
- </style>
131
-
132
- <div class="demo-layout">
133
- <tds-header class="demo-header">
134
- <tds-header-hamburger onclick="demoSideMenu.open = true;" aria-expanded="false" aria-label="Open application drawer" aria-haspopup="true"></tds-header-hamburger>
135
-
136
- <tds-header-title>
137
- My Application
138
- </tds-header-title>
139
-
140
- <i style="color:white">Header items omitted for brevity. See patterns/navigation</i>
141
-
142
- <tds-header-brand-symbol slot="end">
143
- <a aria-label="Scania - red gryphon on blue shield" href="https://scania.com"></a>
144
- </tds-header-brand-symbol>
145
- </tds-header>
146
-
147
- <div class="demo-wrap-side-menu-and-main">
148
- <!-- Note: the "persistent" property keeps the menu open on desktop -->
149
- <tds-side-menu ${collapsed ? 'collapsed' : ''} aria-label="Side menu" id="demo-side-menu" ${persistent ? 'persistent' : ''}>
150
- <tds-side-menu-overlay slot="overlay" onclick="demoSideMenu.open = false;"></tds-side-menu-overlay>
151
-
152
- <tds-side-menu-close-button slot="close-button" aria-label="Close drawer menu" onclick="demoSideMenu.open = false;"></tds-side-menu-close-button>
153
-
154
- <tds-side-menu-item>
155
- <button>
156
- <tds-icon name="timer" size="24px"></tds-icon>
157
- About us
158
- </button>
159
- </tds-side-menu-item>
160
-
161
- <tds-side-menu-item>
162
- <button>
163
- <tds-icon name="truck" size="24px"></tds-icon>
164
- Trucks
165
- </button>
166
- </tds-side-menu-item>
167
-
168
- <tds-side-menu-dropdown default-open selected>
169
- <tds-icon slot="icon" name="profile" size="24px"></tds-icon>
170
- <span slot="label">
171
- Wheel types
172
- </span>
173
- <tds-side-menu-dropdown-list>
174
- <tds-side-menu-dropdown-list-item>
175
- <a href="https://www.scania.com">
176
- Hub-centric wheel
177
- </a>
178
- </tds-side-menu-dropdown-list-item>
179
- <tds-side-menu-dropdown-list-item selected>
180
- <a href="https://www.scania.com" aria-current="page">
181
- Rim wheel
182
- </a>
183
- </tds-side-menu-dropdown-list-item>
184
- </tds-side-menu-dropdown-list>
185
- </tds-side-menu-dropdown>
186
-
187
- <tds-side-menu-item>
188
- <button>
189
- <tds-icon name="star" size="24px"></tds-icon>
190
- Values
191
- </button>
192
- </tds-side-menu-item>
193
-
194
- ${collapsible
195
- ? `<tds-side-menu-collapse-button slot="sticky-end">
196
- Collapse
197
- </tds-side-menu-collapse-button>`
198
- : ''}
199
-
200
- </tds-side-menu>
201
-
202
- <main class="tds-u-h-100 tds-u-p3" style="box-sizing: border-box;">
203
- <p>If there are more than a few buttons and/or links in the Header, they might not fit on medium size screens.
204
- <br/>In that case they should be placed in a persistent Side Menu — which is always visible on large screens.</p>
205
-
206
- <p><i>Note: The Side Menu is sticky, and should not scroll with the main content of the page.</i></p>
207
-
208
- <p><i>Note: The collapse button is optional.</i></p>
209
- <button id="test">Toggle the collapsed state programatically</button>
210
- </main>
211
- </div>
212
- </div>
213
- <script>
214
- sideMenu = document.querySelector('tds-side-menu')
215
- document.querySelector('#test')?.addEventListener('click', ()=> {
216
- sideMenu.collapsed = !sideMenu.collapsed;
217
- })
218
-
219
- document.querySelector('tds-side-menu-collapse-button')?.addEventListener('tdsCollapse', (event) => {
220
- console.log(event)
221
- })
222
- </script>
223
- `);
224
- export const Default = Template.bind({});
@@ -1,28 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/side-menu/test/collapsible/index.html';
4
- test.describe('tds-side-menu-collapsible', () => {
5
- test('renders collapsible side-menu correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const sideMenuNavigation = page.getByRole('navigation');
8
- await expect(sideMenuNavigation).toHaveCount(1);
9
- await expect(sideMenuNavigation).toBeVisible();
10
- /* Check diff on screenshot */
11
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
12
- });
13
- test('collapse button exists on the bottom of side menu', async ({ page }) => {
14
- await page.goto(componentTestPath);
15
- const sideMenuCollapseButton = page.getByRole('button').filter({ hasText: /Collapse/ });
16
- await expect(sideMenuCollapseButton).toHaveCount(1);
17
- await expect(sideMenuCollapseButton).toBeVisible();
18
- });
19
- test('click collapse button to close the menu', async ({ page }) => {
20
- await page.goto(componentTestPath);
21
- const sideMenuCollapseButton = page.getByRole('button').filter({ hasText: /Collapse/ });
22
- await sideMenuCollapseButton.click();
23
- await expect(sideMenuCollapseButton).toHaveCount(1);
24
- await expect(sideMenuCollapseButton).toBeVisible();
25
- /* Check diff on screenshot */
26
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
27
- });
28
- });
@@ -1,38 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/side-menu/test/default/index.html';
4
- test.describe('tds-side-menu-default', () => {
5
- test('renders default side-menu correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const sideMenuNavigation = page.getByRole('navigation');
8
- await expect(sideMenuNavigation).toHaveCount(1);
9
- await expect(sideMenuNavigation).toBeVisible();
10
- /* Check diff on screenshot */
11
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
12
- });
13
- test('all side menu buttons to be visible', async ({ page }) => {
14
- await page.goto(componentTestPath);
15
- const sideMenuButtons = page.getByRole('button');
16
- await expect(sideMenuButtons).toHaveCount(4);
17
- const promises = [];
18
- for (let i = 0; i < 4; i++) {
19
- promises.push(expect(sideMenuButtons.nth(i)).toBeVisible());
20
- }
21
- await Promise.all(promises);
22
- });
23
- test('wheel type list is open by default and under Wheel types there are two sublink', async ({ page, }) => {
24
- await page.goto(componentTestPath);
25
- /* Make sure first list item is there and visible */
26
- const sideMenuWheelTypeListItemOne = page
27
- .getByRole('listitem')
28
- .getByRole('link', { name: /Hub-centric wheel/ });
29
- await expect(sideMenuWheelTypeListItemOne).toHaveCount(1);
30
- await expect(sideMenuWheelTypeListItemOne).toBeVisible();
31
- /* Make sure the second list item is there and visible */
32
- const sideMenuWheelTypeListItemTwo = page
33
- .getByRole('listitem')
34
- .getByRole('link', { name: /Rim wheel/ });
35
- await expect(sideMenuWheelTypeListItemTwo).toHaveCount(1);
36
- await expect(sideMenuWheelTypeListItemTwo).toBeVisible();
37
- });
38
- });
@@ -1,243 +0,0 @@
1
- import formatHtmlPreview from "../../stories/formatHtmlPreview";
2
- import readme from "./readme.md";
3
- import { ComponentsFolder } from "../../utils/constants";
4
- export default {
5
- title: `${ComponentsFolder}/Slider`,
6
- argTypes: {
7
- min: {
8
- name: 'Min. value',
9
- description: 'Sets the minimum value for the slider.',
10
- control: {
11
- type: 'number',
12
- },
13
- table: {
14
- defaultValue: { summary: 0 },
15
- },
16
- },
17
- max: {
18
- name: 'Max. value',
19
- description: 'Sets the maximum value for the slider.',
20
- control: {
21
- type: 'number',
22
- },
23
- table: {
24
- defaultValue: { summary: 100 },
25
- },
26
- },
27
- initialValue: {
28
- name: 'Initial value',
29
- description: 'Sets the initial value for the slider.',
30
- control: {
31
- type: 'number',
32
- },
33
- table: {
34
- defaultValue: { summary: 0 },
35
- },
36
- },
37
- showLabel: {
38
- name: 'Show label',
39
- description: 'Toggles if the lable should be shown or hidden.',
40
- control: {
41
- type: 'boolean',
42
- },
43
- },
44
- labelText: {
45
- name: 'Label text',
46
- description: 'Sets the text for the label.',
47
- control: {
48
- type: 'text',
49
- },
50
- if: { arg: 'showLabel', eq: true },
51
- },
52
- showTicks: {
53
- name: 'Show ticks',
54
- description: 'Toggles if ticks should be shown or hidden.',
55
- control: {
56
- type: 'boolean',
57
- },
58
- },
59
- numTicks: {
60
- name: 'Number of ticks',
61
- description: 'Sets the number of ticks to be displayed.',
62
- control: {
63
- type: 'number',
64
- },
65
- if: { arg: 'showTicks', eq: true },
66
- table: {
67
- defaultValue: { summary: 0 },
68
- },
69
- },
70
- showTickNumbers: {
71
- name: 'Show tick numbers',
72
- description: 'Toggles if tick numbers should be shown or hidden.',
73
- control: {
74
- type: 'boolean',
75
- },
76
- if: { arg: 'showTicks', eq: true },
77
- table: {
78
- defaultValue: { summary: false },
79
- },
80
- },
81
- snapToTicks: {
82
- name: 'Snap to ticks',
83
- description: 'Snaps the thumb to the closest tick when dragging.',
84
- control: {
85
- type: 'boolean',
86
- },
87
- if: { arg: 'showTicks', eq: true },
88
- table: {
89
- defaultValue: { summary: false },
90
- },
91
- },
92
- showTooltip: {
93
- name: 'Show tooltip',
94
- description: 'Toggles if the tooltip should be shown or hidden.',
95
- control: {
96
- type: 'boolean',
97
- },
98
- table: {
99
- defaultValue: { summary: false },
100
- },
101
- },
102
- showControls: {
103
- name: 'Show controls (not compatible with input field)',
104
- description: 'Toggles if controls should be shown or hidden.',
105
- control: {
106
- type: 'boolean',
107
- },
108
- table: {
109
- defaultValue: { summary: false },
110
- },
111
- },
112
- step: {
113
- name: 'Step value',
114
- description: 'Sets the value to increment/decrement with when using controls.',
115
- control: {
116
- type: 'number',
117
- },
118
- if: { arg: 'showControls', eq: true },
119
- table: {
120
- defaultValue: { summary: 1 },
121
- },
122
- },
123
- showInput: {
124
- name: 'Show value input field (not compatible with controls)',
125
- description: 'Toggles if the values input field should be shown or hidden.',
126
- control: {
127
- type: 'boolean',
128
- },
129
- if: { arg: 'showControls', eq: false },
130
- table: {
131
- defaultValue: { summary: false },
132
- },
133
- },
134
- thumbSize: {
135
- name: 'Thumb size',
136
- description: 'Switches between the large and small version of the thumb.',
137
- control: {
138
- type: 'radio',
139
- },
140
- options: ['Large', 'Small'],
141
- table: {
142
- defaultValue: { summary: 'lg' },
143
- },
144
- },
145
- readonly: {
146
- name: 'Read Only',
147
- description: 'Puts the control in a read-only state.',
148
- control: {
149
- type: 'boolean',
150
- },
151
- table: {
152
- defaultValue: { summary: false },
153
- },
154
- },
155
- disabled: {
156
- name: 'Disabled',
157
- description: 'Disables the slider.',
158
- control: {
159
- type: 'boolean',
160
- },
161
- table: {
162
- defaultValue: { summary: false },
163
- },
164
- },
165
- },
166
- parameters: {
167
- notes: readme,
168
- design: [
169
- {
170
- name: 'Figma',
171
- type: 'figma',
172
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9649%3A20759&t=Ne6myqwca5m00de7-1',
173
- },
174
- {
175
- name: 'Link',
176
- type: 'link',
177
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9649%3A20759&t=Ne6myqwca5m00de7-1',
178
- },
179
- ],
180
- },
181
- args: {
182
- min: '0',
183
- max: '100',
184
- initialValue: '50',
185
- showLabel: false,
186
- labelText: 'Label',
187
- showTicks: false,
188
- numTicks: '3',
189
- showTickNumbers: false,
190
- snapToTicks: false,
191
- showTooltip: true,
192
- showControls: false,
193
- step: '1',
194
- showInput: false,
195
- thumbSize: 'Large',
196
- readonly: false,
197
- disabled: false,
198
- },
199
- };
200
- const sizeLookUp = {
201
- Large: 'lg',
202
- Small: 'sm',
203
- };
204
- const Template = ({ min, max, initialValue, showLabel, labelText, showTicks, numTicks, showTickNumbers, snapToTicks, showTooltip, showControls, step, showInput, thumbSize, readonly, disabled, }) => formatHtmlPreview(`
205
- <!-- Style code below is just for demo purposes -->
206
- <style>
207
- .demo-wrapper {
208
- width: 500px;
209
- margin-left: 150px;
210
- }
211
- </style>
212
-
213
- <div class="demo-wrapper">
214
- <tds-slider
215
- min="${min}"
216
- max="${max}"
217
- ${showControls && step ? `step="${step}"` : ''}
218
- value="${initialValue}"
219
- ${showTicks ? `ticks="${numTicks}"` : ''}
220
- ${showTickNumbers ? 'show-tick-numbers' : ''}
221
- ${snapToTicks ? 'snap' : ''}
222
- ${showLabel ? `label="${labelText}"` : ''}
223
- ${showTooltip ? 'tooltip' : ''}
224
- ${showControls ? 'controls' : ''}
225
- ${showInput ? 'input' : ''}
226
- ${disabled ? 'disabled' : ''}
227
- thumb-size="${sizeLookUp[thumbSize]}"
228
- ${readonly ? 'read-only' : ''}
229
- >
230
- </tds-slider>
231
- </div>
232
-
233
- <!-- Script tag for demo purposes -->
234
- <script>
235
- slider = document.querySelector('tds-slider')
236
-
237
- slider.removeEventListener('tdsChange', null)
238
- slider.addEventListener('tdsChange', (event) => {
239
- console.log(event);
240
- });
241
- </script>
242
- `);
243
- export const Default = Template.bind({});