@dataengineeringformachinelearning/viking-ui 1.0.2 → 3.0.0-alpha.2

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 (129) hide show
  1. package/README.md +180 -41
  2. package/dist/deml-components.css +1122 -0
  3. package/dist/design-tokens.css +688 -0
  4. package/dist/elements/button/viking-button.d.ts +14 -0
  5. package/dist/elements/card/viking-card.d.ts +8 -0
  6. package/dist/elements/core/dom.d.ts +4 -0
  7. package/dist/elements/core/styles.d.ts +2 -0
  8. package/dist/elements/modal/viking-modal.d.ts +15 -0
  9. package/dist/fonts/inter/InterVariable-Italic.woff2 +0 -0
  10. package/dist/fonts/inter/InterVariable.woff2 +0 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +4051 -0
  13. package/dist/lib/core/brand-icons.d.ts +29 -0
  14. package/dist/lib/core/icons.d.ts +132 -0
  15. package/dist/lib/core/integration-brand-icons.d.ts +18 -0
  16. package/dist/lib/core/lucide-paths.generated.d.ts +90 -0
  17. package/dist/lib/site-drakkar/site-drakkar.config.d.ts +50 -0
  18. package/dist/lib/site-drakkar/suite-search-items.d.ts +17 -0
  19. package/dist/viking-components.css +1837 -0
  20. package/dist/viking-tokens.json +318 -0
  21. package/dist/viking-ui-elements.js +1750 -0
  22. package/dist/viking-ui.css +1 -0
  23. package/dist/web/badge/viking-badge-wc.d.ts +28 -0
  24. package/dist/web/button/viking-button-wc.d.ts +28 -0
  25. package/dist/web/callout/viking-callout-wc.d.ts +27 -0
  26. package/dist/web/card/viking-card-wc.d.ts +29 -0
  27. package/dist/web/core/base.d.ts +12 -0
  28. package/dist/web/core/dom.d.ts +11 -0
  29. package/dist/web/core/icons-inline.d.ts +7 -0
  30. package/dist/web/core/styles.d.ts +12 -0
  31. package/dist/web/core/types.d.ts +10 -0
  32. package/dist/web/field/viking-field-wc.d.ts +32 -0
  33. package/dist/web/index.d.ts +15 -0
  34. package/dist/web/input/viking-input-wc.d.ts +32 -0
  35. package/dist/web/modal/viking-modal-wc.d.ts +50 -0
  36. package/dist/web/search-palette/viking-search-palette-wc.d.ts +64 -0
  37. package/dist/web/select/viking-select-wc.d.ts +48 -0
  38. package/dist/web/suite-header/viking-suite-header-wc.d.ts +36 -0
  39. package/dist/web/suite-search-palette/viking-suite-search-palette-wc.d.ts +39 -0
  40. package/dist/web/theme-toggle/viking-theme-toggle-wc.d.ts +19 -0
  41. package/dist/web/types.d.ts +40 -0
  42. package/dist/web-components/index.d.ts +1 -0
  43. package/dist/web-components.js +1750 -0
  44. package/dist/widget.js +1182 -0
  45. package/package.json +89 -30
  46. package/src/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
  47. package/src/assets/fonts/inter/InterVariable.woff2 +0 -0
  48. package/src/elements/button/viking-button.ts +201 -0
  49. package/src/elements/card/viking-card.ts +60 -0
  50. package/src/elements/core/dom.ts +33 -0
  51. package/src/elements/core/styles.ts +28 -0
  52. package/src/elements/modal/viking-modal.ts +154 -0
  53. package/src/index.ts +1 -0
  54. package/src/lib/core/brand-icons.ts +62 -0
  55. package/src/lib/core/icons.ts +206 -0
  56. package/src/lib/core/integration-brand-icons.ts +77 -0
  57. package/src/lib/core/lucide-paths.generated.ts +130 -0
  58. package/src/lib/site-drakkar/site-drakkar.config.ts +295 -0
  59. package/src/lib/site-drakkar/suite-search-items.ts +246 -0
  60. package/src/styles/_buttons.scss +301 -0
  61. package/src/styles/_component-primitives.scss +183 -0
  62. package/src/styles/_drakkar-buttons.scss +85 -0
  63. package/src/styles/_fonts.scss +22 -0
  64. package/src/styles/_forms.scss +66 -0
  65. package/src/styles/_input.scss +106 -0
  66. package/src/styles/_layout-enforcement.scss +166 -0
  67. package/src/styles/_layout-rhythm.scss +158 -0
  68. package/src/styles/_legacy-aliases.scss +212 -0
  69. package/src/styles/_series-colors.scss +24 -0
  70. package/src/styles/_static-primitives.scss +857 -0
  71. package/src/styles/_typography.scss +87 -0
  72. package/src/styles/_variables.scss +527 -0
  73. package/src/styles/components/a11y.scss +90 -0
  74. package/src/styles/components/badges.scss +102 -0
  75. package/src/styles/components/extracted-utilities.scss +459 -0
  76. package/src/styles/components/footer.scss +155 -0
  77. package/src/styles/components/icon-heading.scss +47 -0
  78. package/src/styles/components/icon-inline.scss +78 -0
  79. package/src/styles/components/layout.scss +59 -0
  80. package/src/styles/components/utilities.scss +131 -0
  81. package/src/styles/components/viking-inspired.scss +204 -0
  82. package/src/styles/components/whitepaper-cta.scss +130 -0
  83. package/src/styles/components-bundle.scss +9 -0
  84. package/src/styles/components.scss +175 -0
  85. package/src/styles/deml-components.scss +10 -0
  86. package/src/styles/index.scss +8 -0
  87. package/src/styles/layout-shell.scss +39 -11
  88. package/src/styles/page-shell.scss +663 -33
  89. package/src/styles/static-navbar.scss +862 -146
  90. package/src/styles/surfaces/backend.scss +142 -0
  91. package/src/styles/surfaces/docs-global.scss +73 -0
  92. package/src/styles/surfaces/docs-shell.scss +412 -0
  93. package/src/styles/surfaces/docs-showcase.scss +1051 -0
  94. package/src/styles/surfaces/marketing-cta.scss +62 -0
  95. package/src/styles/surfaces/marketing-docs-bento.scss +67 -0
  96. package/src/styles/surfaces/marketing-global.scss +748 -0
  97. package/src/styles/surfaces/marketing-landing.scss +1260 -0
  98. package/src/styles/surfaces/marketing-publication.scss +535 -0
  99. package/src/styles/surfaces/marketing-theme.scss +14 -0
  100. package/src/styles/surfaces/swagger-ui.scss +921 -0
  101. package/src/styles/tokens-export.scss +18 -0
  102. package/src/styles/tokens.scss +5 -0
  103. package/src/styles/viking-ui-bundle.scss +20 -2
  104. package/src/styles/viking-ui.scss +213 -51
  105. package/src/tokens/viking-tokens.json +318 -0
  106. package/src/web/badge/viking-badge-wc.ts +116 -0
  107. package/src/web/button/viking-button-wc.ts +165 -0
  108. package/src/web/callout/viking-callout-wc.ts +105 -0
  109. package/src/web/card/viking-card-wc.ts +66 -0
  110. package/src/web/core/base.ts +56 -0
  111. package/src/web/core/dom.ts +53 -0
  112. package/src/web/core/icons-inline.ts +44 -0
  113. package/src/web/core/styles.ts +1138 -0
  114. package/src/web/core/types.ts +19 -0
  115. package/src/web/field/viking-field-wc.ts +154 -0
  116. package/src/web/index.ts +73 -0
  117. package/src/web/input/viking-input-wc.ts +211 -0
  118. package/src/web/modal/viking-modal-wc.ts +187 -0
  119. package/src/web/search-palette/viking-search-palette-wc.ts +494 -0
  120. package/src/web/select/viking-select-wc.ts +218 -0
  121. package/src/web/suite-header/viking-suite-header-wc.ts +714 -0
  122. package/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +234 -0
  123. package/src/web/theme-toggle/viking-theme-toggle-wc.ts +139 -0
  124. package/src/web/types.ts +37 -0
  125. package/src/web-components/index.ts +1 -0
  126. package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +0 -6114
  127. package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +0 -1
  128. package/types/dataengineeringformachinelearning-viking-ui.d.ts +0 -1397
  129. package/viking.manifest.json +0 -238
package/README.md CHANGED
@@ -1,69 +1,208 @@
1
- # @dataengineeringformachinelearning/viking-ui
1
+ # Viking-UI
2
2
 
3
- **Viking-UI** is DEML's clinical Angular design system lab-coat aesthetics on THEME.md tokens.
3
+ Universal DEML component library for Astro, Angular, and Django.
4
4
 
5
- - **8px grid** spacing (`--space-1` … `--space-8`)
6
- - **16px** main content / **14px** UI chrome typography
7
- - **Crayola blue** (`#2176ff`) primary, **blue-bell** (`#33a1fd`) accents
8
- - Zero-dependency components (`viking-*` selectors, `--viking-*` tokens)
9
- - WCAG 2.1 AA focus rings, axe-core tested templates
5
+ ## Architecture
10
6
 
11
- ## Install
7
+ - `src/styles/_variables.scss` defines the canonical `--viking-*` design tokens.
8
+ - `src/styles/components-bundle.scss` defines static CSS primitives shared by every app.
9
+ - `src/tokens/viking-tokens.json` exposes the same token contract for tooling.
10
+ - `src/elements/` contains framework-neutral Web Components with Shadow DOM style isolation.
11
+ - `dist/design-tokens.css`, `dist/viking-components.css`, `dist/deml-components.css`, `dist/viking-ui.css`, `dist/viking-tokens.json`, and `dist/viking-ui-elements.js` are the built artifacts.
12
+ - `dist/viking-ui.css` is the full app bundle. Load it once per surface; do not stack it with the split CSS artifacts.
13
+
14
+ ## Build
12
15
 
13
16
  ```bash
14
- npm install @dataengineeringformachinelearning/viking-ui
17
+ npm run build --prefix packages/viking-ui
18
+ npm run test:viking-ui:package
15
19
  ```
16
20
 
17
- Peer dependencies: `@angular/core` ^22, `@angular/common` ^22, `@angular/forms` ^22.
21
+ ## Versioning
18
22
 
19
- ## Usage
23
+ Viking-UI uses Changesets from the repository root:
20
24
 
21
- ```typescript
22
- import {
23
- VikingButton,
24
- VikingField,
25
- VikingInput,
26
- } from '@dataengineeringformachinelearning/viking-ui';
25
+ ```bash
26
+ npm run changeset
27
+ npm run version:viking-ui
27
28
  ```
28
29
 
29
- Load static CSS for non-Angular surfaces (marketing, Django templates):
30
+ See [docs/viking-ui-release.md](../../docs/viking-ui-release.md) for the full
31
+ release, visual regression, and propagation workflow.
32
+
33
+ ## Consumption
30
34
 
31
35
  ```html
32
- <link rel="stylesheet" href="/assets/design-tokens.css" />
33
36
  <link rel="stylesheet" href="/assets/viking-ui.css" />
37
+ <script type="module" src="/assets/viking-ui-elements.js"></script>
34
38
  ```
35
39
 
36
- ## Build
40
+ ```ts
41
+ import "@dataengineeringformachinelearning/viking-ui/elements.js";
42
+ import "@dataengineeringformachinelearning/viking-ui/viking-ui.css";
43
+ ```
37
44
 
38
- ```bash
39
- npm run build:viking-ui
40
- npm run build:viking-ui-css
41
- npm run serve:viking-ui-showcase
45
+ ## Use via CDN (jsDelivr)
46
+
47
+ The package artifacts are published in `dist/`, so you can load them directly from jsDelivr:
48
+
49
+ ### 1) CSS only
50
+
51
+ ```html
52
+ <link
53
+ rel="stylesheet"
54
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
55
+ />
42
56
  ```
43
57
 
44
- ## Version bump
58
+ ### 2) Web Components only
45
59
 
46
- Bump `package.json` in this directory before every publish (npm will not overwrite an existing version).
60
+ ```html
61
+ <script
62
+ type="module"
63
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
64
+ ></script>
65
+ ```
47
66
 
48
- ```bash
49
- cd frontend/projects/viking-ui
50
- npm version patch --no-git-tag-version # or minor / major
67
+ ### 3) CSS + Web Components together
68
+
69
+ ```html
70
+ <link
71
+ rel="stylesheet"
72
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
73
+ />
74
+ <script
75
+ type="module"
76
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
77
+ ></script>
51
78
  ```
52
79
 
53
- | Bump | When |
54
- | ----- | ---------------------------------------- |
55
- | patch | Bug fixes, token/CSS tweaks, a11y fixes |
56
- | minor | New components, additive APIs |
57
- | major | Breaking input/output or removed exports |
80
+ ### 4) Version pinning
58
81
 
59
- ## Publish
82
+ Use `@latest` for latest stable assets, or replace it with a concrete version for locked
83
+ builds.
60
84
 
61
- Requires membership in the npm org `dataengineeringformachinelearning` (scope `@dataengineeringformachinelearning`).
85
+ ```html
86
+ <!-- Latest -->
87
+ <link
88
+ rel="stylesheet"
89
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@3.0.0-alpha.2/dist/viking-ui.css"
90
+ />
91
+ <script
92
+ type="module"
93
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@3.0.0-alpha.2/dist/web-components.js"
94
+ ></script>
95
+ ```
96
+
97
+ ```html
98
+ <!-- Pinned -->
99
+ <link
100
+ rel="stylesheet"
101
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@3.0.0-alpha.2/dist/viking-ui.css"
102
+ />
103
+ <script
104
+ type="module"
105
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@3.0.0-alpha.2/dist/web-components.js"
106
+ ></script>
107
+ ```
108
+
109
+ ### 5) Full minimal HTML example (copy/paste)
110
+
111
+ ```html
112
+ <!doctype html>
113
+ <html lang="en" data-theme="dark">
114
+ <head>
115
+ <meta charset="utf-8" />
116
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
117
+ <title>Viking-UI CDN demo</title>
118
+ <link
119
+ rel="stylesheet"
120
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
121
+ />
122
+ <script
123
+ type="module"
124
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
125
+ ></script>
126
+ </head>
127
+ <body>
128
+ <main
129
+ style="max-width: 680px; margin: 2rem auto; display: grid; gap: 1rem;"
130
+ >
131
+ <h1 class="viking-heading viking-heading-xl">Viking widget</h1>
132
+ <viking-card-wc compact>
133
+ <h2 class="viking-heading viking-heading-sm">Widget card</h2>
134
+ <p class="viking-text-muted">
135
+ Works in marketing pages and external websites.
136
+ </p>
137
+ </viking-card-wc>
138
+ <viking-button-wc variant="primary">Open dashboard</viking-button-wc>
139
+ </main>
140
+ </body>
141
+ </html>
142
+ ```
143
+
144
+ ### 6) Status widget via jsDelivr (no npm install)
145
+
146
+ Use this when embedding a live status badge on external pages:
147
+
148
+ ```html
149
+ <!doctype html>
150
+ <html lang="en" data-theme="dark">
151
+ <head>
152
+ <meta charset="utf-8" />
153
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
154
+ <title>DEML Status Widget</title>
155
+ <link
156
+ rel="stylesheet"
157
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
158
+ />
159
+ <script
160
+ type="module"
161
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
162
+ ></script>
163
+ <script
164
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/widget.js"
165
+ async
166
+ defer
167
+ data-page-id="platform-status"
168
+ data-backend-url="https://api.example.com"
169
+ data-frontend-url="https://deml.app"
170
+ ></script>
171
+ </head>
172
+ <body></body>
173
+ </html>
174
+ ```
175
+
176
+ Pinned release example:
177
+
178
+ ```html
179
+ <script
180
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@3.0.0-alpha.2/dist/widget.js"
181
+ async
182
+ defer
183
+ data-page-id="platform-status"
184
+ data-backend-url="https://api.example.com"
185
+ data-frontend-url="https://deml.app"
186
+ ></script>
187
+ ```
188
+
189
+ Replace `api.example.com` with your backend URL and update `data-page-id` / `data-frontend-url` for your status page.
190
+
191
+ This package is the source of truth. Existing Angular wrappers in `frontend/projects/viking-ui` adapt the design system for Angular while migration continues; Astro and Django consume the package artifacts directly through synced static assets.
192
+
193
+ Angular app shells consume the package CSS from `angular.json`:
194
+
195
+ ```json
196
+ {
197
+ "styles": ["../packages/viking-ui/dist/viking-ui.css", "src/styles.scss"]
198
+ }
199
+ ```
200
+
201
+ Django, marketing, and showcase static assets are copied from `packages/viking-ui/dist` by:
62
202
 
63
203
  ```bash
64
- cd frontend
65
- npm run test:viking-ui
66
- npm run build:viking-ui
67
- cd dist/viking-ui
68
- npm publish --access public --otp=YOUR_CODE
204
+ python scripts/sync_design_system.py
205
+ node scripts/validate_viking_ui_assets.mjs
69
206
  ```
207
+
208
+ See [MIGRATION_PLAN.md](./MIGRATION_PLAN.md) for the rebuild phases.