@statistikzh/leu 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/.github/workflows/deploy-github-pages.yaml +33 -0
  2. package/.storybook/main.js +27 -1
  3. package/.storybook/manager-head.html +1 -0
  4. package/.storybook/manager.js +9 -0
  5. package/.storybook/preview-head.html +1 -1
  6. package/.storybook/preview.js +59 -6
  7. package/.storybook/static/logo.svg +19 -0
  8. package/.storybook/theme.js +7 -0
  9. package/CHANGELOG.md +54 -0
  10. package/README.md +1 -1
  11. package/custom-elements-manifest.config.js +46 -0
  12. package/dist/Accordion.d.ts +31 -0
  13. package/dist/Accordion.d.ts.map +1 -0
  14. package/dist/Accordion.js +257 -0
  15. package/dist/Breadcrumb.d.ts +69 -0
  16. package/dist/Breadcrumb.d.ts.map +1 -0
  17. package/dist/Breadcrumb.js +392 -0
  18. package/dist/Button-da11d064.d.ts +84 -0
  19. package/dist/Button-da11d064.d.ts.map +1 -0
  20. package/dist/Button-da11d064.js +542 -0
  21. package/dist/Button.d.ts +2 -0
  22. package/dist/Button.d.ts.map +1 -0
  23. package/dist/Button.js +6 -423
  24. package/dist/ButtonGroup.d.ts +24 -0
  25. package/dist/ButtonGroup.d.ts.map +1 -0
  26. package/dist/ButtonGroup.js +72 -43
  27. package/dist/Checkbox.d.ts +13 -0
  28. package/dist/Checkbox.d.ts.map +1 -0
  29. package/dist/Checkbox.js +101 -84
  30. package/dist/CheckboxGroup.d.ts +13 -0
  31. package/dist/CheckboxGroup.d.ts.map +1 -0
  32. package/dist/CheckboxGroup.js +41 -37
  33. package/dist/Chip.d.ts +5 -0
  34. package/dist/Chip.d.ts.map +1 -0
  35. package/dist/{Chip-5f70d04f.js → Chip.js} +21 -6
  36. package/dist/ChipGroup.d.ts +28 -0
  37. package/dist/ChipGroup.d.ts.map +1 -0
  38. package/dist/ChipGroup.js +64 -10
  39. package/dist/ChipLink.d.ts +15 -0
  40. package/dist/ChipLink.d.ts.map +1 -0
  41. package/dist/ChipLink.js +4 -7
  42. package/dist/ChipRemovable.d.ts +13 -0
  43. package/dist/ChipRemovable.d.ts.map +1 -0
  44. package/dist/ChipRemovable.js +5 -8
  45. package/dist/ChipSelectable.d.ts +22 -0
  46. package/dist/ChipSelectable.d.ts.map +1 -0
  47. package/dist/ChipSelectable.js +8 -11
  48. package/dist/Dropdown.d.ts +15 -0
  49. package/dist/Dropdown.d.ts.map +1 -0
  50. package/dist/Dropdown.js +73 -26
  51. package/dist/Input.d.ts +154 -0
  52. package/dist/Input.d.ts.map +1 -0
  53. package/dist/Input.js +42 -35
  54. package/dist/Menu.d.ts +8 -0
  55. package/dist/Menu.d.ts.map +1 -0
  56. package/dist/Menu.js +2 -5
  57. package/dist/MenuItem.d.ts +21 -0
  58. package/dist/MenuItem.d.ts.map +1 -0
  59. package/dist/MenuItem.js +32 -17
  60. package/dist/Pagination.d.ts +27 -0
  61. package/dist/Pagination.d.ts.map +1 -0
  62. package/dist/Pagination.js +121 -89
  63. package/dist/Popup.d.ts +18 -0
  64. package/dist/Popup.d.ts.map +1 -0
  65. package/dist/Popup.js +215 -0
  66. package/dist/Radio.d.ts +12 -0
  67. package/dist/Radio.d.ts.map +1 -0
  68. package/dist/Radio.js +9 -8
  69. package/dist/RadioGroup.d.ts +20 -0
  70. package/dist/RadioGroup.d.ts.map +1 -0
  71. package/dist/RadioGroup.js +41 -39
  72. package/dist/ScrollTop.d.ts +19 -0
  73. package/dist/ScrollTop.d.ts.map +1 -0
  74. package/dist/ScrollTop.js +122 -0
  75. package/dist/Select.d.ts +98 -0
  76. package/dist/Select.d.ts.map +1 -0
  77. package/dist/Select.js +79 -122
  78. package/dist/Table.d.ts +48 -0
  79. package/dist/Table.d.ts.map +1 -0
  80. package/dist/Table.js +141 -121
  81. package/dist/VisuallyHidden.d.ts +8 -0
  82. package/dist/VisuallyHidden.d.ts.map +1 -0
  83. package/dist/VisuallyHidden.js +28 -0
  84. package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts +3 -0
  85. package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts.map +1 -0
  86. package/dist/{defineElement-ba770aed.js → _rollupPluginBabelHelpers-20f659f4.js} +1 -15
  87. package/dist/defineElement-40372b4b.d.ts +9 -0
  88. package/dist/defineElement-40372b4b.d.ts.map +1 -0
  89. package/dist/defineElement-40372b4b.js +15 -0
  90. package/dist/icon-03e86700.d.ts +11 -0
  91. package/dist/icon-03e86700.d.ts.map +1 -0
  92. package/dist/index.js.d.ts +21 -0
  93. package/dist/index.js.d.ts.map +1 -0
  94. package/dist/index.js.js +42 -0
  95. package/dist/leu-accordion.d.ts +3 -0
  96. package/dist/leu-accordion.d.ts.map +1 -0
  97. package/dist/leu-accordion.js +9 -0
  98. package/dist/leu-breadcrumb.d.ts +3 -0
  99. package/dist/leu-breadcrumb.d.ts.map +1 -0
  100. package/dist/leu-breadcrumb.js +23 -0
  101. package/dist/leu-button-group.d.ts +3 -0
  102. package/dist/leu-button-group.d.ts.map +1 -0
  103. package/dist/leu-button-group.js +6 -6
  104. package/dist/leu-button.d.ts +3 -0
  105. package/dist/leu-button.d.ts.map +1 -0
  106. package/dist/leu-button.js +7 -3
  107. package/dist/leu-checkbox-group.d.ts +3 -0
  108. package/dist/leu-checkbox-group.d.ts.map +1 -0
  109. package/dist/leu-checkbox-group.js +6 -3
  110. package/dist/leu-checkbox.d.ts +3 -0
  111. package/dist/leu-checkbox.d.ts.map +1 -0
  112. package/dist/leu-checkbox.js +6 -3
  113. package/dist/leu-chip-group.d.ts +3 -0
  114. package/dist/leu-chip-group.d.ts.map +1 -0
  115. package/dist/leu-chip-group.js +7 -3
  116. package/dist/leu-chip-link.d.ts +3 -0
  117. package/dist/leu-chip-link.d.ts.map +1 -0
  118. package/dist/leu-chip-link.js +7 -4
  119. package/dist/leu-chip-removable.d.ts +3 -0
  120. package/dist/leu-chip-removable.d.ts.map +1 -0
  121. package/dist/leu-chip-removable.js +7 -4
  122. package/dist/leu-chip-selectable.d.ts +3 -0
  123. package/dist/leu-chip-selectable.d.ts.map +1 -0
  124. package/dist/leu-chip-selectable.js +7 -4
  125. package/dist/leu-dropdown.d.ts +3 -0
  126. package/dist/leu-dropdown.d.ts.map +1 -0
  127. package/dist/leu-dropdown.js +15 -4
  128. package/dist/leu-input.d.ts +3 -0
  129. package/dist/leu-input.d.ts.map +1 -0
  130. package/dist/leu-input.js +7 -3
  131. package/dist/leu-menu-item.d.ts +3 -0
  132. package/dist/leu-menu-item.d.ts.map +1 -0
  133. package/dist/leu-menu-item.js +8 -3
  134. package/dist/leu-menu.d.ts +3 -0
  135. package/dist/leu-menu.d.ts.map +1 -0
  136. package/dist/leu-menu.js +6 -3
  137. package/dist/leu-pagination.d.ts +3 -0
  138. package/dist/leu-pagination.d.ts.map +1 -0
  139. package/dist/leu-pagination.js +12 -4
  140. package/dist/leu-popup.d.ts +3 -0
  141. package/dist/leu-popup.d.ts.map +1 -0
  142. package/dist/leu-popup.js +9 -0
  143. package/dist/leu-radio-group.d.ts +3 -0
  144. package/dist/leu-radio-group.d.ts.map +1 -0
  145. package/dist/leu-radio-group.js +6 -3
  146. package/dist/leu-radio.d.ts +3 -0
  147. package/dist/leu-radio.d.ts.map +1 -0
  148. package/dist/leu-radio.js +6 -3
  149. package/dist/leu-scroll-top.d.ts +3 -0
  150. package/dist/leu-scroll-top.d.ts.map +1 -0
  151. package/dist/leu-scroll-top.js +14 -0
  152. package/dist/leu-select.d.ts +3 -0
  153. package/dist/leu-select.d.ts.map +1 -0
  154. package/dist/leu-select.js +16 -4
  155. package/dist/leu-table.d.ts +3 -0
  156. package/dist/leu-table.d.ts.map +1 -0
  157. package/dist/leu-table.js +13 -4
  158. package/dist/leu-visually-hidden.d.ts +3 -0
  159. package/dist/leu-visually-hidden.d.ts.map +1 -0
  160. package/dist/leu-visually-hidden.js +8 -0
  161. package/dist/theme.css +386 -2
  162. package/dist/utils-65469421.d.ts +16 -0
  163. package/dist/utils-65469421.d.ts.map +1 -0
  164. package/dist/utils-65469421.js +35 -0
  165. package/index.js +3 -0
  166. package/package.json +47 -17
  167. package/postcss.config.cjs +2 -0
  168. package/rollup.config.js +21 -40
  169. package/scripts/generate-component/templates/[Name].js +0 -5
  170. package/scripts/generate-component/templates/[name].css +3 -3
  171. package/scripts/generate-component/templates/[namespace]-[name].js +5 -2
  172. package/scripts/postcss-leu-font-styles.cjs +160 -0
  173. package/src/components/accordion/Accordion.js +0 -6
  174. package/src/components/accordion/accordion.css +2 -2
  175. package/src/components/accordion/leu-accordion.js +5 -2
  176. package/src/components/accordion/stories/accordion.stories.js +8 -4
  177. package/src/components/accordion/test/accordion.test.js +95 -3
  178. package/src/components/breadcrumb/Breadcrumb.js +311 -0
  179. package/src/components/breadcrumb/breadcrumb.css +103 -0
  180. package/src/components/breadcrumb/leu-breadcrumb.js +6 -0
  181. package/src/components/breadcrumb/stories/breadcrumb.stories.js +73 -0
  182. package/src/components/breadcrumb/test/breadcrumb.test.js +141 -0
  183. package/src/components/button/Button.js +76 -20
  184. package/src/components/button/button.css +13 -5
  185. package/src/components/button/leu-button.js +5 -2
  186. package/src/components/button/stories/button.stories.js +79 -105
  187. package/src/components/button/test/button.test.js +184 -3
  188. package/src/components/button-group/ButtonGroup.js +76 -40
  189. package/src/components/button-group/leu-button-group.js +5 -2
  190. package/src/components/button-group/stories/button-group.stories.js +19 -6
  191. package/src/components/button-group/test/button-group.test.js +87 -4
  192. package/src/components/checkbox/Checkbox.js +6 -85
  193. package/src/components/checkbox/CheckboxGroup.js +8 -38
  194. package/src/components/checkbox/checkbox-group.css +29 -0
  195. package/src/components/checkbox/checkbox.css +76 -0
  196. package/src/components/checkbox/leu-checkbox-group.js +5 -2
  197. package/src/components/checkbox/leu-checkbox.js +5 -2
  198. package/src/components/checkbox/stories/checkbox-group.stories.js +44 -21
  199. package/src/components/checkbox/stories/checkbox.stories.js +7 -1
  200. package/src/components/checkbox/test/checkbox-group.test.js +124 -0
  201. package/src/components/checkbox/test/checkbox.test.js +72 -59
  202. package/src/components/chip/Chip.js +1 -0
  203. package/src/components/chip/ChipGroup.js +42 -7
  204. package/src/components/chip/ChipLink.js +1 -6
  205. package/src/components/chip/ChipRemovable.js +2 -7
  206. package/src/components/chip/ChipSelectable.js +5 -10
  207. package/src/components/chip/chip-group.css +12 -2
  208. package/src/components/chip/chip.css +14 -3
  209. package/src/components/chip/exports.js +4 -10
  210. package/src/components/chip/leu-chip-group.js +5 -2
  211. package/src/components/chip/leu-chip-link.js +5 -2
  212. package/src/components/chip/leu-chip-removable.js +5 -2
  213. package/src/components/chip/leu-chip-selectable.js +5 -2
  214. package/src/components/chip/stories/chip-group.stories.js +110 -44
  215. package/src/components/chip/stories/chip-link.stories.js +16 -4
  216. package/src/components/chip/stories/chip-removable.stories.js +15 -4
  217. package/src/components/chip/stories/chip-selectable.stories.js +13 -3
  218. package/src/components/chip/test/chip-group.test.js +124 -0
  219. package/src/components/chip/test/chip-link.test.js +58 -0
  220. package/src/components/chip/test/chip-removable.test.js +79 -0
  221. package/src/components/chip/test/chip-selectable.test.js +95 -0
  222. package/src/components/chip/test/chip.test.js +1 -1
  223. package/src/components/dropdown/Dropdown.js +72 -24
  224. package/src/components/dropdown/dropdown.css +1 -2
  225. package/src/components/dropdown/leu-dropdown.js +5 -2
  226. package/src/components/dropdown/stories/dropdown.stories.js +11 -5
  227. package/src/components/dropdown/test/dropdown.test.js +6 -6
  228. package/src/components/icon/icon.js +1 -1
  229. package/src/components/icon/test/icon.test.js +66 -0
  230. package/src/components/input/Input.js +25 -28
  231. package/src/components/input/input.css +11 -8
  232. package/src/components/input/leu-input.js +5 -2
  233. package/src/components/input/stories/input.stories.js +21 -2
  234. package/src/components/input/test/input.test.js +432 -4
  235. package/src/components/menu/Menu.js +0 -5
  236. package/src/components/menu/MenuItem.js +20 -13
  237. package/src/components/menu/leu-menu-item.js +5 -2
  238. package/src/components/menu/leu-menu.js +5 -2
  239. package/src/components/menu/menu-item.css +7 -4
  240. package/src/components/menu/stories/menu-item.stories.js +13 -4
  241. package/src/components/menu/stories/menu.stories.js +11 -5
  242. package/src/components/menu/test/menu-item.test.js +180 -0
  243. package/src/components/menu/test/menu.test.js +10 -2
  244. package/src/components/pagination/Pagination.js +118 -99
  245. package/src/components/pagination/leu-pagination.js +5 -2
  246. package/src/components/pagination/pagination.css +6 -1
  247. package/src/components/pagination/stories/pagination.stories.js +30 -9
  248. package/src/components/pagination/test/pagination.test.js +191 -5
  249. package/src/components/popup/Popup.js +200 -0
  250. package/src/components/popup/leu-popup.js +6 -0
  251. package/src/components/popup/popup.css +27 -0
  252. package/src/components/popup/stories/popup.stories.js +58 -0
  253. package/src/components/popup/test/popup.test.js +29 -0
  254. package/src/components/radio/Radio.js +2 -6
  255. package/src/components/radio/RadioGroup.js +6 -38
  256. package/src/components/radio/leu-radio-group.js +5 -2
  257. package/src/components/radio/leu-radio.js +5 -2
  258. package/src/components/radio/radio-group.css +29 -0
  259. package/src/components/radio/radio.css +1 -1
  260. package/src/components/radio/stories/radio-group.stories.js +38 -19
  261. package/src/components/radio/stories/radio.stories.js +7 -1
  262. package/src/components/radio/test/radio-group.test.js +86 -0
  263. package/src/components/radio/test/radio.test.js +108 -17
  264. package/src/components/scroll-top/ScrollTop.js +87 -0
  265. package/src/components/scroll-top/leu-scroll-top.js +6 -0
  266. package/src/components/scroll-top/scroll-top.css +34 -0
  267. package/src/components/scroll-top/stories/scroll-top.stories.js +217 -0
  268. package/src/components/scroll-top/test/scroll-top.test.js +22 -0
  269. package/src/components/select/Select.js +58 -37
  270. package/src/components/select/leu-select.js +5 -2
  271. package/src/components/select/select.css +15 -15
  272. package/src/components/select/stories/select.stories.js +15 -168
  273. package/src/components/select/test/fixtures.js +162 -0
  274. package/src/components/select/test/select.test.js +236 -12
  275. package/src/components/table/Table.js +43 -118
  276. package/src/components/table/leu-table.js +5 -2
  277. package/src/components/table/stories/table.stories.js +20 -10
  278. package/src/components/table/table.css +99 -0
  279. package/src/components/table/test/table.test.js +1 -1
  280. package/src/components/visually-hidden/VisuallyHidden.js +13 -0
  281. package/src/components/visually-hidden/leu-visually-hidden.js +6 -0
  282. package/src/components/visually-hidden/stories/visually-hidden.stories.js +22 -0
  283. package/src/components/visually-hidden/test/visually-hidden.test.js +36 -0
  284. package/src/components/visually-hidden/visually-hidden.css +10 -0
  285. package/src/lib/defineElement.js +1 -1
  286. package/src/lib/hasSlotController.js +5 -3
  287. package/src/lib/utils.js +35 -0
  288. package/src/styles/custom-properties.css +6 -2
  289. package/src/styles/font-definitions.json +202 -0
  290. package/stylelint.config.mjs +2 -0
  291. package/tsconfig.build.json +21 -0
  292. package/tsconfig.json +16 -0
  293. package/{web-dev-server-storybook.config.mjs → web-dev-server.config.mjs} +1 -2
  294. package/web-test-runner.config.mjs +15 -2
  295. package/dist/index.js +0 -26
@@ -0,0 +1,22 @@
1
+ import { html } from "lit"
2
+ import "../leu-visually-hidden.js"
3
+
4
+ export default {
5
+ title: "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
+ }
@@ -0,0 +1,36 @@
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(
8
+ html`
9
+ <leu-visually-hidden>
10
+ This is a text that shouldn't be visible but still accessible.
11
+ </leu-visually-hidden>
12
+ `
13
+ )
14
+ }
15
+
16
+ describe("LeuVisuallyHidden", () => {
17
+ it("is a defined element", async () => {
18
+ const el = await customElements.get("leu-visually-hidden")
19
+
20
+ await expect(el).not.to.be.undefined
21
+ })
22
+
23
+ it("passes the a11y audit", async () => {
24
+ const el = await defaultFixture()
25
+
26
+ await expect(el).to.be.accessible()
27
+ })
28
+
29
+ it("renders the default slot content", async () => {
30
+ const el = await defaultFixture()
31
+
32
+ expect(el).dom.to.equal(
33
+ "<leu-visually-hidden>This is a text that shouldn't be visible but still accessible.</leu-visually-hidden>"
34
+ )
35
+ })
36
+ })
@@ -0,0 +1,10 @@
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
+ }
@@ -2,7 +2,7 @@
2
2
  * Adds a definition for a custom element to the custom element
3
3
  * registry if it isn't defined before. Prefixes the name with `leu-`.
4
4
  * @param {string} name
5
- * @param {HTMLElement} constructor
5
+ * @param {CustomElementConstructor} constructor
6
6
  */
7
7
  export function defineElement(name, constructor) {
8
8
  if (!customElements.get(`leu-${name}`)) {
@@ -5,7 +5,8 @@
5
5
 
6
6
  /**
7
7
  * A reactive controller that determines when slots exist.
8
- * @implements { import("lit").ReactiveController }
8
+ * @typedef {import("lit").ReactiveController} ReactiveController
9
+ * @implements {ReactiveController}
9
10
  */
10
11
  export class HasSlotController {
11
12
  constructor(host, slotNames) {
@@ -76,8 +77,9 @@ export class HasSlotController {
76
77
  const slot = event.target
77
78
 
78
79
  if (
79
- (this.slotNames.includes("[default]") && !slot.name) ||
80
- (slot.name && this.slotNames.includes(slot.name))
80
+ slot instanceof HTMLSlotElement &&
81
+ ((this.slotNames.includes("[default]") && !slot.name) ||
82
+ (slot.name && this.slotNames.includes(slot.name)))
81
83
  ) {
82
84
  this.host.requestUpdate()
83
85
  }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Return a debounced function that delays invoking func until after wait milliseconds have elapsed since the last time the debounced function was invoked.
3
+ * @param {Function} func - Your function
4
+ * @param {Number} timeout - Default is 500 ms
5
+ * @returns {Function} - Your function wrapped in a timeout function
6
+ */
7
+ const debounce = function debounce(func, timeout = 500) {
8
+ let timer = null
9
+ return (...args) => {
10
+ clearTimeout(timer)
11
+ timer = setTimeout(() => {
12
+ func.apply(this, args)
13
+ }, timeout)
14
+ }
15
+ }
16
+
17
+ /**
18
+ * Return a throttled function that only invokes func at most once per every wait milliseconds.
19
+ * @param {Function} func - Your function
20
+ * @param {Number} timeout - Default is 500 ms
21
+ * @returns {Function} - Your function wrapped in a timeout function
22
+ */
23
+ const throttle = function throttle(func, timeout = 500) {
24
+ let timer = null
25
+ return (...args) => {
26
+ if (timer === null) {
27
+ func(...args)
28
+ timer = setTimeout(() => {
29
+ timer = null
30
+ }, timeout)
31
+ }
32
+ }
33
+ }
34
+
35
+ export { debounce, throttle }
@@ -1,3 +1,5 @@
1
+ @import url("./custom-media.css");
2
+
1
3
  :root {
2
4
  --leu-color-black-100: #000;
3
5
  --leu-color-black-80: #333;
@@ -42,10 +44,12 @@
42
44
  --leu-color-func-red: #d93c1a;
43
45
  --leu-color-func-green: #1a7f1f;
44
46
 
45
- --leu-font-regular: HelveticaNowRegular, Helvetica, sans-serif; /* stylelint-disable-line value-keyword-case */
46
- --leu-font-black: HelveticaNowBlack, Arial Black, Helvetica, sans-serif; /* stylelint-disable-line value-keyword-case */
47
+ --leu-font-family-regular: HelveticaNowRegular, Helvetica, sans-serif; /* stylelint-disable-line value-keyword-case */
48
+ --leu-font-family-black: HelveticaNowBlack, Arial Black, Helvetica, sans-serif; /* stylelint-disable-line value-keyword-case */
47
49
 
48
50
  --leu-box-shadow-short: 0px 0px 2px var(--leu-color-black-transp-40);
49
51
  --leu-box-shadow-regular: 0px 0px 16px var(--leu-color-black-transp-20);
50
52
  --leu-box-shadow-long: 0px 0px 80px var(--leu-color-black-transp-20);
53
+
54
+ @leu-font-styles './font-definitions.json';
51
55
  }
@@ -0,0 +1,202 @@
1
+ {
2
+ "definitions": [
3
+ {
4
+ "fontSize": "12px",
5
+ "fontWeight": "regular",
6
+ "lineHeight": 1.5,
7
+ "spacing": "9px",
8
+ "name": "tiny"
9
+ },
10
+ {
11
+ "fontSize": "12px",
12
+ "fontWeight": "black",
13
+ "lineHeight": 1.5,
14
+ "spacing": "9px",
15
+ "name": "tiny"
16
+ },
17
+ {
18
+ "fontSize": "14px",
19
+ "fontWeight": "regular",
20
+ "lineHeight": 1.4,
21
+ "spacing": "10px",
22
+ "name": "small"
23
+ },
24
+ {
25
+ "fontSize": "14px",
26
+ "fontWeight": "black",
27
+ "lineHeight": 1.4,
28
+ "spacing": "10px",
29
+ "name": "small"
30
+ },
31
+ {
32
+ "fontSize": "16px",
33
+ "fontWeight": "regular",
34
+ "lineHeight": 1.5,
35
+ "spacing": "12px",
36
+ "name": "regular"
37
+ },
38
+ {
39
+ "fontSize": "16px",
40
+ "fontWeight": "black",
41
+ "lineHeight": 1.5,
42
+ "spacing": "12px",
43
+ "name": "regular"
44
+ },
45
+ {
46
+ "fontSize": "18px",
47
+ "fontWeight": "regular",
48
+ "lineHeight": 1.5,
49
+ "spacing": "13px",
50
+ "name": "biggerRegular"
51
+ },
52
+ {
53
+ "fontSize": "18px",
54
+ "fontWeight": "black",
55
+ "lineHeight": 1.3,
56
+ "spacing": "12px",
57
+ "name": "biggerRegular"
58
+ },
59
+ {
60
+ "fontSize": "20px",
61
+ "fontWeight": "regular",
62
+ "lineHeight": 1.5,
63
+ "spacing": "15px",
64
+ "name": "medium"
65
+ },
66
+ {
67
+ "fontSize": "20px",
68
+ "fontWeight": "black",
69
+ "lineHeight": 1.3,
70
+ "spacing": "13px",
71
+ "name": "medium"
72
+ },
73
+ {
74
+ "fontSize": "24px",
75
+ "fontWeight": "regular",
76
+ "lineHeight": 1.5,
77
+ "spacing": "18px",
78
+ "name": "large"
79
+ },
80
+ {
81
+ "fontSize": "24px",
82
+ "fontWeight": "black",
83
+ "lineHeight": 1.3,
84
+ "spacing": "15px",
85
+ "name": "large"
86
+ },
87
+ {
88
+ "fontSize": "28px",
89
+ "fontWeight": "black",
90
+ "lineHeight": 1.2,
91
+ "spacing": "17px",
92
+ "name": "smallBig"
93
+ },
94
+ {
95
+ "fontSize": "32px",
96
+ "fontWeight": "black",
97
+ "lineHeight": 1.2,
98
+ "spacing": "19px",
99
+ "name": "big"
100
+ },
101
+ {
102
+ "fontSize": "40px",
103
+ "fontWeight": "black",
104
+ "lineHeight": 1.2,
105
+ "spacing": "24px",
106
+ "name": "biggerBig"
107
+ },
108
+ {
109
+ "fontSize": "48px",
110
+ "fontWeight": "black",
111
+ "lineHeight": 1,
112
+ "spacing": "24px",
113
+ "name": "smallHuge"
114
+ },
115
+ {
116
+ "fontSize": "56px",
117
+ "fontWeight": "black",
118
+ "lineHeight": 1,
119
+ "spacing": "28px",
120
+ "name": "huge"
121
+ },
122
+ {
123
+ "fontSize": "72px",
124
+ "fontWeight": "black",
125
+ "lineHeight": 1,
126
+ "spacing": "36px",
127
+ "name": "giant"
128
+ }
129
+ ],
130
+ "curves": [
131
+ {
132
+ "name": "tiny",
133
+ "steps": [
134
+ [null, "tiny"],
135
+ ["--viewport-regular", "small"]
136
+ ]
137
+ },
138
+ {
139
+ "name": "small",
140
+ "steps": [
141
+ [null, "small"],
142
+ ["--viewport-regular", "regular"],
143
+ ["--viewport-large", "biggerRegular"]
144
+ ]
145
+ },
146
+ {
147
+ "name": "regular",
148
+ "steps": [
149
+ [null, "regular"],
150
+ ["--viewport-small", "biggerRegular"],
151
+ ["--viewport-xlarge", "medium"]
152
+ ]
153
+ },
154
+ {
155
+ "name": "biggerRegular",
156
+ "steps": [
157
+ [null, "biggerRegular"],
158
+ ["--viewport-regular", "medium"],
159
+ ["--viewport-xlarge", "large"]
160
+ ]
161
+ },
162
+ {
163
+ "name": "medium",
164
+ "steps": [
165
+ [null, "biggerRegular"],
166
+ ["--viewport-small", "medium"],
167
+ ["--viewport-large", "large"],
168
+ ["--viewport-xlarge", "smallBig"]
169
+ ]
170
+ },
171
+ {
172
+ "name": "large",
173
+ "steps": [
174
+ [null, "biggerRegular"],
175
+ ["--viewport-regular", "large"],
176
+ ["--viewport-large", "smallBig"],
177
+ ["--viewport-xlarge", "big"]
178
+ ]
179
+ },
180
+ {
181
+ "name": "big",
182
+ "steps": [
183
+ [null, "large"],
184
+ ["--viewport-regular", "smallBig"],
185
+ ["--viewport-medium", "big"],
186
+ ["--viewport-large", "biggerBig"],
187
+ ["--viewport-xlarge", "smallHuge"]
188
+ ]
189
+ },
190
+ {
191
+ "name": "huge",
192
+ "steps": [
193
+ [null, "smallBig"],
194
+ ["--viewport-small", "big"],
195
+ ["--viewport-regular", "biggerBig"],
196
+ ["--viewport-medium", "smallHuge"],
197
+ ["--viewport-large", "huge"],
198
+ ["--viewport-xlarge", "giant"]
199
+ ]
200
+ }
201
+ ]
202
+ }
@@ -1,3 +1,4 @@
1
+ /** @type {import('stylelint').Config} */
1
2
  export default {
2
3
  extends: "stylelint-config-standard",
3
4
  overrides: [
@@ -16,6 +17,7 @@ export default {
16
17
  // Allowing kebab-case and BEM
17
18
  "selector-class-pattern":
18
19
  "^[a-z]([-]?[a-z0-9]+)*(__[a-z0-9]([-]?[a-z0-9]+)*)?(--[a-z0-9]([-]?[a-z0-9]+)*)?$",
20
+ "at-rule-no-unknown": [true, { ignoreAtRules: ["leu-font-styles"] }],
19
21
  },
20
22
  ignoreFiles: ["scripts/generate-component/templates/**/*"],
21
23
  }
@@ -0,0 +1,21 @@
1
+ {
2
+ "include": ["dist/**/*.js"],
3
+ "exclude": ["node_modules", "dist/**/*.d.ts"],
4
+ "compilerOptions": {
5
+ // Tells TypeScript to read JS files, as
6
+ // normally they are ignored as source files
7
+ "allowJs": true,
8
+ // Generate d.ts files
9
+ "declaration": true,
10
+ // This compiler run should
11
+ // only output d.ts files
12
+ "emitDeclarationOnly": true,
13
+ // Types should go into this directory.
14
+ // Removing this would place the .d.ts files
15
+ // next to the .js files
16
+ "outDir": "dist",
17
+ // go to js file when using IDE functions like
18
+ // "Go to Definition" in VSCode
19
+ "declarationMap": true
20
+ }
21
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "include": ["src/**/*.js"],
3
+ "exclude": [
4
+ "node_modules",
5
+ "dist",
6
+ "**/*.d.ts",
7
+ "**/*.stories.js",
8
+ "**/*.test.js",
9
+ "**/*.css"
10
+ ],
11
+ "compilerOptions": {
12
+ "allowJs": true,
13
+ "checkJs": true,
14
+ "noEmit": true
15
+ }
16
+ }
@@ -1,6 +1,5 @@
1
1
  import { fromRollup } from "@web/dev-server-rollup"
2
2
  import rollupJson from "@rollup/plugin-json"
3
- import { storybookPlugin } from "@web/dev-server-storybook"
4
3
 
5
4
  import { plugins as rollupPlugins } from "./rollup.config.js"
6
5
 
@@ -15,5 +14,5 @@ export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
15
14
  "**/custom-elements.json": "js",
16
15
  "src/components/**/*.css": "js",
17
16
  },
18
- plugins: [storybookPlugin({ type: "web-components" }), ...plugins, json()],
17
+ plugins: [...plugins, json()],
19
18
  })
@@ -1,12 +1,12 @@
1
1
  import { playwrightLauncher } from "@web/test-runner-playwright"
2
- import { plugins as devServerPlugins } from "./web-dev-server-storybook.config.mjs"
2
+ import { plugins as wdsPlugins } from "./web-dev-server.config.mjs"
3
3
 
4
4
  const filteredLogs = ["Running in dev mode", "lit-html is in dev mode"]
5
5
 
6
6
  export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
7
7
  /** Test files to run */
8
8
  files: "src/components/**/*.test.js",
9
- plugins: devServerPlugins,
9
+ plugins: wdsPlugins,
10
10
  mimeTypes: {
11
11
  "src/components/**/*.css": "js",
12
12
  },
@@ -45,5 +45,18 @@ export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
45
45
  // playwrightLauncher({ product: "webkit" }),
46
46
  ],
47
47
 
48
+ testRunnerHtml: (testFramework) =>
49
+ `<html>
50
+ <head>
51
+ <meta charset="utf-8" />
52
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
53
+ <link rel="stylesheet" href="dist/theme.css" />
54
+ <link rel="stylesheet" href="https://www.web.statistik.zh.ch/leu/styles/fonts.css" />
55
+ </head>
56
+ <body>
57
+ <script type="module" src="${testFramework}"></script>
58
+ </body>
59
+ </html>`,
60
+
48
61
  // See documentation for all available options
49
62
  })
package/dist/index.js DELETED
@@ -1,26 +0,0 @@
1
- export { BUTTON_EXPANDED_OPTIONS, BUTTON_SIZES, BUTTON_TYPES, BUTTON_VARIANTS, LeuButton, defineButtonElements } from './Button.js';
2
- export { LeuButtonGroup, defineButtonGroupElements } from './ButtonGroup.js';
3
- export { LeuCheckbox, defineCheckboxElements } from './Checkbox.js';
4
- export { LeuCheckboxGroup, defineCheckboxGroupElements } from './CheckboxGroup.js';
5
- export { LeuChipGroup, defineChipGroupElements } from './ChipGroup.js';
6
- export { LeuChipLink, defineChipLinkElements } from './ChipLink.js';
7
- export { LeuChipRemovable, defineChipRemovableElements } from './ChipRemovable.js';
8
- export { LeuChipSelectable, defineChipSelectableElements } from './ChipSelectable.js';
9
- export { LeuDropdown, defineDropdownElements } from './Dropdown.js';
10
- export { LeuInput, SIZE_TYPES, defineInputElements } from './Input.js';
11
- export { LeuMenu, defineMenuElements } from './Menu.js';
12
- export { LeuMenuItem, defineMenuItemElements } from './MenuItem.js';
13
- export { LeuPagination, definePaginationElements } from './Pagination.js';
14
- export { LeuRadio, defineRadioElements } from './Radio.js';
15
- export { LeuRadioGroup, defineRadioGroupElements } from './RadioGroup.js';
16
- export { LeuSelect, defineSelectElements } from './Select.js';
17
- export { LeuTable, defineTableElements } from './Table.js';
18
- import './defineElement-ba770aed.js';
19
- import 'lit';
20
- import 'lit/directives/class-map.js';
21
- import './icon-03e86700.js';
22
- import './Chip-5f70d04f.js';
23
- import 'lit/directives/if-defined.js';
24
- import 'lit/directives/ref.js';
25
- import 'lit/directives/map.js';
26
- import 'lit/directives/style-map.js';