@statistikzh/leu 0.28.0 → 0.28.2

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 (346) hide show
  1. package/dist/{Accordion-D9kLsiBW.js → Accordion-CaDTUDJG.js} +1 -1
  2. package/dist/Accordion.js +2 -2
  3. package/dist/{Button-DyNVOHCd.js → Button-BF3_6xgs.js} +3 -3
  4. package/dist/Button.js +4 -4
  5. package/dist/{ButtonGroup-MEh4vb5a.js → ButtonGroup-grJiWGHI.js} +2 -2
  6. package/dist/ButtonGroup.js +5 -5
  7. package/dist/{ChartWrapper-DAl91BIN.js → ChartWrapper-CeolXijF.js} +2 -2
  8. package/dist/ChartWrapper.js +3 -3
  9. package/dist/{Checkbox-CGGyUW9U.js → Checkbox-DGUZ1XtB.js} +2 -2
  10. package/dist/Checkbox.js +3 -3
  11. package/dist/{CheckboxGroup-DXt5iMdj.js → CheckboxGroup-CGdyk_RP.js} +2 -2
  12. package/dist/CheckboxGroup.js +4 -4
  13. package/dist/{Chip-BGs71WGH.js → Chip-BpKH3_Nk.js} +1 -1
  14. package/dist/Chip.js +2 -2
  15. package/dist/{ChipGroup-BcGyusP-.js → ChipGroup-dSAMpfy1.js} +1 -1
  16. package/dist/ChipGroup.js +3 -3
  17. package/dist/ChipLink.js +2 -2
  18. package/dist/ChipRemovable.js +3 -3
  19. package/dist/ChipSelectable.js +2 -2
  20. package/dist/{Dialog-BzuyL1U3.js → Dialog-CC674l80.js} +2 -2
  21. package/dist/Dialog.js +3 -3
  22. package/dist/{Dropdown-plyBTM15.js → Dropdown-B9YTM5N_.js} +5 -5
  23. package/dist/Dropdown.d.ts +2 -2
  24. package/dist/Dropdown.js +8 -8
  25. package/dist/{FileInput-BT3Fe-0J.js → FileInput-D4kyWFkL.js} +8 -6
  26. package/dist/FileInput.d.ts +1 -1
  27. package/dist/FileInput.js +6 -6
  28. package/dist/{Icon-D83qesg5.js → Icon-DOcb_NlX.js} +1 -1
  29. package/dist/Icon.js +2 -2
  30. package/dist/{Input-D7zS50oz.js → Input-6Xu1N2sA.js} +2 -2
  31. package/dist/Input.js +3 -3
  32. package/dist/{LeuElement-DQI8cqZV.js → LeuElement-C3HedxlQ.js} +1 -1
  33. package/dist/{Menu-DRU1LiMM.js → Menu-CJtyuUvP.js} +2 -2
  34. package/dist/{Menu-Z2b7dsB5.d.ts → Menu-txbYINTW.d.ts} +1 -1
  35. package/dist/Menu.d.ts +1 -1
  36. package/dist/Menu.js +4 -4
  37. package/dist/{MenuItem-LY4TRIho.d.ts → MenuItem-9TTOrL0Z.d.ts} +1 -1
  38. package/dist/{MenuItem-DCttylRO.js → MenuItem-ClSE3auh.js} +2 -2
  39. package/dist/MenuItem.d.ts +1 -1
  40. package/dist/MenuItem.js +3 -3
  41. package/dist/{Message-0NxnKEqw.js → Message-C55ydBaU.js} +2 -2
  42. package/dist/Message.js +3 -3
  43. package/dist/{Pagination-CIy7YvWE.js → Pagination-BVwKLcd5.js} +4 -4
  44. package/dist/Pagination.js +6 -6
  45. package/dist/{Placeholder-Dol_X5Hp.js → Placeholder-DFNppiVf.js} +1 -1
  46. package/dist/Placeholder.js +2 -2
  47. package/dist/{Popup-nJrJHGSy.js → Popup-D91ZiFWh.js} +1 -1
  48. package/dist/Popup.js +2 -2
  49. package/dist/{ProgressBar-Dmq9veqU.js → ProgressBar-DQGO2we8.js} +1 -1
  50. package/dist/ProgressBar.js +2 -2
  51. package/dist/{Radio-W5ck_IJI.js → Radio-BetZNoUQ.js} +1 -1
  52. package/dist/Radio.js +2 -2
  53. package/dist/{RadioGroup-De5x2YCO.js → RadioGroup-DzW5z_SD.js} +2 -2
  54. package/dist/RadioGroup.js +3 -3
  55. package/dist/{Range-NCdfDkeD.js → Range-9ijUzrty.js} +1 -1
  56. package/dist/Range.js +2 -2
  57. package/dist/{ScrollTop-DwcNIKmN.js → ScrollTop-uDL4K_C6.js} +3 -3
  58. package/dist/ScrollTop.js +5 -5
  59. package/dist/{Select-Bpicra9q.js → Select-ClGNTYfp.js} +7 -7
  60. package/dist/Select.d.ts +2 -2
  61. package/dist/Select.js +9 -9
  62. package/dist/{Spinner-BBiVZxFH.js → Spinner-B7ikVfUZ.js} +1 -1
  63. package/dist/Spinner.js +2 -2
  64. package/dist/{Tab-Ce9nrDok.js → Tab-CSHR71IX.js} +1 -1
  65. package/dist/Tab.js +2 -2
  66. package/dist/{TabGroup-C-cd4Wcx.js → TabGroup-D7YbKXm8.js} +3 -3
  67. package/dist/TabGroup.js +4 -4
  68. package/dist/{TabPanel-BW1ydVBT.js → TabPanel-D_RHF3lv.js} +1 -1
  69. package/dist/TabPanel.js +2 -2
  70. package/dist/{Table-DiYqIzBu.js → Table-CdosaNFb.js} +3 -3
  71. package/dist/Table.js +7 -7
  72. package/dist/{Tag-Ct8Hhv7W.js → Tag-BQBgkkAs.js} +1 -1
  73. package/dist/Tag.js +2 -2
  74. package/dist/{VisuallyHidden-CpYXyuC7.js → VisuallyHidden-CEBTA6hv.js} +1 -1
  75. package/dist/VisuallyHidden.js +2 -2
  76. package/dist/custom-elements.json +6445 -0
  77. package/dist/index.d.ts +2 -2
  78. package/dist/index.js +30 -30
  79. package/dist/leu-accordion.js +2 -2
  80. package/dist/leu-button-group.js +5 -5
  81. package/dist/leu-button.js +4 -4
  82. package/dist/leu-chart-wrapper.js +3 -3
  83. package/dist/leu-checkbox-group.js +4 -4
  84. package/dist/leu-checkbox.js +3 -3
  85. package/dist/leu-chip-group.js +3 -3
  86. package/dist/leu-chip-link.js +2 -2
  87. package/dist/leu-chip-removable.js +3 -3
  88. package/dist/leu-chip-selectable.js +2 -2
  89. package/dist/leu-dialog.js +3 -3
  90. package/dist/leu-dropdown.js +8 -8
  91. package/dist/leu-file-input.js +6 -6
  92. package/dist/leu-icon.js +2 -2
  93. package/dist/leu-input.js +3 -3
  94. package/dist/leu-menu-item.d.ts +1 -1
  95. package/dist/leu-menu-item.js +3 -3
  96. package/dist/leu-menu.d.ts +1 -1
  97. package/dist/leu-menu.js +4 -4
  98. package/dist/leu-message.js +3 -3
  99. package/dist/leu-pagination.js +6 -6
  100. package/dist/leu-placeholder.js +2 -2
  101. package/dist/leu-popup.js +2 -2
  102. package/dist/leu-progress-bar.js +2 -2
  103. package/dist/leu-radio-group.js +3 -3
  104. package/dist/leu-radio.js +2 -2
  105. package/dist/leu-range.js +2 -2
  106. package/dist/leu-scroll-top.js +5 -5
  107. package/dist/leu-select.js +9 -9
  108. package/dist/leu-spinner.js +2 -2
  109. package/dist/leu-tab-group.js +4 -4
  110. package/dist/leu-tab-panel.js +2 -2
  111. package/dist/leu-tab.js +2 -2
  112. package/dist/leu-table.js +7 -7
  113. package/dist/leu-tag.js +2 -2
  114. package/dist/leu-visually-hidden.js +2 -2
  115. package/dist/web-types.json +1 -1
  116. package/package.json +9 -4
  117. package/.editorconfig +0 -29
  118. package/.github/workflows/ci.yml +0 -81
  119. package/.github/workflows/deploy-github-pages.yaml +0 -34
  120. package/.github/workflows/publish.yml +0 -30
  121. package/.github/workflows/release-please.yml +0 -19
  122. package/.husky/commit-msg +0 -1
  123. package/.husky/pre-commit +0 -1
  124. package/.nvmrc +0 -1
  125. package/.prettierignore +0 -2
  126. package/.release-please-manifest.json +0 -3
  127. package/.storybook/main.ts +0 -34
  128. package/.storybook/manager-head.html +0 -1
  129. package/.storybook/manager.ts +0 -6
  130. package/.storybook/preview.ts +0 -96
  131. package/.storybook/static/fonts/Inter-Black.woff2 +0 -0
  132. package/.storybook/static/fonts/Inter-Regular.woff2 +0 -0
  133. package/.storybook/static/fonts.css +0 -11
  134. package/.storybook/static/global.css +0 -5
  135. package/.storybook/static/logo.svg +0 -19
  136. package/.storybook/theme.ts +0 -8
  137. package/CHANGELOG.md +0 -594
  138. package/CODE_OF_CONDUCT.md +0 -128
  139. package/CONTRIBUTING.md +0 -42
  140. package/commitlint.config.cjs +0 -1
  141. package/custom-elements-manifest.config.js +0 -46
  142. package/eslint.config.mjs +0 -79
  143. package/postcss.config.cjs +0 -16
  144. package/release-please-config.json +0 -9
  145. package/scripts/generate-component/generate.js +0 -167
  146. package/scripts/generate-component/templates/[Name].ts +0 -31
  147. package/scripts/generate-component/templates/[name].css +0 -6
  148. package/scripts/generate-component/templates/[namespace]-[name].ts +0 -11
  149. package/scripts/generate-component/templates/stories/[name].stories.ts +0 -26
  150. package/scripts/generate-component/templates/test/[name].test.ts +0 -23
  151. package/scripts/postcss-leu-font-styles.cjs +0 -154
  152. package/src/components/accordion/Accordion.ts +0 -108
  153. package/src/components/accordion/accordion.css +0 -150
  154. package/src/components/accordion/leu-accordion.ts +0 -11
  155. package/src/components/accordion/stories/accordion.stories.ts +0 -62
  156. package/src/components/accordion/test/accordion.test.ts +0 -118
  157. package/src/components/button/Button.ts +0 -286
  158. package/src/components/button/button.css +0 -317
  159. package/src/components/button/leu-button.ts +0 -11
  160. package/src/components/button/stories/button.stories.ts +0 -366
  161. package/src/components/button/test/button.test.ts +0 -417
  162. package/src/components/button-group/ButtonGroup.ts +0 -97
  163. package/src/components/button-group/button-group.css +0 -5
  164. package/src/components/button-group/leu-button-group.ts +0 -11
  165. package/src/components/button-group/stories/button-group.stories.ts +0 -54
  166. package/src/components/button-group/test/button-group.test.ts +0 -105
  167. package/src/components/chart-wrapper/ChartWrapper.ts +0 -78
  168. package/src/components/chart-wrapper/chart-wrapper.css +0 -87
  169. package/src/components/chart-wrapper/leu-chart-wrapper.ts +0 -11
  170. package/src/components/chart-wrapper/stories/chart-wrapper.stories.ts +0 -58
  171. package/src/components/chart-wrapper/test/chart-wrapper.test.ts +0 -77
  172. package/src/components/checkbox/Checkbox.ts +0 -129
  173. package/src/components/checkbox/CheckboxGroup.ts +0 -57
  174. package/src/components/checkbox/checkbox-group.css +0 -29
  175. package/src/components/checkbox/checkbox.css +0 -81
  176. package/src/components/checkbox/leu-checkbox-group.ts +0 -11
  177. package/src/components/checkbox/leu-checkbox.ts +0 -11
  178. package/src/components/checkbox/stories/checkbox-group.stories.ts +0 -59
  179. package/src/components/checkbox/stories/checkbox.stories.ts +0 -72
  180. package/src/components/checkbox/test/checkbox-group.test.ts +0 -109
  181. package/src/components/checkbox/test/checkbox.test.ts +0 -247
  182. package/src/components/chip/Chip.ts +0 -19
  183. package/src/components/chip/ChipGroup.ts +0 -122
  184. package/src/components/chip/ChipLink.ts +0 -24
  185. package/src/components/chip/ChipRemovable.ts +0 -45
  186. package/src/components/chip/ChipSelectable.ts +0 -80
  187. package/src/components/chip/chip-group.css +0 -15
  188. package/src/components/chip/chip.css +0 -139
  189. package/src/components/chip/exports.ts +0 -4
  190. package/src/components/chip/leu-chip-group.ts +0 -11
  191. package/src/components/chip/leu-chip-link.ts +0 -11
  192. package/src/components/chip/leu-chip-removable.ts +0 -11
  193. package/src/components/chip/leu-chip-selectable.ts +0 -11
  194. package/src/components/chip/stories/chip-group.stories.ts +0 -159
  195. package/src/components/chip/stories/chip-link.stories.ts +0 -45
  196. package/src/components/chip/stories/chip-removable.stories.ts +0 -42
  197. package/src/components/chip/stories/chip-selectable.stories.ts +0 -54
  198. package/src/components/chip/test/chip-group.test.ts +0 -171
  199. package/src/components/chip/test/chip-link.test.ts +0 -54
  200. package/src/components/chip/test/chip-removable.test.ts +0 -105
  201. package/src/components/chip/test/chip-selectable.test.ts +0 -101
  202. package/src/components/chip/test/chip.test.ts +0 -22
  203. package/src/components/dialog/Dialog.ts +0 -86
  204. package/src/components/dialog/dialog.css +0 -157
  205. package/src/components/dialog/leu-dialog.ts +0 -11
  206. package/src/components/dialog/stories/dialog.stories.ts +0 -142
  207. package/src/components/dialog/test/dialog.test.ts +0 -85
  208. package/src/components/dropdown/Dropdown.ts +0 -152
  209. package/src/components/dropdown/dropdown.css +0 -16
  210. package/src/components/dropdown/leu-dropdown.ts +0 -11
  211. package/src/components/dropdown/stories/dropdown.stories.ts +0 -58
  212. package/src/components/dropdown/test/dropdown.test.ts +0 -59
  213. package/src/components/file-input/FileInput.ts +0 -322
  214. package/src/components/file-input/file-input.css +0 -118
  215. package/src/components/file-input/leu-file-input.ts +0 -11
  216. package/src/components/file-input/stories/file-input.stories.ts +0 -45
  217. package/src/components/file-input/test/file-input.test.ts +0 -38
  218. package/src/components/icon/Icon.ts +0 -47
  219. package/src/components/icon/icon.css +0 -10
  220. package/src/components/icon/leu-icon.ts +0 -11
  221. package/src/components/icon/paths.ts +0 -219
  222. package/src/components/icon/stories/icon.stories.ts +0 -79
  223. package/src/components/icon/test/icon.test.ts +0 -50
  224. package/src/components/input/Input.ts +0 -469
  225. package/src/components/input/input.css +0 -238
  226. package/src/components/input/leu-input.ts +0 -11
  227. package/src/components/input/stories/input.stories.ts +0 -204
  228. package/src/components/input/test/input.test.ts +0 -603
  229. package/src/components/menu/Menu.ts +0 -149
  230. package/src/components/menu/MenuItem.ts +0 -168
  231. package/src/components/menu/leu-menu-item.ts +0 -11
  232. package/src/components/menu/leu-menu.ts +0 -11
  233. package/src/components/menu/menu-item.css +0 -77
  234. package/src/components/menu/menu.css +0 -19
  235. package/src/components/menu/stories/menu-item.stories.ts +0 -81
  236. package/src/components/menu/stories/menu.stories.ts +0 -54
  237. package/src/components/menu/test/menu-item.test.ts +0 -210
  238. package/src/components/menu/test/menu.test.ts +0 -125
  239. package/src/components/message/Message.ts +0 -118
  240. package/src/components/message/leu-message.ts +0 -11
  241. package/src/components/message/message.css +0 -163
  242. package/src/components/message/stories/message.mdx +0 -76
  243. package/src/components/message/stories/message.stories.ts +0 -149
  244. package/src/components/message/test/message.test.ts +0 -96
  245. package/src/components/pagination/Pagination.ts +0 -192
  246. package/src/components/pagination/leu-pagination.ts +0 -11
  247. package/src/components/pagination/pagination.css +0 -54
  248. package/src/components/pagination/stories/pagination.stories.ts +0 -115
  249. package/src/components/pagination/test/pagination.test.ts +0 -210
  250. package/src/components/placeholder/Placeholder.ts +0 -33
  251. package/src/components/placeholder/leu-placeholder.ts +0 -11
  252. package/src/components/placeholder/placeholder.css +0 -59
  253. package/src/components/placeholder/stories/placeholder.stories.ts +0 -34
  254. package/src/components/placeholder/test/placeholder.test.ts +0 -31
  255. package/src/components/popup/Popup.ts +0 -264
  256. package/src/components/popup/leu-popup.ts +0 -11
  257. package/src/components/popup/popup.css +0 -24
  258. package/src/components/popup/stories/popup.stories.ts +0 -117
  259. package/src/components/popup/test/popup.test.ts +0 -90
  260. package/src/components/progress-bar/ProgressBar.ts +0 -52
  261. package/src/components/progress-bar/leu-progress-bar.ts +0 -11
  262. package/src/components/progress-bar/progress-bar.css +0 -97
  263. package/src/components/progress-bar/stories/progress-bar.stories.ts +0 -39
  264. package/src/components/progress-bar/test/progress-bar.test.ts +0 -61
  265. package/src/components/radio/Radio.ts +0 -59
  266. package/src/components/radio/RadioGroup.ts +0 -181
  267. package/src/components/radio/leu-radio-group.ts +0 -11
  268. package/src/components/radio/leu-radio.ts +0 -11
  269. package/src/components/radio/radio-group.css +0 -29
  270. package/src/components/radio/radio.css +0 -76
  271. package/src/components/radio/stories/radio-group.stories.ts +0 -54
  272. package/src/components/radio/stories/radio.stories.ts +0 -55
  273. package/src/components/radio/test/radio-group.test.ts +0 -83
  274. package/src/components/radio/test/radio.test.ts +0 -119
  275. package/src/components/range/Range.ts +0 -400
  276. package/src/components/range/leu-range.ts +0 -11
  277. package/src/components/range/range.css +0 -227
  278. package/src/components/range/stories/range.stories.ts +0 -185
  279. package/src/components/range/test/range.test.ts +0 -228
  280. package/src/components/scroll-top/ScrollTop.ts +0 -91
  281. package/src/components/scroll-top/leu-scroll-top.ts +0 -11
  282. package/src/components/scroll-top/scroll-top.css +0 -50
  283. package/src/components/scroll-top/stories/scroll-top.stories.ts +0 -217
  284. package/src/components/scroll-top/test/scroll-top.test.ts +0 -22
  285. package/src/components/select/Select.ts +0 -570
  286. package/src/components/select/leu-select.ts +0 -11
  287. package/src/components/select/select.css +0 -222
  288. package/src/components/select/stories/select.stories.ts +0 -173
  289. package/src/components/select/test/fixtures.ts +0 -162
  290. package/src/components/select/test/select.test.ts +0 -937
  291. package/src/components/spinner/Spinner.ts +0 -31
  292. package/src/components/spinner/leu-spinner.ts +0 -11
  293. package/src/components/spinner/spinner.css +0 -20
  294. package/src/components/spinner/stories/spinner.stories.ts +0 -29
  295. package/src/components/spinner/test/spinner.test.ts +0 -30
  296. package/src/components/tab/Tab.ts +0 -72
  297. package/src/components/tab/TabGroup.ts +0 -267
  298. package/src/components/tab/TabPanel.ts +0 -59
  299. package/src/components/tab/leu-tab-group.ts +0 -11
  300. package/src/components/tab/leu-tab-panel.ts +0 -11
  301. package/src/components/tab/leu-tab.ts +0 -11
  302. package/src/components/tab/stories/tab.stories.ts +0 -97
  303. package/src/components/tab/tab-group.css +0 -63
  304. package/src/components/tab/tab-panel.css +0 -10
  305. package/src/components/tab/tab.css +0 -54
  306. package/src/components/tab/test/tab-group.test.ts +0 -426
  307. package/src/components/tab/test/tab-panel.test.ts +0 -102
  308. package/src/components/tab/test/tab.test.ts +0 -139
  309. package/src/components/table/Table.ts +0 -253
  310. package/src/components/table/leu-table.ts +0 -11
  311. package/src/components/table/stories/table.stories.ts +0 -131
  312. package/src/components/table/table.css +0 -112
  313. package/src/components/table/test/table.test.ts +0 -37
  314. package/src/components/tag/Tag.ts +0 -28
  315. package/src/components/tag/leu-tag.ts +0 -11
  316. package/src/components/tag/stories/tag.stories.ts +0 -107
  317. package/src/components/tag/tag.css +0 -42
  318. package/src/components/tag/test/tag.test.ts +0 -28
  319. package/src/components/visually-hidden/VisuallyHidden.ts +0 -16
  320. package/src/components/visually-hidden/leu-visually-hidden.ts +0 -11
  321. package/src/components/visually-hidden/stories/visually-hidden.stories.ts +0 -22
  322. package/src/components/visually-hidden/test/visually-hidden.test.ts +0 -34
  323. package/src/components/visually-hidden/visually-hidden.css +0 -10
  324. package/src/docs/contributing.mdx +0 -154
  325. package/src/docs/installation.mdx +0 -35
  326. package/src/docs/theme.mdx +0 -400
  327. package/src/docs/usage.mdx +0 -73
  328. package/src/global.d.ts +0 -11
  329. package/src/index.ts +0 -29
  330. package/src/lib/LeuElement.ts +0 -43
  331. package/src/lib/a11y.ts +0 -26
  332. package/src/lib/hasSlotController.ts +0 -74
  333. package/src/lib/mixins/FormAssociatedMixin.ts +0 -115
  334. package/src/lib/styleMap.ts +0 -139
  335. package/src/lib/utils.ts +0 -45
  336. package/src/styles/common-styles.css +0 -14
  337. package/src/styles/custom-media.css +0 -6
  338. package/src/styles/font-definitions.json +0 -210
  339. package/src/styles/style.stories.ts +0 -64
  340. package/src/styles/theme.css +0 -90
  341. package/stat_zh.png +0 -0
  342. package/stylelint.config.mjs +0 -23
  343. package/tsconfig.build.json +0 -24
  344. package/tsconfig.json +0 -14
  345. package/tsdown.config.ts +0 -35
  346. package/web-test-runner.config.mjs +0 -102
@@ -1,149 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/web-components-vite"
2
- import { html, TemplateResult } from "lit"
3
- import { action } from "storybook/actions"
4
-
5
- import "../leu-message.js"
6
- import "../../button/leu-button.js"
7
- import { LeuMessage } from "../Message.js"
8
-
9
- type StoryArgs = LeuMessage
10
- type Story = StoryObj<StoryArgs>
11
-
12
- export default {
13
- title: "Components/Message",
14
- component: "leu-message",
15
- parameters: {
16
- design: {
17
- type: "figma",
18
- url: "https://www.figma.com/design/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?node-id=316-4172&p=f&t=RVDlqNcmiHHiwE5P-11",
19
- },
20
- },
21
- argTypes: {
22
- type: {
23
- control: "select",
24
- options: ["error", "success", "info", "warning"],
25
- },
26
- size: {
27
- control: "select",
28
- options: ["regular", "large"],
29
- },
30
- "--leu-message-accent-color": {
31
- control: {
32
- type: "color",
33
- presetColors: [
34
- "#0076bd",
35
- "#00407c",
36
- "#00797b",
37
- "#1a7f1f",
38
- "#b01657",
39
- "#d40053",
40
- "#7f3da7",
41
- "#666666",
42
- ],
43
- },
44
- },
45
- },
46
- args: {
47
- type: "success",
48
- size: "regular",
49
- removable: true,
50
- onRemove: action("leu:remove"),
51
- },
52
- } satisfies Meta<StoryArgs>
53
-
54
- const baseRender =
55
- (messageContent: (args: StoryArgs) => TemplateResult) => (args: StoryArgs) =>
56
- html` <leu-message
57
- style="--leu-message-accent-color: ${args["--leu-message-accent-color"] ??
58
- "unset"};"
59
- type=${args.type}
60
- size=${args.size}
61
- ?removable=${args.removable}
62
- ?popup=${args.popup}
63
- @leu:remove=${args.onRemove}
64
- >
65
- ${messageContent(args)}
66
- </leu-message>`
67
-
68
- const Template: Story = {
69
- render: baseRender(
70
- (args) =>
71
- html`<strong>Nachricht Titel</strong><br />
72
- Beschreibungstext einer Nachricht
73
- <leu-button
74
- slot="cta"
75
- variant="secondary"
76
- size="small"
77
- ?inverted=${args.type === "error" || args.type === "success"}
78
- >
79
- Rückgängig
80
- </leu-button>`,
81
- ),
82
- }
83
-
84
- export const Success = {
85
- ...Template,
86
- args: {
87
- type: "success",
88
- size: "large",
89
- },
90
- }
91
-
92
- export const Error = {
93
- ...Template,
94
- args: {
95
- type: "error",
96
- size: "large",
97
- },
98
- }
99
-
100
- export const Warning = {
101
- ...Template,
102
- args: {
103
- type: "warning",
104
- size: "large",
105
- },
106
- }
107
-
108
- export const Info = {
109
- ...Template,
110
- render: baseRender(
111
- () =>
112
- html`<strong>Nachricht Titel</strong><br />
113
- Beschreibungstext einer Nachricht`,
114
- ),
115
- args: {
116
- type: "info",
117
- size: "large",
118
- },
119
- }
120
-
121
- export const CustomColor = {
122
- ...Template,
123
- render: baseRender(
124
- () =>
125
- html`<strong>Entscheid wurde auf den 21.12.2024 verschoben</strong><br />
126
- Aufgrund ausstehender Abklärungen wurde der Termin verschoben.`,
127
- ),
128
- args: {
129
- type: "info",
130
- size: "large",
131
- "--message-accent-color": "#00797b",
132
- },
133
- }
134
-
135
- export const Small = {
136
- ...Template,
137
- render: baseRender(() => html`Nachricht ohne Titel`),
138
- args: {
139
- type: "success",
140
- },
141
- }
142
-
143
- export const Popup = {
144
- ...Small,
145
- args: {
146
- ...Small.args,
147
- popup: true,
148
- },
149
- }
@@ -1,96 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect, oneEvent } from "@open-wc/testing"
3
-
4
- import "../leu-message.js"
5
- import { LeuMessage } from "../Message.js"
6
- import { LeuIcon } from "../../icon/Icon.js"
7
-
8
- async function defaultFixture({ removable = false } = {}): Promise<LeuMessage> {
9
- return fixture(
10
- html`<leu-message ?removable=${removable}>
11
- <strong>Entscheid wurde auf den 21.12.2024 verschoben</strong><br />
12
- Aufgrund ausstehender Abklärungen wurde der Termin verschoben.
13
- </leu-message>`,
14
- )
15
- }
16
-
17
- describe("LeuMessage", () => {
18
- it("is a defined element", async () => {
19
- const el = customElements.get("leu-message")
20
-
21
- expect(el).not.to.be.undefined
22
- })
23
-
24
- it("passes the a11y audit", async () => {
25
- const el = await defaultFixture()
26
-
27
- await expect(el).shadowDom.to.be.accessible()
28
- })
29
-
30
- it("renders the message content", async () => {
31
- const el = await defaultFixture()
32
-
33
- expect(el).to.contain.text("Entscheid wurde auf den 21.12.2024 verschoben")
34
-
35
- expect(el).to.contain.text(
36
- "Aufgrund ausstehender Abklärungen wurde der Termin verschoben.",
37
- )
38
- })
39
-
40
- it("renders the remove button according to its 'removable' property", async () => {
41
- const el = await defaultFixture({ removable: true })
42
-
43
- let removeButton = el.shadowRoot?.querySelector(".message__remove")
44
-
45
- expect(removeButton).to.exist
46
-
47
- el.removable = false
48
- await el.updateComplete
49
-
50
- removeButton = el.shadowRoot?.querySelector(".message__remove")
51
-
52
- expect(removeButton).to.not.exist
53
- })
54
-
55
- it("dispatches 'leu:remove' event when remove button is clicked", async () => {
56
- const el = await defaultFixture({ removable: true })
57
-
58
- const button = el.shadowRoot?.querySelector(
59
- ".message__remove",
60
- ) as HTMLButtonElement
61
-
62
- setTimeout(() => button.click())
63
-
64
- const event = await oneEvent(el, "leu:remove", false)
65
-
66
- expect(event).to.exist
67
- })
68
-
69
- it("renders the correct icon based on the type", async () => {
70
- const el = await defaultFixture()
71
-
72
- const icon = el.shadowRoot?.querySelector(".message__icon") as LeuIcon
73
-
74
- expect(icon).to.exist
75
-
76
- el.type = "success"
77
- await el.updateComplete
78
-
79
- expect(icon.name).to.equal("confirm")
80
-
81
- el.type = "error"
82
- await el.updateComplete
83
-
84
- expect(icon.name).to.equal("caution")
85
-
86
- el.type = "info"
87
- await el.updateComplete
88
-
89
- expect(icon.name).to.equal("getInformation")
90
-
91
- el.type = "warning"
92
- await el.updateComplete
93
-
94
- expect(icon.name).to.equal("caution")
95
- })
96
- })
@@ -1,192 +0,0 @@
1
- import { html } from "lit"
2
- import { live } from "lit/directives/live.js"
3
- import { property, state } from "lit/decorators.js"
4
-
5
- import { LeuElement } from "../../lib/LeuElement.js"
6
- import { LeuButton } from "../button/Button.js"
7
- import { LeuVisuallyHidden } from "../visually-hidden/VisuallyHidden.js"
8
- import { LeuIcon } from "../icon/Icon.js"
9
-
10
- import styles from "./pagination.css?inline"
11
-
12
- const MIN_PAGE = 1
13
-
14
- /**
15
- * @tagname leu-pagination
16
- */
17
- export class LeuPagination extends LeuElement {
18
- static dependencies = {
19
- "leu-button": LeuButton,
20
- "leu-icon": LeuIcon,
21
- "leu-visually-hidden": LeuVisuallyHidden,
22
- }
23
-
24
- static styles = [LeuElement.styles, styles]
25
-
26
- /**
27
- * @internal
28
- */
29
- static shadowRootOptions = {
30
- ...LeuElement.shadowRootOptions,
31
- delegatesFocus: true,
32
- }
33
-
34
- @property({ type: Number, reflect: true })
35
- defaultPage?: number
36
-
37
- /**
38
- * Number of items per page.
39
- */
40
- @property({ type: Number, reflect: true })
41
- itemsPerPage: number = 1
42
-
43
- /**
44
- * Total number of items to paginate.
45
- */
46
- @property({ type: Number, reflect: true })
47
- numOfItems: number = 1
48
-
49
- /**
50
- * Internal page state that contains an
51
- * already clamped page number. Should only
52
- * be accessed through the `page` getter and
53
- * setter.
54
- * @internal
55
- */
56
- @state()
57
- private _page: number = 1
58
-
59
- attributeChangedCallback(name, oldVal, newVal) {
60
- super.attributeChangedCallback(name, oldVal, newVal)
61
-
62
- if (name === "defaultpage" && newVal !== oldVal) {
63
- this.page = parseInt(newVal, 10)
64
- }
65
- }
66
-
67
- /**
68
- * The current page number. This is a 1-based index.
69
- * When setting this value, it will be clamped
70
- * to the range of valid pages.
71
- */
72
- get page() {
73
- return this._page
74
- }
75
-
76
- set page(page) {
77
- this._page = this._clampPage(page)
78
- }
79
-
80
- /**
81
- * The index of the first item on the current page.
82
- */
83
- get startIndex() {
84
- return (this.page - 1) * this.itemsPerPage
85
- }
86
-
87
- /**
88
- * The index of the last item on the current page.
89
- * This is exclusive, meaning it is one past the last item.
90
- *
91
- * @todo This value should be inclusive, meaning it should be the index of the last item on the page.
92
- */
93
- get endIndex() {
94
- return Math.min(this.startIndex + this.itemsPerPage, this.numOfItems)
95
- }
96
-
97
- get _maxPage() {
98
- return Math.ceil(this.numOfItems / this.itemsPerPage)
99
- }
100
-
101
- private _isFirstPage() {
102
- return this.page === MIN_PAGE
103
- }
104
-
105
- private _isLastPage() {
106
- return this.page === this._maxPage
107
- }
108
-
109
- private _clampPage(page: number) {
110
- return Math.min(Math.max(page, MIN_PAGE), this._maxPage)
111
- }
112
-
113
- private _updatePage(page) {
114
- const prevPage = this.page
115
- this.page = this._clampPage(page)
116
-
117
- if (this.page !== prevPage) {
118
- this.dispatchEvent(
119
- new CustomEvent("leu:pagechange", {
120
- detail: {
121
- startIndex: this.startIndex,
122
- endIndex: this.endIndex,
123
- page: this.page,
124
- },
125
- bubbles: false,
126
- }),
127
- )
128
- }
129
- }
130
-
131
- private _handleChange(event: Event & { target: HTMLInputElement }) {
132
- this._updatePage(parseInt(event.target.value, 10) || 0)
133
- }
134
-
135
- private _handleInput(event: InputEvent & { target: HTMLInputElement }) {
136
- if (event.target.value !== "") {
137
- event.preventDefault()
138
- this._handleChange(event)
139
- }
140
- }
141
-
142
- private _handleKeyDown(event: KeyboardEvent & { target: HTMLInputElement }) {
143
- if (event.key === "ArrowUp") {
144
- event.preventDefault()
145
- this._updatePage(this.page + 1)
146
- }
147
- if (event.key === "ArrowDown") {
148
- event.preventDefault()
149
- this._updatePage(this.page - 1)
150
- }
151
- }
152
-
153
- render() {
154
- return html`
155
- <leu-visually-hidden>
156
- <label for="page-input">Aktuelle Seite</label>
157
- </leu-visually-hidden>
158
- <input
159
- id="page-input"
160
- class="input"
161
- min=${MIN_PAGE}
162
- max=${this._maxPage}
163
- .value=${live(this.page.toString())}
164
- @input=${this._handleInput}
165
- @change=${this._handleChange}
166
- @keydown=${this._handleKeyDown}
167
- type="number"
168
- />
169
- <div class="label">von ${this._maxPage}</div>
170
- <div class="button-group">
171
- <leu-button
172
- variant="secondary"
173
- label="Vorherige Seite"
174
- @click=${() => {
175
- this._updatePage(this.page - 1)
176
- }}
177
- ?disabled=${this._isFirstPage()}
178
- ><leu-icon name="angleLeft"></leu-icon
179
- ></leu-button>
180
- <leu-button
181
- variant="secondary"
182
- label="Nächste Seite"
183
- @click=${() => {
184
- this._updatePage(this.page + 1)
185
- }}
186
- ?disabled=${this._isLastPage()}
187
- ><leu-icon name="angleRight"></leu-icon
188
- ></leu-button>
189
- </div>
190
- `
191
- }
192
- }
@@ -1,11 +0,0 @@
1
- import { LeuPagination } from "./Pagination.js"
2
-
3
- export { LeuPagination }
4
-
5
- LeuPagination.define("leu-pagination")
6
-
7
- declare global {
8
- interface HTMLElementTagNameMap {
9
- "leu-pagination": LeuPagination
10
- }
11
- }
@@ -1,54 +0,0 @@
1
- :host {
2
- margin-top: 16px;
3
- display: flex;
4
- justify-content: flex-end;
5
- font-family: var(--leu-font-family-regular);
6
- }
7
-
8
- .input {
9
- width: 50px;
10
- padding: 0;
11
- border: 2px solid var(--leu-color-black-40);
12
- border-radius: 2px;
13
- color: var(--leu-color-black-transp-60);
14
- text-align: center;
15
- font-size: 16px;
16
- font-style: normal;
17
- font-weight: 400;
18
- line-height: 24px;
19
- outline-offset: 2px;
20
- }
21
-
22
- /* no arrows: Chrome, Safari, Edge, Opera */
23
- .input::-webkit-outer-spin-button,
24
- .input::-webkit-inner-spin-button {
25
- appearance: none;
26
- margin: 0;
27
- }
28
-
29
- /* no arrows: Firefox */
30
- .input[type="number"] {
31
- appearance: textfield;
32
- }
33
-
34
- .input:focus,
35
- .input:hover {
36
- border-color: var(--leu-color-func-cyan);
37
- outline: none;
38
- }
39
-
40
- .input:focus-visible {
41
- outline: 2px solid var(--leu-color-func-cyan);
42
- }
43
-
44
- .label {
45
- margin: 0 16px;
46
- line-height: 50px;
47
- color: var(--leu-color-black-transp-60);
48
- white-space: nowrap;
49
- }
50
-
51
- .button-group {
52
- display: flex;
53
- gap: 0.25rem;
54
- }
@@ -1,115 +0,0 @@
1
- import { html } from "lit"
2
- import { ifDefined } from "lit/directives/if-defined.js"
3
-
4
- // https://stackoverflow.com/questions/72566428/storybook-angular-how-to-dynamically-update-args-from-the-template
5
- import { UPDATE_STORY_ARGS } from "storybook/internal/core-events"
6
- import { action, HandlerFunction } from "storybook/actions"
7
- import { Meta, StoryObj } from "@storybook/web-components-vite"
8
-
9
- import "../leu-pagination.js"
10
- import { LeuPagination } from "../Pagination.js"
11
-
12
- interface ExtraArgs {
13
- onPageChange: HandlerFunction
14
- }
15
-
16
- type StoryArgs = LeuPagination & ExtraArgs
17
- type Story = StoryObj<StoryArgs>
18
-
19
- function updateStorybookArgss(id, args) {
20
- const channel = window.__STORYBOOK_ADDONS_CHANNEL__
21
- channel.emit(UPDATE_STORY_ARGS, {
22
- storyId: id,
23
- updatedArgs: args,
24
- })
25
- }
26
-
27
- const items = [
28
- { id: 1, label: "Ananas", value: 7 },
29
- { id: 2, label: "Apfel", value: 12 },
30
- { id: 3, label: "Aprikose", value: 3 },
31
- { id: 4, label: "Banare", value: 11 },
32
- { id: 5, label: "Birne", value: 10 },
33
- { id: 6, label: "Brombeere", value: 5 },
34
- { id: 7, label: "Cranberries", value: 3 },
35
- { id: 8, label: "Datteln", value: 2 },
36
- { id: 9, label: "Erdbeere", value: 0 },
37
- { id: 10, label: "Feige", value: 11 },
38
- { id: 11, label: "Granatapfel", value: 14 },
39
- { id: 12, label: "Grapefruit", value: 7 },
40
- { id: 13, label: "Heidelbeere", value: 12 },
41
- { id: 14, label: "Himbeere", value: 3 },
42
- { id: 15, label: "Johannisbeere", value: 11 },
43
- { id: 16, label: "Kirsche", value: 10 },
44
- { id: 17, label: "Kiwi", value: 5 },
45
- { id: 18, label: "Limette", value: 3 },
46
- { id: 19, label: "Litschi", value: 2 },
47
- { id: 20, label: "Mandarine", value: 0 },
48
- { id: 21, label: "Mango", value: 11 },
49
- { id: 22, label: "Melone", value: 14 },
50
- { id: 23, label: "Mirabelle", value: 14 },
51
- { id: 24, label: "Nashi", value: 12 },
52
- { id: 25, label: "Orange", value: 3 },
53
- { id: 26, label: "Papaya", value: 6 },
54
- { id: 27, label: "Pfirsich", value: 5 },
55
- { id: 28, label: "Pflaume", value: 17 },
56
- { id: 29, label: "Physalis", value: 1 },
57
- { id: 30, label: "Preiselbeere", value: 19 },
58
- { id: 31, label: "Pomelo", value: 12 },
59
- { id: 32, label: "Quitte", value: 0 },
60
- { id: 33, label: "Rhabarber", value: 1 },
61
- { id: 34, label: "Sanddorn", value: 2 },
62
- { id: 35, label: "Stachelbeere", value: 19 },
63
- { id: 36, label: "Ugli", value: 9 },
64
- { id: 37, label: "Weintraube", value: 11 },
65
- { id: 38, label: "Zitrone", value: 4 },
66
- { id: 39, label: "Zwetschge", value: 20 },
67
- ]
68
-
69
- export default {
70
- title: "Components/Pagination",
71
- component: "leu-pagination",
72
- args: {
73
- onPageChange: action("leu:pagechange"),
74
- },
75
- parameters: {
76
- design: {
77
- type: "figma",
78
- url: "https://www.figma.com/file/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?type=design&node-id=17341-82468&mode=design&t=lzVrtq8lxYVJU5TB-11",
79
- },
80
- },
81
- } satisfies Meta<StoryArgs>
82
-
83
- const Template: Story = {
84
- render: (
85
- { startIndex, endIndex, onPageChange, itemsPerPage, defaultPage },
86
- { id },
87
- ) => html`
88
- ${items
89
- .slice(startIndex, endIndex)
90
- .map((item) => html`<div>${item.label}</div>`)}
91
- <leu-pagination
92
- numOfItems=${items.length}
93
- itemsPerPage=${ifDefined(itemsPerPage)}
94
- defaultPage=${ifDefined(defaultPage)}
95
- @leu:pagechange=${(e) => {
96
- onPageChange(e)
97
- updateStorybookArgss(id, {
98
- startIndex: e.detail.startIndex,
99
- endIndex: e.detail.endIndex,
100
- })
101
- }}
102
- >
103
- </leu-pagination>
104
- `,
105
- }
106
-
107
- export const Regular: Story = {
108
- ...Template,
109
- args: {
110
- startIndex: 0,
111
- endIndex: 5,
112
- itemsPerPage: 5,
113
- // defaultPage: 2,
114
- },
115
- }