@sentropic/design-system-vue 0.36.20 → 0.36.22

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.
@@ -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"}
@@ -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":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6B,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2B7C,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9F;QACE,CAAC,CAAC,MAAM,EAAE;YACR,CAAC,EAAE,IAAI;YACP,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,cAAc;YACtB,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,OAAO;YACzB,iBAAiB,EAAE,OAAO;SAC3B,CAAC;KACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,MAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9D,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAA0C,EAAE,OAAO,EAAE,SAAS,EAAE;QAChF,MAAM,EAAE,EAAE,IAAI,EAAE,QAA0C,EAAE,OAAO,EAAE,SAAS,EAAE;QAChF,OAAO,EAAE,EAAE,IAAI,EAAE,QAA0C,EAAE,OAAO,EAAE,SAAS,EAAE;QACjF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAA0C,EAAE,OAAO,EAAE,SAAS,EAAE;QAClF,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,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC;YAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAChE,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAEpE,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9D,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/D,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9C,MAAM,UAAU,GAAG,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YAErD,MAAM,cAAc,GAAY;gBAC9B,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;aAC3D,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,cAAc,CAAC,IAAI,CACjB,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,2DAA2D,EAAE,EAAE;oBAChF,CAAC,CACC,KAAK,EACL;wBACE,KAAK,EAAE,8BAA8B;wBACrC,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,WAAW;wBACpB,aAAa,EAAE,MAAM;wBACrB,SAAS,EAAE,OAAO;qBACnB,EACD;wBACE,CAAC,CAAC,MAAM,EAAE;4BACR,CAAC,EAAE,+HAA+H;4BAClI,IAAI,EAAE,MAAM;4BACZ,MAAM,EAAE,cAAc;4BACtB,cAAc,EAAE,MAAM;4BACtB,gBAAgB,EAAE,OAAO;4BACzB,iBAAiB,EAAE,OAAO;yBAC3B,CAAC;qBACH,CACF;oBACD,SAAS;iBACV,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,cAAc,CAAC,IAAI,CACjB,CAAC,CACC,MAAM,EACN,EAAE,KAAK,EAAE,2DAA2D,EAAE,EACtE,cAAc,CACf,CACF,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAY;gBACxB,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,cAAc,CAAC;aACjE,CAAC;YAEF,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvF,CAAC;YAED,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAY,EAAE,CAAC;gBAC5B,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CACV,CAAC,CACC,QAAQ,EACR;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,2BAA2B;wBAClC,KAAK,EAAE,QAAQ;wBACf,YAAY,EAAE,QAAQ;wBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;qBACvC,EACD;wBACE,IAAI,CACF,4OAA4O,CAC7O;qBACF,CACF,CACF,CAAC;gBACJ,CAAC;gBACD,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CACV,CAAC,CACC,QAAQ,EACR;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,2BAA2B;wBAClC,KAAK,EAAE,QAAQ;wBACf,YAAY,EAAE,QAAQ;wBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;qBACvC,EACD,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAClD,CACF,CAAC;gBACJ,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CACV,CAAC,CACC,QAAQ,EACR;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,8DAA8D;wBACrE,KAAK,EAAE,eAAe;wBACtB,YAAY,EAAE,eAAe;wBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;qBACxC,EACD,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAC7C,CACF,CAAC;gBACJ,CAAC;gBACD,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CACV,CAAC,CACC,QAAQ,EACR;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,6DAA6D;wBACpE,KAAK,EAAE,WAAW;wBAClB,YAAY,EAAE,WAAW;wBACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;qBACzC,EACD;wBACE,IAAI,CACF,mIAAmI,CACpI;qBACF,CACF,CACF,CAAC;gBACJ,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACtC,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,CAAC,CACN,SAAS,EACT;gBACE,GAAG,KAAK;gBACR,KAAK,EAAE,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC;gBACnD,aAAa,EAAE,oBAAoB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE;aACzD,EACD,QAAQ,CACT,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -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,48 @@
1
+ /** A single field error: `href` points to the offending control, `text` is the message. */
2
+ export type ErrorSummaryItem = {
3
+ href: string;
4
+ text: string;
5
+ };
6
+ export type ErrorSummaryProps = {
7
+ heading?: string;
8
+ errors?: ErrorSummaryItem[];
9
+ class?: string;
10
+ };
11
+ /**
12
+ * ErrorSummary — GCDS « Error summary »: an aggregated list of a form's errors,
13
+ * each entry linking to the field that needs attention.
14
+ */
15
+ export declare const ErrorSummary: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
16
+ heading: {
17
+ type: StringConstructor;
18
+ default: string;
19
+ };
20
+ errors: {
21
+ type: () => ErrorSummaryItem[];
22
+ default: () => never[];
23
+ };
24
+ class: {
25
+ type: StringConstructor;
26
+ default: undefined;
27
+ };
28
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
29
+ [key: string]: any;
30
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
31
+ heading: {
32
+ type: StringConstructor;
33
+ default: string;
34
+ };
35
+ errors: {
36
+ type: () => ErrorSummaryItem[];
37
+ default: () => never[];
38
+ };
39
+ class: {
40
+ type: StringConstructor;
41
+ default: undefined;
42
+ };
43
+ }>> & Readonly<{}>, {
44
+ class: string;
45
+ heading: string;
46
+ errors: ErrorSummaryItem[];
47
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
48
+ //# sourceMappingURL=ErrorSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorSummary.d.ts","sourceRoot":"","sources":["../src/ErrorSummary.ts"],"names":[],"mappings":"AAGA,2FAA2F;AAC3F,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;cAKJ,MAAM,gBAAgB,EAAE;;;;;;;;;;;;;;;cAAxB,MAAM,gBAAgB,EAAE;;;;;;;;;;;4EAmC3C,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { defineComponent, h } from "vue";
2
+ import { classNames } from "./classNames.js";
3
+ /**
4
+ * ErrorSummary — GCDS « Error summary »: an aggregated list of a form's errors,
5
+ * each entry linking to the field that needs attention.
6
+ */
7
+ export const ErrorSummary = defineComponent({
8
+ name: "ErrorSummary",
9
+ props: {
10
+ heading: { type: String, default: "There was a problem" },
11
+ errors: {
12
+ type: Array,
13
+ default: () => [],
14
+ },
15
+ class: { type: String, default: undefined },
16
+ },
17
+ setup(props, { attrs }) {
18
+ return () => h("section", {
19
+ ...attrs,
20
+ class: classNames("st-error-summary", props.class),
21
+ role: "alert",
22
+ tabindex: "-1",
23
+ }, [
24
+ h("h2", { class: "st-error-summary__heading" }, props.heading),
25
+ props.errors.length > 0
26
+ ? h("ul", { class: "st-error-summary__list" }, props.errors.map((error) => h("li", { class: "st-error-summary__item", key: error.href }, [
27
+ h("a", { class: "st-error-summary__link", href: error.href }, error.text),
28
+ ])))
29
+ : null,
30
+ ]);
31
+ },
32
+ });
33
+ //# sourceMappingURL=ErrorSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorSummary.js","sourceRoot":"","sources":["../src/ErrorSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAW7C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE;QACzD,MAAM,EAAE;YACN,IAAI,EAAE,KAAiC;YACvC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;SAClB;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;KAC5C;IACD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE;QACpB,OAAO,GAAG,EAAE,CACV,CAAC,CACC,SAAS,EACT;YACE,GAAG,KAAK;YACR,KAAK,EAAE,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC;YAClD,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;SACf,EACD;YACE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;YAC9D,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,wBAAwB,EAAE,EACnC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzB,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE;oBAC5D,CAAC,CACC,GAAG,EACH,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACrD,KAAK,CAAC,IAAI,CACX;iBACF,CAAC,CACH,CACF;gBACH,CAAC,CAAC,IAAI;SACT,CACF,CAAC;IACN,CAAC;CACF,CAAC,CAAC"}
@@ -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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"}
@@ -0,0 +1,89 @@
1
+ import { type PropType, type VNode } from "vue";
2
+ export type ScoreCardType = "value" | "complexity";
3
+ export type ScoreCardSize = "sm" | "md" | "lg";
4
+ export type ScoreCardProps = {
5
+ title: string;
6
+ score: number;
7
+ stars: number;
8
+ max?: number;
9
+ type?: ScoreCardType;
10
+ unit?: string;
11
+ size?: ScoreCardSize;
12
+ class?: string;
13
+ };
14
+ export declare const ScoreCard: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
15
+ title: {
16
+ type: StringConstructor;
17
+ required: true;
18
+ };
19
+ score: {
20
+ type: NumberConstructor;
21
+ required: true;
22
+ };
23
+ stars: {
24
+ type: NumberConstructor;
25
+ required: true;
26
+ };
27
+ max: {
28
+ type: NumberConstructor;
29
+ default: number;
30
+ };
31
+ type: {
32
+ type: PropType<ScoreCardType>;
33
+ default: string;
34
+ };
35
+ unit: {
36
+ type: StringConstructor;
37
+ default: string;
38
+ };
39
+ size: {
40
+ type: PropType<ScoreCardSize>;
41
+ default: string;
42
+ };
43
+ class: {
44
+ type: StringConstructor;
45
+ default: undefined;
46
+ };
47
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
48
+ [key: string]: any;
49
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
50
+ title: {
51
+ type: StringConstructor;
52
+ required: true;
53
+ };
54
+ score: {
55
+ type: NumberConstructor;
56
+ required: true;
57
+ };
58
+ stars: {
59
+ type: NumberConstructor;
60
+ required: true;
61
+ };
62
+ max: {
63
+ type: NumberConstructor;
64
+ default: number;
65
+ };
66
+ type: {
67
+ type: PropType<ScoreCardType>;
68
+ default: string;
69
+ };
70
+ unit: {
71
+ type: StringConstructor;
72
+ default: string;
73
+ };
74
+ size: {
75
+ type: PropType<ScoreCardSize>;
76
+ default: string;
77
+ };
78
+ class: {
79
+ type: StringConstructor;
80
+ default: undefined;
81
+ };
82
+ }>> & Readonly<{}>, {
83
+ type: ScoreCardType;
84
+ size: ScoreCardSize;
85
+ class: string;
86
+ max: number;
87
+ unit: string;
88
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
89
+ //# sourceMappingURL=ScoreCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreCard.d.ts","sourceRoot":"","sources":["../src/ScoreCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAGpE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,YAAY,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAMF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;cAOM,QAAQ,CAAC,aAAa,CAAC;;;;;;;;cAEvB,QAAQ,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;cAFvB,QAAQ,CAAC,aAAa,CAAC;;;;;;;;cAEvB,QAAQ,CAAC,aAAa,CAAC;;;;;;;;;;;;;4EAsEjD,CAAC"}