@ovh-ux/muk 0.1.0 → 0.1.1

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.1.1](https://github.com/ovh/manager/compare/@ovh-ux/muk@0.1.0...@ovh-ux/muk@0.1.1) (2025-10-23)
7
+
8
+ **Note:** Version bump only for package @ovh-ux/muk
9
+
6
10
  # [0.1.0](https://github.com/ovh/manager/compare/@ovh-ux/muk@0.0.1...@ovh-ux/muk@0.1.0) (2025-10-23)
7
11
 
8
12
  ### Bug Fixes
package/README.md CHANGED
@@ -1,26 +1,61 @@
1
- # ⚛️⚡ Manager Components Library
1
+ # ⚛️⚡ Manager UI Kit Library
2
+
3
+ Design-system library for OVHcloud Manager µ-apps.
2
4
 
3
5
  ## Features
4
6
 
5
- Hosts the components used in manager
6
- Keep it as simple as possible
7
+ - **Unified Entry Point for Manager Development:** Access all Manager components, hooks, and utilities from a single, streamlined library — eliminating dependency clutter, simplifying imports, and accelerating development with one consistent source of truth.
8
+ - **Built on OVHcloud Design System v19:** Harnesses the power and consistency of OVHcloud’s latest design principles — ensuring visual harmony, modern aesthetics, and a unified user experience across all Manager applications. Elimination of shadow DOM for simplified tests.
9
+ - **Absorb Breaking Changes from ODS:** As MUK exposes wrappers for every ODS components, in future MUK can absorb the pressure of ODS braking change to reduce the impact on µ-apps
10
+ - **Exclusive Manager Components:** Includes purpose-built Manager-only components such as Datagrid, layouts, Modals, Tags Management and more — crafted specifically to meet complex product needs and streamline development across Manager platforms.
11
+ - **Accessibility by Design:** Every component is crafted with WCAG-compliant accessibility in mind, ensuring inclusivity and usability for all users right out of the box.
12
+ - **Optimized for Performance:** Engineered for scalability and speed — with Datagrid virtualization that efficiently handles massive data sets while keeping interfaces lightning fast.
13
+ - **Tree-Shakeable Architecture:** Designed with modular exports that support tree-shaking, ensuring your applications load only what they need — reducing bundle size, improving load times, and boosting overall performance.
14
+ - **Developer-Friendly Documentation:** Explore an interactive documentation hub on Manager-Wiki, featuring live examples, ready-to-use code snippets, and detailed guidelines to speed up adoption and integration.
15
+
16
+ ## Usage
17
+
18
+ To use the Manager UI Kit in your project,
19
+
20
+ 1. Add a dependency in your app,
21
+
22
+ ```
23
+ yarn add @ovhcloud/muk
24
+ ```
25
+
26
+ 2. Import CSS in your app,
27
+
28
+ ```
29
+ import '@ovh-ux/muk/dist/style.css';
30
+ ```
31
+
32
+ **Note:** This requirement is temporary and will no longer be needed with future releases.
33
+
34
+ 3. Import components in your tsx file and use it as per your needs,
35
+
36
+ ```tsx
37
+ import { Badge, BADGE_COLOR, BADGE_SIZE } from '@ovh-ux/muk';
7
38
 
8
- ## Add new component
39
+ return (
40
+ <Badge color={BADGE_COLOR.information} size={BADGE_SIZE.md}>
41
+ Active
42
+ </Badge>
43
+ );
44
+ ```
9
45
 
10
- 1. Create a new components folder in `src/components`
11
- 2. Add your `stories.tsx` file
12
- 3. Add your e2e test
46
+ ## Contributing
13
47
 
14
- ## Import component to another project
48
+ For development guidelines, refer our [documentation](https://ovh.github.io/manager/storybook-static/index.html?path=/docs/manager-ui-kit-guidelines-new-component--technical-information).
15
49
 
16
- The component is not builded so you can import directly the component named `Card` from the workspace like this :
17
- `import Card from '@ovh-ux/manager-react-components'`
50
+ Request new component [here](https://github.com/ovh/manager/issues/new?template=manager_components_feature_request.yml).
51
+ Report a bug [here](https://github.com/ovh/manager/issues/new?template=manager_components_bug_report.yml).
18
52
 
19
- ## Main Scripts
53
+ ## Useful Commands
20
54
 
21
- Always prepending yarn:
55
+ Run the commands using `yarn` package manager,
22
56
 
23
- - `start`: Run the storybook
24
- - `test:e2e`: Run e2e test using playwright
25
- - `test`: Runs testing using coverage
26
- - `test:watch`: Runs test using watch mode
57
+ - `build`: Generates the production build of the package.
58
+ - `test`: Run all tests to validate code functionality and quality.
59
+ - `test:ci`: Runs the test suite and reports code coverage metrics.
60
+ - `lint:modern`: Check code for linting errors and enforce coding standards.
61
+ - `lint:modern:fix`: Runs the `lint:modern` with fix option to automatically fix the reported issues
@@ -1,4 +1,4 @@
1
- import { j as a, M as k, T as b } from "./lib-Bpiw0_2K.mjs";
1
+ import { j as a, M as k, T as b } from "./lib-CWaID5dp.mjs";
2
2
  import { forwardRef as f, useState as l, useCallback as R } from "react";
3
3
  import { useTranslation as x } from "react-i18next";
4
4
  import { MODAL_COLOR as T, Input as j, Button as E, BUTTON_VARIANT as S, BUTTON_SIZE as B } from "@ovhcloud/ods-react";
@@ -3989,29 +3989,30 @@ function lg({
3989
3989
  isLoading: o
3990
3990
  };
3991
3991
  }
3992
- const ce = "@ovh-ux/manager-common-translations", ir = {
3993
- BYTES: `${ce}/bytes`,
3994
- CLIPBOARD: `${ce}/clipboard`,
3995
- ACTIONS: `${ce}/actions`,
3996
- FORM: `${ce}/form`,
3997
- IAM: `${ce}/iam`,
3998
- SERVICE: `${ce}/service`,
3999
- BILLING: `${ce}/billing`,
4000
- ERROR: `${ce}/error`,
4001
- STATUS: `${ce}/status`,
4002
- DATACENTER: `${ce}/datacenter`,
4003
- REGION: `${ce}/region`,
4004
- DASHBOARD: `${ce}/dashboard`,
4005
- ONBOARDING: `${ce}/onboarding`,
4006
- ORDER: `${ce}/order`,
4007
- CONTACT: `${ce}/contact`,
4008
- COUNTRIES: `${ce}/countries`,
4009
- COUNTRY: `${ce}/country`,
4010
- LANGUAGE: `${ce}/language`,
4011
- UPLOAD: `${ce}/upload`,
4012
- RESOURCES: `${ce}/resources`,
4013
- SYSTEM: `${ce}/system`,
4014
- TIME: `${ce}/time`
3992
+ const ue = "@ovh-ux/manager-common-translations", ir = {
3993
+ BYTES: `${ue}/bytes`,
3994
+ CLIPBOARD: `${ue}/clipboard`,
3995
+ ACTIONS: `${ue}/actions`,
3996
+ FORM: `${ue}/form`,
3997
+ IAM: `${ue}/iam`,
3998
+ SERVICE: `${ue}/service`,
3999
+ BILLING: `${ue}/billing`,
4000
+ ERROR: `${ue}/error`,
4001
+ STATUS: `${ue}/status`,
4002
+ DATACENTER: `${ue}/datacenter`,
4003
+ REGION: `${ue}/region`,
4004
+ DASHBOARD: `${ue}/dashboard`,
4005
+ ONBOARDING: `${ue}/onboarding`,
4006
+ ORDER: `${ue}/order`,
4007
+ CONTACT: `${ue}/contact`,
4008
+ COUNTRIES: `${ue}/countries`,
4009
+ COUNTRY: `${ue}/country`,
4010
+ LANGUAGE: `${ue}/language`,
4011
+ UPLOAD: `${ue}/upload`,
4012
+ RESOURCES: `${ue}/resources`,
4013
+ SYSTEM: `${ue}/system`,
4014
+ TIME: `${ue}/time`,
4015
+ NAVIGATION: `${ue}/navigation`
4015
4016
  }, ug = {
4016
4017
  1e3: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"],
4017
4018
  1024: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"]
@@ -6129,8 +6130,8 @@ function fm() {
6129
6130
  }(), $e = Dt && Dt.isTypedArray;
6130
6131
  function Ct(d, v) {
6131
6132
  for (var y = -1, D = d == null ? 0 : d.length, re = 0, L = []; ++y < D; ) {
6132
- var ue = d[y];
6133
- v(ue, y, d) && (L[re++] = ue);
6133
+ var ce = d[y];
6134
+ v(ce, y, d) && (L[re++] = ce);
6134
6135
  }
6135
6136
  return L;
6136
6137
  }
@@ -6314,9 +6315,9 @@ function fm() {
6314
6315
  }
6315
6316
  gt.prototype.clear = lr, gt.prototype.delete = ji, gt.prototype.get = Ei, gt.prototype.has = Ti, gt.prototype.set = Ri;
6316
6317
  function Mi(d, v) {
6317
- var y = dr(d), D = !y && Xi(d), re = !y && !D && Lr(d), L = !y && !D && !re && Fa(d), ue = y || D || re || L, xe = ue ? zt(d.length, String) : [], Ce = xe.length;
6318
+ var y = dr(d), D = !y && Xi(d), re = !y && !D && Lr(d), L = !y && !D && !re && Fa(d), ce = y || D || re || L, xe = ce ? zt(d.length, String) : [], Ce = xe.length;
6318
6319
  for (var le in d)
6319
- ye.call(d, le) && !(ue && // Safari 9 has enumerable `arguments.length` in strict mode.
6320
+ ye.call(d, le) && !(ce && // Safari 9 has enumerable `arguments.length` in strict mode.
6320
6321
  (le == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
6321
6322
  re && (le == "offset" || le == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
6322
6323
  L && (le == "buffer" || le == "byteLength" || le == "byteOffset") || // Skip index properties.
@@ -6343,16 +6344,16 @@ function fm() {
6343
6344
  return d === v ? !0 : d == null || v == null || !Ln(d) && !Ln(v) ? d !== d && v !== v : zi(d, v, y, D, Da, re);
6344
6345
  }
6345
6346
  function zi(d, v, y, D, re, L) {
6346
- var ue = dr(d), xe = dr(v), Ce = ue ? u : Ut(d), le = xe ? u : Ut(v);
6347
+ var ce = dr(d), xe = dr(v), Ce = ce ? u : Ut(d), le = xe ? u : Ut(v);
6347
6348
  Ce = Ce == l ? S : Ce, le = le == l ? S : le;
6348
6349
  var Ze = Ce == S, mt = le == S, je = Ce == le;
6349
6350
  if (je && Lr(d)) {
6350
6351
  if (!Lr(v))
6351
6352
  return !1;
6352
- ue = !0, Ze = !1;
6353
+ ce = !0, Ze = !1;
6353
6354
  }
6354
6355
  if (je && !Ze)
6355
- return L || (L = new gt()), ue || Fa(d) ? za(d, v, y, D, re, L) : ki(d, v, Ce, y, D, re, L);
6356
+ return L || (L = new gt()), ce || Fa(d) ? za(d, v, y, D, re, L) : ki(d, v, Ce, y, D, re, L);
6356
6357
  if (!(y & a)) {
6357
6358
  var tt = Ze && ye.call(d, "__wrapped__"), nt = mt && ye.call(v, "__wrapped__");
6358
6359
  if (tt || nt) {
@@ -6380,8 +6381,8 @@ function fm() {
6380
6381
  return v;
6381
6382
  }
6382
6383
  function za(d, v, y, D, re, L) {
6383
- var ue = y & a, xe = d.length, Ce = v.length;
6384
- if (xe != Ce && !(ue && Ce > xe))
6384
+ var ce = y & a, xe = d.length, Ce = v.length;
6385
+ if (xe != Ce && !(ce && Ce > xe))
6385
6386
  return !1;
6386
6387
  var le = L.get(d);
6387
6388
  if (le && L.get(v))
@@ -6390,7 +6391,7 @@ function fm() {
6390
6391
  for (L.set(d, v), L.set(v, d); ++Ze < xe; ) {
6391
6392
  var tt = d[Ze], nt = v[Ze];
6392
6393
  if (D)
6393
- var qt = ue ? D(nt, tt, Ze, v, d, L) : D(tt, nt, Ze, d, v, L);
6394
+ var qt = ce ? D(nt, tt, Ze, v, d, L) : D(tt, nt, Ze, d, v, L);
6394
6395
  if (qt !== void 0) {
6395
6396
  if (qt)
6396
6397
  continue;
@@ -6412,7 +6413,7 @@ function fm() {
6412
6413
  }
6413
6414
  return L.delete(d), L.delete(v), mt;
6414
6415
  }
6415
- function ki(d, v, y, D, re, L, ue) {
6416
+ function ki(d, v, y, D, re, L, ce) {
6416
6417
  switch (y) {
6417
6418
  case ze:
6418
6419
  if (d.byteLength != v.byteLength || d.byteOffset != v.byteOffset)
@@ -6435,12 +6436,12 @@ function fm() {
6435
6436
  var Ce = D & a;
6436
6437
  if (xe || (xe = Ot), d.size != v.size && !Ce)
6437
6438
  return !1;
6438
- var le = ue.get(d);
6439
+ var le = ce.get(d);
6439
6440
  if (le)
6440
6441
  return le == v;
6441
- D |= o, ue.set(d, v);
6442
- var Ze = za(xe(d), xe(v), D, re, L, ue);
6443
- return ue.delete(d), Ze;
6442
+ D |= o, ce.set(d, v);
6443
+ var Ze = za(xe(d), xe(v), D, re, L, ce);
6444
+ return ce.delete(d), Ze;
6444
6445
  case Ae:
6445
6446
  if (Jt)
6446
6447
  return Jt.call(d) == Jt.call(v);
@@ -6448,12 +6449,12 @@ function fm() {
6448
6449
  return !1;
6449
6450
  }
6450
6451
  function Hi(d, v, y, D, re, L) {
6451
- var ue = y & a, xe = Oa(d), Ce = xe.length, le = Oa(v), Ze = le.length;
6452
- if (Ce != Ze && !ue)
6452
+ var ce = y & a, xe = Oa(d), Ce = xe.length, le = Oa(v), Ze = le.length;
6453
+ if (Ce != Ze && !ce)
6453
6454
  return !1;
6454
6455
  for (var mt = Ce; mt--; ) {
6455
6456
  var je = xe[mt];
6456
- if (!(ue ? je in v : ye.call(v, je)))
6457
+ if (!(ce ? je in v : ye.call(v, je)))
6457
6458
  return !1;
6458
6459
  }
6459
6460
  var tt = L.get(d);
@@ -6461,11 +6462,11 @@ function fm() {
6461
6462
  return tt == v;
6462
6463
  var nt = !0;
6463
6464
  L.set(d, v), L.set(v, d);
6464
- for (var qt = ue; ++mt < Ce; ) {
6465
+ for (var qt = ce; ++mt < Ce; ) {
6465
6466
  je = xe[mt];
6466
6467
  var kt = d[je], wn = v[je];
6467
6468
  if (D)
6468
- var Ba = ue ? D(wn, kt, je, v, d, L) : D(kt, wn, je, d, v, L);
6469
+ var Ba = ce ? D(wn, kt, je, v, d, L) : D(kt, wn, je, d, v, L);
6469
6470
  if (!(Ba === void 0 ? kt === wn || re(kt, wn, y, D, L) : Ba)) {
6470
6471
  nt = !1;
6471
6472
  break;
@@ -7868,7 +7869,7 @@ const mi = qi(
7868
7869
  }
7869
7870
  )
7870
7871
  ] }) : null;
7871
- }, ih = Ki(() => import("./TagsModal.component-wlV7ClY7.mjs")), sh = ({
7872
+ }, ih = Ki(() => import("./TagsModal.component-BIbbIBAv.mjs")), sh = ({
7872
7873
  tags: e,
7873
7874
  displayInternalTags: n = !1,
7874
7875
  maxLines: t,
@@ -1,4 +1,4 @@
1
- import { ab as e, ac as o, ad as r, ae as t, A as i, w as n, Y as E, x as T, B as l, O as C, a9 as S, $ as I, af as u, ag as c, ah as _, ai as O, C as N, aa as R, aj as d, ak as P, al as A, b4 as p, D as g, a8 as m, am as b, an as M, ao as L, a4 as U, G as h, a1 as F, a2 as B, ap as D, aq as y, ar as k, J as G, K as H, as as x, at as V, au as v, av as w, a5 as Y, H as Z, b6 as f, L as z, a0 as K, F as W, aw as Q, ax as J, ay as q, M as X, N as $, b5 as j, a6 as aa, a7 as sa, W as ea, b3 as oa, az as ra, aA as ta, aB as ia, aC as na, aD as Ea, aE as Ta, P as la, aF as Ca, aG as Sa, aH as Ia, aI as ua, aJ as ca, aL as _a, aM as Oa, aK as Na, aN as Ra, R as da, aO as Pa, aP as Aa, aQ as pa, U as ga, S as ma, aR as ba, aS as Ma, y as La, Z as Ua, _ as ha, Q as Fa, V as Ba, E as Da, z as ya, aT as ka, aU as Ga, aV as Ha, aW as xa, aX as Va, aY as va, aZ as wa, a_ as Ya, a$ as Za, b0 as fa, b1 as za, b2 as Ka, a3 as Wa, d as Qa, k as Ja, g as qa, i as Xa, v as $a, b7 as ja, t as as, c as ss, p as es, l as os, h as rs, u as ts, n as is, b as ns, q as Es, r as Ts, o as ls, e as Cs, f as Ss, m as Is, a as us, I as cs, X as _s, s as Os } from "./lib-Bpiw0_2K.mjs";
1
+ import { ab as e, ac as o, ad as r, ae as t, A as i, w as n, Y as E, x as T, B as l, O as C, a9 as S, $ as I, af as u, ag as c, ah as _, ai as O, C as N, aa as R, aj as d, ak as P, al as A, b4 as p, D as g, a8 as m, am as b, an as M, ao as L, a4 as U, G as h, a1 as F, a2 as B, ap as D, aq as y, ar as k, J as G, K as H, as as x, at as V, au as v, av as w, a5 as Y, H as Z, b6 as f, L as z, a0 as K, F as W, aw as Q, ax as J, ay as q, M as X, N as $, b5 as j, a6 as aa, a7 as sa, W as ea, b3 as oa, az as ra, aA as ta, aB as ia, aC as na, aD as Ea, aE as Ta, P as la, aF as Ca, aG as Sa, aH as Ia, aI as ua, aJ as ca, aL as _a, aM as Oa, aK as Na, aN as Ra, R as da, aO as Pa, aP as Aa, aQ as pa, U as ga, S as ma, aR as ba, aS as Ma, y as La, Z as Ua, _ as ha, Q as Fa, V as Ba, E as Da, z as ya, aT as ka, aU as Ga, aV as Ha, aW as xa, aX as Va, aY as va, aZ as wa, a_ as Ya, a$ as Za, b0 as fa, b1 as za, b2 as Ka, a3 as Wa, d as Qa, k as Ja, g as qa, i as Xa, v as $a, b7 as ja, t as as, c as ss, p as es, l as os, h as rs, u as ts, n as is, b as ns, q as Es, r as Ts, o as ls, e as Cs, f as Ss, m as Is, a as us, I as cs, X as _s, s as Os } from "./lib-CWaID5dp.mjs";
2
2
  import { DATEPICKER_DAY as Rs, DATEPICKER_DAYS as ds, DATEPICKER_VIEW as Ps, DATEPICKER_VIEWS as As, FILE_REJECTION_CAUSE as ps, FILE_REJECTION_CAUSES as gs, FILE_UPLOAD_I18N as ms, MESSAGE_COLOR as bs, MESSAGE_COLORS as Ms, MESSAGE_I18N as Ls, MESSAGE_VARIANT as Us, MESSAGE_VARIANTS as hs, PHONE_NUMBER_COUNTRIES_PRESET as Fs, PHONE_NUMBER_COUNTRIES_PRESETS as Bs, PHONE_NUMBER_COUNTRY_ISO_CODE as Ds, PHONE_NUMBER_COUNTRY_ISO_CODES as ys, PHONE_NUMBER_I18N as ks, PHONE_NUMBER_PARSING_ERROR as Gs, PHONE_NUMBER_PARSING_ERRORS as Hs, POPOVER_POSITION as xs, POPOVER_POSITIONS as Vs, SWITCH_SIZE as vs, SWITCH_SIZES as ws, TIMEPICKER_I18N as Ys, TIMEZONE as Zs, TIMEZONES as fs, TIMEZONES_PRESET as zs, TIMEZONES_PRESETS as Ks, TOOLTIP_POSITION as Ws, TOOLTIP_POSITIONS as Qs, useFormField as Js } from "@ovhcloud/ods-react";
3
3
  export {
4
4
  e as Accordion,