@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,185 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/web-components-vite"
2
- import { action } from "storybook/actions"
3
- import { html } from "lit"
4
- import { ifDefined } from "lit/directives/if-defined.js"
5
-
6
- import "../leu-range.js"
7
- import type { LeuRange } from "../leu-range.js"
8
- import "../../input/leu-input.js"
9
-
10
- type StoryArgs = LeuRange
11
- type Story = StoryObj<StoryArgs>
12
-
13
- export default {
14
- title: "Components/Range",
15
- component: "leu-range",
16
- parameters: {
17
- design: {
18
- type: "figma",
19
- url: "https://www.figma.com/file/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?type=design&node-id=17340-81936&mode=design",
20
- },
21
- },
22
- args: {
23
- label: "Bereich",
24
- oninput: action("input"),
25
- },
26
- } satisfies Meta<StoryArgs>
27
-
28
- const Template: Story = {
29
- render: (args) =>
30
- html` <leu-range
31
- label=${args.label}
32
- ?disabled=${args.disabled}
33
- ?multiple=${args.multiple}
34
- min=${ifDefined(args.min)}
35
- max=${ifDefined(args.max)}
36
- value=${ifDefined(args.value)}
37
- step=${ifDefined(args.step)}
38
- prefix=${ifDefined(args.prefix)}
39
- suffix=${ifDefined(args.suffix)}
40
- .valueFormatter=${args.valueFormatter}
41
- ?hide-label=${args["hide-label"]}
42
- ?show-ticks=${args["show-ticks"]}
43
- ?show-range-labels=${args["show-range-labels"]}
44
- @input=${args.oninput}
45
- >
46
- </leu-range>`,
47
- }
48
-
49
- export const Regular = {
50
- ...Template,
51
- args: { min: 0, max: 100, value: "15" },
52
- }
53
-
54
- export const Multiple = {
55
- ...Template,
56
- args: { min: 1965, max: 2022, value: "1965, 2022", multiple: true },
57
- }
58
-
59
- export const Labeled = {
60
- ...Template,
61
- args: { label: "Wert auswählen", min: 100000, max: 200000 },
62
- }
63
-
64
- export const HiddenLabel = {
65
- ...Template,
66
- args: {
67
- label: "Wert auswählen",
68
- min: 100000,
69
- max: 200000,
70
- "hide-label": true,
71
- },
72
- }
73
-
74
- export const Disabled = {
75
- ...Template,
76
- args: { label: "Wert auswählen", min: 0, max: 100, disabled: true },
77
- }
78
-
79
- export const Step = {
80
- ...Template,
81
- args: { min: 5, max: 123, step: 13 },
82
- }
83
-
84
- export const Ticks = {
85
- ...Template,
86
- args: {
87
- label: "Jahr auswählen",
88
- min: 1962,
89
- max: 2022,
90
- step: 1,
91
- "show-ticks": true,
92
- "show-range-labels": true,
93
- },
94
- }
95
-
96
- export const Suffix = {
97
- ...Template,
98
- args: {
99
- label: "Betrag auswählen",
100
- min: 100,
101
- max: 200,
102
- step: 1,
103
- suffix: " CHF",
104
- "show-range-labels": true,
105
- },
106
- }
107
-
108
- export const CustomFormatter = {
109
- ...Template,
110
- args: {
111
- label: "Schuljahr",
112
- min: 15,
113
- max: 24,
114
- step: 1,
115
- "show-range-labels": true,
116
- valueFormatter: (value: number) => `${value}/${value + 1}`,
117
- },
118
- }
119
-
120
- function CombinedTemplate(args: StoryArgs) {
121
- const values = (args.value ?? "").split(",").map((v) => Number(v.trim()))
122
- function handleInputInput() {
123
- const inputs = document.querySelectorAll("leu-input")
124
- const range = document.querySelector("leu-range")
125
- range.value = [inputs[0].value, inputs[1].value]
126
- }
127
- return html`
128
- <leu-range
129
- label=${args.label}
130
- ?disabled=${args.disabled}
131
- ?multiple=${args.multiple}
132
- min=${ifDefined(args.min)}
133
- max=${ifDefined(args.max)}
134
- value=${ifDefined(args.value)}
135
- step=${ifDefined(args.step)}
136
- prefix=${ifDefined(args.prefix)}
137
- suffix=${ifDefined(args.suffix)}
138
- ?hide-label=${args["hide-label"]}
139
- ?show-ticks=${args["show-ticks"]}
140
- ?show-range-labels=${args["show-range-labels"]}
141
- @input=${(e) => {
142
- const inputs = document.querySelectorAll("leu-input")
143
- const valueList = e.target.valueAsArray
144
-
145
- inputs[0].value = valueList[0]
146
- inputs[1].value = valueList[1]
147
- }}
148
- >
149
- </leu-range>
150
- <div style="display: flex; gap: 1rem; margin-top: 1rem;">
151
- <leu-input
152
- label="Von"
153
- ?disabled=${args.disabled}
154
- type="number"
155
- min=${ifDefined(args.min)}
156
- max=${ifDefined(args.max)}
157
- value=${ifDefined(values[0])}
158
- step=${ifDefined(args.step)}
159
- size="small"
160
- @input=${handleInputInput}
161
- ></leu-input>
162
- <leu-input
163
- label="Von"
164
- ?disabled=${args.disabled}
165
- type="number"
166
- min=${ifDefined(args.min)}
167
- max=${ifDefined(args.max)}
168
- value=${ifDefined(values[1])}
169
- step=${ifDefined(args.step)}
170
- size="small"
171
- @input=${handleInputInput}
172
- ></leu-input>
173
- </div>
174
- `
175
- }
176
-
177
- export const Combined = {
178
- render: CombinedTemplate,
179
- args: {
180
- min: 1965,
181
- max: 2022,
182
- value: "1965, 2022",
183
- multiple: true,
184
- },
185
- }
@@ -1,228 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect } from "@open-wc/testing"
3
- import { ifDefined } from "lit/directives/if-defined.js"
4
-
5
- import "../leu-range.js"
6
- import type { LeuRange } from "../leu-range.js"
7
-
8
- async function defaultFixture(args = {}) {
9
- return fixture<LeuRange>(html`
10
- <leu-range
11
- label=${args.label}
12
- ?disabled=${args.disabled}
13
- ?multiple=${args.multiple}
14
- min=${ifDefined(args.min)}
15
- max=${ifDefined(args.max)}
16
- value=${ifDefined(args.value)}
17
- step=${ifDefined(args.step)}
18
- prefix=${ifDefined(args.prefix)}
19
- suffix=${ifDefined(args.suffix)}
20
- .valueFormatter=${args.valueFormatter}
21
- ?hide-label=${args["hide-label"]}
22
- ?show-ticks=${args["show-ticks"]}
23
- ?show-range-labels=${args["show-range-labels"]}
24
- >
25
- </leu-range>
26
- `)
27
- }
28
-
29
- describe("LeuRange", () => {
30
- it("is a defined element", async () => {
31
- const el = customElements.get("leu-range")
32
-
33
- expect(el).not.to.be.undefined
34
- })
35
-
36
- it("passes the a11y audit", async () => {
37
- const el = await defaultFixture({
38
- label: "Test Label",
39
- min: 0,
40
- max: 100,
41
- value: 50,
42
- })
43
-
44
- await expect(el).shadowDom.to.be.accessible()
45
- })
46
-
47
- it("renders the label", async () => {
48
- const el = await defaultFixture({ label: "Test Label" })
49
-
50
- const label = el.shadowRoot?.querySelector(".label")
51
-
52
- expect(label).to.exist
53
- expect(label).to.contain.text("Test Label")
54
- })
55
-
56
- it("renders the label visually hidden when 'hide-label' is set", async () => {
57
- const el = await defaultFixture({ label: "Test Label", "hide-label": true })
58
-
59
- const label = el.shadowRoot?.querySelector(".label")
60
-
61
- expect(label).to.exist
62
- expect(label).to.contain.text("Test Label")
63
- await expect(el).shadowDom.to.be.accessible()
64
- })
65
-
66
- it("renders the range labels", async () => {
67
- const el = await defaultFixture({
68
- min: 23,
69
- max: 87,
70
- "show-range-labels": true,
71
- })
72
-
73
- const minLabel = el.shadowRoot?.querySelector(".tick-label--min")
74
- const maxLabel = el.shadowRoot?.querySelector(".tick-label--max")
75
-
76
- expect(minLabel).to.exist
77
- expect(maxLabel).to.exist
78
-
79
- expect(minLabel).to.contain.text("23")
80
- expect(maxLabel).to.contain.text("87")
81
- })
82
-
83
- it("renders tick marks when 'show-ticks' is set", async () => {
84
- const el = await defaultFixture({
85
- min: 0,
86
- max: 10,
87
- step: 3,
88
- "show-ticks": true,
89
- })
90
-
91
- const ticksContainer = el.shadowRoot?.querySelector(".ticks")
92
- expect(ticksContainer).to.exist
93
-
94
- const ticks = ticksContainer?.querySelectorAll(".tick")
95
- expect(ticks?.length).to.equal(4)
96
- })
97
-
98
- it("renders prefix and suffix", async () => {
99
- const el = await defaultFixture({
100
- prefix: "$",
101
- suffix: " CHF",
102
- min: 25,
103
- max: 75,
104
- value: 50,
105
- "show-range-labels": true,
106
- })
107
-
108
- const minLabel = el.shadowRoot?.querySelector(".tick-label--min")
109
- const maxLabel = el.shadowRoot?.querySelector(".tick-label--max")
110
- const valueLabel = el.shadowRoot?.querySelector("output")
111
-
112
- expect(minLabel).to.exist
113
- expect(maxLabel).to.exist
114
- expect(valueLabel).to.exist
115
-
116
- expect(minLabel).to.contain.text("$25 CHF")
117
- expect(maxLabel).to.contain.text("$75 CHF")
118
- expect(valueLabel).to.contain.text("$50 CHF")
119
- })
120
-
121
- it("uses custom valueFormatter if provided", async () => {
122
- const el = await defaultFixture({
123
- valueFormatter: (value: number) => `Value: ${value}`,
124
- min: 10,
125
- max: 90,
126
- value: 50,
127
- "show-range-labels": true,
128
- })
129
-
130
- const minLabel = el.shadowRoot?.querySelector(".tick-label--min")
131
- const maxLabel = el.shadowRoot?.querySelector(".tick-label--max")
132
- const valueLabel = el.shadowRoot?.querySelector("output")
133
-
134
- expect(minLabel).to.exist
135
- expect(maxLabel).to.exist
136
- expect(valueLabel).to.exist
137
-
138
- expect(minLabel).to.contain.text("Value: 10")
139
- expect(maxLabel).to.contain.text("Value: 90")
140
- expect(valueLabel).to.contain.text("Value: 50")
141
- })
142
-
143
- it("prefix and suffix are ignored when valueFormatter is provided", async () => {
144
- const el = await defaultFixture({
145
- prefix: "$",
146
- suffix: " CHF",
147
- valueFormatter: (value: number) => `${value}/${value + 1}`,
148
- min: 10,
149
- max: 15,
150
- value: 12,
151
- "show-range-labels": true,
152
- })
153
-
154
- const minLabel = el.shadowRoot?.querySelector(".tick-label--min")
155
- const maxLabel = el.shadowRoot?.querySelector(".tick-label--max")
156
- const valueLabel = el.shadowRoot?.querySelector("output")
157
-
158
- expect(minLabel).to.contain.text("10/11")
159
- expect(maxLabel).to.contain.text("15/16")
160
- expect(valueLabel).to.contain.text("12/13")
161
- })
162
-
163
- it("disables the range slider", async () => {
164
- const el = await defaultFixture({ disabled: true })
165
-
166
- const input = el.shadowRoot?.querySelector("input")
167
- expect(input).to.have.attribute("disabled")
168
- })
169
-
170
- it("clamps and rounds when value is set", async () => {
171
- const el = await defaultFixture({ min: 0, max: 10, step: 3 })
172
-
173
- el.value = "8"
174
- await el.updateComplete
175
-
176
- expect(el.value).to.equal("9")
177
- })
178
-
179
- it("re-normalizes when min/max/step changes", async () => {
180
- const el = await defaultFixture({ min: 0, max: 10, step: 2 })
181
-
182
- el.value = "9"
183
- await el.updateComplete
184
-
185
- expect(el.value).to.equal("10")
186
-
187
- el.max = 6
188
- await el.updateComplete
189
-
190
- expect(el.value).to.equal("6")
191
- })
192
-
193
- it("sets the second handle to min when multiple and a single value is provided", async () => {
194
- const el = await defaultFixture({
195
- multiple: true,
196
- min: 10,
197
- max: 100,
198
- value: 20,
199
- })
200
-
201
- expect(el.value).to.equal("10,20")
202
-
203
- el.value = "30"
204
- await el.updateComplete
205
- expect(el.value).to.equal("10,30")
206
-
207
- el.value = "30, 40"
208
- await el.updateComplete
209
- expect(el.value).to.equal("30,40")
210
- })
211
-
212
- it("re-normalizes both values when multiple and min/max/step changes", async () => {
213
- const el = await defaultFixture({
214
- multiple: true,
215
- min: 0,
216
- max: 10,
217
- step: 2,
218
- value: "3,7",
219
- })
220
-
221
- expect(el.value).to.equal("4,8")
222
-
223
- el.max = 6
224
- await el.updateComplete
225
-
226
- expect(el.value).to.equal("4,6")
227
- })
228
- })
@@ -1,91 +0,0 @@
1
- import { html } from "lit"
2
- import { classMap } from "lit/directives/class-map.js"
3
- import { state } from "lit/decorators.js"
4
-
5
- import { LeuElement } from "../../lib/LeuElement.js"
6
- import { LeuButton } from "../button/Button.js"
7
- import { LeuIcon } from "../icon/Icon.js"
8
-
9
- import { throttle } from "../../lib/utils.js"
10
-
11
- import styles from "./scroll-top.css?inline"
12
-
13
- /**
14
- * @tagname leu-scroll-top
15
- */
16
- export class LeuScrollTop extends LeuElement {
17
- static dependencies = {
18
- "leu-button": LeuButton,
19
- "leu-icon": LeuIcon,
20
- }
21
-
22
- static styles = [LeuElement.styles, styles]
23
-
24
- @state()
25
- protected showButton: boolean = false
26
-
27
- protected prevYPos: number = 0
28
-
29
- protected hasScrolledDown: boolean = false
30
-
31
- protected scrollListener: EventListener
32
-
33
- scroll = () => {
34
- const delta = window.scrollY - this.prevYPos
35
-
36
- if (this.hasScrolledDown) {
37
- if (delta < 0) {
38
- this.hasScrolledDown = false
39
- }
40
- } else if (delta > 0) {
41
- this.hasScrolledDown = true
42
- }
43
-
44
- /**
45
- * Only show the button when
46
- * ... the current scroll position is greater than the window height (below-the-fold) and when
47
- * ... scrolling up
48
- */
49
- this.showButton =
50
- window.scrollY > window.innerHeight && !this.hasScrolledDown
51
- this.prevYPos = window.scrollY
52
- }
53
-
54
- connectedCallback() {
55
- super.connectedCallback()
56
- this.scrollListener = throttle(this.scroll, 100)
57
- document.addEventListener("scroll", this.scrollListener, true)
58
- }
59
-
60
- disconnectedCallback() {
61
- document.removeEventListener("scroll", this.scrollListener, true)
62
- super.disconnectedCallback()
63
- }
64
-
65
- // eslint-disable-next-line class-methods-use-this
66
- scrollToTop() {
67
- window.scrollTo({
68
- top: 0,
69
- left: 0,
70
- behavior: "smooth",
71
- })
72
- }
73
-
74
- render() {
75
- const cssClasses = {
76
- "scroll-top": true,
77
- hide: !this.showButton,
78
- }
79
- return html`
80
- <div class=${classMap(cssClasses)}>
81
- <leu-button
82
- label="Zum Seitenanfang"
83
- round
84
- @click="${() => this.scrollToTop()}"
85
- >
86
- <leu-icon name="arrowUp"></leu-icon>
87
- </leu-button>
88
- </div>
89
- `
90
- }
91
- }
@@ -1,11 +0,0 @@
1
- import { LeuScrollTop } from "./ScrollTop.js"
2
-
3
- export { LeuScrollTop }
4
-
5
- LeuScrollTop.define("leu-scroll-top")
6
-
7
- declare global {
8
- interface HTMLElementTagNameMap {
9
- "leu-scroll-top": LeuScrollTop
10
- }
11
- }
@@ -1,50 +0,0 @@
1
- @import url("../../styles/custom-media.css");
2
-
3
- .scroll-top {
4
- overflow: hidden;
5
- position: fixed;
6
- z-index: var(--leu-z-index-scroll-top);
7
-
8
- --_space: 1.5rem;
9
- right: var(--_space);
10
- bottom: var(--_space);
11
-
12
- /* show */
13
- height: 3rem;
14
- pointer-events: auto;
15
- transition: height, bottom 0.9s, 0.6s ease;
16
-
17
- @media (--viewport-regular) {
18
- --_space: 2rem;
19
- }
20
-
21
- @media (--viewport-large) {
22
- --_space: 2.5rem;
23
- }
24
-
25
- @media (--viewport-xlarge) {
26
- --_space: 3rem;
27
- }
28
- }
29
-
30
- .hide {
31
- height: 0;
32
- pointer-events: none;
33
- transition: height, top 0.9s, 0.6s ease;
34
- }
35
-
36
- @keyframes hide-animation {
37
- 0% {
38
- transform: rotate(0deg);
39
- }
40
-
41
- 100% {
42
- transform: rotate(90deg);
43
- }
44
- }
45
-
46
- .hide leu-button {
47
- animation-name: hide-animation;
48
- animation-duration: 0.45s;
49
- animation-timing-function: ease;
50
- }