@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,11 +0,0 @@
1
- import { LeuTag } from "./Tag.js"
2
-
3
- export { LeuTag }
4
-
5
- LeuTag.define("leu-tag")
6
-
7
- declare global {
8
- interface HTMLElementTagNameMap {
9
- "leu-tag": LeuTag
10
- }
11
- }
@@ -1,107 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/web-components-vite"
2
- import { html } from "lit"
3
- import { ifDefined } from "lit/directives/if-defined.js"
4
-
5
- import "../leu-tag.js"
6
- import "../../icon/leu-icon.js"
7
- import { LeuTag } from "../Tag.js"
8
-
9
- import { paths as iconPaths } from "../../icon/paths.js"
10
-
11
- type StoryArgs = LeuTag
12
- type Story = StoryObj<StoryArgs>
13
-
14
- export default {
15
- title: "Components/Tag",
16
- component: "leu-tag",
17
- parameters: {
18
- design: {
19
- type: "figma",
20
- url: "https://www.figma.com/design/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?node-id=21161-184432&t=QMYWpoD4FMWFrUkK-11",
21
- },
22
- },
23
- argTypes: {
24
- variant: {
25
- control: "select",
26
- options: ["solid", "outline", "ghost"],
27
- },
28
- "--leu-tag-accent-color": {
29
- control: {
30
- type: "color",
31
- presetColors: [
32
- "#0076bd",
33
- "#00407c",
34
- "#00797b",
35
- "#1a7f1f",
36
- "#b01657",
37
- "#d40053",
38
- "#7f3da7",
39
- "#666666",
40
- "#009ee0",
41
- "#d93c1a",
42
- "#1a7f1f",
43
- ],
44
- },
45
- },
46
- icon: { control: "select", options: Object.keys(iconPaths) },
47
- },
48
- args: {
49
- variant: "solid",
50
- icon: "confirm",
51
- default: "Abgeschlossen",
52
- "--leu-tag-accent-color": "#7f3da7",
53
- },
54
- } satisfies Meta<StoryArgs>
55
-
56
- const Template: Story = {
57
- render: (args: StoryArgs) =>
58
- html` <leu-tag
59
- variant=${ifDefined(args.variant)}
60
- style="--leu-tag-accent-color: ${args["--leu-tag-accent-color"] ??
61
- "unset"}"
62
- >
63
- ${args.icon
64
- ? html`<leu-icon slot="icon" name=${args.icon}></leu-icon>`
65
- : ""}
66
- ${args.default}</leu-tag
67
- >`,
68
- }
69
-
70
- export const Solid = {
71
- ...Template,
72
- args: {
73
- variant: "solid",
74
- },
75
- }
76
-
77
- export const Outline = {
78
- ...Template,
79
- args: {
80
- variant: "outline",
81
- },
82
- }
83
-
84
- export const Ghost = {
85
- ...Template,
86
- args: {
87
- variant: "ghost",
88
- },
89
- }
90
-
91
- export const Warning = {
92
- ...Template,
93
- args: {
94
- variant: "solid",
95
- "--leu-tag-accent-color": "#d93c1a",
96
- default: "Abgelaufen",
97
- },
98
- }
99
-
100
- export const NoIcon = {
101
- ...Template,
102
- args: {
103
- variant: "solid",
104
- "--leu-tag-accent-color": "#7f3da7",
105
- icon: undefined,
106
- },
107
- }
@@ -1,42 +0,0 @@
1
- :host {
2
- /* --tag-font-regular: var(--leu-font-family-regular);
3
- --tag-font-black: var(--leu-font-family-black);
4
-
5
- font-family: var(--tag-font-regular); */
6
- }
7
-
8
- .tag {
9
- --_accent-color: var(--leu-tag-accent-color, var(--leu-color-black-60));
10
-
11
- display: inline-flex;
12
- align-items: center;
13
- padding: 0.25rem 0.5rem;
14
- gap: 0.25rem;
15
- border-radius: 0.25rem;
16
-
17
- background-color: var(--_accent-color);
18
- border: 2px solid var(--_accent-color);
19
- color: var(--leu-color-black-0);
20
- }
21
-
22
- .tag--outline {
23
- background-color: transparent;
24
- border-color: var(--_accent-color);
25
- color: var(--_accent-color);
26
- }
27
-
28
- .tag--ghost {
29
- background-color: transparent;
30
- border-color: transparent;
31
- color: var(--_accent-color);
32
- }
33
-
34
- .tag__icon {
35
- --leu-icon-size: 1rem;
36
- }
37
-
38
- .tag__label {
39
- display: block;
40
- font: var(--leu-t-tiny-regular-font);
41
- line-height: 1rem;
42
- }
@@ -1,28 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect } from "@open-wc/testing"
3
-
4
- import "../leu-tag.js"
5
-
6
- async function defaultFixture() {
7
- return fixture(html`<leu-tag>Abgeschlossen</leu-tag>`)
8
- }
9
-
10
- describe("LeuTag", () => {
11
- it("is a defined element", async () => {
12
- const el = customElements.get("leu-tag")
13
-
14
- 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
-
23
- it("renders with default slot content", async () => {
24
- const el = await defaultFixture()
25
-
26
- expect(el).to.have.trimmed.text("Abgeschlossen")
27
- })
28
- })
@@ -1,16 +0,0 @@
1
- import { html } from "lit"
2
-
3
- import { LeuElement } from "../../lib/LeuElement.js"
4
-
5
- import styles from "./visually-hidden.css?inline"
6
-
7
- /**
8
- * @tagname leu-visually-hidden
9
- */
10
- export class LeuVisuallyHidden extends LeuElement {
11
- static styles = [LeuElement.styles, styles]
12
-
13
- render() {
14
- return html`<slot></slot>`
15
- }
16
- }
@@ -1,11 +0,0 @@
1
- import { LeuVisuallyHidden } from "./VisuallyHidden.js"
2
-
3
- export { LeuVisuallyHidden }
4
-
5
- LeuVisuallyHidden.define("leu-visually-hidden")
6
-
7
- declare global {
8
- interface HTMLElementTagNameMap {
9
- "leu-visually-hidden": LeuVisuallyHidden
10
- }
11
- }
@@ -1,22 +0,0 @@
1
- import { html } from "lit"
2
- import "../leu-visually-hidden.js"
3
-
4
- export default {
5
- title: "Components/VisuallyHidden",
6
- component: "leu-visually-hidden",
7
- argTypes: {
8
- content: {
9
- control: "text",
10
- },
11
- },
12
- }
13
-
14
- function Template({ content }) {
15
- return html` <leu-visually-hidden>${content}</leu-visually-hidden>`
16
- }
17
-
18
- export const Regular = Template.bind({})
19
- Regular.args = {
20
- content:
21
- "This is a text that isn't visible but still accessible for screenreaders.",
22
- }
@@ -1,34 +0,0 @@
1
- import { html } from "lit"
2
- import { fixture, expect } from "@open-wc/testing"
3
-
4
- import "../leu-visually-hidden.js"
5
-
6
- async function defaultFixture() {
7
- return fixture(html`
8
- <leu-visually-hidden>
9
- This is a text that shouldn't be visible but still accessible.
10
- </leu-visually-hidden>
11
- `)
12
- }
13
-
14
- describe("LeuVisuallyHidden", () => {
15
- it("is a defined element", async () => {
16
- const el = await customElements.get("leu-visually-hidden")
17
-
18
- await expect(el).not.to.be.undefined
19
- })
20
-
21
- it("passes the a11y audit", async () => {
22
- const el = await defaultFixture()
23
-
24
- await expect(el).to.be.accessible()
25
- })
26
-
27
- it("renders the default slot content", async () => {
28
- const el = await defaultFixture()
29
-
30
- expect(el).dom.to.equal(
31
- "<leu-visually-hidden>This is a text that shouldn't be visible but still accessible.</leu-visually-hidden>",
32
- )
33
- })
34
- })
@@ -1,10 +0,0 @@
1
- :host {
2
- clip: rect(0 0 0 0);
3
- border: 0;
4
- height: 1px;
5
- margin: -1px !important;
6
- overflow: hidden;
7
- padding: 0 !important;
8
- position: absolute;
9
- width: 1px;
10
- }
@@ -1,154 +0,0 @@
1
- import { Meta, Markdown } from "@storybook/addon-docs/blocks"
2
-
3
- <Meta title="Introduction/Contributing" />
4
-
5
- # Contributing
6
-
7
- Contributing to this project is highly appreciated. We are happy to receive feedback, bug reports, feature requests, and pull requests.
8
-
9
- ## Web compenents
10
-
11
- Leu is entirely built with the lit library and custom elements.
12
- If you haven't worked with either of them before, [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements) has a good introduction to custom elements.
13
- The [lit documentation](https://lit.dev/docs/) is a good starting point to get to know the library.
14
-
15
- ## Create a new component
16
-
17
- To create a starting point for a new component, run
18
-
19
- ```bash
20
- ./scripts/generate-component/generate.js
21
- ```
22
-
23
- Running it with `--help` will show you all available options.
24
-
25
- It creates a basic structure for a new component in the `src/components` directory.
26
-
27
- ## Linting and formatting
28
-
29
- This project uses eslint and prettier to lint and format the code.
30
- commitlint is also used the enforce conventional commit messages.
31
-
32
- To scan the project for linting and formatting errors, run
33
-
34
- ```bash
35
- npm run lint
36
- ```
37
-
38
- To automatically fix linting and formatting errors, run
39
-
40
- ```bash
41
- npm run format
42
- ```
43
-
44
- ## Testing with Web Test Runner
45
-
46
- To execute a single test run:
47
-
48
- ```bash
49
- npm run test
50
- ```
51
-
52
- To run the tests in interactive watch mode run:
53
-
54
- ```bash
55
- npm run test:watch
56
- ```
57
-
58
- ## Demoing with Storybook
59
-
60
- To run a local instance of Storybook for your component, run
61
-
62
- ```bash
63
- npm run storybook
64
- ```
65
-
66
- ## Development guidelines
67
-
68
- A few rules are necessary when developing a component library. The following conventions and guidelines should be followed when new features are implemented.
69
-
70
- At the same time they're not set in stone. If the there is a good reason to change them open a pull request.
71
-
72
- ### Naming
73
-
74
- Every element or custom property that will be globally available has to be prefixed with `leu`.
75
-
76
- ```js
77
- /* Custom elements */
78
- class LeuRadio extends LeuElement {
79
- ...
80
- }
81
-
82
- window.customElements.define("leu-input", LeuInput)
83
- ```
84
-
85
- ```css
86
- /* CSS custom property of the theme */
87
- :root {
88
- --leu-color-black-0: #000;
89
- }
90
- ```
91
-
92
- ### Scoped styles
93
-
94
- All CSS declarations have to live inside a custom element. This way we ensure that the styles won't interfere with the environment they're loaded into.
95
- Styles that are shared between components should be defined as global custom properties inside the `styles/theme.css`.
96
- When a global custom property is used inside a component it could be a good practice to assign them to a local custom property with a semantic naming.
97
- This only make a sense when the component has a certain complexity and the global custom property are used multiple times.
98
-
99
- ```css
100
- :host {
101
- --radio-color-disabled: var(--leu-color-black-20);
102
- }
103
- ```
104
-
105
- ### Value property
106
-
107
- All custom elements that contain a value of some sort (like an input or select fields) have to implement a `value` property.
108
- Everytime the value of the `value` property changes a `input` event has to be dispatched.
109
- This behaviour matches the way [Observable](https://observablehq.com) handles and observes changes of values that are contained in arbitrary elements. We decided to take over this pattern as it is usable in every other environment too.
110
-
111
- ### Custom events
112
-
113
- Name of custom events have to be prefixed with `leu:`.
114
-
115
- ```js
116
- this.dispatchEvent(new Event("leu:select", { bubbles: true, composed: true }))
117
- ```
118
-
119
- ### Dependencies
120
-
121
- We try to use as little non-dev dependencies as possible. The following dependencies are used:
122
-
123
- - `lit` is used to build all components.
124
- - `@floating-ui/dom` is used to position tooltips etc.
125
-
126
- ### Composability
127
-
128
- Components should be composable. This means that it should be possible to use them in combination with other components without any problems.
129
- It can also make sense to split a component into multiple smaller components.
130
-
131
- The `leu-dropdown` element is a good example for this.
132
-
133
- ```html
134
- <leu-dropdown label="Download">
135
- <leu-menu>
136
- <leu-menu-item>PDF</leu-menu-item>
137
- <leu-menu-item>CSV</leu-menu-item>
138
- <leu-menu-item>Excel</leu-menu-item>
139
- </leu-menu>
140
- </leu-dropdown>
141
- ```
142
-
143
- It could've been built as a single element by passing data to a property. The component could then render the menu and the menu items itself inside the shadow dom.
144
-
145
- ```js
146
- html`<leu-dropdown
147
- label="Download"
148
- .items=${["PDF", "CSV", "Excel"]}
149
- ></leu-dropdown>`
150
- ```
151
-
152
- But this approach would make it impossible to create and populate the element with only HTML. It also is much harderß to apply event listeners or custom attributes like `role` to specific child elements.
153
-
154
- The `leu-table` element is (currently) built like that and shouldn't be used as an example for composability.
@@ -1,35 +0,0 @@
1
- import { Meta, Markdown } from "@storybook/addon-docs/blocks"
2
-
3
- <Meta title="Introduction/Installation" />
4
-
5
- # Installation
6
-
7
- You can load the leu library from a CDN or install it via npm.
8
-
9
- ## npm installation
10
-
11
- For most projects, you will want to install the library via npm.
12
-
13
- ```bash
14
- npm i @statistikzh/leu
15
- ```
16
-
17
- ## CDN
18
-
19
- If you are in you're just using plain HTML and JavaScript without any build or transformation steps or just want to tinker around with the library, you can use a CDN.
20
- Browsers can't resolve bare module imports without import maps. But we can use a CDN like esm.sh to resolve the imports for us.
21
- This is also applicable in an environment like [Observable](https://observablehq.com).
22
-
23
- If you're using this approach, **always** define the version you want to use. This way you can ensure that your application doesn't break when a new version is released.
24
-
25
- > ⚠️ Be aware that most CDN (including esm.sh) are probably not GDPR compliant. Don't use this approach in a production environment.
26
-
27
- ```html
28
- <link
29
- rel="stylesheet"
30
- href="https://esm.sh/@statistikzh/leu@0.13.1/dist/theme.css"
31
- />
32
- <script type="module">
33
- import "https://esm.sh/@statistikzh/leu@0.13.1/dist/leu-input.js"
34
- </script>
35
- ```