@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,260 +0,0 @@
1
- import readme from "./readme.md";
2
- import readmeDropdownOption from "./dropdown-option/readme.md";
3
- import formatHtmlPreview from "../../stories/formatHtmlPreview";
4
- import { ComponentsFolder } from "../../utils/constants";
5
- export default {
6
- title: `${ComponentsFolder}/Dropdown`,
7
- parameters: {
8
- layout: 'centered',
9
- notes: { 'Dropdown': readme, 'Dropdown option': readmeDropdownOption },
10
- design: [
11
- {
12
- name: 'Figma',
13
- type: 'figma',
14
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9754%3A22916&t=M7Ova7xZaoeMwb5e-1',
15
- },
16
- {
17
- name: 'Link',
18
- type: 'link',
19
- url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9754%3A22916&t=M7Ova7xZaoeMwb5e-1',
20
- },
21
- ],
22
- },
23
- argTypes: {
24
- modeVariant: {
25
- name: 'Mode variant',
26
- description: 'Mode variant of the component.',
27
- control: {
28
- type: 'radio',
29
- },
30
- options: ['Inherit from parent', 'Primary', 'Secondary'],
31
- table: {
32
- defaultValue: { summary: 'Inherit from parent' },
33
- },
34
- },
35
- error: {
36
- name: 'Error',
37
- description: 'Sets the Dropdown in an error state.',
38
- control: {
39
- type: 'boolean',
40
- },
41
- table: {
42
- defaultValue: { summary: 'false' },
43
- },
44
- },
45
- filter: {
46
- name: 'Filter',
47
- description: 'Adds filter functionality to the Dropdown.',
48
- control: {
49
- type: 'boolean',
50
- },
51
- table: {
52
- defaultValue: { summary: 'false' },
53
- },
54
- },
55
- normalizeText: {
56
- name: 'Normalize text',
57
- description: 'Should search be normalized',
58
- control: {
59
- type: 'boolean',
60
- },
61
- table: {
62
- defaultValue: { summary: 'true' },
63
- },
64
- },
65
- multiselect: {
66
- name: 'Multiselect',
67
- description: 'Adds multiselect functionality to the Dropdown.',
68
- control: {
69
- type: 'boolean',
70
- },
71
- table: {
72
- defaultValue: { summary: 'false' },
73
- },
74
- },
75
- size: {
76
- name: 'Size',
77
- description: 'Size of the Dropdown.',
78
- control: {
79
- type: 'radio',
80
- },
81
- options: ['Large', 'Medium', 'Small'],
82
- table: {
83
- defaultValue: { summary: 'lg' },
84
- },
85
- },
86
- labelText: {
87
- name: 'Label text',
88
- control: 'text',
89
- description: 'Label text helps to describe what the Dropdown contains',
90
- if: { arg: 'labelPosition', neq: 'None' },
91
- },
92
- labelPosition: {
93
- name: 'Label position',
94
- description: 'Label text position',
95
- control: {
96
- type: 'radio',
97
- },
98
- options: ['Outside', 'Inside', 'None'],
99
- table: {
100
- defaultValue: { summary: 'null' },
101
- },
102
- },
103
- helperText: {
104
- name: 'Helper text',
105
- description: 'Helper text assists the user with additional information about the Dropdown.',
106
- control: 'text',
107
- },
108
- placeholder: {
109
- name: 'Placeholder',
110
- type: 'string',
111
- description: 'Placeholder text when no option is selected',
112
- },
113
- noResultText: {
114
- name: 'No result message',
115
- type: 'string',
116
- description: 'Message that appears when no results match criteria in filter feature',
117
- table: {
118
- defaultValue: { summary: 'No result' },
119
- },
120
- control: 'text',
121
- if: { arg: 'filter', eq: true },
122
- },
123
- disabled: {
124
- name: 'Disabled',
125
- description: 'Disables the component',
126
- control: {
127
- type: 'boolean',
128
- },
129
- table: {
130
- defaultValue: { summary: 'false' },
131
- },
132
- },
133
- openDirection: {
134
- name: 'Open direction',
135
- description: 'The direction the Dropdown will open.',
136
- control: {
137
- type: 'radio',
138
- },
139
- options: ['Auto', 'Up', 'Down'],
140
- table: {
141
- summary: {
142
- defaultValue: 'auto',
143
- },
144
- },
145
- },
146
- defaultOption: {
147
- name: 'Default options',
148
- description: 'Sets a pre-selected option.',
149
- control: {
150
- type: 'radio',
151
- },
152
- options: ['No default', 'Option 1', 'Option 2', 'Option 3'],
153
- if: { arg: 'multiselect', eq: false },
154
- },
155
- multiDefaultOption: {
156
- name: 'Default options',
157
- description: 'Sets a pre-selected option.',
158
- control: {
159
- type: 'check',
160
- },
161
- options: ['Option 1', 'Option 2', 'Option 3', 'Option 4'],
162
- if: { arg: 'multiselect', eq: true },
163
- },
164
- },
165
- args: {
166
- modeVariant: 'Inherit from parent',
167
- error: false,
168
- filter: false,
169
- noResultText: 'No result',
170
- normalizeText: true,
171
- multiselect: false,
172
- size: 'Large',
173
- labelText: 'Label text',
174
- labelPosition: 'Outside',
175
- helperText: 'Helper text',
176
- placeholder: 'Placeholder',
177
- disabled: false,
178
- openDirection: 'Auto',
179
- defaultOption: 'No default',
180
- },
181
- };
182
- const sizeLookUp = {
183
- Large: 'lg',
184
- Medium: 'md',
185
- Small: 'sm',
186
- };
187
- const defaultOptionLookUp = {
188
- 'Option 1': 'option-1',
189
- 'Option 2': 'option-2',
190
- 'Option 3': 'option-3',
191
- 'Option 4': 'option-4',
192
- 'îles Åland': 'iles-aland',
193
- };
194
- const getMultiselectDefaultValue = (multiDefaultOption) => multiDefaultOption.map((item) => defaultOptionLookUp[item]);
195
- const Template = ({ placeholder, labelText, labelPosition, helperText, size, error, filter, normalizeText, multiselect, openDirection, modeVariant, disabled, defaultOption, multiDefaultOption, noResultText, }) => formatHtmlPreview(`
196
- <style>
197
- /* demo-wrapper is for demonstration purposes only*/
198
- .demo-wrapper {
199
- width: 300px;
200
- height:200px;
201
- }
202
- .hej {
203
- margin-top: 79px;
204
- }
205
- </style>
206
-
207
- <div class="demo-wrapper">
208
- <tds-dropdown
209
- ${defaultOption && defaultOption !== 'No default'
210
- ? `default-value="${defaultOptionLookUp[defaultOption]}"`
211
- : ''}
212
- ${multiDefaultOption
213
- ? `default-value="${getMultiselectDefaultValue(multiDefaultOption)}"`
214
- : ''}
215
- ${modeVariant !== 'Inherit from parent' ? `mode-variant="${modeVariant.toLowerCase()}"` : ''}
216
- name="dropdown"
217
- label="${labelText}"
218
- ${labelPosition && labelPosition !== 'None'
219
- ? `label-position="${labelPosition.toLowerCase()}"`
220
- : ''}
221
- placeholder="${placeholder}"
222
- helper="${helperText}"
223
- size="${sizeLookUp[size]}"
224
- ${error ? 'error' : ''}
225
- ${filter ? 'filter' : ''}
226
- ${filter ? `no-result-text="${noResultText}"` : ''}
227
- ${normalizeText ? '' : `normalize-text="false"`}
228
- ${multiselect ? 'multiselect' : ''}
229
- ${disabled ? 'disabled' : ''}
230
- open-direction="${openDirection.toLowerCase()}"
231
- >
232
- <tds-dropdown-option value="option-1">
233
- Option 1
234
- </tds-dropdown-option>
235
- <tds-dropdown-option disabled value="option-2">
236
- Option 2
237
- </tds-dropdown-option>
238
- <tds-dropdown-option value="option-3">
239
- Option 3
240
- </tds-dropdown-option>
241
- <tds-dropdown-option value="option-4">
242
- Option 4
243
- </tds-dropdown-option>
244
- <tds-dropdown-option value="iles-aland">
245
- îles Åland
246
- </tds-dropdown-option>
247
- </tds-dropdown>
248
- </div>
249
-
250
- <script>
251
- dropdown = document.querySelector('tds-dropdown')
252
-
253
- dropdown.addEventListener('tdsChange', (event) => {
254
- console.log(event)
255
- })
256
-
257
- </script>
258
-
259
- `);
260
- export const Default = Template.bind({});
@@ -1,41 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/dropdown/test/basic/index.html';
4
- test.describe('tds-dropdown-basic', () => {
5
- test('renders basic dropdown correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const dropdown = page.getByTestId('tds-dropdown-testid');
8
- await expect(dropdown).toHaveCount(1);
9
- /* check diff in screenshot */
10
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
- });
12
- test('should find label and not exist', async ({ page }) => {
13
- await page.goto(componentTestPath);
14
- const labelText = page.getByText(/Label text/);
15
- await expect(labelText).toHaveCount(0);
16
- });
17
- test('find helper text and check not exist', async ({ page }) => {
18
- await page.goto(componentTestPath);
19
- const helperText = page.getByText(/Helper text/);
20
- await expect(helperText).toHaveCount(0);
21
- });
22
- test('have the button to be visible', async ({ page }) => {
23
- await page.goto(componentTestPath);
24
- const dropdownButton = page.getByRole('button').first();
25
- await expect(dropdownButton).toBeVisible();
26
- });
27
- test('clicking the dropdown button opens the dropdown-list', async ({ page }) => {
28
- await page.goto(componentTestPath);
29
- const dropdownButton = page.getByRole('button').first();
30
- const dropdownListElementOne = page
31
- .locator('tds-dropdown-option')
32
- .filter({ hasText: 'Option 1' });
33
- await expect(dropdownListElementOne).toBeHidden();
34
- await dropdownButton.click();
35
- /* before clicking dropdownlist should not be visible, the button should be */
36
- await expect(dropdownButton).toBeVisible();
37
- await expect(dropdownListElementOne).toBeVisible();
38
- /* checks diff on screenshot */
39
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
40
- });
41
- });
@@ -1,76 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/dropdown/test/default/index.html';
4
- test.describe('tds-dropdown-default', () => {
5
- test('renders default dropdown correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const dropdown = page.getByTestId('tds-dropdown-testid');
8
- await expect(dropdown).toHaveCount(1);
9
- /* check diff in screenshot */
10
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
- });
12
- test('should find label and be visible', async ({ page }) => {
13
- await page.goto(componentTestPath);
14
- const labelText = page.getByText(/Label text/);
15
- await expect(labelText).toBeVisible();
16
- });
17
- test('find helper text and check if visible', async ({ page }) => {
18
- await page.goto(componentTestPath);
19
- const helperText = page.getByText(/Helper text/);
20
- await expect(helperText).toBeVisible();
21
- });
22
- test('have the placeholder="Placeholder" text', async ({ page }) => {
23
- await page.goto(componentTestPath);
24
- const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
25
- await expect(dropdownButton).toBeVisible();
26
- });
27
- test('clicking the dropdown button opens the dropdown-list', async ({ page }) => {
28
- await page.goto(componentTestPath);
29
- const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
30
- const dropdownListElementOne = page
31
- .locator('tds-dropdown-option')
32
- .filter({ hasText: 'Option 1' });
33
- await expect(dropdownListElementOne).toBeHidden();
34
- await dropdownButton.click();
35
- /* before clicking dropdownlist should not be visible, the button should be */
36
- await expect(dropdownButton).toBeVisible();
37
- await expect(dropdownListElementOne).toBeVisible();
38
- /* checks diff on screenshot */
39
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
40
- });
41
- test('clicking the dropdown opens the dropdown-list, then click Option 1', async ({ page }) => {
42
- await page.goto(componentTestPath);
43
- /* click the dropdown button */
44
- const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
45
- await dropdownButton.click();
46
- /* Click the Option 1 button */
47
- const dropdownListElementOneButton = page
48
- .locator('tds-dropdown-option')
49
- .filter({ hasText: /Option 1/ })
50
- .getByRole('button');
51
- await dropdownListElementOneButton.click();
52
- await expect(dropdownListElementOneButton).toBeHidden();
53
- const dropdownButtonWithOption1 = page.getByRole('button', { name: 'Option 1' });
54
- await expect(dropdownButtonWithOption1.first()).toBeVisible();
55
- /* also check screenshot diff to make sure it says Option 1 */
56
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
57
- });
58
- test('clicking the dropdown opens the dropdown-list, then click an option 2 that is disabled should not close it', async ({ page, }) => {
59
- await page.goto(componentTestPath);
60
- const dropdownListElementTwoButton = page
61
- .locator('tds-dropdown-option')
62
- .filter({ hasText: /Option 2/ });
63
- const dropdownButtonElement = page.getByRole('button', { name: 'Placeholder' });
64
- /* before clicking dropdownlist should not be visible, the button should be */
65
- await expect(dropdownButtonElement).toBeVisible();
66
- await expect(dropdownListElementTwoButton).toBeHidden();
67
- /* after clicking dropdownlist should be visible, the button should also be */
68
- await dropdownButtonElement.click();
69
- await expect(dropdownButtonElement).toBeVisible();
70
- await expect(dropdownListElementTwoButton).toBeVisible();
71
- /* after clicking option 2 that is disabled list should be visible and also button should be */
72
- await dropdownListElementTwoButton.click();
73
- await expect(dropdownButtonElement).toBeVisible();
74
- await expect(dropdownListElementTwoButton).toBeVisible();
75
- });
76
- });
@@ -1,36 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/dropdown/test/error/index.html';
4
- test.describe('tds-dropdown-error', () => {
5
- test('renders error dropdown correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const dropdown = page.getByTestId('tds-dropdown-testid');
8
- await expect(dropdown).toHaveCount(1);
9
- /* Check diff on screenshot */
10
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
- });
12
- test('find helper text and check if visible and have icon', async ({ page }) => {
13
- await page.goto(componentTestPath);
14
- const helperText = page.getByText(/Helper text/);
15
- await expect(helperText).toBeVisible();
16
- const helperTextIcon = helperText.getByRole('img');
17
- await expect(helperTextIcon).toHaveCount(1);
18
- });
19
- test('clicking the dropdown opens the dropdown-list', async ({ page }) => {
20
- await page.goto(componentTestPath);
21
- const dropdownListElementOneButton = page
22
- .locator('tds-dropdown-option')
23
- .filter({ hasText: /Option 1/ })
24
- .getByRole('button');
25
- const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
26
- /* before clicking dropdownlist should not be visible, the button should be */
27
- await expect(dropdownButton).toBeVisible();
28
- await expect(dropdownListElementOneButton).toBeHidden();
29
- await dropdownButton.click();
30
- /* after clicking dropdownlist should be visible, the button should also be */
31
- await expect(dropdownButton).toBeVisible();
32
- await expect(dropdownListElementOneButton).toBeVisible();
33
- /* check diff on screenshot */
34
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
35
- });
36
- });
@@ -1,56 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/dropdown/test/filter/index.html';
4
- test.describe('tds-dropdown-filter', () => {
5
- test('renders filter dropdown correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const dropdown = page.getByTestId('tds-dropdown-testid');
8
- await expect(dropdown).toHaveCount(1);
9
- /* Check diff on screenshot */
10
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
- });
12
- test('clicking the dropdown opens the dropdown-list, then start typing "iles" to only show that option in the dropdown list', async ({ page, }) => {
13
- await page.goto(componentTestPath);
14
- const inputElement = page.getByRole('textbox');
15
- const dropdownListElementOneButton = page
16
- .locator('tds-dropdown-option')
17
- .filter({ hasText: /Option 1/ });
18
- const dropdownListElementTwoButton = page
19
- .locator('tds-dropdown-option')
20
- .filter({ hasText: /Option 2/ });
21
- const dropdownListElementThreeButton = page
22
- .locator('tds-dropdown-option')
23
- .filter({ hasText: /Option 3/ });
24
- const dropdownListElementFourButton = page
25
- .locator('tds-dropdown-option')
26
- .filter({ hasText: /Option 4/ });
27
- const dropdownListElementFiveButton = page
28
- .locator('tds-dropdown-option')
29
- .filter({ hasText: /îles Åland/ });
30
- /* before clicking dropdownlist should not be visible, the button should be */
31
- await expect(inputElement).toBeVisible();
32
- await expect(dropdownListElementOneButton).toBeHidden();
33
- await expect(dropdownListElementTwoButton).toBeHidden();
34
- await expect(dropdownListElementThreeButton).toBeHidden();
35
- await expect(dropdownListElementFourButton).toBeHidden();
36
- await expect(dropdownListElementFiveButton).toBeHidden();
37
- /* Clicking the input element should show the dropdown list and all its content */
38
- await inputElement.click();
39
- await expect(inputElement).toBeVisible();
40
- await expect(dropdownListElementOneButton).toBeVisible();
41
- await expect(dropdownListElementTwoButton).toBeVisible();
42
- await expect(dropdownListElementThreeButton).toBeVisible();
43
- await expect(dropdownListElementFourButton).toBeVisible();
44
- await expect(dropdownListElementFiveButton).toBeVisible();
45
- /* Add text and only Option 1 should be visible */
46
- await inputElement.fill('iles');
47
- await expect(inputElement).toBeVisible();
48
- await expect(dropdownListElementOneButton).toBeHidden();
49
- await expect(dropdownListElementTwoButton).toBeHidden();
50
- await expect(dropdownListElementThreeButton).toBeHidden();
51
- await expect(dropdownListElementFourButton).toBeHidden();
52
- await expect(dropdownListElementFiveButton).toBeVisible();
53
- /* Check diff on screenshot after adding text */
54
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
55
- });
56
- });
@@ -1,23 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/dropdown/test/filter/hide-no-result-message/index.html';
4
- test.describe('tds-dropdown-filter', () => {
5
- test('renders filter dropdown correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const dropdown = page.getByTestId('tds-dropdown-testid');
8
- await expect(dropdown).toHaveCount(1);
9
- /* Check diff on screenshot */
10
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
- });
12
- test('typing non existing value does not show "No results!" message', async ({ page }) => {
13
- await page.goto(componentTestPath);
14
- const inputElement = page.getByRole('textbox');
15
- /* Add text and only Option 1 should be visible */
16
- await inputElement.fill('Johnny looks for no results message');
17
- await expect(inputElement).toBeVisible();
18
- const noResult = page.getByText('No result');
19
- await expect(noResult).toBeHidden();
20
- /* Check diff on screenshot after adding text */
21
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
22
- });
23
- });
@@ -1,43 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/dropdown/test/filter/normalize-text-false/index.html';
4
- test.describe('tds-dropdown-filter', () => {
5
- test('renders filter dropdown correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const dropdown = page.getByTestId('tds-dropdown-testid');
8
- await expect(dropdown).toHaveCount(1);
9
- /* Check diff on screenshot */
10
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
- });
12
- test('typing "iles" should not show anything in dropdown with normalize text set to false', async ({ page, }) => {
13
- await page.goto(componentTestPath);
14
- const inputElement = page.getByRole('textbox');
15
- const dropdownListElementOneButton = page
16
- .locator('tds-dropdown-option')
17
- .filter({ hasText: /Option 1/ });
18
- const dropdownListElementTwoButton = page
19
- .locator('tds-dropdown-option')
20
- .filter({ hasText: /Option 2/ });
21
- const dropdownListElementThreeButton = page
22
- .locator('tds-dropdown-option')
23
- .filter({ hasText: /Option 3/ });
24
- const dropdownListElementFourButton = page
25
- .locator('tds-dropdown-option')
26
- .filter({ hasText: /Option 4/ });
27
- const dropdownListElementFiveButton = page
28
- .locator('tds-dropdown-option')
29
- .filter({ hasText: /îles Åland/ });
30
- /* Add text and only Option 1 should be visible */
31
- await inputElement.fill('iles');
32
- await expect(inputElement).toBeVisible();
33
- await expect(dropdownListElementOneButton).toBeHidden();
34
- await expect(dropdownListElementTwoButton).toBeHidden();
35
- await expect(dropdownListElementThreeButton).toBeHidden();
36
- await expect(dropdownListElementFourButton).toBeHidden();
37
- await expect(dropdownListElementFiveButton).toBeHidden();
38
- const noResult = page.getByText('No result');
39
- await expect(noResult).toBeVisible();
40
- /* Check diff on screenshot after adding text */
41
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
42
- });
43
- });
@@ -1,81 +0,0 @@
1
- import { test } from "stencil-playwright";
2
- import { expect } from "@playwright/test";
3
- const componentTestPath = 'src/components/dropdown/test/multiselect/index.html';
4
- test.describe('tds-dropdown-multiselect', () => {
5
- test('renders multiselect dropdown correctly', async ({ page }) => {
6
- await page.goto(componentTestPath);
7
- const dropdown = page.getByTestId('tds-dropdown-testid');
8
- await expect(dropdown).toHaveCount(1);
9
- /* Check diff on screenshot */
10
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
11
- });
12
- test('clicking the dropdown opens the dropdown-list, then click Option 1, should not close it', async ({ page, }) => {
13
- await page.goto(componentTestPath);
14
- /* click the dropdown button */
15
- const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
16
- await dropdownButton.click();
17
- /* Click the Option 1 button */
18
- const dropdownListElementOneButton = page
19
- .locator('tds-dropdown-option')
20
- .filter({ hasText: /Option 1/ });
21
- await dropdownListElementOneButton.click();
22
- await expect(dropdownListElementOneButton).toBeVisible();
23
- const dropdownButtonWithOption1 = page.getByRole('button', { name: 'Option 1' });
24
- await expect(dropdownButtonWithOption1.first()).toBeVisible();
25
- /* also check screenshot diff to make sure it says Option 1 */
26
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
27
- });
28
- test('clicking the dropdown opens the dropdown-list, then click on all the options', async ({ page, }) => {
29
- await page.goto(componentTestPath);
30
- /* click the button */
31
- const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
32
- await dropdownButton.click();
33
- /* get all checkboxes */
34
- const dropdownListElementOneButton = page
35
- .getByText(/Option 1/)
36
- .filter({ has: page.getByRole('checkbox') });
37
- const dropdownListElementTwoButton = page
38
- .getByText(/Option 2/)
39
- .filter({ has: page.getByRole('checkbox') });
40
- const dropdownListElementThreeButton = page
41
- .getByText(/Option 3/)
42
- .filter({ has: page.getByRole('checkbox') });
43
- const dropdownListElementFourButton = page
44
- .getByText(/Option 4/)
45
- .filter({ has: page.getByRole('checkbox') });
46
- await expect(dropdownListElementOneButton).toHaveCount(1);
47
- await expect(dropdownListElementTwoButton).toHaveCount(1);
48
- await expect(dropdownListElementThreeButton).toHaveCount(1);
49
- await expect(dropdownListElementFourButton).toHaveCount(1);
50
- /* check each one and see that it updates correctly */
51
- await dropdownListElementOneButton.click();
52
- await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
53
- await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
54
- await expect(dropdownListElementThreeButton).not.toHaveAttribute('aria-selected');
55
- await expect(dropdownListElementFourButton).not.toHaveAttribute('aria-selected');
56
- const inputText = page.getByRole('button', { name: /Option 1/ });
57
- await expect(inputText).toHaveCount(1);
58
- await dropdownListElementTwoButton.click();
59
- await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
60
- await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
61
- await expect(dropdownListElementThreeButton).not.toHaveAttribute('aria-selected');
62
- await expect(dropdownListElementFourButton).not.toHaveAttribute('aria-selected');
63
- await expect(inputText).toHaveCount(1);
64
- await dropdownListElementThreeButton.click();
65
- await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
66
- await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
67
- await expect(dropdownListElementThreeButton).toHaveAttribute('aria-selected');
68
- await expect(dropdownListElementFourButton).not.toHaveAttribute('aria-selected');
69
- const inputText2 = page.getByRole('button', { name: /Option 1,Option 3/ });
70
- await expect(inputText2).toHaveCount(1);
71
- await dropdownListElementFourButton.click();
72
- await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
73
- await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
74
- await expect(dropdownListElementThreeButton).toHaveAttribute('aria-selected');
75
- await expect(dropdownListElementFourButton).toHaveAttribute('aria-selected');
76
- const inputText3 = page.getByRole('button', { name: /Option 1,Option 3,Option 4/ });
77
- await expect(inputText3).toHaveCount(1);
78
- /* also check screenshot diff to make sure */
79
- await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
80
- });
81
- });