@medquantis/design-system 0.0.0-stage → 1.0.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 (56) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +145 -2
  3. package/brand/LICENSE +8 -0
  4. package/brand/favicon/apple-touch-icon.png +0 -0
  5. package/brand/favicon/favicon.ico +0 -0
  6. package/brand/favicon/favicon.svg +1 -0
  7. package/brand/favicon/icon-192.png +0 -0
  8. package/brand/favicon/icon-512.png +0 -0
  9. package/brand/monogram-small.svg +1 -0
  10. package/brand/monogram-square.svg +1 -0
  11. package/brand/monogram.svg +1 -0
  12. package/brand/wordmark-on-light-print.svg +1 -0
  13. package/brand/wordmark-on-light.svg +1 -0
  14. package/brand/wordmark-on-navy-print.svg +1 -0
  15. package/brand/wordmark-on-navy.svg +1 -0
  16. package/css/app.css +57 -0
  17. package/css/base.css +124 -0
  18. package/css/components.css +469 -0
  19. package/css/print.css +59 -0
  20. package/css/slide.css +110 -0
  21. package/dist/kit-contract.css +73 -0
  22. package/dist/llms-full.txt +942 -0
  23. package/dist/llms.txt +39 -0
  24. package/dist/tailwind.css +116 -0
  25. package/dist/tokens.css +179 -0
  26. package/dist/tokens.json +1802 -0
  27. package/fonts/fonts.css +76 -0
  28. package/fonts/geist-mono/OFL.txt +93 -0
  29. package/fonts/geist-mono/geist-mono-latin-ext-wght-normal.woff2 +0 -0
  30. package/fonts/geist-mono/geist-mono-latin-wght-normal.woff2 +0 -0
  31. package/fonts/newsreader/OFL.txt +93 -0
  32. package/fonts/newsreader/newsreader-latin-ext-wght-italic.woff2 +0 -0
  33. package/fonts/newsreader/newsreader-latin-ext-wght-normal.woff2 +0 -0
  34. package/fonts/newsreader/newsreader-latin-wght-italic.woff2 +0 -0
  35. package/fonts/newsreader/newsreader-latin-wght-normal.woff2 +0 -0
  36. package/fonts/outfit/OFL.txt +93 -0
  37. package/fonts/outfit/outfit-latin-ext-wght-normal.woff2 +0 -0
  38. package/fonts/outfit/outfit-latin-wght-normal.woff2 +0 -0
  39. package/guidelines/LICENSE +8 -0
  40. package/guidelines/README.md +310 -0
  41. package/guidelines/accessibility.md +62 -0
  42. package/guidelines/brand.md +75 -0
  43. package/guidelines/charts.md +84 -0
  44. package/guidelines/colour.md +102 -0
  45. package/guidelines/data-patterns.md +60 -0
  46. package/guidelines/layout.md +110 -0
  47. package/guidelines/principles.md +28 -0
  48. package/guidelines/specialising.md +40 -0
  49. package/guidelines/typography.md +76 -0
  50. package/guidelines/voice.md +42 -0
  51. package/guidelines/writing.md +40 -0
  52. package/icons/LICENSE +43 -0
  53. package/icons/lucide.min.js +12 -0
  54. package/icons/manifest.json +7 -0
  55. package/package.json +67 -4
  56. package/stylelint.config.mjs +52 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "package": "lucide",
3
+ "version": "1.55.0",
4
+ "file": "lucide.min.js",
5
+ "sha256": "48b3b5d82216bbe1d0c49dea480ed38fca8420c275c98f20505e3f9556f6b1d1",
6
+ "licence": "ISC"
7
+ }
package/package.json CHANGED
@@ -1,6 +1,69 @@
1
1
  {
2
2
  "name": "@medquantis/design-system",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "MedQuantis design tokens, shared CSS, assets, guidelines and Claude skill.",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/MedQuantis/design-system.git"
9
+ },
10
+ "homepage": "https://github.com/MedQuantis/design-system#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/MedQuantis/design-system/issues"
13
+ },
14
+ "files": [
15
+ "dist/tokens.css",
16
+ "dist/tokens.json",
17
+ "dist/tailwind.css",
18
+ "dist/kit-contract.css",
19
+ "dist/llms.txt",
20
+ "dist/llms-full.txt",
21
+ "css/",
22
+ "fonts/",
23
+ "icons/",
24
+ "brand/",
25
+ "guidelines/",
26
+ "stylelint.config.mjs"
27
+ ],
28
+ "exports": {
29
+ "./tokens.css": "./dist/tokens.css",
30
+ "./tokens.json": "./dist/tokens.json",
31
+ "./tailwind.css": "./dist/tailwind.css",
32
+ "./kit-contract.css": "./dist/kit-contract.css",
33
+ "./css/*": "./css/*",
34
+ "./fonts.css": "./fonts/fonts.css",
35
+ "./brand/*": "./brand/*",
36
+ "./stylelint": "./stylelint.config.mjs",
37
+ "./package.json": "./package.json"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "license": "SEE LICENSE IN LICENSE",
43
+ "engines": {
44
+ "node": ">=24"
45
+ },
46
+ "devEngines": {
47
+ "runtime": {
48
+ "name": "node",
49
+ "version": "24.18.0",
50
+ "onFail": "error"
51
+ }
52
+ },
53
+ "scripts": {
54
+ "test": "node --test \"tests/unit/**/*.test.mjs\""
55
+ },
56
+ "devDependencies": {
57
+ "@axe-core/playwright": "4.13.0",
58
+ "@fontsource-variable/geist-mono": "5.3.0",
59
+ "@fontsource-variable/newsreader": "5.3.0",
60
+ "@fontsource-variable/outfit": "5.3.0",
61
+ "@playwright/test": "1.64.0",
62
+ "lucide": "1.55.0",
63
+ "postcss": "8.5.29",
64
+ "style-dictionary": "5.6.0",
65
+ "stylelint": "17.16.0",
66
+ "stylelint-declaration-strict-value": "1.12.1",
67
+ "stylelint-value-no-unknown-custom-properties": "6.1.1"
68
+ }
69
+ }
@@ -0,0 +1,52 @@
1
+ // MedQuantis stylelint config, exported as @medquantis/design-system/stylelint for consumers.
2
+ // Colours, fonts and shadows come from custom properties only; radius comes from the three
3
+ // --mq-radius tokens only, so no stylesheet can draw a pill (owner ruling 3); spacing is a
4
+ // custom property, 0 or auto. Custom properties must be defined, here or in dist/tokens.css, and a
5
+ // consumer's --app-*, --site-*, --viz-* or --deck-* property may only point at tokens.
6
+ import { fileURLToPath } from "node:url";
7
+
8
+ const tokensCss = fileURLToPath(new URL("./dist/tokens.css", import.meta.url));
9
+
10
+ const COLOUR_FUNCTIONS = "/^(rgba?|hsla?|hwb|lab|lch|oklab|oklch|color|color-mix|device-cmyk|light-dark)$/i";
11
+ const KEYWORDS = ["inherit", "initial", "unset", "revert", "revert-layer"];
12
+
13
+ const RADIUS_PROPERTY = "/^border(-(top|bottom|start|end)-(left|right|start|end))?-radius$/";
14
+ const RADIUS_VALUE = "/^(var\\(--mq-radius-(small|medium|overlay)\\)|0)( (var\\(--mq-radius-(small|medium|overlay)\\)|0)){0,3}$/";
15
+ const SPACING_PROPERTY = "/^((margin|padding)(-(top|right|bottom|left|block|inline)(-(start|end))?)?|(row-|column-)?gap)$/";
16
+ const SPACING_VALUE = "/^((var\\(--[a-z0-9-]+\\)|0|auto)( |$))+$/";
17
+
18
+ // A consumer's own custom properties (ADR-0002 rule 3) hold token references only: one or more
19
+ // var() of an --mq-* token or another local property, or a calc() that scales them by a plain
20
+ // number. A literal (12px, #0a2463, Outfit) or a literal fallback is rejected.
21
+ const LOCAL_PROPERTY = "/^--(app|site|viz|deck)-/";
22
+ const LOCAL_REF = "var\\(--(mq|app|site|viz|deck)-[a-z0-9-]+\\)";
23
+ const LOCAL_CALC = `calc\\((\\s*(${LOCAL_REF}|\\d+(\\.\\d+)?|[-+*/()]))+\\s*\\)`;
24
+ const LOCAL_VALUE = `/^(${LOCAL_REF}|${LOCAL_CALC})([ ,]+(${LOCAL_REF}|${LOCAL_CALC}))*$/`;
25
+
26
+ export default {
27
+ plugins: ["stylelint-declaration-strict-value", "stylelint-value-no-unknown-custom-properties"],
28
+ ignoreFiles: ["**/tokens/**", "**/dist/**"],
29
+ rules: {
30
+ "color-no-hex": true,
31
+ "color-named": "never",
32
+ "function-disallowed-list": [COLOUR_FUNCTIONS],
33
+ "declaration-no-important": true,
34
+ "scale-unlimited/declaration-strict-value": [
35
+ ["/color$/", "fill", "stroke", "font-family", "font-size", "font-weight", "box-shadow"],
36
+ {
37
+ ignoreFunctions: false,
38
+ ignoreValues: {
39
+ "": KEYWORDS,
40
+ "/color$/": ["transparent", "currentcolor", "currentColor", ...KEYWORDS],
41
+ fill: ["none", "currentColor", ...KEYWORDS],
42
+ stroke: ["none", "currentColor", ...KEYWORDS],
43
+ "box-shadow": ["none", ...KEYWORDS],
44
+ },
45
+ },
46
+ ],
47
+ "declaration-property-value-allowed-list": [
48
+ { [RADIUS_PROPERTY]: [RADIUS_VALUE], [SPACING_PROPERTY]: [SPACING_VALUE], [LOCAL_PROPERTY]: [LOCAL_VALUE] },
49
+ ],
50
+ "csstools/value-no-unknown-custom-properties": [true, { importFrom: [tokensCss] }],
51
+ },
52
+ };