@statistikzh/leu 0.28.1 → 0.28.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/dist/{Accordion-CwkI7sfx.js → Accordion-EwJ1WHFd.js} +1 -1
  2. package/dist/Accordion.js +2 -2
  3. package/dist/{Button-DcuvEVkC.d.ts → Button-BywuwtT2.d.ts} +0 -1
  4. package/dist/{Button-D1aYnunQ.js → Button-q4GeKj_3.js} +3 -4
  5. package/dist/Button.d.ts +1 -1
  6. package/dist/Button.js +4 -4
  7. package/dist/{ButtonGroup-CqThYjzX.js → ButtonGroup-BeU3Prei.js} +2 -2
  8. package/dist/ButtonGroup.js +5 -5
  9. package/dist/{ChartWrapper-BjVT4x-H.js → ChartWrapper-Bdb0_n2z.js} +2 -2
  10. package/dist/ChartWrapper.js +3 -3
  11. package/dist/{Checkbox-HxYqp2w4.js → Checkbox-BC0gAuaH.js} +2 -2
  12. package/dist/Checkbox.js +3 -3
  13. package/dist/{CheckboxGroup-DYws2rwt.js → CheckboxGroup-CiOgcwmo.js} +2 -2
  14. package/dist/CheckboxGroup.js +4 -4
  15. package/dist/{Chip-gKxD6IaZ.js → Chip-CYlPzmTG.js} +1 -1
  16. package/dist/Chip.js +2 -2
  17. package/dist/{ChipGroup-ZvBzX_wd.js → ChipGroup-3IMW_Mp7.js} +1 -1
  18. package/dist/ChipGroup.js +3 -3
  19. package/dist/ChipLink.js +2 -2
  20. package/dist/ChipRemovable.js +3 -3
  21. package/dist/ChipSelectable.js +2 -2
  22. package/dist/{Dialog-BYpzTprV.js → Dialog-DCl5qSXY.js} +3 -4
  23. package/dist/Dialog.js +3 -3
  24. package/dist/{Dropdown-C4CgE4E-.js → Dropdown-COmpmOev.js} +5 -5
  25. package/dist/Dropdown.d.ts +1 -1
  26. package/dist/Dropdown.js +8 -8
  27. package/dist/{FileInput-nsnSQCaU.js → FileInput-DXjoqKB4.js} +4 -4
  28. package/dist/FileInput.d.ts +1 -1
  29. package/dist/FileInput.js +6 -6
  30. package/dist/{Icon-D8HTPEFH.js → Icon-Bmk7lLWY.js} +1 -1
  31. package/dist/Icon.js +2 -2
  32. package/dist/{Input-OrILqlax.js → Input-B9FwAPKO.js} +2 -2
  33. package/dist/Input.js +3 -3
  34. package/dist/{LeuElement-C_lcHzQI.js → LeuElement-CQJQi8TB.js} +1 -1
  35. package/dist/{Menu-CFLCnI34.js → Menu-bWCAn0rT.js} +2 -2
  36. package/dist/Menu.js +4 -4
  37. package/dist/{MenuItem-ICjLCGim.js → MenuItem-CzCFZi8o.js} +2 -2
  38. package/dist/MenuItem.js +3 -3
  39. package/dist/{Message-Dw5D_0i1.js → Message-DMaM9ukF.js} +2 -2
  40. package/dist/Message.js +3 -3
  41. package/dist/{Pagination-D1tP5FrM.js → Pagination-870u3UgQ.js} +4 -4
  42. package/dist/{Pagination-9eZ8WMvR.d.ts → Pagination-B-mTHZiw.d.ts} +1 -1
  43. package/dist/Pagination.d.ts +1 -1
  44. package/dist/Pagination.js +6 -6
  45. package/dist/{Placeholder-CnGzCZ5-.js → Placeholder-DvvzGB1p.js} +1 -1
  46. package/dist/Placeholder.js +2 -2
  47. package/dist/{Popup-BiN_tZDN.js → Popup-BpG_7twr.js} +1 -1
  48. package/dist/Popup.js +2 -2
  49. package/dist/{ProgressBar-BfJo_KyU.js → ProgressBar-BkskTLWK.js} +1 -1
  50. package/dist/ProgressBar.js +2 -2
  51. package/dist/{Radio-CV7vuQUj.js → Radio-BS7UUhR3.js} +1 -1
  52. package/dist/Radio.js +2 -2
  53. package/dist/{RadioGroup-C3XWSScc.js → RadioGroup-Cpo9kAjB.js} +2 -2
  54. package/dist/RadioGroup.js +3 -3
  55. package/dist/{Range-C8RVrIM9.js → Range-Dh0p5UWA.js} +1 -1
  56. package/dist/Range.js +2 -2
  57. package/dist/{ScrollTop-B_TJ_k4m.js → ScrollTop-CtPidICZ.js} +3 -3
  58. package/dist/ScrollTop.d.ts +1 -1
  59. package/dist/ScrollTop.js +5 -5
  60. package/dist/{Select-CbPTrL3G.js → Select-W1KqDOgx.js} +7 -7
  61. package/dist/Select.d.ts +1 -1
  62. package/dist/Select.js +9 -9
  63. package/dist/{Spinner-ChKJQJTN.js → Spinner-CmAYIFws.js} +1 -1
  64. package/dist/Spinner.js +2 -2
  65. package/dist/{Tab-BJbzY1xd.js → Tab-7Cww5fSx.js} +1 -1
  66. package/dist/Tab.js +2 -2
  67. package/dist/{TabGroup-BIaCHrKR.js → TabGroup-tURfCrlw.js} +3 -3
  68. package/dist/TabGroup.js +4 -4
  69. package/dist/{TabPanel-CTyw410b.js → TabPanel-DIZcmcMV.js} +1 -1
  70. package/dist/TabPanel.js +2 -2
  71. package/dist/{Table-D3QmePJd.js → Table-BVYjYXP9.js} +3 -3
  72. package/dist/Table.d.ts +1 -1
  73. package/dist/Table.js +7 -7
  74. package/dist/{Tag-nUnWtHYy.js → Tag-x0KmEDEa.js} +1 -1
  75. package/dist/Tag.js +2 -2
  76. package/dist/{VisuallyHidden-DF2q9pTa.js → VisuallyHidden-CXRfGsaZ.js} +1 -1
  77. package/dist/VisuallyHidden.js +2 -2
  78. package/dist/custom-elements.json +6445 -0
  79. package/dist/index.d.ts +2 -2
  80. package/dist/index.js +30 -30
  81. package/dist/leu-accordion.js +2 -2
  82. package/dist/leu-button-group.js +5 -5
  83. package/dist/leu-button.d.ts +1 -1
  84. package/dist/leu-button.js +4 -4
  85. package/dist/leu-chart-wrapper.js +3 -3
  86. package/dist/leu-checkbox-group.js +4 -4
  87. package/dist/leu-checkbox.js +3 -3
  88. package/dist/leu-chip-group.js +3 -3
  89. package/dist/leu-chip-link.js +2 -2
  90. package/dist/leu-chip-removable.js +3 -3
  91. package/dist/leu-chip-selectable.js +2 -2
  92. package/dist/leu-dialog.js +3 -3
  93. package/dist/leu-dropdown.js +8 -8
  94. package/dist/leu-file-input.js +6 -6
  95. package/dist/leu-icon.js +2 -2
  96. package/dist/leu-input.js +3 -3
  97. package/dist/leu-menu-item.js +3 -3
  98. package/dist/leu-menu.js +4 -4
  99. package/dist/leu-message.js +3 -3
  100. package/dist/leu-pagination.d.ts +1 -1
  101. package/dist/leu-pagination.js +6 -6
  102. package/dist/leu-placeholder.js +2 -2
  103. package/dist/leu-popup.js +2 -2
  104. package/dist/leu-progress-bar.js +2 -2
  105. package/dist/leu-radio-group.js +3 -3
  106. package/dist/leu-radio.js +2 -2
  107. package/dist/leu-range.js +2 -2
  108. package/dist/leu-scroll-top.js +5 -5
  109. package/dist/leu-select.js +9 -9
  110. package/dist/leu-spinner.js +2 -2
  111. package/dist/leu-tab-group.js +4 -4
  112. package/dist/leu-tab-panel.js +2 -2
  113. package/dist/leu-tab.js +2 -2
  114. package/dist/leu-table.js +7 -7
  115. package/dist/leu-tag.js +2 -2
  116. package/dist/leu-visually-hidden.js +2 -2
  117. package/dist/vscode.html-custom-data.json +11 -11
  118. package/dist/vue/index.d.ts +20 -20
  119. package/dist/web-types.json +28 -28
  120. package/package.json +4 -1
  121. package/.editorconfig +0 -29
  122. package/.github/workflows/ci.yml +0 -81
  123. package/.github/workflows/deploy-github-pages.yaml +0 -34
  124. package/.github/workflows/publish.yml +0 -28
  125. package/.github/workflows/release-please.yml +0 -19
  126. package/.husky/commit-msg +0 -1
  127. package/.husky/pre-commit +0 -1
  128. package/.nvmrc +0 -1
  129. package/.prettierignore +0 -2
  130. package/.release-please-manifest.json +0 -3
  131. package/.storybook/main.ts +0 -34
  132. package/.storybook/manager-head.html +0 -1
  133. package/.storybook/manager.ts +0 -6
  134. package/.storybook/preview.ts +0 -96
  135. package/.storybook/static/fonts/Inter-Black.woff2 +0 -0
  136. package/.storybook/static/fonts/Inter-Regular.woff2 +0 -0
  137. package/.storybook/static/fonts.css +0 -11
  138. package/.storybook/static/global.css +0 -5
  139. package/.storybook/static/logo.svg +0 -19
  140. package/.storybook/theme.ts +0 -8
  141. package/AGENTS.md +0 -162
  142. package/CHANGELOG.md +0 -601
  143. package/CODE_OF_CONDUCT.md +0 -128
  144. package/CONTRIBUTING.md +0 -42
  145. package/commitlint.config.cjs +0 -1
  146. package/custom-elements-manifest.config.js +0 -46
  147. package/eslint.config.mjs +0 -79
  148. package/postcss.config.cjs +0 -16
  149. package/release-please-config.json +0 -9
  150. package/scripts/generate-component/generate.js +0 -167
  151. package/scripts/generate-component/templates/[Name].ts +0 -31
  152. package/scripts/generate-component/templates/[name].css +0 -6
  153. package/scripts/generate-component/templates/[namespace]-[name].ts +0 -11
  154. package/scripts/generate-component/templates/stories/[name].stories.ts +0 -26
  155. package/scripts/generate-component/templates/test/[name].test.ts +0 -23
  156. package/scripts/postcss-leu-font-styles.cjs +0 -154
  157. package/src/components/accordion/Accordion.ts +0 -108
  158. package/src/components/accordion/accordion.css +0 -150
  159. package/src/components/accordion/leu-accordion.ts +0 -11
  160. package/src/components/accordion/stories/accordion.stories.ts +0 -62
  161. package/src/components/accordion/test/accordion.test.ts +0 -118
  162. package/src/components/button/Button.ts +0 -286
  163. package/src/components/button/button.css +0 -317
  164. package/src/components/button/leu-button.ts +0 -11
  165. package/src/components/button/stories/button.stories.ts +0 -366
  166. package/src/components/button/test/button.test.ts +0 -417
  167. package/src/components/button-group/ButtonGroup.ts +0 -97
  168. package/src/components/button-group/button-group.css +0 -5
  169. package/src/components/button-group/leu-button-group.ts +0 -11
  170. package/src/components/button-group/stories/button-group.stories.ts +0 -54
  171. package/src/components/button-group/test/button-group.test.ts +0 -105
  172. package/src/components/chart-wrapper/ChartWrapper.ts +0 -78
  173. package/src/components/chart-wrapper/chart-wrapper.css +0 -87
  174. package/src/components/chart-wrapper/leu-chart-wrapper.ts +0 -11
  175. package/src/components/chart-wrapper/stories/chart-wrapper.stories.ts +0 -58
  176. package/src/components/chart-wrapper/test/chart-wrapper.test.ts +0 -77
  177. package/src/components/checkbox/Checkbox.ts +0 -129
  178. package/src/components/checkbox/CheckboxGroup.ts +0 -57
  179. package/src/components/checkbox/checkbox-group.css +0 -29
  180. package/src/components/checkbox/checkbox.css +0 -81
  181. package/src/components/checkbox/leu-checkbox-group.ts +0 -11
  182. package/src/components/checkbox/leu-checkbox.ts +0 -11
  183. package/src/components/checkbox/stories/checkbox-group.stories.ts +0 -59
  184. package/src/components/checkbox/stories/checkbox.stories.ts +0 -72
  185. package/src/components/checkbox/test/checkbox-group.test.ts +0 -109
  186. package/src/components/checkbox/test/checkbox.test.ts +0 -247
  187. package/src/components/chip/Chip.ts +0 -19
  188. package/src/components/chip/ChipGroup.ts +0 -122
  189. package/src/components/chip/ChipLink.ts +0 -24
  190. package/src/components/chip/ChipRemovable.ts +0 -45
  191. package/src/components/chip/ChipSelectable.ts +0 -80
  192. package/src/components/chip/chip-group.css +0 -15
  193. package/src/components/chip/chip.css +0 -139
  194. package/src/components/chip/exports.ts +0 -4
  195. package/src/components/chip/leu-chip-group.ts +0 -11
  196. package/src/components/chip/leu-chip-link.ts +0 -11
  197. package/src/components/chip/leu-chip-removable.ts +0 -11
  198. package/src/components/chip/leu-chip-selectable.ts +0 -11
  199. package/src/components/chip/stories/chip-group.stories.ts +0 -159
  200. package/src/components/chip/stories/chip-link.stories.ts +0 -45
  201. package/src/components/chip/stories/chip-removable.stories.ts +0 -42
  202. package/src/components/chip/stories/chip-selectable.stories.ts +0 -54
  203. package/src/components/chip/test/chip-group.test.ts +0 -171
  204. package/src/components/chip/test/chip-link.test.ts +0 -54
  205. package/src/components/chip/test/chip-removable.test.ts +0 -105
  206. package/src/components/chip/test/chip-selectable.test.ts +0 -101
  207. package/src/components/chip/test/chip.test.ts +0 -22
  208. package/src/components/dialog/Dialog.ts +0 -86
  209. package/src/components/dialog/dialog.css +0 -157
  210. package/src/components/dialog/leu-dialog.ts +0 -11
  211. package/src/components/dialog/stories/dialog.stories.ts +0 -142
  212. package/src/components/dialog/test/dialog.test.ts +0 -85
  213. package/src/components/dropdown/Dropdown.ts +0 -152
  214. package/src/components/dropdown/dropdown.css +0 -16
  215. package/src/components/dropdown/leu-dropdown.ts +0 -11
  216. package/src/components/dropdown/stories/dropdown.stories.ts +0 -58
  217. package/src/components/dropdown/test/dropdown.test.ts +0 -59
  218. package/src/components/file-input/FileInput.ts +0 -324
  219. package/src/components/file-input/file-input.css +0 -118
  220. package/src/components/file-input/leu-file-input.ts +0 -11
  221. package/src/components/file-input/stories/file-input.stories.ts +0 -45
  222. package/src/components/file-input/test/file-input.test.ts +0 -62
  223. package/src/components/icon/Icon.ts +0 -47
  224. package/src/components/icon/icon.css +0 -10
  225. package/src/components/icon/leu-icon.ts +0 -11
  226. package/src/components/icon/paths.ts +0 -219
  227. package/src/components/icon/stories/icon.stories.ts +0 -79
  228. package/src/components/icon/test/icon.test.ts +0 -50
  229. package/src/components/input/Input.ts +0 -469
  230. package/src/components/input/input.css +0 -238
  231. package/src/components/input/leu-input.ts +0 -11
  232. package/src/components/input/stories/input.stories.ts +0 -204
  233. package/src/components/input/test/input.test.ts +0 -603
  234. package/src/components/menu/Menu.ts +0 -149
  235. package/src/components/menu/MenuItem.ts +0 -168
  236. package/src/components/menu/leu-menu-item.ts +0 -11
  237. package/src/components/menu/leu-menu.ts +0 -11
  238. package/src/components/menu/menu-item.css +0 -77
  239. package/src/components/menu/menu.css +0 -19
  240. package/src/components/menu/stories/menu-item.stories.ts +0 -81
  241. package/src/components/menu/stories/menu.stories.ts +0 -54
  242. package/src/components/menu/test/menu-item.test.ts +0 -210
  243. package/src/components/menu/test/menu.test.ts +0 -125
  244. package/src/components/message/Message.ts +0 -118
  245. package/src/components/message/leu-message.ts +0 -11
  246. package/src/components/message/message.css +0 -163
  247. package/src/components/message/stories/message.mdx +0 -76
  248. package/src/components/message/stories/message.stories.ts +0 -149
  249. package/src/components/message/test/message.test.ts +0 -96
  250. package/src/components/pagination/Pagination.ts +0 -192
  251. package/src/components/pagination/leu-pagination.ts +0 -11
  252. package/src/components/pagination/pagination.css +0 -54
  253. package/src/components/pagination/stories/pagination.stories.ts +0 -115
  254. package/src/components/pagination/test/pagination.test.ts +0 -210
  255. package/src/components/placeholder/Placeholder.ts +0 -33
  256. package/src/components/placeholder/leu-placeholder.ts +0 -11
  257. package/src/components/placeholder/placeholder.css +0 -59
  258. package/src/components/placeholder/stories/placeholder.stories.ts +0 -34
  259. package/src/components/placeholder/test/placeholder.test.ts +0 -31
  260. package/src/components/popup/Popup.ts +0 -264
  261. package/src/components/popup/leu-popup.ts +0 -11
  262. package/src/components/popup/popup.css +0 -24
  263. package/src/components/popup/stories/popup.stories.ts +0 -117
  264. package/src/components/popup/test/popup.test.ts +0 -90
  265. package/src/components/progress-bar/ProgressBar.ts +0 -52
  266. package/src/components/progress-bar/leu-progress-bar.ts +0 -11
  267. package/src/components/progress-bar/progress-bar.css +0 -97
  268. package/src/components/progress-bar/stories/progress-bar.stories.ts +0 -39
  269. package/src/components/progress-bar/test/progress-bar.test.ts +0 -61
  270. package/src/components/radio/Radio.ts +0 -59
  271. package/src/components/radio/RadioGroup.ts +0 -181
  272. package/src/components/radio/leu-radio-group.ts +0 -11
  273. package/src/components/radio/leu-radio.ts +0 -11
  274. package/src/components/radio/radio-group.css +0 -29
  275. package/src/components/radio/radio.css +0 -76
  276. package/src/components/radio/stories/radio-group.stories.ts +0 -54
  277. package/src/components/radio/stories/radio.stories.ts +0 -55
  278. package/src/components/radio/test/radio-group.test.ts +0 -83
  279. package/src/components/radio/test/radio.test.ts +0 -119
  280. package/src/components/range/Range.ts +0 -400
  281. package/src/components/range/leu-range.ts +0 -11
  282. package/src/components/range/range.css +0 -227
  283. package/src/components/range/stories/range.stories.ts +0 -185
  284. package/src/components/range/test/range.test.ts +0 -228
  285. package/src/components/scroll-top/ScrollTop.ts +0 -91
  286. package/src/components/scroll-top/leu-scroll-top.ts +0 -11
  287. package/src/components/scroll-top/scroll-top.css +0 -50
  288. package/src/components/scroll-top/stories/scroll-top.stories.ts +0 -217
  289. package/src/components/scroll-top/test/scroll-top.test.ts +0 -22
  290. package/src/components/select/Select.ts +0 -570
  291. package/src/components/select/leu-select.ts +0 -11
  292. package/src/components/select/select.css +0 -222
  293. package/src/components/select/stories/select.stories.ts +0 -173
  294. package/src/components/select/test/fixtures.ts +0 -162
  295. package/src/components/select/test/select.test.ts +0 -937
  296. package/src/components/spinner/Spinner.ts +0 -31
  297. package/src/components/spinner/leu-spinner.ts +0 -11
  298. package/src/components/spinner/spinner.css +0 -20
  299. package/src/components/spinner/stories/spinner.stories.ts +0 -29
  300. package/src/components/spinner/test/spinner.test.ts +0 -30
  301. package/src/components/tab/Tab.ts +0 -72
  302. package/src/components/tab/TabGroup.ts +0 -267
  303. package/src/components/tab/TabPanel.ts +0 -59
  304. package/src/components/tab/leu-tab-group.ts +0 -11
  305. package/src/components/tab/leu-tab-panel.ts +0 -11
  306. package/src/components/tab/leu-tab.ts +0 -11
  307. package/src/components/tab/stories/tab.stories.ts +0 -97
  308. package/src/components/tab/tab-group.css +0 -63
  309. package/src/components/tab/tab-panel.css +0 -10
  310. package/src/components/tab/tab.css +0 -54
  311. package/src/components/tab/test/tab-group.test.ts +0 -426
  312. package/src/components/tab/test/tab-panel.test.ts +0 -102
  313. package/src/components/tab/test/tab.test.ts +0 -139
  314. package/src/components/table/Table.ts +0 -253
  315. package/src/components/table/leu-table.ts +0 -11
  316. package/src/components/table/stories/table.stories.ts +0 -131
  317. package/src/components/table/table.css +0 -112
  318. package/src/components/table/test/table.test.ts +0 -37
  319. package/src/components/tag/Tag.ts +0 -28
  320. package/src/components/tag/leu-tag.ts +0 -11
  321. package/src/components/tag/stories/tag.stories.ts +0 -107
  322. package/src/components/tag/tag.css +0 -42
  323. package/src/components/tag/test/tag.test.ts +0 -28
  324. package/src/components/visually-hidden/VisuallyHidden.ts +0 -16
  325. package/src/components/visually-hidden/leu-visually-hidden.ts +0 -11
  326. package/src/components/visually-hidden/stories/visually-hidden.stories.ts +0 -22
  327. package/src/components/visually-hidden/test/visually-hidden.test.ts +0 -34
  328. package/src/components/visually-hidden/visually-hidden.css +0 -10
  329. package/src/docs/contributing.mdx +0 -154
  330. package/src/docs/installation.mdx +0 -35
  331. package/src/docs/theme.mdx +0 -400
  332. package/src/docs/usage.mdx +0 -73
  333. package/src/global.d.ts +0 -11
  334. package/src/index.ts +0 -29
  335. package/src/lib/LeuElement.ts +0 -43
  336. package/src/lib/a11y.ts +0 -26
  337. package/src/lib/hasSlotController.ts +0 -74
  338. package/src/lib/mixins/FormAssociatedMixin.ts +0 -115
  339. package/src/lib/styleMap.ts +0 -139
  340. package/src/lib/utils.ts +0 -45
  341. package/src/styles/common-styles.css +0 -14
  342. package/src/styles/custom-media.css +0 -6
  343. package/src/styles/font-definitions.json +0 -210
  344. package/src/styles/style.stories.ts +0 -64
  345. package/src/styles/theme.css +0 -90
  346. package/stat_zh.png +0 -0
  347. package/stylelint.config.mjs +0 -23
  348. package/tsconfig.build.json +0 -24
  349. package/tsconfig.json +0 -14
  350. package/tsdown.config.ts +0 -35
  351. package/web-test-runner.config.mjs +0 -102
@@ -1,171 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect, oneEvent } from "@open-wc/testing"
3
-
4
- import "../leu-chip-selectable.js"
5
- import "../leu-chip-removable.js"
6
- import "../leu-chip-group.js"
7
- import type { LeuChipGroup } from "../leu-chip-group.js"
8
-
9
- async function removableFixture() {
10
- return fixture(html`
11
- <leu-chip-group>
12
- <leu-chip-removable>Publikationen</leu-chip-removable>
13
- <leu-chip-removable value="2">Daten</leu-chip-removable>
14
- <leu-chip-removable value="3">Schnittstellen</leu-chip-removable>
15
- </leu-chip-group>
16
- `)
17
- }
18
-
19
- async function singleSelectionFixture() {
20
- return fixture<LeuChipGroup>(html`
21
- <leu-chip-group selection-mode="single">
22
- <leu-chip-selectable value="1" variant="radio"
23
- >Publikationen</leu-chip-selectable
24
- >
25
- <leu-chip-selectable value="2" variant="radio">Daten</leu-chip-selectable>
26
- <leu-chip-selectable value="3" variant="radio"
27
- >Schnittstellen</leu-chip-selectable
28
- >
29
- </leu-chip-group>
30
- `)
31
- }
32
-
33
- async function multipleSelectionFixture() {
34
- return fixture<LeuChipGroup>(html`
35
- <leu-chip-group selection-mode="multiple">
36
- <leu-chip-selectable value="1">Publikationen</leu-chip-selectable>
37
- <leu-chip-selectable value="2">Daten</leu-chip-selectable>
38
- <leu-chip-selectable value="3">Schnittstellen</leu-chip-selectable>
39
- </leu-chip-group>
40
- `)
41
- }
42
-
43
- describe("LeuChipGroup", () => {
44
- it("is a defined element", async () => {
45
- const el = customElements.get("leu-chip-selectable")
46
-
47
- await expect(el).not.to.be.undefined
48
- })
49
-
50
- it("passes the a11y audit with removable chips", async () => {
51
- const el = await removableFixture()
52
-
53
- await expect(el).shadowDom.to.be.accessible()
54
- })
55
-
56
- it("passes the a11y audit with selectable chips", async () => {
57
- const el = await multipleSelectionFixture()
58
-
59
- await expect(el).shadowDom.to.be.accessible()
60
- })
61
-
62
- it("passes the a11y audit with selectable radio chips", async () => {
63
- const el = await singleSelectionFixture()
64
-
65
- await expect(el).shadowDom.to.be.accessible()
66
- })
67
-
68
- it("updates the value when a chip is selected", async () => {
69
- const el = await singleSelectionFixture()
70
- const chip = el.querySelector("leu-chip-selectable")
71
- const chipButton = chip.shadowRoot.querySelector("button")
72
- chipButton.click()
73
-
74
- await expect(el.value).to.deep.equal(["1"])
75
- })
76
-
77
- it("updates the value when multiple chips are selected", async () => {
78
- const el = await multipleSelectionFixture()
79
- const chips = el.querySelectorAll("leu-chip-selectable")
80
- const chipButton2 = chips[1].shadowRoot.querySelector("button")
81
- const chipButton3 = chips[2].shadowRoot.querySelector("button")
82
-
83
- chipButton2.click()
84
- chipButton3.click()
85
-
86
- await expect(el.value).to.deep.equal(["2", "3"])
87
- })
88
-
89
- it("fires an input event when a chip is selected", async () => {
90
- const el = await singleSelectionFixture()
91
- const chip = el.querySelector("leu-chip-selectable")
92
- const chipButton = chip.shadowRoot.querySelector("button")
93
-
94
- setTimeout(() => {
95
- chipButton.click()
96
- }, 0)
97
-
98
- const event = await oneEvent(el, "input")
99
-
100
- await expect(event).to.exist
101
- })
102
-
103
- it("checks only chip when the value of the group is set (selection-mode=single)", async () => {
104
- const el = await singleSelectionFixture()
105
- const items = el.querySelectorAll("leu-chip-selectable")
106
-
107
- expect(items[0].checked).to.be.false
108
- expect(items[1].checked).to.be.false
109
- expect(items[2].checked).to.be.false
110
-
111
- el.value = ["2"]
112
-
113
- expect(items[0].checked).to.be.false
114
- expect(items[1].checked).to.be.true
115
- expect(items[2].checked).to.be.false
116
-
117
- // Should check the first item with the given value and not first item of the value list
118
- el.value = ["2", "1"]
119
-
120
- expect(items[0].checked).to.be.true
121
- expect(items[1].checked).to.be.false
122
-
123
- el.value = []
124
-
125
- expect(items[0].checked).to.be.false
126
- expect(items[1].checked).to.be.false
127
- expect(items[2].checked).to.be.false
128
-
129
- el.value = ["asdf"]
130
-
131
- expect(items[0].checked).to.be.false
132
- expect(items[1].checked).to.be.false
133
- expect(items[2].checked).to.be.false
134
- expect(el.value).to.deep.equal([])
135
- })
136
-
137
- it("checks chips when the value of the group is set (selection-mode=multiple)", async () => {
138
- const el = await multipleSelectionFixture()
139
- const items = el.querySelectorAll("leu-chip-selectable")
140
-
141
- expect(items[0].checked).to.be.false
142
- expect(items[1].checked).to.be.false
143
- expect(items[2].checked).to.be.false
144
-
145
- el.value = ["2"]
146
-
147
- expect(items[0].checked).to.be.false
148
- expect(items[1].checked).to.be.true
149
- expect(items[2].checked).to.be.false
150
-
151
- // Should check the first item with the given value and not first item of the value list
152
- el.value = ["2", "1"]
153
-
154
- expect(items[0].checked).to.be.true
155
- expect(items[1].checked).to.be.true
156
- expect(items[2].checked).to.be.false
157
-
158
- el.value = []
159
-
160
- expect(items[0].checked).to.be.false
161
- expect(items[1].checked).to.be.false
162
- expect(items[2].checked).to.be.false
163
-
164
- el.value = ["asdf"]
165
-
166
- expect(items[0].checked).to.be.false
167
- expect(items[1].checked).to.be.false
168
- expect(items[2].checked).to.be.false
169
- expect(el.value).to.deep.equal([])
170
- })
171
- })
@@ -1,54 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect } from "@open-wc/testing"
3
-
4
- import "../leu-chip-link.js"
5
-
6
- async function defaultFixture() {
7
- return fixture(html`
8
- <leu-chip-link href="https://zh.ch/daten">Daten</leu-chip-link>
9
- `)
10
- }
11
-
12
- describe("LeuChipLink", () => {
13
- it("is a defined element", async () => {
14
- const el = customElements.get("leu-chip-link")
15
-
16
- await expect(el).not.to.be.undefined
17
- })
18
-
19
- it("passes the a11y audit", async () => {
20
- const el = await defaultFixture()
21
-
22
- await expect(el).shadowDom.to.be.accessible()
23
- })
24
-
25
- it("renders the label", async () => {
26
- const el = await defaultFixture()
27
-
28
- expect(el).to.have.trimmed.text("Daten")
29
- })
30
-
31
- it("renders a link element", async () => {
32
- const el = await defaultFixture()
33
-
34
- expect(el.shadowRoot.querySelector("a")).to.exist
35
- })
36
-
37
- it("passes the href attribute to the link", async () => {
38
- const el = await defaultFixture()
39
-
40
- expect(el.shadowRoot.querySelector("a").getAttribute("href")).to.equal(
41
- "https://zh.ch/daten",
42
- )
43
- })
44
-
45
- it("delegates the focus to the a element", async () => {
46
- const el = await defaultFixture()
47
-
48
- el.focus()
49
-
50
- expect(el.shadowRoot.querySelector("a")).to.equal(
51
- el.shadowRoot.activeElement,
52
- )
53
- })
54
- })
@@ -1,105 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect, oneEvent } from "@open-wc/testing"
3
- import { sendKeys } from "@web/test-runner-commands"
4
- import { ifDefined } from "lit/directives/if-defined.js"
5
-
6
- import "../leu-chip-removable.js"
7
-
8
- async function defaultFixture(args = {}) {
9
- return fixture(html`
10
- <leu-chip-removable value=${ifDefined(args.value)}
11
- >${args.label ?? "Daten"}</leu-chip-removable
12
- >
13
- `)
14
- }
15
-
16
- describe("LeuChipRemovable", () => {
17
- it("is a defined element", async () => {
18
- const el = customElements.get("leu-chip-removable")
19
-
20
- await expect(el).not.to.be.undefined
21
- })
22
-
23
- it("passes the a11y audit", async () => {
24
- const el = await defaultFixture()
25
-
26
- await expect(el).shadowDom.to.be.accessible()
27
- })
28
-
29
- it("renders the label", async () => {
30
- const el = await defaultFixture()
31
-
32
- expect(el).to.have.trimmed.text("Daten")
33
- })
34
-
35
- it("renders a button element", async () => {
36
- const el = await defaultFixture()
37
-
38
- expect(el.shadowRoot.querySelector("button")).to.exist
39
- })
40
-
41
- it("renders a remove icon", async () => {
42
- const el = await defaultFixture()
43
-
44
- const iconPath = el.shadowRoot.querySelector("leu-icon")
45
-
46
- expect(iconPath.name).to.equal("close")
47
- })
48
-
49
- it("delegates the focus to the button element", async () => {
50
- const el = await defaultFixture()
51
-
52
- el.focus()
53
-
54
- expect(el.shadowRoot.querySelector("button")).to.equal(
55
- el.shadowRoot.activeElement,
56
- )
57
- })
58
-
59
- it("fires a remove event when the button is clicked", async () => {
60
- const el = await defaultFixture()
61
- const button = el.shadowRoot.querySelector("button")
62
-
63
- setTimeout(() => button.click())
64
- const event = await oneEvent(el, "leu:remove")
65
-
66
- expect(event).to.exist
67
- })
68
-
69
- it("fires a remove event when the enter key is pressed", async () => {
70
- const el = await defaultFixture()
71
-
72
- el.focus()
73
- setTimeout(() => sendKeys({ press: "Enter" }))
74
- const event = await oneEvent(el, "leu:remove")
75
-
76
- expect(event).to.exist
77
- })
78
-
79
- it("sends the value in the remove event", async () => {
80
- const el = await defaultFixture({ label: `Daten  ` })
81
- const button = el.shadowRoot.querySelector("button")
82
-
83
- setTimeout(() => button.click())
84
- const event = await oneEvent(el, "leu:remove")
85
-
86
- expect(event.detail.value).to.equal("Daten")
87
-
88
- el.value = "test"
89
-
90
- setTimeout(() => button.click())
91
- const event2 = await oneEvent(el, "leu:remove")
92
-
93
- expect(event2.detail.value).to.equal("test")
94
- })
95
-
96
- it("returns the value or label when getValue is called", async () => {
97
- const el = await defaultFixture({ label: `Daten  ` })
98
-
99
- expect(el.getValue()).to.equal("Daten")
100
-
101
- el.value = "daten-01"
102
-
103
- expect(el.getValue()).to.equal("daten-01")
104
- })
105
- })
@@ -1,101 +0,0 @@
1
- import { html } from "lit"
2
- import { ifDefined } from "lit/directives/if-defined.js"
3
- import { fixture, expect, oneEvent } from "@open-wc/testing"
4
- import { sendKeys } from "@web/test-runner-commands"
5
-
6
- import "../leu-chip-selectable.js"
7
-
8
- async function defaultFixture(args = {}) {
9
- return fixture(html`
10
- <leu-chip-selectable
11
- value=${ifDefined(args.value)}
12
- variant=${ifDefined(args.variant)}
13
- ?checked=${args.checked}
14
- >Publikationen</leu-chip-selectable
15
- >
16
- `)
17
- }
18
-
19
- describe("LeuChipSelectable", () => {
20
- it("is a defined element", async () => {
21
- const el = customElements.get("leu-chip-selectable")
22
-
23
- await expect(el).not.to.be.undefined
24
- })
25
-
26
- it("passes the a11y audit", async () => {
27
- const el = await defaultFixture()
28
-
29
- await expect(el).shadowDom.to.be.accessible()
30
- })
31
-
32
- it("renders the label", async () => {
33
- const el = await defaultFixture()
34
-
35
- expect(el).to.have.trimmed.text("Publikationen")
36
- })
37
-
38
- it("renders a button element", async () => {
39
- const el = await defaultFixture()
40
-
41
- expect(el.shadowRoot.querySelector("button")).to.exist
42
- })
43
-
44
- it("delegates the focus to the button element", async () => {
45
- const el = await defaultFixture()
46
-
47
- el.focus()
48
-
49
- expect(el.shadowRoot.querySelector("button")).to.equal(
50
- el.shadowRoot.activeElement,
51
- )
52
- })
53
-
54
- it("fires a input event when the button is clicked", async () => {
55
- const el = await defaultFixture()
56
- const button = el.shadowRoot.querySelector("button")
57
-
58
- setTimeout(() => button.click())
59
- const event = await oneEvent(el, "input")
60
-
61
- expect(event).to.exist
62
- })
63
-
64
- it("fires a input event when the enter key is pressed", async () => {
65
- const el = await defaultFixture()
66
-
67
- el.focus()
68
- setTimeout(() => sendKeys({ press: "Enter" }))
69
- const event = await oneEvent(el, "input")
70
-
71
- expect(event).to.exist
72
- })
73
-
74
- it("removes the checked state when the button is clicked", async () => {
75
- const el = await defaultFixture({ checked: true })
76
- const button = el.shadowRoot.querySelector("button")
77
-
78
- button.click()
79
-
80
- expect(el.checked).to.be.false
81
- })
82
-
83
- it("doesn't remove the checked state of a checked radio chip", async () => {
84
- const el = await defaultFixture({ variant: "radio", checked: true })
85
-
86
- const button = el.shadowRoot.querySelector("button")
87
- button.click()
88
-
89
- expect(el.checked).to.be.true
90
- })
91
-
92
- it("returns the value or label when getValue is called", async () => {
93
- const el = await defaultFixture()
94
-
95
- expect(el.getValue()).to.equal("Publikationen")
96
-
97
- el.value = "publikationen-01"
98
-
99
- expect(el.getValue()).to.equal("publikationen-01")
100
- })
101
- })
@@ -1,22 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect } from "@open-wc/testing"
3
-
4
- import "../leu-chip-link.js"
5
-
6
- async function defaultFixture() {
7
- return fixture(html` <leu-chip /> `)
8
- }
9
-
10
- describe("LeuChipLink", () => {
11
- it("is a defined element", async () => {
12
- const el = customElements.get("leu-chip-link")
13
-
14
- await expect(el).not.to.be.undefined
15
- })
16
-
17
- it("passes the a11y audit", async () => {
18
- const el = await defaultFixture()
19
-
20
- await expect(el).shadowDom.to.be.accessible()
21
- })
22
- })
@@ -1,86 +0,0 @@
1
- import { html, nothing } from "lit"
2
- import { createRef, ref } from "lit/directives/ref.js"
3
- import { classMap } from "lit/directives/class-map.js"
4
- import { property } from "lit/decorators.js"
5
-
6
- import { LeuElement } from "../../lib/LeuElement.js"
7
- import { HasSlotController } from "../../lib/hasSlotController.js"
8
- import { LeuIcon } from "../icon/Icon.js"
9
-
10
- import styles from "./dialog.css?inline"
11
-
12
- /**
13
- * @tagname leu-dialog
14
- */
15
- export class LeuDialog extends LeuElement {
16
- static dependencies = {
17
- "leu-icon": LeuIcon,
18
- }
19
-
20
- static styles = [LeuElement.styles, styles]
21
-
22
- static shadowRootOptions = {
23
- ...LeuElement.shadowRootOptions,
24
- delegatesFocus: true,
25
- }
26
-
27
- @property({ type: String })
28
- label: string = ""
29
-
30
- @property({ type: String })
31
- sublabel: string = ""
32
-
33
- @property({ type: Boolean, reflect: true })
34
- open: boolean = false
35
-
36
- protected _dialogRef = createRef<HTMLDialogElement>()
37
-
38
- protected hasSlotController = new HasSlotController(this, ["toolbar"])
39
-
40
- show() {
41
- this._dialogRef.value.showModal()
42
- }
43
-
44
- close() {
45
- this._dialogRef.value.close()
46
- }
47
-
48
- render() {
49
- const hasActionbar = this.hasSlotController.test("actionbar")
50
-
51
- const closeButtonLabelClasses = {
52
- "close-button__label": true,
53
- "close-button__label--hidden": hasActionbar,
54
- }
55
-
56
- return html`
57
- <dialog class="dialog" ref=${ref(this._dialogRef)} ?open=${this.open}>
58
- <div class="content">
59
- <div class="header">
60
- <div class="title-wrapper">
61
- <h1 class="title">${this.label}</h1>
62
- ${this.sublabel
63
- ? html`<p class="subtitle">${this.sublabel}</p>`
64
- : nothing}
65
- </div>
66
- <button
67
- class="close-button"
68
- @click=${this.close}
69
- aria-label="Schliessen"
70
- >
71
- <span
72
- class=${classMap(closeButtonLabelClasses)}
73
- aria-hidden="true"
74
- >Schliessen</span
75
- ><leu-icon name="close"> </leu-icon>
76
- </button>
77
- </div>
78
- <slot></slot>
79
- </div>
80
- <div class="actionbar">
81
- <slot name="actionbar"></slot>
82
- </div>
83
- </dialog>
84
- `
85
- }
86
- }
@@ -1,157 +0,0 @@
1
- @import url("../../styles/custom-media.css");
2
-
3
- /* figma https://www.figma.com/design/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?node-id=21161-186812&t=8VgDy9avMRG5aL7s-0 */
4
-
5
- :host {
6
- --dialog-font-regular: var(--leu-font-family-regular);
7
- --dialog-font-black: var(--leu-font-family-black);
8
-
9
- font-family: var(--dialog-font-regular);
10
- }
11
-
12
- .dialog {
13
- background: #fff;
14
- border: 0;
15
- padding: 0;
16
-
17
- overflow: hidden;
18
- background-color: var(--leu-color-black-0);
19
-
20
- flex-direction: column;
21
-
22
- margin: 0 auto;
23
- height: 100vh;
24
- width: 100vw;
25
- max-height: 100vh;
26
- max-width: 100vw;
27
-
28
- @media (--viewport-regular) {
29
- margin: 80px auto;
30
- height: fit-content;
31
- width: fit-content;
32
- max-width: min(100% - 4.5rem, 60.5rem);
33
- max-height: calc(100vh - 5rem);
34
- }
35
- }
36
-
37
- .dialog[open] {
38
- display: flex;
39
- }
40
-
41
- .dialog::backdrop {
42
- background-color: var(--leu-color-black-transp-40);
43
- }
44
-
45
- .content {
46
- --padding: 2rem;
47
- padding: var(--padding);
48
- padding-bottom: 0;
49
- margin-bottom: 1.5rem;
50
- overflow-y: auto;
51
-
52
- @media (--viewport-regular) {
53
- --padding: 2.5rem;
54
- }
55
-
56
- @media (--viewport-medium) {
57
- margin-bottom: 2rem;
58
- }
59
-
60
- @media (--viewport-large) {
61
- --padding: 3.5rem;
62
- }
63
-
64
- @media (--viewport-xlarge) {
65
- margin-bottom: 2.5rem;
66
- }
67
- }
68
-
69
- .title-wrapper {
70
- display: flex;
71
- flex-flow: column wrap;
72
- }
73
-
74
- .header {
75
- display: flex;
76
- align-items: flex-start;
77
- justify-content: space-between;
78
- }
79
-
80
- .title {
81
- font: var(--leu-t-curve-big-black-font);
82
- margin: 0 0 0.75rem;
83
- order: 2;
84
-
85
- @media (--viewport-regular) {
86
- margin-bottom: 1rem;
87
- }
88
-
89
- @media (--viewport-medium) {
90
- margin-bottom: 1.25rem;
91
- }
92
-
93
- @media (--viewport-xlarge) {
94
- margin-bottom: 1.5rem;
95
- font: var(--leu-t-bigger-big-black-font);
96
- }
97
- }
98
-
99
- .subtitle {
100
- color: var(--leu-color-black-transp-60);
101
- font-size: var(--leu-t-tiny-regular-font-size);
102
- line-height: var(--leu-t-tiny-regular-line-height);
103
-
104
- order: 1;
105
-
106
- margin: 0 0 4px;
107
- }
108
-
109
- .close-button {
110
- cursor: pointer;
111
- display: flex;
112
- gap: 0.5rem;
113
-
114
- padding: 0.25rem 0;
115
- margin-left: 0.75rem;
116
- border: 0;
117
- border-radius: 0.125rem;
118
-
119
- color: var(--leu-color-black-transp-60);
120
- background: transparent;
121
-
122
- @media (--viewport-regular) {
123
- margin-left: 1rem;
124
- }
125
-
126
- @media (--viewport-medium) {
127
- margin-left: 1.25rem;
128
- }
129
-
130
- @media (--viewport-xlarge) {
131
- margin-left: 1.5rem;
132
- }
133
- }
134
-
135
- .close-button:focus-visible {
136
- outline: 2px solid var(--leu-color-func-cyan);
137
- outline-offset: 2px;
138
- }
139
-
140
- .close-button__label {
141
- display: none;
142
- font: var(--leu-t-regular-regular-font);
143
-
144
- @media (--viewport-medium) {
145
- display: inline;
146
- }
147
- }
148
-
149
- .close-button__label--hidden {
150
- display: none;
151
- }
152
-
153
- .actionbar {
154
- display: flex;
155
- justify-content: flex-end;
156
- min-height: 3rem;
157
- }
@@ -1,11 +0,0 @@
1
- import { LeuDialog } from "./Dialog.js"
2
-
3
- export { LeuDialog }
4
-
5
- LeuDialog.define("leu-dialog")
6
-
7
- declare global {
8
- interface HTMLElementTagNameMap {
9
- "leu-dialog": LeuDialog
10
- }
11
- }