@sentropic/design-system-vue 0.36.19 → 0.36.21

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.
@@ -7,6 +7,22 @@ export type AppHeaderProps = {
7
7
  * Auto-généré et stable si non fourni.
8
8
  */
9
9
  drawerId?: string;
10
+ /**
11
+ * Marque structurée (décision actée : logo SENT + sous-titre). Rend le bloc
12
+ * canonique « logo carré + nom + sous-titre produit ». Si le slot `logo` est
13
+ * fourni, il a priorité (contrôle total).
14
+ */
15
+ brandName?: string;
16
+ /** Sous-titre produit affiché sous le nom (ex. « Design System », « dataviz »). */
17
+ productName?: string;
18
+ /** Source de l'image du logo carré (ex. `/SENT-logo-squared.svg`). */
19
+ logoSrc?: string;
20
+ /** Texte alternatif du logo (décoratif par défaut). */
21
+ logoAlt?: string;
22
+ /** Cible du lien de la marque. Défaut : `/`. */
23
+ brandHref?: string;
24
+ /** aria-label du lien de marque (sinon dérivé de `brandName` + `productName`). */
25
+ brandLabel?: string;
10
26
  class?: string;
11
27
  };
12
28
  export declare const AppHeader: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -26,6 +42,30 @@ export declare const AppHeader: import("vue").DefineComponent<import("vue").Extr
26
42
  type: StringConstructor;
27
43
  default: undefined;
28
44
  };
45
+ brandName: {
46
+ type: StringConstructor;
47
+ default: undefined;
48
+ };
49
+ productName: {
50
+ type: StringConstructor;
51
+ default: undefined;
52
+ };
53
+ logoSrc: {
54
+ type: StringConstructor;
55
+ default: undefined;
56
+ };
57
+ logoAlt: {
58
+ type: StringConstructor;
59
+ default: string;
60
+ };
61
+ brandHref: {
62
+ type: StringConstructor;
63
+ default: string;
64
+ };
65
+ brandLabel: {
66
+ type: StringConstructor;
67
+ default: undefined;
68
+ };
29
69
  class: {
30
70
  type: StringConstructor;
31
71
  default: undefined;
@@ -51,6 +91,30 @@ export declare const AppHeader: import("vue").DefineComponent<import("vue").Extr
51
91
  type: StringConstructor;
52
92
  default: undefined;
53
93
  };
94
+ brandName: {
95
+ type: StringConstructor;
96
+ default: undefined;
97
+ };
98
+ productName: {
99
+ type: StringConstructor;
100
+ default: undefined;
101
+ };
102
+ logoSrc: {
103
+ type: StringConstructor;
104
+ default: undefined;
105
+ };
106
+ logoAlt: {
107
+ type: StringConstructor;
108
+ default: string;
109
+ };
110
+ brandHref: {
111
+ type: StringConstructor;
112
+ default: string;
113
+ };
114
+ brandLabel: {
115
+ type: StringConstructor;
116
+ default: undefined;
117
+ };
54
118
  class: {
55
119
  type: StringConstructor;
56
120
  default: undefined;
@@ -63,5 +127,11 @@ export declare const AppHeader: import("vue").DefineComponent<import("vue").Extr
63
127
  menuOpen: boolean;
64
128
  menuLabel: string;
65
129
  drawerId: string;
130
+ brandName: string;
131
+ productName: string;
132
+ logoSrc: string;
133
+ logoAlt: string;
134
+ brandHref: string;
135
+ brandLabel: string;
66
136
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
67
137
  //# sourceMappingURL=AppHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../src/AppHeader.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAgDF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAyEpB,CAAC"}
1
+ {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../src/AppHeader.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAgDF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAgHpB,CAAC"}
package/dist/AppHeader.js CHANGED
@@ -46,6 +46,12 @@ export const AppHeader = defineComponent({
46
46
  menuOpen: { type: Boolean, default: false },
47
47
  menuLabel: { type: String, default: "Menu" },
48
48
  drawerId: { type: String, default: undefined },
49
+ brandName: { type: String, default: undefined },
50
+ productName: { type: String, default: undefined },
51
+ logoSrc: { type: String, default: undefined },
52
+ logoAlt: { type: String, default: "" },
53
+ brandHref: { type: String, default: "/" },
54
+ brandLabel: { type: String, default: undefined },
49
55
  class: { type: String, default: undefined },
50
56
  },
51
57
  emits: ["menuToggle"],
@@ -54,11 +60,38 @@ export const AppHeader = defineComponent({
54
60
  // Id stable du tiroir : prop fournie sinon compteur module (SSR-safe).
55
61
  const resolvedDrawerId = props.drawerId ?? `st-appHeader-drawer-${++appHeaderIdCounter}`;
56
62
  return () => {
63
+ const hasDefaultBrand = !slots.logo && Boolean(props.brandName || props.productName || props.logoSrc);
64
+ const resolvedBrandLabel = props.brandLabel ?? [props.brandName, props.productName].filter(Boolean).join(" ");
57
65
  const bar = h("div", { class: "st-appHeader__bar" }, [
58
66
  // Logo SENT à GAUCHE (+ sous-titre).
59
67
  slots.logo
60
68
  ? h("div", { class: "st-appHeader__logo" }, slots.logo())
61
- : null,
69
+ : hasDefaultBrand
70
+ ? h("a", {
71
+ class: "st-appHeader__brand",
72
+ href: props.brandHref,
73
+ "aria-label": resolvedBrandLabel || undefined,
74
+ }, [
75
+ props.logoSrc
76
+ ? h("img", {
77
+ class: "st-appHeader__brandMark",
78
+ src: props.logoSrc,
79
+ alt: props.logoAlt,
80
+ "aria-hidden": props.logoAlt ? undefined : "true",
81
+ })
82
+ : null,
83
+ props.brandName || props.productName
84
+ ? h("span", { class: "st-appHeader__brandCopy" }, [
85
+ props.brandName
86
+ ? h("span", { class: "st-appHeader__brandName" }, props.brandName)
87
+ : null,
88
+ props.productName
89
+ ? h("span", { class: "st-appHeader__brandProduct" }, props.productName)
90
+ : null,
91
+ ])
92
+ : null,
93
+ ])
94
+ : null,
62
95
  // Nav desktop + actions (masqués en mode compact).
63
96
  !props.compact
64
97
  ? h("nav", { class: "st-appHeader__nav", "aria-label": "Primary" }, slots.nav?.())
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.js","sourceRoot":"","sources":["../src/AppHeader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppHeader.js","sourceRoot":"","sources":["../src/AppHeader.ts"],"names":[],"mappings":"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"}
@@ -83,10 +83,10 @@ export declare const Autosave: import("vue").DefineComponent<import("vue").Extra
83
83
  }>, {
84
84
  class: string;
85
85
  status: AutosaveStatus;
86
+ locale: string;
86
87
  labels: AutosaveLabels;
87
88
  lastSaved: string | Date;
88
89
  onRetry: () => void;
89
90
  retryLabel: string;
90
- locale: string;
91
91
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
92
92
  //# sourceMappingURL=Autosave.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Autosave.d.ts","sourceRoot":"","sources":["../src/Autosave.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yCAAyC;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAcF,eAAO,MAAM,QAAQ;;cAGS,MAAM,cAAc;;;;cACE,MAAM,MAAM,GAAG,IAAI;;;;cAC3B,MAAM,MAAM,IAAI;;;;cAC9B,MAAM,cAAc;;;;;;;;;;;;;;;;;;;cAHpB,MAAM,cAAc;;;;cACE,MAAM,MAAM,GAAG,IAAI;;;;cAC3B,MAAM,MAAM,IAAI;;;;cAC9B,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;mBADM,IAAI;;;4EA4F1D,CAAC"}
1
+ {"version":3,"file":"Autosave.d.ts","sourceRoot":"","sources":["../src/Autosave.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yCAAyC;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAcF,eAAO,MAAM,QAAQ;;cAGS,MAAM,cAAc;;;;cACE,MAAM,MAAM,GAAG,IAAI;;;;cAC3B,MAAM,MAAM,IAAI;;;;cAC9B,MAAM,cAAc;;;;;;;;;;;;;;;;;;;cAHpB,MAAM,cAAc;;;;cACE,MAAM,MAAM,GAAG,IAAI;;;;cAC3B,MAAM,MAAM,IAAI;;;;cAC9B,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;mBADM,IAAI;;4EA4F1D,CAAC"}
package/dist/Avatar.d.ts CHANGED
@@ -78,8 +78,8 @@ export declare const Avatar: import("vue").DefineComponent<import("vue").Extract
78
78
  size: AvatarSize;
79
79
  class: string;
80
80
  tone: AvatarTone;
81
- shape: AvatarShape;
82
81
  src: string;
83
82
  alt: string;
83
+ shape: AvatarShape;
84
84
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
85
85
  //# sourceMappingURL=Avatar.d.ts.map
@@ -124,8 +124,8 @@ export declare const Calendar: import("vue").DefineComponent<import("vue").Extra
124
124
  onChange: (value: CalendarValue) => void;
125
125
  max: string;
126
126
  min: string;
127
- value: CalendarValue;
128
127
  locale: string;
128
+ value: CalendarValue;
129
129
  month: string;
130
130
  range: boolean;
131
131
  weekStartsOn: 0 | 1;
@@ -0,0 +1,101 @@
1
+ import { type PropType, type VNode } from "vue";
2
+ export type ConfigItemSourceLevel = "code" | "admin" | "user";
3
+ export type ConfigItem = {
4
+ id: string;
5
+ name: string;
6
+ key?: string;
7
+ description?: string | null;
8
+ /** Provenance : `code`/`admin` = système (verrouillé), `user` = personnalisé. */
9
+ sourceLevel: ConfigItemSourceLevel;
10
+ /** Identifiant du parent si l'item est une copie d'un défaut système. */
11
+ parentId?: string | null;
12
+ version?: number;
13
+ };
14
+ export type ConfigItemCardProps = {
15
+ item: ConfigItem;
16
+ hasCopy?: boolean;
17
+ onCopy?: (id: string) => void;
18
+ onEdit?: (id: string) => void;
19
+ onReset?: (id: string) => void;
20
+ onDelete?: (id: string) => void;
21
+ disabled?: boolean;
22
+ class?: string;
23
+ };
24
+ export declare const ConfigItemCard: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
25
+ item: {
26
+ type: PropType<ConfigItem>;
27
+ required: true;
28
+ };
29
+ hasCopy: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ onCopy: {
34
+ type: PropType<(id: string) => void>;
35
+ default: undefined;
36
+ };
37
+ onEdit: {
38
+ type: PropType<(id: string) => void>;
39
+ default: undefined;
40
+ };
41
+ onReset: {
42
+ type: PropType<(id: string) => void>;
43
+ default: undefined;
44
+ };
45
+ onDelete: {
46
+ type: PropType<(id: string) => void>;
47
+ default: undefined;
48
+ };
49
+ disabled: {
50
+ type: BooleanConstructor;
51
+ default: boolean;
52
+ };
53
+ class: {
54
+ type: StringConstructor;
55
+ default: undefined;
56
+ };
57
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
58
+ [key: string]: any;
59
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
60
+ item: {
61
+ type: PropType<ConfigItem>;
62
+ required: true;
63
+ };
64
+ hasCopy: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
68
+ onCopy: {
69
+ type: PropType<(id: string) => void>;
70
+ default: undefined;
71
+ };
72
+ onEdit: {
73
+ type: PropType<(id: string) => void>;
74
+ default: undefined;
75
+ };
76
+ onReset: {
77
+ type: PropType<(id: string) => void>;
78
+ default: undefined;
79
+ };
80
+ onDelete: {
81
+ type: PropType<(id: string) => void>;
82
+ default: undefined;
83
+ };
84
+ disabled: {
85
+ type: BooleanConstructor;
86
+ default: boolean;
87
+ };
88
+ class: {
89
+ type: StringConstructor;
90
+ default: undefined;
91
+ };
92
+ }>> & Readonly<{}>, {
93
+ class: string;
94
+ onCopy: (id: string) => void;
95
+ onReset: (id: string) => void;
96
+ disabled: boolean;
97
+ hasCopy: boolean;
98
+ onEdit: (id: string) => void;
99
+ onDelete: (id: string) => void;
100
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
101
+ //# sourceMappingURL=ConfigItemCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigItemCard.d.ts","sourceRoot":"","sources":["../src/ConfigItemCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAGpE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iFAAiF;IACjF,WAAW,EAAE,qBAAqB,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAmBF,eAAO,MAAM,cAAc;;cAGC,QAAQ,CAAC,UAAU,CAAC;;;;;;;;cAEhB,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;cAC9B,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;cAC7B,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;cAC7B,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;;;;;;;;;;;;cALpC,QAAQ,CAAC,UAAU,CAAC;;;;;;;;cAEhB,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;cAC9B,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;cAC7B,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;cAC7B,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;;;;;;;;;;iBAHlB,MAAM,KAAK,IAAI;kBAEd,MAAM,KAAK,IAAI;;;iBADhB,MAAM,KAAK,IAAI;mBAEb,MAAM,KAAK,IAAI;4EAgK7D,CAAC"}
@@ -0,0 +1,134 @@
1
+ import { defineComponent, h } from "vue";
2
+ import { classNames } from "./classNames.js";
3
+ function icon(path) {
4
+ return h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false" }, [
5
+ h("path", {
6
+ d: path,
7
+ fill: "none",
8
+ stroke: "currentColor",
9
+ "stroke-width": "1.25",
10
+ "stroke-linecap": "round",
11
+ "stroke-linejoin": "round",
12
+ }),
13
+ ]);
14
+ }
15
+ export const ConfigItemCard = defineComponent({
16
+ name: "ConfigItemCard",
17
+ props: {
18
+ item: { type: Object, required: true },
19
+ hasCopy: { type: Boolean, default: false },
20
+ onCopy: { type: Function, default: undefined },
21
+ onEdit: { type: Function, default: undefined },
22
+ onReset: { type: Function, default: undefined },
23
+ onDelete: { type: Function, default: undefined },
24
+ disabled: { type: Boolean, default: false },
25
+ class: { type: String, default: undefined },
26
+ },
27
+ setup(props, { attrs, slots }) {
28
+ return () => {
29
+ const item = props.item;
30
+ const isSystem = item.sourceLevel === "code" || item.sourceLevel === "admin";
31
+ const isCopied = item.sourceLevel === "user" && !!item.parentId;
32
+ const isUserCreated = item.sourceLevel === "user" && !item.parentId;
33
+ const showCopy = isSystem && !props.hasCopy && !!props.onCopy;
34
+ const showEdit = (isCopied || isUserCreated) && !!props.onEdit;
35
+ const showReset = isCopied && !!props.onReset;
36
+ const showDelete = isUserCreated && !!props.onDelete;
37
+ const headerChildren = [
38
+ h("span", { class: "st-configItemCard__name" }, item.name),
39
+ ];
40
+ if (isSystem) {
41
+ headerChildren.push(h("span", { class: "st-configItemCard__badge st-configItemCard__badge--system" }, [
42
+ h("svg", {
43
+ class: "st-configItemCard__badgeIcon",
44
+ width: "12",
45
+ height: "12",
46
+ viewBox: "0 0 14 14",
47
+ "aria-hidden": "true",
48
+ focusable: "false",
49
+ }, [
50
+ h("path", {
51
+ d: "M4 6V4.5a3 3 0 0 1 6 0V6M3.5 6h7A1.5 1.5 0 0 1 12 7.5v3A1.5 1.5 0 0 1 10.5 12h-7A1.5 1.5 0 0 1 2 10.5v-3A1.5 1.5 0 0 1 3.5 6Z",
52
+ fill: "none",
53
+ stroke: "currentColor",
54
+ "stroke-width": "1.25",
55
+ "stroke-linecap": "round",
56
+ "stroke-linejoin": "round",
57
+ }),
58
+ ]),
59
+ "Système",
60
+ ]));
61
+ }
62
+ else if (isCopied) {
63
+ headerChildren.push(h("span", { class: "st-configItemCard__badge st-configItemCard__badge--custom" }, "Personnalisé"));
64
+ }
65
+ const children = [
66
+ h("div", { class: "st-configItemCard__header" }, headerChildren),
67
+ ];
68
+ if (item.key) {
69
+ children.push(h("div", { class: "st-configItemCard__key" }, item.key));
70
+ }
71
+ if (item.description) {
72
+ children.push(h("p", { class: "st-configItemCard__description" }, item.description));
73
+ }
74
+ if (showCopy || showEdit || showReset || showDelete) {
75
+ const actions = [];
76
+ if (showCopy) {
77
+ actions.push(h("button", {
78
+ type: "button",
79
+ class: "st-configItemCard__action",
80
+ title: "Copier",
81
+ "aria-label": "Copier",
82
+ disabled: props.disabled,
83
+ onClick: () => props.onCopy?.(item.id),
84
+ }, [
85
+ icon("M5.5 5.5V3.75A1.25 1.25 0 0 1 6.75 2.5h5.5A1.25 1.25 0 0 1 13.5 3.75v5.5a1.25 1.25 0 0 1-1.25 1.25H10.5M3.75 5.5h5.5A1.25 1.25 0 0 1 10.5 6.75v5.5a1.25 1.25 0 0 1-1.25 1.25h-5.5A1.25 1.25 0 0 1 2.5 12.25v-5.5A1.25 1.25 0 0 1 3.75 5.5Z"),
86
+ ]));
87
+ }
88
+ if (showEdit) {
89
+ actions.push(h("button", {
90
+ type: "button",
91
+ class: "st-configItemCard__action",
92
+ title: "Éditer",
93
+ "aria-label": "Éditer",
94
+ disabled: props.disabled,
95
+ onClick: () => props.onEdit?.(item.id),
96
+ }, [icon("m10.5 2.5 3 3L6 13l-3.5.5L3 10l7.5-7.5Z")]));
97
+ }
98
+ if (showReset) {
99
+ actions.push(h("button", {
100
+ type: "button",
101
+ class: "st-configItemCard__action st-configItemCard__action--warning",
102
+ title: "Réinitialiser",
103
+ "aria-label": "Réinitialiser",
104
+ disabled: props.disabled,
105
+ onClick: () => props.onReset?.(item.id),
106
+ }, [icon("M3 8a5 5 0 1 1 1.5 3.5M3 8V5M3 8h3")]));
107
+ }
108
+ if (showDelete) {
109
+ actions.push(h("button", {
110
+ type: "button",
111
+ class: "st-configItemCard__action st-configItemCard__action--danger",
112
+ title: "Supprimer",
113
+ "aria-label": "Supprimer",
114
+ disabled: props.disabled,
115
+ onClick: () => props.onDelete?.(item.id),
116
+ }, [
117
+ icon("M3 4.5h10M6 4.5V3.25A.75.75 0 0 1 6.75 2.5h2.5a.75.75 0 0 1 .75.75V4.5M4.25 4.5l.5 8A1 1 0 0 0 5.75 13.5h4.5a1 1 0 0 0 1-.99l.5-8"),
118
+ ]));
119
+ }
120
+ children.push(h("div", { class: "st-configItemCard__actions" }, actions));
121
+ }
122
+ const slotContent = slots.default?.();
123
+ if (slotContent) {
124
+ children.push(...slotContent);
125
+ }
126
+ return h("article", {
127
+ ...attrs,
128
+ class: classNames("st-configItemCard", props.class),
129
+ "data-testid": `config-item-card-${item.key ?? item.id}`,
130
+ }, children);
131
+ };
132
+ },
133
+ });
134
+ //# sourceMappingURL=ConfigItemCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigItemCard.js","sourceRoot":"","sources":["../src/ConfigItemCard.ts"],"names":[],"mappings":"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"}
@@ -65,8 +65,8 @@ export declare const CopyButton: import("vue").DefineComponent<import("vue").Ext
65
65
  size: CopyButtonSize;
66
66
  class: string;
67
67
  label: string;
68
- text: string;
69
68
  value: string;
69
+ text: string;
70
70
  copiedLabel: string;
71
71
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
72
72
  //# sourceMappingURL=CopyButton.d.ts.map
@@ -263,8 +263,8 @@ export declare const DataTable: import("vue").DefineComponent<import("vue").Extr
263
263
  size: DataTableSize;
264
264
  class: string;
265
265
  caption: VNodeChild;
266
- selectedIds: string[];
267
266
  page: number;
267
+ selectedIds: string[];
268
268
  emptyLabel: string;
269
269
  selectable: DataTableSelectMode;
270
270
  onSelectionChange: (ids: string[]) => void;
@@ -0,0 +1,71 @@
1
+ import { type PropType, type VNode } from "vue";
2
+ export type FieldCardVariant = "plain" | "bordered" | "accent";
3
+ export type FieldCardTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
4
+ export type FieldCardProps = {
5
+ label: string;
6
+ variant?: FieldCardVariant;
7
+ tone?: FieldCardTone;
8
+ commentCount?: number;
9
+ onOpenComments?: () => void;
10
+ class?: string;
11
+ };
12
+ export declare const FieldCard: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
13
+ label: {
14
+ type: StringConstructor;
15
+ required: true;
16
+ };
17
+ variant: {
18
+ type: PropType<FieldCardVariant>;
19
+ default: string;
20
+ };
21
+ tone: {
22
+ type: PropType<FieldCardTone>;
23
+ default: undefined;
24
+ };
25
+ commentCount: {
26
+ type: NumberConstructor;
27
+ default: number;
28
+ };
29
+ onOpenComments: {
30
+ type: PropType<() => void>;
31
+ default: undefined;
32
+ };
33
+ class: {
34
+ type: StringConstructor;
35
+ default: undefined;
36
+ };
37
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
38
+ [key: string]: any;
39
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
40
+ label: {
41
+ type: StringConstructor;
42
+ required: true;
43
+ };
44
+ variant: {
45
+ type: PropType<FieldCardVariant>;
46
+ default: string;
47
+ };
48
+ tone: {
49
+ type: PropType<FieldCardTone>;
50
+ default: undefined;
51
+ };
52
+ commentCount: {
53
+ type: NumberConstructor;
54
+ default: number;
55
+ };
56
+ onOpenComments: {
57
+ type: PropType<() => void>;
58
+ default: undefined;
59
+ };
60
+ class: {
61
+ type: StringConstructor;
62
+ default: undefined;
63
+ };
64
+ }>> & Readonly<{}>, {
65
+ class: string;
66
+ tone: FieldCardTone;
67
+ variant: FieldCardVariant;
68
+ commentCount: number;
69
+ onOpenComments: () => void;
70
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
71
+ //# sourceMappingURL=FieldCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldCard.d.ts","sourceRoot":"","sources":["../src/FieldCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAGpE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAsBF,eAAO,MAAM,SAAS;;;;;;cAIS,QAAQ,CAAC,gBAAgB,CAAC;;;;cAC7B,QAAQ,CAAC,aAAa,CAAC;;;;;;;;cAEX,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;;;;;;;;;;;cAH7B,QAAQ,CAAC,gBAAgB,CAAC;;;;cAC7B,QAAQ,CAAC,aAAa,CAAC;;;;;;;;cAEX,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;;;;;;;;0BAAL,IAAI;4EAgEzD,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { defineComponent, h } from "vue";
2
+ import { classNames } from "./classNames.js";
3
+ const COMMENT_PATH = "M2.5 4.25A1.25 1.25 0 0 1 3.75 3h8.5A1.25 1.25 0 0 1 13.5 4.25v5A1.25 1.25 0 0 1 12.25 10.5H6.5L3.5 13v-2.5h-.75A.25.25 0 0 1 2.5 10.25v-6Z";
4
+ function commentIcon() {
5
+ return h("svg", { width: "14", height: "14", viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false" }, [
6
+ h("path", {
7
+ d: COMMENT_PATH,
8
+ fill: "none",
9
+ stroke: "currentColor",
10
+ "stroke-width": "1.25",
11
+ "stroke-linecap": "round",
12
+ "stroke-linejoin": "round",
13
+ }),
14
+ ]);
15
+ }
16
+ export const FieldCard = defineComponent({
17
+ name: "FieldCard",
18
+ props: {
19
+ label: { type: String, required: true },
20
+ variant: { type: String, default: "bordered" },
21
+ tone: { type: String, default: undefined },
22
+ commentCount: { type: Number, default: 0 },
23
+ onOpenComments: { type: Function, default: undefined },
24
+ class: { type: String, default: undefined },
25
+ },
26
+ setup(props, { attrs, slots }) {
27
+ return () => {
28
+ const variant = props.variant ?? "bordered";
29
+ const showBadge = props.commentCount > 0 || !!props.onOpenComments;
30
+ const headerChildren = [
31
+ h("h3", { class: "st-fieldCard__label" }, props.label),
32
+ ];
33
+ if (showBadge) {
34
+ if (props.onOpenComments) {
35
+ const badgeChildren = [commentIcon()];
36
+ if (props.commentCount > 0) {
37
+ badgeChildren.push(h("span", { class: "st-fieldCard__commentCount" }, String(props.commentCount)));
38
+ }
39
+ headerChildren.push(h("button", {
40
+ type: "button",
41
+ class: "st-fieldCard__comments",
42
+ "aria-label": `Commentaires (${props.commentCount})`,
43
+ onClick: () => props.onOpenComments?.(),
44
+ }, badgeChildren));
45
+ }
46
+ else {
47
+ headerChildren.push(h("span", { class: "st-fieldCard__comments st-fieldCard__comments--static" }, [
48
+ commentIcon(),
49
+ h("span", { class: "st-fieldCard__commentCount" }, String(props.commentCount)),
50
+ ]));
51
+ }
52
+ }
53
+ return h("section", {
54
+ ...attrs,
55
+ class: classNames("st-fieldCard", `st-fieldCard--${variant}`, variant === "accent" && props.tone && `st-fieldCard--${props.tone}`, props.class),
56
+ }, [
57
+ h("header", { class: "st-fieldCard__header" }, headerChildren),
58
+ h("div", { class: "st-fieldCard__body" }, slots.default?.()),
59
+ ]);
60
+ };
61
+ },
62
+ });
63
+ //# sourceMappingURL=FieldCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldCard.js","sourceRoot":"","sources":["../src/FieldCard.ts"],"names":[],"mappings":"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"}