@sentropic/design-system-vue 0.31.0 → 0.32.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.
package/dist/Link.d.ts CHANGED
@@ -1,8 +1,14 @@
1
1
  export type LinkProps = {
2
2
  href?: string;
3
- muted?: boolean;
3
+ /** Style du lien ; API canonique (alignée sur le canon Svelte). */
4
+ variant?: "inline" | "standalone" | "muted";
5
+ /** @deprecated Raccourci pour variant="standalone". Utilisez `variant`. */
4
6
  standalone?: boolean;
7
+ /** @deprecated Raccourci pour variant="muted". Utilisez `variant`. */
8
+ muted?: boolean;
5
9
  disabled?: boolean;
10
+ /** Lien externe : pose target="_blank" rel="noreferrer" (sauf target/rel explicites). */
11
+ external?: boolean;
6
12
  class?: string;
7
13
  };
8
14
  export declare const Link: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -10,6 +16,10 @@ export declare const Link: import("vue").DefineComponent<import("vue").ExtractPr
10
16
  type: StringConstructor;
11
17
  default: undefined;
12
18
  };
19
+ variant: {
20
+ type: () => "inline" | "standalone" | "muted";
21
+ default: string;
22
+ };
13
23
  muted: {
14
24
  type: BooleanConstructor;
15
25
  default: boolean;
@@ -22,6 +32,10 @@ export declare const Link: import("vue").DefineComponent<import("vue").ExtractPr
22
32
  type: BooleanConstructor;
23
33
  default: boolean;
24
34
  };
35
+ external: {
36
+ type: BooleanConstructor;
37
+ default: boolean;
38
+ };
25
39
  class: {
26
40
  type: StringConstructor;
27
41
  default: undefined;
@@ -33,6 +47,10 @@ export declare const Link: import("vue").DefineComponent<import("vue").ExtractPr
33
47
  type: StringConstructor;
34
48
  default: undefined;
35
49
  };
50
+ variant: {
51
+ type: () => "inline" | "standalone" | "muted";
52
+ default: string;
53
+ };
36
54
  muted: {
37
55
  type: BooleanConstructor;
38
56
  default: boolean;
@@ -45,6 +63,10 @@ export declare const Link: import("vue").DefineComponent<import("vue").ExtractPr
45
63
  type: BooleanConstructor;
46
64
  default: boolean;
47
65
  };
66
+ external: {
67
+ type: BooleanConstructor;
68
+ default: boolean;
69
+ };
48
70
  class: {
49
71
  type: StringConstructor;
50
72
  default: undefined;
@@ -53,7 +75,9 @@ export declare const Link: import("vue").DefineComponent<import("vue").ExtractPr
53
75
  class: string;
54
76
  disabled: boolean;
55
77
  href: string;
56
- muted: boolean;
78
+ variant: "inline" | "standalone" | "muted";
57
79
  standalone: boolean;
80
+ muted: boolean;
81
+ external: boolean;
58
82
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
59
83
  //# sourceMappingURL=Link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA4Bf,CAAC"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,OAAO,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;IAC5C,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;cAIc,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAvC,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAqDpE,CAAC"}
package/dist/Link.js CHANGED
@@ -4,18 +4,46 @@ export const Link = defineComponent({
4
4
  name: "Link",
5
5
  props: {
6
6
  href: { type: String, default: undefined },
7
+ variant: { type: String, default: "inline" },
7
8
  muted: { type: Boolean, default: false },
8
9
  standalone: { type: Boolean, default: false },
9
10
  disabled: { type: Boolean, default: false },
11
+ external: { type: Boolean, default: false },
10
12
  class: { type: String, default: undefined },
11
13
  },
12
14
  setup(props, { slots, attrs }) {
13
- return () => h("a", {
14
- ...attrs,
15
- href: props.href,
16
- class: classNames("st-link", props.muted && "st-link--muted", props.standalone && "st-link--standalone", props.disabled && "st-link--disabled", props.class),
17
- "aria-disabled": props.disabled || undefined,
18
- }, slots.default?.());
15
+ return () => {
16
+ // `variant` est canonique ; les booléens standalone/muted sont des
17
+ // raccourcis dépréciés (parité Svelte/React). `variant` explicite l'emporte.
18
+ const effective = props.variant !== "inline"
19
+ ? props.variant
20
+ : props.standalone
21
+ ? "standalone"
22
+ : props.muted
23
+ ? "muted"
24
+ : "inline";
25
+ const resolvedTarget = attrs.target ?? (props.external ? "_blank" : undefined);
26
+ const resolvedRel = attrs.rel ?? (props.external ? "noreferrer" : undefined);
27
+ // Retire onClick du spread : Vue fusionne sinon le handler attrs avec le
28
+ // nôtre (tableau de listeners), ce qui rappellerait l'utilisateur même en
29
+ // disabled. On le rappelle nous-mêmes, et seulement quand non-disabled.
30
+ const { onClick: attrsOnClick, ...restAttrs } = attrs;
31
+ return h("a", {
32
+ ...restAttrs,
33
+ href: props.disabled ? undefined : props.href,
34
+ target: resolvedTarget,
35
+ rel: resolvedRel,
36
+ class: classNames("st-link", `st-link--${effective}`, props.disabled && "st-link--disabled", props.class),
37
+ "aria-disabled": props.disabled || undefined,
38
+ onClick: (event) => {
39
+ if (props.disabled) {
40
+ event.preventDefault();
41
+ return;
42
+ }
43
+ attrsOnClick?.(event);
44
+ },
45
+ }, slots.default?.());
46
+ };
19
47
  },
20
48
  });
21
49
  //# sourceMappingURL=Link.js.map
package/dist/Link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC;IAClC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QACxC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;KAC5C;IACD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,OAAO,GAAG,EAAE,CACV,CAAC,CACC,GAAG,EACH;YACE,GAAG,KAAK;YACR,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,UAAU,CACf,SAAS,EACT,KAAK,CAAC,KAAK,IAAI,gBAAgB,EAC/B,KAAK,CAAC,UAAU,IAAI,qBAAqB,EACzC,KAAK,CAAC,QAAQ,IAAI,mBAAmB,EACrC,KAAK,CAAC,KAAK,CACZ;YACD,eAAe,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS;SAC7C,EACD,KAAK,CAAC,OAAO,EAAE,EAAE,CAClB,CAAC;IACN,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC;IAClC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAiD,EAAE,OAAO,EAAE,QAAQ,EAAE;QACvF,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QACxC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;KAC5C;IACD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,OAAO,GAAG,EAAE;YACV,mEAAmE;YACnE,6EAA6E;YAC7E,MAAM,SAAS,GACb,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACxB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,KAAK,CAAC,UAAU;oBAChB,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,KAAK,CAAC,KAAK;wBACX,CAAC,CAAC,OAAO;wBACT,CAAC,CAAC,QAAQ,CAAC;YACnB,MAAM,cAAc,GACjB,KAAK,CAAC,MAA6B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAClF,MAAM,WAAW,GACd,KAAK,CAAC,GAA0B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnF,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,KAAgC,CAAC;YACjF,OAAO,CAAC,CACN,GAAG,EACH;gBACE,GAAG,SAAS;gBACZ,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;gBAC7C,MAAM,EAAE,cAAc;gBACtB,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,UAAU,CACf,SAAS,EACT,YAAY,SAAS,EAAE,EACvB,KAAK,CAAC,QAAQ,IAAI,mBAAmB,EACrC,KAAK,CAAC,KAAK,CACZ;gBACD,eAAe,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS;gBAC5C,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;oBAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACnB,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,OAAO;oBACT,CAAC;oBACA,YAA0D,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvE,CAAC;aACF,EACD,KAAK,CAAC,OAAO,EAAE,EAAE,CAClB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-vue",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Vue 3 components for the Sentropic design system.",
5
5
  "type": "module",
6
6
  "publishConfig": {