@jpahd/kalendus 0.1.7 → 0.7.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 (42) hide show
  1. package/README.11tydata.json +8 -0
  2. package/README.md +70 -44
  3. package/custom-elements.json +282 -8
  4. package/dist/components/Day.d.ts.map +1 -1
  5. package/dist/components/Entry.d.ts.map +1 -1
  6. package/dist/components/Header.d.ts.map +1 -1
  7. package/dist/components/Menu.d.ts.map +1 -1
  8. package/dist/generated/locale-codes.d.ts +2 -2
  9. package/dist/generated/locale-codes.d.ts.map +1 -1
  10. package/dist/generated/locales/cs.d.ts +33 -0
  11. package/dist/generated/locales/cs.d.ts.map +1 -0
  12. package/dist/generated/locales/da.d.ts +33 -0
  13. package/dist/generated/locales/da.d.ts.map +1 -0
  14. package/dist/generated/locales/el.d.ts +33 -0
  15. package/dist/generated/locales/el.d.ts.map +1 -0
  16. package/dist/generated/locales/fi.d.ts +33 -0
  17. package/dist/generated/locales/fi.d.ts.map +1 -0
  18. package/dist/generated/locales/he.d.ts +33 -0
  19. package/dist/generated/locales/he.d.ts.map +1 -0
  20. package/dist/generated/locales/nb.d.ts +33 -0
  21. package/dist/generated/locales/nb.d.ts.map +1 -0
  22. package/dist/generated/locales/sv.d.ts +33 -0
  23. package/dist/generated/locales/sv.d.ts.map +1 -0
  24. package/dist/kalendus.js +254 -206
  25. package/dist/kalendus.js.map +1 -1
  26. package/dist/lib/SlotManager.d.ts.map +1 -1
  27. package/dist/lib/colorParser.d.ts +18 -0
  28. package/dist/lib/colorParser.d.ts.map +1 -0
  29. package/dist/lib/getColorTextWithContrast.d.ts +1 -1
  30. package/dist/lib/getColorTextWithContrast.d.ts.map +1 -1
  31. package/dist/lib/localization.d.ts.map +1 -1
  32. package/dist/lib/messages.d.ts.map +1 -1
  33. package/dist/lib/weekDisplayContext.d.ts.map +1 -1
  34. package/dist/lib/weekStartHelper.d.ts.map +1 -1
  35. package/dist/lms-calendar.d.ts +104 -0
  36. package/dist/lms-calendar.d.ts.map +1 -1
  37. package/dist/themes/brutalist.css +100 -0
  38. package/dist/themes/default.css +100 -0
  39. package/dist/themes/ink.css +98 -0
  40. package/dist/themes/midnight.css +110 -0
  41. package/dist/themes/soft.css +97 -0
  42. package/package.json +131 -123
@@ -0,0 +1,110 @@
1
+ /*
2
+ * Kalendus — Midnight Theme
3
+ *
4
+ * Dark mode. Deep charcoal background, soft glowing accents,
5
+ * muted separators. Easy on the eyes.
6
+ *
7
+ * Usage:
8
+ * import '@jpahd/kalendus/themes/midnight.css';
9
+ */
10
+
11
+ lms-calendar {
12
+ /* ── Base text color — must be explicit for dark themes since
13
+ the unstyled base uses `color: inherit` from the page ──── */
14
+ color: rgba(255, 255, 255, 0.85);
15
+
16
+ /* ── Colors ─────────────────────────────────── */
17
+ --background-color: #1a1b2e;
18
+ --primary-color: #818cf8;
19
+ --separator-light: rgba(255, 255, 255, 0.08);
20
+ --separator-mid: rgba(255, 255, 255, 0.2);
21
+ --separator-dark: rgba(255, 255, 255, 0.85);
22
+
23
+ /* ── Typography ─────────────────────────────── */
24
+ --system-ui: system-ui, -apple-system, 'Segoe UI', sans-serif;
25
+ --monospace-ui: 'JetBrains Mono', 'Fira Code', monospace;
26
+ --header-text-color: rgba(255, 255, 255, 0.5);
27
+ --indicator-color: var(--primary-color);
28
+ --indicator-font-weight: 600;
29
+ --day-label-font-weight: 500;
30
+ --day-label-number-font-weight: 600;
31
+ --menu-item-font-weight: 500;
32
+ --menu-title-font-weight: 600;
33
+ --entry-title-weight: 500;
34
+ --entry-time-opacity: 0.7;
35
+ --title-column-weight: 500;
36
+ --month-label-font-weight: 600;
37
+ --year-weekday-font-weight: 500;
38
+
39
+ /* ── Border Radius ──────────────────────────── */
40
+ --border-radius-sm: 6px;
41
+ --border-radius-md: 8px;
42
+ --border-radius-lg: 12px;
43
+ --entry-border-radius: 4px;
44
+ --month-indicator-border-radius: 1em;
45
+ --year-day-cell-border-radius: 50%;
46
+ --float-text-border-radius: 4px;
47
+
48
+ /* ── Shadows ─────────────────────────────────── */
49
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
50
+ --shadow-md: 0 2px 6px rgba(0, 0, 0, 0.4);
51
+ --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.5);
52
+ --shadow-hv: 0 8px 24px rgba(0, 0, 0, 0.4);
53
+ --active-indicator-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
54
+ --float-text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
55
+
56
+ /* ── Transitions ────────────────────────────── */
57
+ --transition-speed: 0.2s;
58
+
59
+ /* ── Hover / Focus / Active ─────────────────── */
60
+ --hover-bg: rgba(255, 255, 255, 0.06);
61
+ --focus-bg: rgba(255, 255, 255, 0.08);
62
+ --peek-active-bg: rgba(255, 255, 255, 0.12);
63
+ --current-day-hover-opacity: 0.85;
64
+ --export-hover-opacity: 0.7;
65
+
66
+ /* ── Entry ───────────────────────────────────── */
67
+ --entry-background-color: rgba(255, 255, 255, 0.06);
68
+ --entry-color: var(--primary-color);
69
+ --entry-highlight-color: rgba(129, 140, 248, 0.1);
70
+ --entry-focus-color: var(--primary-color);
71
+
72
+ /* ── Header ──────────────────────────────────── */
73
+ --context-bg: rgba(255, 255, 255, 0.06);
74
+ --active-indicator-bg: rgba(255, 255, 255, 0.1);
75
+
76
+ /* ── Month ───────────────────────────────────── */
77
+ --indicator-backdrop-filter: blur(10px);
78
+
79
+ /* ── Week ────────────────────────────────────── */
80
+ --multi-day-separator: 2px solid rgba(255, 255, 255, 0.1);
81
+
82
+ /* ── Year ────────────────────────────────────── */
83
+ --year-month-label-hover-color: var(--primary-color);
84
+ --year-cw-color: rgba(255, 255, 255, 0.3);
85
+ --cw-hover-color: var(--primary-color);
86
+ --cw-hover-bg: rgba(255, 255, 255, 0.06);
87
+ --current-day-bg: var(--primary-color);
88
+ --current-day-color: #1a1b2e;
89
+ --current-day-font-weight: 600;
90
+ --current-dot-bg: #1a1b2e;
91
+ --year-heatmap-4-text: #1a1b2e;
92
+ --year-heatmap-1: rgba(129, 140, 248, 0.12);
93
+ --year-heatmap-2: rgba(129, 140, 248, 0.25);
94
+ --year-heatmap-3: rgba(129, 140, 248, 0.4);
95
+ --year-heatmap-4: rgba(129, 140, 248, 0.6);
96
+ --year-dot-color: var(--primary-color);
97
+
98
+ /* ── Float Text ──────────────────────────────── */
99
+ --float-text-bg: #252640;
100
+
101
+ /* ── Hour indicator ──────────────────────────── */
102
+ --hour-indicator-color: rgba(255, 255, 255, 0.35);
103
+
104
+ /* ── Month view ──────────────────────────────── */
105
+ --entry-month-text-color: rgba(255, 255, 255, 0.7);
106
+
107
+ /* ── Menu ────────────────────────────────────── */
108
+ --menu-transform-origin: scale(0.96);
109
+ --menu-transform-active: scale(1);
110
+ }
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Kalendus — Soft Theme
3
+ *
4
+ * Pastel palette, generous radii, gentle shadows and transitions.
5
+ * Warm and approachable.
6
+ *
7
+ * Usage:
8
+ * import '@jpahd/kalendus/themes/soft.css';
9
+ */
10
+
11
+ lms-calendar {
12
+ /* ── Colors ─────────────────────────────────── */
13
+ --background-color: #fefcfb;
14
+ --primary-color: #7c6beb;
15
+ --separator-light: rgba(124, 107, 235, 0.1);
16
+ --separator-mid: rgba(124, 107, 235, 0.25);
17
+ --separator-dark: #4a4458;
18
+
19
+ /* ── Typography ─────────────────────────────── */
20
+ --system-ui: 'Nunito', 'Segoe UI', system-ui, sans-serif;
21
+ --monospace-ui: 'Fira Code', 'Cascadia Code', monospace;
22
+ --header-text-color: #8b7faa;
23
+ --indicator-color: var(--primary-color);
24
+ --indicator-font-weight: 600;
25
+ --day-label-font-weight: 500;
26
+ --day-label-number-font-weight: 600;
27
+ --menu-item-font-weight: 500;
28
+ --menu-title-font-weight: 600;
29
+ --entry-title-weight: 500;
30
+ --entry-time-opacity: 0.7;
31
+ --title-column-weight: 500;
32
+ --month-label-font-weight: 600;
33
+ --year-weekday-font-weight: 500;
34
+
35
+ /* ── Border Radius ──────────────────────────── */
36
+ --border-radius-sm: 10px;
37
+ --border-radius-md: 14px;
38
+ --border-radius-lg: 20px;
39
+ --entry-border-radius: 8px;
40
+ --month-indicator-border-radius: 1.25em;
41
+ --year-day-cell-border-radius: 50%;
42
+ --float-text-border-radius: 8px;
43
+
44
+ /* ── Shadows ─────────────────────────────────── */
45
+ --shadow-sm: 0 1px 3px rgba(124, 107, 235, 0.08);
46
+ --shadow-md: 0 2px 6px rgba(124, 107, 235, 0.1);
47
+ --shadow-lg: 0 4px 16px rgba(124, 107, 235, 0.12);
48
+ --shadow-hv: 0 6px 20px rgba(124, 107, 235, 0.1);
49
+ --active-indicator-shadow: 0 1px 4px rgba(124, 107, 235, 0.12);
50
+ --float-text-shadow: 0 2px 8px rgba(124, 107, 235, 0.12);
51
+
52
+ /* ── Transitions ────────────────────────────── */
53
+ --transition-speed: 0.25s;
54
+
55
+ /* ── Hover / Focus / Active ─────────────────── */
56
+ --hover-bg: rgba(124, 107, 235, 0.06);
57
+ --focus-bg: rgba(124, 107, 235, 0.08);
58
+ --peek-active-bg: rgba(124, 107, 235, 0.12);
59
+ --current-day-hover-opacity: 0.9;
60
+ --export-hover-opacity: 0.75;
61
+
62
+ /* ── Entry ───────────────────────────────────── */
63
+ --entry-background-color: var(--background-color);
64
+ --entry-color: var(--primary-color);
65
+ --entry-highlight-color: rgba(124, 107, 235, 0.06);
66
+
67
+ /* ── Header ──────────────────────────────────── */
68
+ --context-bg: rgba(124, 107, 235, 0.06);
69
+ --active-indicator-bg: var(--background-color);
70
+
71
+ /* ── Month ───────────────────────────────────── */
72
+ --indicator-backdrop-filter: blur(12px);
73
+
74
+ /* ── Week ────────────────────────────────────── */
75
+ --multi-day-separator: 2px solid rgba(255, 255, 255, 0.5);
76
+
77
+ /* ── Year ────────────────────────────────────── */
78
+ --year-month-label-hover-color: var(--primary-color);
79
+ --cw-hover-color: var(--primary-color);
80
+ --cw-hover-bg: rgba(124, 107, 235, 0.06);
81
+ --current-day-bg: var(--primary-color);
82
+ --current-day-color: #fff;
83
+ --current-day-font-weight: 600;
84
+ --current-dot-bg: rgba(255, 255, 255, 0.9);
85
+ --year-heatmap-4-text: #fff;
86
+ --year-heatmap-1: rgba(124, 107, 235, 0.1);
87
+ --year-heatmap-2: rgba(124, 107, 235, 0.25);
88
+ --year-heatmap-3: rgba(124, 107, 235, 0.4);
89
+ --year-heatmap-4: rgba(124, 107, 235, 0.6);
90
+
91
+ /* ── Float Text ──────────────────────────────── */
92
+ --float-text-bg: rgba(254, 252, 251, 0.97);
93
+
94
+ /* ── Menu ────────────────────────────────────── */
95
+ --menu-transform-origin: scale(0.96);
96
+ --menu-transform-active: scale(1);
97
+ }
package/package.json CHANGED
@@ -1,125 +1,133 @@
1
1
  {
2
- "name": "@jpahd/kalendus",
3
- "version": "0.1.7",
4
- "description": "A sophisticated, responsive calendar web component built with Lit 3.x and TypeScript.",
5
- "keywords": [
6
- "calendar",
7
- "calendar-component",
8
- "lit",
9
- "lit-element",
10
- "typescript",
11
- "web-components"
12
- ],
13
- "homepage": "https://github.com/pders01/kalendus",
14
- "bugs": {
15
- "url": "https://github.com/pders01/kalendus/issues"
2
+ "name": "@jpahd/kalendus",
3
+ "version": "0.7.0",
4
+ "description": "A sophisticated, responsive calendar web component built with Lit 3.x and TypeScript.",
5
+ "keywords": [
6
+ "calendar",
7
+ "calendar-component",
8
+ "lit",
9
+ "lit-element",
10
+ "typescript",
11
+ "web-components"
12
+ ],
13
+ "homepage": "https://github.com/pders01/kalendus",
14
+ "bugs": {
15
+ "url": "https://github.com/pders01/kalendus/issues"
16
+ },
17
+ "license": "MIT",
18
+ "author": "Paul Derscheid <paul.derscheid@lmscloud.de>",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/pders01/kalendus.git"
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "custom-elements.json"
26
+ ],
27
+ "type": "module",
28
+ "sideEffects": true,
29
+ "main": "./dist/kalendus.js",
30
+ "module": "./dist/kalendus.js",
31
+ "types": "./dist/lms-calendar.d.ts",
32
+ "exports": {
33
+ ".": {
34
+ "types": "./dist/lms-calendar.d.ts",
35
+ "import": "./dist/kalendus.js",
36
+ "default": "./dist/kalendus.js"
16
37
  },
17
- "license": "MIT",
18
- "author": "Paul Derscheid <paul.derscheid@lmscloud.de>",
19
- "repository": {
20
- "type": "git",
21
- "url": "https://github.com/pders01/kalendus.git"
22
- },
23
- "files": [
24
- "dist",
25
- "custom-elements.json"
26
- ],
27
- "type": "module",
28
- "sideEffects": true,
29
- "main": "./dist/kalendus.js",
30
- "module": "./dist/kalendus.js",
31
- "types": "./dist/lms-calendar.d.ts",
32
- "exports": {
33
- ".": {
34
- "types": "./dist/lms-calendar.d.ts",
35
- "import": "./dist/kalendus.js",
36
- "default": "./dist/kalendus.js"
37
- },
38
- "./package.json": "./package.json"
39
- },
40
- "publishConfig": {
41
- "access": "public"
42
- },
43
- "scripts": {
44
- "build": "vite build && tsc --project tsconfig.build.json",
45
- "build:iife": "vite build --config vite.config.iife.ts",
46
- "build:all": "pnpm run build && pnpm run build:iife",
47
- "build:watch": "vite build --watch",
48
- "clean": "rimraf dist",
49
- "lint": "npm run lint:lit-analyzer && npm run lint:oxlint",
50
- "lint:oxlint": "oxlint src/",
51
- "lint:lit-analyzer": "lit-analyzer",
52
- "format": "oxfmt --write 'src/**/*.{ts,js}' '*.json' '*.md' '.storybook/**/*.ts'",
53
- "format:check": "oxfmt --check 'src/**/*.{ts,js}' '*.json' '*.md' '.storybook/**/*.ts'",
54
- "analyze": "cem analyze --litelement --globs \"src/**/*.ts\" --exclude \"src/**/*.stories.ts\" --exclude \"src/lib/debug/**\"",
55
- "analyze:watch": "cem analyze --litelement --globs \"src/**/*.ts\" --exclude \"src/**/*.stories.ts\" --exclude \"src/lib/debug/**\" --watch",
56
- "checksize": "cat ./dist/kalendus.js | gzip -9 | wc -c",
57
- "prepublishOnly": "npm run clean && npm run build && npm run test && npm run lint && npm run analyze",
58
- "test": "NODE_OPTIONS=--experimental-vm-modules mocha",
59
- "test:watch": "NODE_OPTIONS=--experimental-vm-modules mocha --watch",
60
- "test:components": "web-test-runner",
61
- "test:components:watch": "web-test-runner --watch",
62
- "test:components:coverage": "web-test-runner --coverage",
63
- "storybook": "storybook dev -p 6006",
64
- "build-storybook": "storybook build",
65
- "test-storybook": "vitest --project=storybook --run",
66
- "test:e2e": "playwright test",
67
- "i18n:extract": "lit-localize extract",
68
- "i18n:build": "lit-localize build",
69
- "demo:gif": "node scripts/record-demo-gif.mjs"
70
- },
71
- "dependencies": {
72
- "@lit-labs/observers": "^2.1.0"
73
- },
74
- "devDependencies": {
75
- "@11ty/eleventy": "^3.1.2",
76
- "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2",
77
- "@custom-elements-manifest/analyzer": "^0.11.0",
78
- "@lit/localize": "^0.12.2",
79
- "@lit/localize-tools": "^0.8.1",
80
- "@open-wc/testing": "^4.0.0",
81
- "@remcovaes/web-test-runner-vite-plugin": "^1.4.0",
82
- "@storybook/addon-docs": "^10.2.13",
83
- "@storybook/addon-vitest": "^10.2.13",
84
- "@storybook/web-components": "10.2.13",
85
- "@storybook/web-components-vite": "^10.2.13",
86
- "@types/chai": "^5.2.3",
87
- "@types/luxon": "^3.7.1",
88
- "@types/mocha": "^10.0.10",
89
- "@vitest/browser-playwright": "^4.0.18",
90
- "@vitest/coverage-v8": "^4.0.18",
91
- "@web/dev-server": "^0.4.6",
92
- "@web/dev-server-esbuild": "^1.0.5",
93
- "@web/dev-server-legacy": "^2.1.1",
94
- "@web/rollup-plugin-html": "^3.1.0",
95
- "@web/test-runner": "^0.20.2",
96
- "@web/test-runner-playwright": "^0.11.1",
97
- "@webcomponents/webcomponentsjs": "^2.8.0",
98
- "chai": "^6.2.2",
99
- "lit": "^3.3.2",
100
- "lit-analyzer": "^2.0.3",
101
- "luxon": "^3.7.2",
102
- "mocha": "^11.7.5",
103
- "oxfmt": "0.35.0",
104
- "oxlint": "1.50.0",
105
- "playwright": "^1.58.2",
106
- "remeda": "^2.33.6",
107
- "rimraf": "^6.1.3",
108
- "rolldown": "1.0.0-rc.6",
109
- "storybook": "^10.2.13",
110
- "ts-ics": "^2.4.1",
111
- "ts-node": "^10.9.2",
112
- "ts-pattern": "^5.9.0",
113
- "tslib": "^2.8.1",
114
- "typescript": "^5.9.3",
115
- "vite": "^7.3.1",
116
- "vite-plugin-minify": "^2.1.0",
117
- "vite-plugin-static-copy": "^3.2.0",
118
- "vitest": "^4.0.18"
119
- },
120
- "peerDependencies": {
121
- "lit": "^3.0.0",
122
- "luxon": "^3.0.0"
123
- },
124
- "customElements": "custom-elements.json"
125
- }
38
+ "./themes/default.css": "./dist/themes/default.css",
39
+ "./themes/ink.css": "./dist/themes/ink.css",
40
+ "./themes/soft.css": "./dist/themes/soft.css",
41
+ "./themes/brutalist.css": "./dist/themes/brutalist.css",
42
+ "./themes/midnight.css": "./dist/themes/midnight.css",
43
+ "./package.json": "./package.json"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public"
47
+ },
48
+ "dependencies": {
49
+ "@lit-labs/observers": "^2.1.0"
50
+ },
51
+ "devDependencies": {
52
+ "@11ty/eleventy": "^3.1.2",
53
+ "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2",
54
+ "@custom-elements-manifest/analyzer": "^0.11.0",
55
+ "@lit/localize": "^0.12.2",
56
+ "@lit/localize-tools": "^0.8.1",
57
+ "@open-wc/testing": "^4.0.0",
58
+ "@remcovaes/web-test-runner-vite-plugin": "^1.4.0",
59
+ "@storybook/addon-docs": "^10.2.13",
60
+ "@storybook/addon-vitest": "^10.2.13",
61
+ "@storybook/web-components": "10.2.13",
62
+ "@storybook/web-components-vite": "^10.2.13",
63
+ "@types/chai": "^5.2.3",
64
+ "@types/luxon": "^3.7.1",
65
+ "@types/mocha": "^10.0.10",
66
+ "@vitest/browser-playwright": "^4.0.18",
67
+ "@vitest/coverage-v8": "^4.0.18",
68
+ "@web/dev-server": "^0.4.6",
69
+ "@web/dev-server-esbuild": "^1.0.5",
70
+ "@web/dev-server-legacy": "^2.1.1",
71
+ "@web/rollup-plugin-html": "^3.1.0",
72
+ "@web/test-runner": "^0.20.2",
73
+ "@web/test-runner-playwright": "^0.11.1",
74
+ "@webcomponents/webcomponentsjs": "^2.8.0",
75
+ "chai": "^6.2.2",
76
+ "lit": "^3.3.2",
77
+ "lit-analyzer": "^2.0.3",
78
+ "luxon": "^3.7.2",
79
+ "mocha": "^11.7.5",
80
+ "oxfmt": "0.35.0",
81
+ "oxlint": "1.50.0",
82
+ "playwright": "^1.58.2",
83
+ "remeda": "^2.33.6",
84
+ "rimraf": "^6.1.3",
85
+ "rolldown": "1.0.0-rc.6",
86
+ "storybook": "^10.2.13",
87
+ "ts-ics": "^2.4.1",
88
+ "ts-node": "^10.9.2",
89
+ "ts-pattern": "^5.9.0",
90
+ "tslib": "^2.8.1",
91
+ "typescript": "^5.9.3",
92
+ "vite": "^7.3.1",
93
+ "vite-plugin-minify": "^2.1.0",
94
+ "vite-plugin-static-copy": "^3.2.0",
95
+ "vitest": "^4.0.18"
96
+ },
97
+ "peerDependencies": {
98
+ "lit": "^3.0.0",
99
+ "luxon": "^3.0.0"
100
+ },
101
+ "customElements": "custom-elements.json",
102
+ "scripts": {
103
+ "build": "vite build && tsc --project tsconfig.build.json",
104
+ "build:iife": "vite build --config vite.config.iife.ts",
105
+ "build:all": "pnpm run build && pnpm run build:iife",
106
+ "build:watch": "vite build --watch",
107
+ "clean": "rimraf dist",
108
+ "lint": "npm run lint:lit-analyzer && npm run lint:oxlint",
109
+ "lint:oxlint": "oxlint src/",
110
+ "lint:lit-analyzer": "lit-analyzer",
111
+ "format": "oxfmt --write 'src/**/*.{ts,js}' '*.json' '*.md' '.storybook/**/*.ts'",
112
+ "format:check": "oxfmt --check 'src/**/*.{ts,js}' '*.json' '*.md' '.storybook/**/*.ts'",
113
+ "analyze": "cem analyze --litelement --globs \"src/**/*.ts\" --exclude \"src/**/*.stories.ts\" --exclude \"src/lib/debug/**\"",
114
+ "analyze:watch": "cem analyze --litelement --globs \"src/**/*.ts\" --exclude \"src/**/*.stories.ts\" --exclude \"src/lib/debug/**\" --watch",
115
+ "checksize": "cat ./dist/kalendus.js | gzip -9 | wc -c",
116
+ "test": "NODE_OPTIONS=--experimental-vm-modules mocha",
117
+ "test:watch": "NODE_OPTIONS=--experimental-vm-modules mocha --watch",
118
+ "test:components": "web-test-runner",
119
+ "test:components:watch": "web-test-runner --watch",
120
+ "test:components:coverage": "web-test-runner --coverage",
121
+ "storybook": "storybook dev -p 6006",
122
+ "build-storybook": "storybook build",
123
+ "test-storybook": "vitest --project=storybook --run",
124
+ "test:e2e": "playwright test",
125
+ "i18n:extract": "lit-localize extract",
126
+ "i18n:build": "lit-localize build",
127
+ "demo:gif": "node scripts/record-demo-gif.mjs",
128
+ "docs:sync": "node scripts/sync-docs.mjs",
129
+ "docs:sync:check": "node scripts/sync-docs.mjs --check",
130
+ "docs:build": "node scripts/sync-docs.mjs && eleventy",
131
+ "docs:serve": "eleventy --serve"
132
+ }
133
+ }