@dataengineeringformachinelearning/viking-ui 3.0.0-alpha.2 → 4.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 (198) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +55 -12
  3. package/dist/LICENSE +201 -0
  4. package/dist/README.md +251 -0
  5. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +13751 -0
  6. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -0
  7. package/dist/index.js +1 -4051
  8. package/dist/package.json +87 -0
  9. package/dist/scripts/build-web-components.mjs +37 -0
  10. package/dist/src/tokens/series-presets.ts +15 -0
  11. package/dist/src/tokens/tailwind.preset.js +209 -0
  12. package/dist/src/tokens/viking-tokens.json +318 -0
  13. package/dist/src/web/badge/viking-badge-wc.ts +116 -0
  14. package/dist/src/web/button/viking-button-wc.ts +165 -0
  15. package/dist/src/web/callout/viking-callout-wc.ts +105 -0
  16. package/dist/src/web/card/viking-card-wc.ts +66 -0
  17. package/dist/src/web/core/base.ts +56 -0
  18. package/dist/src/web/core/dom.ts +53 -0
  19. package/dist/src/web/core/icons-inline.ts +44 -0
  20. package/dist/src/web/core/styles.ts +1138 -0
  21. package/dist/src/web/core/types.ts +19 -0
  22. package/dist/src/web/field/viking-field-wc.ts +154 -0
  23. package/dist/src/web/index.ts +73 -0
  24. package/dist/src/web/input/viking-input-wc.ts +211 -0
  25. package/dist/src/web/modal/viking-modal-wc.ts +187 -0
  26. package/dist/src/web/search-palette/viking-search-palette-wc.ts +494 -0
  27. package/dist/src/web/select/viking-select-wc.ts +218 -0
  28. package/dist/src/web/suite-header/viking-suite-header-wc.ts +714 -0
  29. package/dist/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +234 -0
  30. package/dist/src/web/theme-toggle/viking-theme-toggle-wc.ts +139 -0
  31. package/dist/src/web/types.ts +37 -0
  32. package/dist/src/web/web-components.spec.ts +297 -0
  33. package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +2658 -0
  34. package/dist/viking.manifest.json +271 -0
  35. package/dist/web-components.js +2427 -126
  36. package/package.json +25 -11
  37. package/src/assets/drakkar-favicon.svg +17 -0
  38. package/src/core/brand/deml-lockup.svg +5 -0
  39. package/src/core/brand/deml-mark-compact.svg +4 -0
  40. package/src/core/brand/deml-mark-filled.svg +3 -0
  41. package/src/core/brand/deml-mark-outline.svg +4 -0
  42. package/src/core/brand-icons.ts +62 -0
  43. package/src/core/icons.spec.ts +52 -0
  44. package/src/core/icons.ts +206 -0
  45. package/src/core/integration-brand-icons.ts +77 -0
  46. package/src/core/lucide-paths.generated.ts +130 -0
  47. package/src/core/types.ts +85 -0
  48. package/src/core/uid.ts +7 -0
  49. package/src/lib/accordion/accordion.ts +126 -0
  50. package/src/lib/app-header/app-header.scss +274 -0
  51. package/src/lib/app-header/app-header.ts +43 -0
  52. package/src/lib/app-sidebar/app-sidebar.scss +415 -0
  53. package/src/lib/app-sidebar/app-sidebar.ts +29 -0
  54. package/src/lib/auth-panel/auth-panel.spec.ts +132 -0
  55. package/src/lib/auth-panel/auth-panel.ts +228 -0
  56. package/src/lib/autocomplete/autocomplete.ts +223 -0
  57. package/src/lib/avatar/avatar.ts +126 -0
  58. package/src/lib/badge/badge.ts +182 -0
  59. package/src/lib/bar/bar.ts +31 -0
  60. package/src/lib/brand/brand.ts +60 -0
  61. package/src/lib/breadcrumbs/breadcrumbs.ts +81 -0
  62. package/src/lib/button/button-group.ts +40 -0
  63. package/src/lib/button/button.scss +96 -0
  64. package/src/lib/button/button.ts +98 -0
  65. package/src/lib/calendar/calendar.ts +253 -0
  66. package/src/lib/callout/callout.ts +211 -0
  67. package/src/lib/card/card-title.spec.ts +27 -0
  68. package/src/lib/card/card-title.ts +50 -0
  69. package/src/lib/card/card.ts +170 -0
  70. package/src/lib/carousel/carousel.ts +206 -0
  71. package/src/lib/chart/chart-zoom.spec.ts +65 -0
  72. package/src/lib/chart/chart-zoom.ts +71 -0
  73. package/src/lib/chart/chart.ts +1257 -0
  74. package/src/lib/chart-card-header/chart-card-header.ts +80 -0
  75. package/src/lib/chart-empty-state/chart-empty-state.ts +146 -0
  76. package/src/lib/chart-panel/chart-panel.ts +133 -0
  77. package/src/lib/checkbox/checkbox.ts +139 -0
  78. package/src/lib/color-picker/color-picker.ts +148 -0
  79. package/src/lib/command/command.ts +260 -0
  80. package/src/lib/composer/composer.ts +180 -0
  81. package/src/lib/confirm-dialog/confirm-dialog.ts +163 -0
  82. package/src/lib/confirm-dialog/dialog.service.ts +79 -0
  83. package/src/lib/context/context.ts +75 -0
  84. package/src/lib/core/cva.ts +33 -0
  85. package/src/lib/date-picker/date-picker.ts +139 -0
  86. package/src/lib/dropdown/dropdown.ts +188 -0
  87. package/src/lib/editor/editor.ts +170 -0
  88. package/src/lib/empty-state/empty-state.ts +100 -0
  89. package/src/lib/fab/fab.ts +76 -0
  90. package/src/lib/field/field.ts +111 -0
  91. package/src/lib/file-upload/file-upload.ts +208 -0
  92. package/src/lib/footer/footer.scss +155 -0
  93. package/src/lib/footer/footer.ts +28 -0
  94. package/src/lib/form-section/form-section.ts +200 -0
  95. package/src/lib/forms.spec.ts +92 -0
  96. package/src/lib/gauge-arc/gauge-arc.ts +85 -0
  97. package/src/lib/hud-panel/hud-panel.ts +27 -0
  98. package/src/lib/icon/icon.ts +284 -0
  99. package/src/lib/icon-badge/icon-badge.ts +87 -0
  100. package/src/lib/icon-heading/icon-heading.spec.ts +32 -0
  101. package/src/lib/icon-heading/icon-heading.ts +38 -0
  102. package/src/lib/icon-text/icon-text.ts +120 -0
  103. package/src/lib/input/input.ts +119 -0
  104. package/src/lib/kanban/kanban.ts +211 -0
  105. package/src/lib/kbd/kbd.ts +32 -0
  106. package/src/lib/label/label.ts +39 -0
  107. package/src/lib/loading-overlay/loading-overlay.ts +80 -0
  108. package/src/lib/menubar/menubar.ts +77 -0
  109. package/src/lib/metric-card/metric-card.ts +33 -0
  110. package/src/lib/modal/modal.ts +207 -0
  111. package/src/lib/native-select/native-select.ts +124 -0
  112. package/src/lib/navbar/navbar.ts +124 -0
  113. package/src/lib/navigation-menu/navigation-menu.ts +116 -0
  114. package/src/lib/otp-input/otp-input.ts +164 -0
  115. package/src/lib/page-back-link/page-back-link.ts +74 -0
  116. package/src/lib/page-header/page-header.ts +70 -0
  117. package/src/lib/pagination/pagination.ts +157 -0
  118. package/src/lib/pillbox/pillbox.ts +157 -0
  119. package/src/lib/popover/popover.ts +92 -0
  120. package/src/lib/profile/profile.ts +73 -0
  121. package/src/lib/progress/progress.ts +123 -0
  122. package/src/lib/radio/radio.ts +132 -0
  123. package/src/lib/ring-gauge/ring-gauge.ts +75 -0
  124. package/src/lib/scroll-area/scroll-area.ts +57 -0
  125. package/src/lib/search-palette/search-palette.scss +288 -0
  126. package/src/lib/search-palette/search-palette.ts +114 -0
  127. package/src/lib/select/select.ts +292 -0
  128. package/src/lib/separator/separator.ts +59 -0
  129. package/src/lib/sheet/sheet.ts +192 -0
  130. package/src/lib/sidebar-nav/sidebar-nav.scss +218 -0
  131. package/src/lib/sidebar-nav/sidebar-nav.ts +158 -0
  132. package/src/lib/site-drakkar/site-footer.ts +129 -0
  133. package/src/lib/site-drakkar/site-navbar.scss +2 -0
  134. package/src/lib/site-drakkar/site-navbar.ts +267 -0
  135. package/src/lib/site-drakkar/suite-search-items.spec.ts +61 -0
  136. package/src/lib/skeleton/skeleton.ts +51 -0
  137. package/src/lib/slider/slider.ts +133 -0
  138. package/src/lib/spinner/spinner.ts +75 -0
  139. package/src/lib/status-metric-row/status-metric-row.ts +74 -0
  140. package/src/lib/suite-search-palette/suite-search-palette.ts +95 -0
  141. package/src/lib/switch/switch.ts +131 -0
  142. package/src/lib/table/table.ts +137 -0
  143. package/src/lib/tabs/tab-panel.ts +61 -0
  144. package/src/lib/tabs/tab.ts +107 -0
  145. package/src/lib/tabs/tabs.ts +109 -0
  146. package/src/lib/textarea/textarea.ts +103 -0
  147. package/src/lib/theme-toggle/theme-toggle.spec.ts +40 -0
  148. package/src/lib/theme-toggle/theme-toggle.ts +39 -0
  149. package/src/lib/time-picker/time-picker.ts +197 -0
  150. package/src/lib/timeline/timeline.ts +152 -0
  151. package/src/lib/toast/toast.ts +196 -0
  152. package/src/lib/toggle/toggle-group.ts +60 -0
  153. package/src/lib/toggle/toggle.ts +101 -0
  154. package/src/lib/tooltip/tooltip.ts +119 -0
  155. package/src/lib/typography/heading.ts +52 -0
  156. package/src/lib/typography/text.ts +51 -0
  157. package/src/lib/uptime-bar/uptime-bar.ts +55 -0
  158. package/src/lib/verification-code-field/verification-code-field.ts +149 -0
  159. package/src/lib/whitepaper-cta/whitepaper-cta.scss +130 -0
  160. package/src/lib/whitepaper-cta/whitepaper-cta.ts +78 -0
  161. package/src/lib/wizard/wizard.ts +80 -0
  162. package/src/public-api.ts +172 -0
  163. package/src/tokens/series-presets.ts +15 -0
  164. package/src/tokens/tailwind.preset.js +209 -0
  165. package/src/viking-ui.spec.ts +416 -0
  166. package/src/web/web-components.spec.ts +297 -0
  167. package/dist/elements/button/viking-button.d.ts +0 -14
  168. package/dist/elements/card/viking-card.d.ts +0 -8
  169. package/dist/elements/core/dom.d.ts +0 -4
  170. package/dist/elements/core/styles.d.ts +0 -2
  171. package/dist/elements/modal/viking-modal.d.ts +0 -15
  172. package/dist/index.d.ts +0 -1
  173. package/dist/lib/core/brand-icons.d.ts +0 -29
  174. package/dist/lib/core/icons.d.ts +0 -132
  175. package/dist/lib/core/integration-brand-icons.d.ts +0 -18
  176. package/dist/lib/core/lucide-paths.generated.d.ts +0 -90
  177. package/dist/lib/site-drakkar/site-drakkar.config.d.ts +0 -50
  178. package/dist/lib/site-drakkar/suite-search-items.d.ts +0 -17
  179. package/dist/web/badge/viking-badge-wc.d.ts +0 -28
  180. package/dist/web/button/viking-button-wc.d.ts +0 -28
  181. package/dist/web/callout/viking-callout-wc.d.ts +0 -27
  182. package/dist/web/card/viking-card-wc.d.ts +0 -29
  183. package/dist/web/core/base.d.ts +0 -12
  184. package/dist/web/core/dom.d.ts +0 -11
  185. package/dist/web/core/icons-inline.d.ts +0 -7
  186. package/dist/web/core/styles.d.ts +0 -12
  187. package/dist/web/core/types.d.ts +0 -10
  188. package/dist/web/field/viking-field-wc.d.ts +0 -32
  189. package/dist/web/index.d.ts +0 -15
  190. package/dist/web/input/viking-input-wc.d.ts +0 -32
  191. package/dist/web/modal/viking-modal-wc.d.ts +0 -50
  192. package/dist/web/search-palette/viking-search-palette-wc.d.ts +0 -64
  193. package/dist/web/select/viking-select-wc.d.ts +0 -48
  194. package/dist/web/suite-header/viking-suite-header-wc.d.ts +0 -36
  195. package/dist/web/suite-search-palette/viking-suite-search-palette-wc.d.ts +0 -39
  196. package/dist/web/theme-toggle/viking-theme-toggle-wc.d.ts +0 -19
  197. package/dist/web/types.d.ts +0 -40
  198. package/dist/web-components/index.d.ts +0 -1
package/dist/README.md ADDED
@@ -0,0 +1,251 @@
1
+ # Viking-UI
2
+
3
+ Published package: **`@dataengineeringformachinelearning/viking-ui@4.0.0`**
4
+ Single source of truth: **`packages/viking-ui/`** (framework-agnostic primitives, styles, web components, and Angular wrapper entrypoints are consolidated here).
5
+
6
+ Universal DEML component library for Astro, Angular, and Django.
7
+
8
+ ## Architecture
9
+
10
+ - `src/styles/_variables.scss` defines the canonical `--viking-*` design tokens.
11
+ - `src/styles/components-bundle.scss` defines static CSS primitives shared by every app.
12
+ - `src/tokens/viking-tokens.json` exposes the same token contract for tooling.
13
+ - `src/elements/` contains framework-neutral Web Components with Shadow DOM style isolation.
14
+ - `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.
15
+ - `dist/viking-ui.css` is the full app bundle. Load it once per surface; do not stack it with the split CSS artifacts.
16
+
17
+ ## Build
18
+
19
+ ```bash
20
+ npm run build --prefix packages/viking-ui
21
+ npm run test:viking-ui:package
22
+ ```
23
+
24
+ ## Versioning
25
+
26
+ Viking-UI uses Changesets from the repository root:
27
+
28
+ ```bash
29
+ npm run changeset
30
+ npm run version:viking-ui
31
+ ```
32
+
33
+ See [docs/viking-ui-release.md](../../docs/viking-ui-release.md) for the full
34
+ release, visual regression, and propagation workflow.
35
+
36
+ ## Consumption
37
+
38
+ ### 1) NPM usage (recommended for apps)
39
+
40
+ Use this for app-first surfaces such as deml.app, internal dashboards, and any build chain that supports package installs.
41
+
42
+ ```ts
43
+ import "@dataengineeringformachinelearning/viking-ui/viking-ui.css";
44
+ ```
45
+
46
+ ```ts
47
+ import {
48
+ VikingButton,
49
+ VikingInput,
50
+ VikingModal,
51
+ } from "@dataengineeringformachinelearning/viking-ui";
52
+ ```
53
+
54
+ ```bash
55
+ npm install @dataengineeringformachinelearning/viking-ui
56
+ ```
57
+
58
+ For Angular components, continue using the exported Angular APIs and theme tokens as normal.
59
+
60
+ ```ts
61
+ import {
62
+ VikingButton,
63
+ VikingInput,
64
+ VikingModal,
65
+ } from "@dataengineeringformachinelearning/viking-ui";
66
+
67
+ // or when building custom element demos:
68
+ import "@dataengineeringformachinelearning/viking-ui/web-components.js";
69
+ import "@dataengineeringformachinelearning/viking-ui/viking-ui.css";
70
+ ```
71
+
72
+ ### 2) jsDelivr CDN usage (recommended for widgets and quick embeds)
73
+
74
+ Use this for external websites, marketing snippets, and widget-style integrations that should load without npm.
75
+
76
+ The package artifacts are published in `dist/`, so you can load them directly from jsDelivr:
77
+
78
+ ### 1) CSS only
79
+
80
+ ```html
81
+ <link
82
+ rel="stylesheet"
83
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
84
+ />
85
+ ```
86
+
87
+ ### 2) Web Components only
88
+
89
+ ```html
90
+ <script
91
+ type="module"
92
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
93
+ ></script>
94
+ ```
95
+
96
+ ### 3) CSS + Web Components together
97
+
98
+ ```html
99
+ <link
100
+ rel="stylesheet"
101
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
102
+ />
103
+ <script
104
+ type="module"
105
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
106
+ ></script>
107
+ ```
108
+
109
+ ### 4) Version pinning
110
+
111
+ Use `@latest` for latest stable assets, or replace it with a concrete version for locked
112
+ builds.
113
+
114
+ ```html
115
+ <!-- Latest -->
116
+ <link
117
+ rel="stylesheet"
118
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
119
+ />
120
+ <script
121
+ type="module"
122
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
123
+ ></script>
124
+ ```
125
+
126
+ ```html
127
+ <!-- Pinned -->
128
+ <link
129
+ rel="stylesheet"
130
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@4.0.0/dist/viking-ui.css"
131
+ />
132
+ <script
133
+ type="module"
134
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@4.0.0/dist/web-components.js"
135
+ ></script>
136
+ ```
137
+
138
+ ### 5) Full minimal HTML example (copy/paste)
139
+
140
+ ```html
141
+ <!doctype html>
142
+ <html lang="en" data-theme="dark">
143
+ <head>
144
+ <meta charset="utf-8" />
145
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
146
+ <title>Viking-UI CDN demo</title>
147
+ <link
148
+ rel="stylesheet"
149
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
150
+ />
151
+ <script
152
+ type="module"
153
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
154
+ ></script>
155
+ </head>
156
+ <body>
157
+ <main
158
+ style="max-width: 680px; margin: 2rem auto; display: grid; gap: 1rem;"
159
+ >
160
+ <h1 class="viking-heading viking-heading-xl">Viking widget</h1>
161
+ <viking-card-wc compact>
162
+ <h2 class="viking-heading viking-heading-sm">Widget card</h2>
163
+ <p class="viking-text-muted">
164
+ Works in marketing pages and external websites.
165
+ </p>
166
+ </viking-card-wc>
167
+ <viking-button-wc variant="primary">Open dashboard</viking-button-wc>
168
+ </main>
169
+ </body>
170
+ </html>
171
+ ```
172
+
173
+ ### 3) When to use the sync script
174
+
175
+ Use `scripts/sync_design_system.py` when you need synced static assets instead of npm:
176
+
177
+ ```bash
178
+ python scripts/sync_design_system.py
179
+ ```
180
+
181
+ This path remains for surfaces that are not using package installs directly, especially
182
+ legacy or Django-rendered templates that consume `/assets/viking-ui.css` and shared class names.
183
+
184
+ ### 6) Status widget via jsDelivr (no npm install)
185
+
186
+ Use this when embedding a live status badge on external pages:
187
+
188
+ ```html
189
+ <!doctype html>
190
+ <html lang="en" data-theme="dark">
191
+ <head>
192
+ <meta charset="utf-8" />
193
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
194
+ <title>DEML Status Widget</title>
195
+ <link
196
+ rel="stylesheet"
197
+ href="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/viking-ui.css"
198
+ />
199
+ <script
200
+ type="module"
201
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/web-components.js"
202
+ ></script>
203
+ <script
204
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@latest/dist/widget.js"
205
+ async
206
+ defer
207
+ data-page-id="platform-status"
208
+ data-backend-url="https://api.example.com"
209
+ data-frontend-url="https://deml.app"
210
+ ></script>
211
+ </head>
212
+ <body></body>
213
+ </html>
214
+ ```
215
+
216
+ Pinned release example:
217
+
218
+ ```html
219
+ <script
220
+ src="https://cdn.jsdelivr.net/npm/@dataengineeringformachinelearning/viking-ui@4.0.0/dist/widget.js"
221
+ async
222
+ defer
223
+ data-page-id="platform-status"
224
+ data-backend-url="https://api.example.com"
225
+ data-frontend-url="https://deml.app"
226
+ ></script>
227
+ ```
228
+
229
+ Replace `api.example.com` with your backend URL and update `data-page-id` / `data-frontend-url` for your status page.
230
+
231
+ This package is the source of truth. Angular wrappers now live in `packages/viking-ui/src/lib` while canonical source files and token/build artifacts are also in `packages/viking-ui`; Astro and Django consume the package artifacts directly through synced static assets.
232
+
233
+ Angular app shells consume the package CSS from `angular.json`:
234
+
235
+ ```json
236
+ {
237
+ "styles": [
238
+ "@dataengineeringformachinelearning/viking-ui/viking-ui.css",
239
+ "src/styles.scss"
240
+ ]
241
+ }
242
+ ```
243
+
244
+ Django, marketing, and showcase static assets are copied from `packages/viking-ui/dist` by:
245
+
246
+ ```bash
247
+ python scripts/sync_design_system.py
248
+ node scripts/validate_viking_ui_assets.mjs
249
+ ```
250
+
251
+ See [MIGRATION_PLAN.md](./MIGRATION_PLAN.md) for the rebuild phases.