@besaitech/ng-design-system-mcp 0.0.12 → 0.0.13
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/data/docs.json +151 -6
- package/package.json +1 -1
package/data/docs.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"libraryVersion": "0.0.
|
|
3
|
+
"libraryVersion": "0.0.44",
|
|
4
4
|
"packageName": "@besaitech/ng-design-system",
|
|
5
5
|
"devImport": "saitech-design-system",
|
|
6
|
-
"generatedAt": "2026-09-
|
|
6
|
+
"generatedAt": "2026-09-20T21:22:32.121Z",
|
|
7
7
|
"componentCount": 34,
|
|
8
8
|
"components": [
|
|
9
9
|
{
|
|
@@ -2156,8 +2156,8 @@
|
|
|
2156
2156
|
"importName": "SdsMultiSelect",
|
|
2157
2157
|
"description": "Liste déroulante à sélection multiple (la valeur est un tableau). Cases à cocher par option, « Tout sélectionner », affichage en puces ou en texte, filtre, effacement et navigation clavier. Overlay attaché au <body>. Implémente ControlValueAccessor.",
|
|
2158
2158
|
"overviewDescription": "Sélection multiple : puces, « tout sélectionner » et filtre.",
|
|
2159
|
-
"jsdoc": "Multi-select dropdown (value is an array). Options may be primitives or\nobjects (configure via [optionLabel]/[optionValue]/[optionDisabled]). The\noverlay is appended to <body>. Supports a \"select all\" toggle, per-option\ncheckboxes, chip or comma display, filtering, clearing and keyboard nav.\nImplements ControlValueAccessor — use with reactive forms or [(ngModel)].\n\nFor object options, set [optionValue] or [dataKey] so written values match by\nkey; otherwise matching falls back to reference equality.",
|
|
2160
|
-
"example": "<sds-multi-select [options]=\"
|
|
2159
|
+
"jsdoc": "Multi-select dropdown (value is an array). Options may be primitives or\nobjects (configure via [optionLabel]/[optionValue]/[optionDisabled]). The\noverlay is appended to <body>. Supports a \"select all\" toggle, per-option\ncheckboxes, chip or comma display, filtering, clearing and keyboard nav.\nImplements ControlValueAccessor — use with reactive forms or [(ngModel)].\n\nFor object options, set [optionValue] or [dataKey] so written values match by\nkey; otherwise matching falls back to reference equality.\n\nProject template directives to customise the panel:\n- `<ng-template sdsSelectOption let-option>` — the content of each option row, after its\n checkbox (see {@link SdsSelectOption}); context: the raw `option` (implicit), plus `label`,\n `value`, `selected`, `disabled`, `index`.\n- `<ng-template sdsSelectEmpty let-query>` — replaces the \"no results\" message (see {@link SdsSelectEmpty}).\n- `<ng-template sdsSelectFooter let-close=\"close\">` — a sticky footer action (see {@link SdsSelectFooter});\n `close()` dismisses the panel.",
|
|
2160
|
+
"example": "<sds-multi-select [options]=\"tags\" optionLabel=\"name\" optionValue=\"id\" [(ngModel)]=\"tagIds\">\n <ng-template sdsSelectOption let-option>\n <span class=\"dot\" [style.background]=\"option.color\"></span> {{ option.name }}\n </ng-template>\n</sds-multi-select>",
|
|
2161
2161
|
"cva": true,
|
|
2162
2162
|
"usesNgModel": true,
|
|
2163
2163
|
"inputs": [
|
|
@@ -2393,6 +2393,22 @@
|
|
|
2393
2393
|
"stack": true,
|
|
2394
2394
|
"dark": false
|
|
2395
2395
|
},
|
|
2396
|
+
{
|
|
2397
|
+
"sectionTitle": "Gabarit d'option (sdsSelectOption)",
|
|
2398
|
+
"sectionDescription": "Projetez un <ng-template sdsSelectOption> pour rendre chaque ligne d'option après sa case à cocher. Le contexte expose l'option brute (implicite), plus label, value, selected, disabled et index.",
|
|
2399
|
+
"code": "<sds-multi-select\n [options]=\"services\"\n optionLabel=\"name\"\n optionValue=\"code\"\n display=\"chip\"\n filter\n [(ngModel)]=\"codes\"\n placeholder=\"Choisir des services\"\n>\n <!-- Rendered after each option's checkbox. let-option is the raw option. -->\n <ng-template sdsSelectOption let-option>\n <span class=\"h-2.5 w-2.5 shrink-0 rounded-full\" [style.background]=\"option.color\"></span>\n <span class=\"truncate\">{{ option.name }}</span>\n </ng-template>\n</sds-multi-select>\n\n// services = [{ name: 'Cardiologie', code: 'CARD', color: '#ef4444' }, …];",
|
|
2400
|
+
"runnableExample": "<sds-multi-select\n [options]=\"coloredServices\"\n optionLabel=\"name\"\n optionValue=\"code\"\n display=\"chip\"\n filter\n [(ngModel)]=\"codes\"\n placeholder=\"Choisir des services\"\n >\n <ng-template sdsSelectOption let-option>\n <span class=\"h-2.5 w-2.5 shrink-0 rounded-full\" [style.background]=\"option.color\"></span>\n <span class=\"truncate\">{{ option.name }}</span>\n </ng-template>\n </sds-multi-select>",
|
|
2401
|
+
"stack": true,
|
|
2402
|
+
"dark": false
|
|
2403
|
+
},
|
|
2404
|
+
{
|
|
2405
|
+
"sectionTitle": "Gabarits vide et pied de liste (sdsSelectEmpty / sdsSelectFooter)",
|
|
2406
|
+
"sectionDescription": "Personnalisez l'état « aucun résultat » et ajoutez une action collante ; le pied reçoit close() pour refermer le panneau.",
|
|
2407
|
+
"code": "<sds-multi-select [options]=\"services\" optionLabel=\"name\" optionValue=\"code\" filter>\n <ng-template sdsSelectEmpty let-query>\n Aucun service pour « {{ query }} ».\n </ng-template>\n <ng-template sdsSelectFooter let-close=\"close\">\n <button type=\"button\" class=\"w-full px-3 py-2 text-brand-700\" (click)=\"addService(); close()\">\n + Nouveau service\n </button>\n </ng-template>\n</sds-multi-select>",
|
|
2408
|
+
"runnableExample": "<sds-multi-select\n [options]=\"services\"\n optionLabel=\"name\"\n optionValue=\"code\"\n filter\n placeholder=\"Choisir des services\"\n >\n <ng-template sdsSelectEmpty let-query>\n <span class=\"text-ink-faint\">Aucun service pour « {{ query }} ».</span>\n </ng-template>\n <ng-template sdsSelectFooter let-close=\"close\">\n <button\n type=\"button\"\n class=\"flex w-full items-center gap-2 px-3 py-2 text-sm font-medium text-brand-700 hover:bg-brand-50\"\n (click)=\"close()\"\n >\n + Nouveau service\n </button>\n </ng-template>\n </sds-multi-select>",
|
|
2409
|
+
"stack": true,
|
|
2410
|
+
"dark": false
|
|
2411
|
+
},
|
|
2396
2412
|
{
|
|
2397
2413
|
"sectionTitle": "Étiquette de comptage",
|
|
2398
2414
|
"sectionDescription": "Au-delà de [maxSelectedLabels], un libellé de comptage remplace la liste.",
|
|
@@ -3302,8 +3318,8 @@
|
|
|
3302
3318
|
"importName": "SdsSelect",
|
|
3303
3319
|
"description": "Liste déroulante à sélection unique. Options primitives ou objets (via optionLabel / optionValue / optionDisabled). Overlay attaché au <body>, filtre, effacement et navigation clavier complète. Implémente ControlValueAccessor.",
|
|
3304
3320
|
"overviewDescription": "Liste déroulante avec filtre, effacement et navigation clavier.",
|
|
3305
|
-
"jsdoc": "Single-select dropdown. Options may be primitives or objects (configure via\n[optionLabel]/[optionValue]/[optionDisabled]). The overlay is appended to\n<body>. Supports filtering, clearing, and full keyboard navigation.\nImplements ControlValueAccessor — use with reactive forms or [(ngModel)].\n\nFor object options, set [optionValue] or [dataKey] so written values match by\nkey; otherwise selection matching falls back to reference equality (a written\ncopy of an option will not match).",
|
|
3306
|
-
"example": "<sds-select [options]=\"
|
|
3321
|
+
"jsdoc": "Single-select dropdown. Options may be primitives or objects (configure via\n[optionLabel]/[optionValue]/[optionDisabled]). The overlay is appended to\n<body>. Supports filtering, clearing, and full keyboard navigation.\nImplements ControlValueAccessor — use with reactive forms or [(ngModel)].\n\nFor object options, set [optionValue] or [dataKey] so written values match by\nkey; otherwise selection matching falls back to reference equality (a written\ncopy of an option will not match).\n\nOptions render as plain text by default. To render richer options (an icon,\nan avatar, a two-line row…) project template directives — the same content\nalso renders in the trigger for the selected value:\n- `<ng-template sdsSelectOption let-option>` — one option row (see {@link SdsSelectOption});\n context: the raw `option` (implicit), plus `label`, `value`, `selected`, `disabled`, `index`.\n- `<ng-template sdsSelectEmpty let-query>` — replaces the \"no results\" message (see {@link SdsSelectEmpty}).\n- `<ng-template sdsSelectFooter let-close=\"close\">` — a sticky footer action, e.g. \"+ New…\"\n (see {@link SdsSelectFooter}); `close()` dismisses the panel.",
|
|
3322
|
+
"example": "<sds-select [options]=\"categories\" optionLabel=\"name\" optionValue=\"id\" [(ngModel)]=\"categoryId\">\n <ng-template sdsSelectOption let-option>\n <span class=\"dot\" [style.background]=\"option.color\"></span> {{ option.name }}\n </ng-template>\n</sds-select>",
|
|
3307
3323
|
"cva": true,
|
|
3308
3324
|
"usesNgModel": true,
|
|
3309
3325
|
"inputs": [
|
|
@@ -3504,6 +3520,30 @@
|
|
|
3504
3520
|
"stack": true,
|
|
3505
3521
|
"dark": false
|
|
3506
3522
|
},
|
|
3523
|
+
{
|
|
3524
|
+
"sectionTitle": "Gabarit d'option (sdsSelectOption)",
|
|
3525
|
+
"sectionDescription": "Projetez un <ng-template sdsSelectOption> pour rendre chaque option — et la valeur sélectionnée dans le champ — à votre guise. Le contexte expose l'option brute (implicite), plus label, value, selected, disabled et index.",
|
|
3526
|
+
"code": "<sds-select\n [options]=\"services\"\n optionLabel=\"name\"\n optionValue=\"code\"\n filter\n clearable\n [(ngModel)]=\"serviceCode\"\n placeholder=\"Choisir un service\"\n>\n <!-- Rendered for each option AND for the selected value in the field.\n let-option is the raw option; also: let-selected=\"selected\", let-label=\"label\", … -->\n <ng-template sdsSelectOption let-option>\n <span class=\"h-2.5 w-2.5 shrink-0 rounded-full\" [style.background]=\"option.color\"></span>\n <span class=\"truncate\">{{ option.name }}</span>\n </ng-template>\n</sds-select>\n\n// services = [{ name: 'Cardiologie', code: 'CARD', color: '#ef4444' }, …];",
|
|
3527
|
+
"runnableExample": "<sds-select\n [options]=\"coloredServices\"\n optionLabel=\"name\"\n optionValue=\"code\"\n filter\n clearable\n [(ngModel)]=\"serviceCode\"\n placeholder=\"Choisir un service\"\n >\n <ng-template sdsSelectOption let-option>\n <span class=\"h-2.5 w-2.5 shrink-0 rounded-full\" [style.background]=\"option.color\"></span>\n <span class=\"truncate\">{{ option.name }}</span>\n </ng-template>\n </sds-select>",
|
|
3528
|
+
"stack": true,
|
|
3529
|
+
"dark": false
|
|
3530
|
+
},
|
|
3531
|
+
{
|
|
3532
|
+
"sectionTitle": "Gabarit vide (sdsSelectEmpty)",
|
|
3533
|
+
"sectionDescription": "Remplace le message « aucun résultat » ; le contexte fournit la requête de filtre courante.",
|
|
3534
|
+
"code": "<sds-select [options]=\"services\" optionLabel=\"name\" optionValue=\"code\" filter>\n <ng-template sdsSelectEmpty let-query>\n Aucun service pour « {{ query }} ».\n </ng-template>\n</sds-select>",
|
|
3535
|
+
"runnableExample": "<sds-select\n [options]=\"services\"\n optionLabel=\"name\"\n optionValue=\"code\"\n filter\n placeholder=\"Choisir un service\"\n >\n <ng-template sdsSelectEmpty let-query>\n <span class=\"text-ink-faint\">Aucun service pour « {{ query }} ».</span>\n </ng-template>\n </sds-select>",
|
|
3536
|
+
"stack": true,
|
|
3537
|
+
"dark": false
|
|
3538
|
+
},
|
|
3539
|
+
{
|
|
3540
|
+
"sectionTitle": "Pied de liste (sdsSelectFooter)",
|
|
3541
|
+
"sectionDescription": "Ajoute une action collante sous la liste (ex. « Nouveau… ») ; le contexte fournit close() pour refermer le panneau.",
|
|
3542
|
+
"code": "<sds-select [options]=\"services\" optionLabel=\"name\" optionValue=\"code\" filter>\n <!-- close() dismisses the panel after the action. -->\n <ng-template sdsSelectFooter let-close=\"close\">\n <button type=\"button\" class=\"w-full px-3 py-2 text-brand-700\" (click)=\"addService(); close()\">\n + Nouveau service\n </button>\n </ng-template>\n</sds-select>",
|
|
3543
|
+
"runnableExample": "<sds-select\n [options]=\"services\"\n optionLabel=\"name\"\n optionValue=\"code\"\n filter\n placeholder=\"Choisir un service\"\n >\n <ng-template sdsSelectFooter let-close=\"close\">\n <button\n type=\"button\"\n class=\"flex w-full items-center gap-2 px-3 py-2 text-sm font-medium text-brand-700 hover:bg-brand-50\"\n (click)=\"close()\"\n >\n + Nouveau service\n </button>\n </ng-template>\n </sds-select>",
|
|
3544
|
+
"stack": true,
|
|
3545
|
+
"dark": false
|
|
3546
|
+
},
|
|
3507
3547
|
{
|
|
3508
3548
|
"sectionTitle": "Effaçable",
|
|
3509
3549
|
"sectionDescription": "Affiche un bouton d'effacement quand une valeur est sélectionnée.",
|
|
@@ -4920,6 +4960,111 @@
|
|
|
4920
4960
|
}
|
|
4921
4961
|
],
|
|
4922
4962
|
"directives": [
|
|
4963
|
+
{
|
|
4964
|
+
"className": "SdsSelectEmpty",
|
|
4965
|
+
"selector": "ng-template[sdsSelectEmpty]",
|
|
4966
|
+
"kind": "directive",
|
|
4967
|
+
"group": "form",
|
|
4968
|
+
"importName": "SdsSelectEmpty",
|
|
4969
|
+
"description": null,
|
|
4970
|
+
"overviewDescription": null,
|
|
4971
|
+
"jsdoc": "Supplies a custom template shown in place of the default \"no results\" message\nwhen a select has no (matching) options.",
|
|
4972
|
+
"example": "<ng-template sdsSelectEmpty let-q>No category matches \"{{ q }}\".</ng-template>",
|
|
4973
|
+
"cva": false,
|
|
4974
|
+
"usesNgModel": false,
|
|
4975
|
+
"inputs": [],
|
|
4976
|
+
"outputs": [],
|
|
4977
|
+
"exportedTypes": [
|
|
4978
|
+
{
|
|
4979
|
+
"name": "SdsSelectOptionContext",
|
|
4980
|
+
"kind": "interface",
|
|
4981
|
+
"body": "interface SdsSelectOptionContext { /** Same as {@link option} — enables the implicit `let-option` binding. Typed `any` so consumer templates * can read their own option fields (e.g. `option.color`) without casting. */ $implicit: any; /** The raw option object (or primitive) from the `options` array. */ option: any; /** The resolved display label (via optionLabel). */ label: string; /** The resolved option value (via optionValue). */ value: unknown; /** Whether this option is currently selected. */ selected: boolean; /** Whether this option is disabled. */ disabled: boolean; /** Zero-based inde"
|
|
4982
|
+
},
|
|
4983
|
+
{
|
|
4984
|
+
"name": "SdsSelectEmptyContext",
|
|
4985
|
+
"kind": "interface",
|
|
4986
|
+
"body": "interface SdsSelectEmptyContext { /** Same as {@link filterText} — enables the implicit `let-filterText` binding. */ $implicit: string; /** The current filter query (empty when the field isn't filterable or is blank). */ filterText: string; }"
|
|
4987
|
+
},
|
|
4988
|
+
{
|
|
4989
|
+
"name": "SdsSelectFooterContext",
|
|
4990
|
+
"kind": "interface",
|
|
4991
|
+
"body": "interface SdsSelectFooterContext { /** Same as {@link filterText} — enables the implicit `let-filterText` binding. */ $implicit: string; /** The current filter query. */ filterText: string; /** Closes the open panel — handy for a footer action (e.g. \"+ New…\"). */ close: () => void; }"
|
|
4992
|
+
}
|
|
4993
|
+
],
|
|
4994
|
+
"projectionSlots": [],
|
|
4995
|
+
"hostBindings": {},
|
|
4996
|
+
"examples": []
|
|
4997
|
+
},
|
|
4998
|
+
{
|
|
4999
|
+
"className": "SdsSelectFooter",
|
|
5000
|
+
"selector": "ng-template[sdsSelectFooter]",
|
|
5001
|
+
"kind": "directive",
|
|
5002
|
+
"group": "form",
|
|
5003
|
+
"importName": "SdsSelectFooter",
|
|
5004
|
+
"description": null,
|
|
5005
|
+
"overviewDescription": null,
|
|
5006
|
+
"jsdoc": "Supplies a custom sticky footer rendered below the option list — e.g. a\n\"+ Create new\" action. The `close` context callback dismisses the panel.",
|
|
5007
|
+
"example": "<ng-template sdsSelectFooter let-close=\"close\">\n <button (click)=\"createCategory(); close()\">+ New category</button>\n</ng-template>",
|
|
5008
|
+
"cva": false,
|
|
5009
|
+
"usesNgModel": false,
|
|
5010
|
+
"inputs": [],
|
|
5011
|
+
"outputs": [],
|
|
5012
|
+
"exportedTypes": [
|
|
5013
|
+
{
|
|
5014
|
+
"name": "SdsSelectOptionContext",
|
|
5015
|
+
"kind": "interface",
|
|
5016
|
+
"body": "interface SdsSelectOptionContext { /** Same as {@link option} — enables the implicit `let-option` binding. Typed `any` so consumer templates * can read their own option fields (e.g. `option.color`) without casting. */ $implicit: any; /** The raw option object (or primitive) from the `options` array. */ option: any; /** The resolved display label (via optionLabel). */ label: string; /** The resolved option value (via optionValue). */ value: unknown; /** Whether this option is currently selected. */ selected: boolean; /** Whether this option is disabled. */ disabled: boolean; /** Zero-based inde"
|
|
5017
|
+
},
|
|
5018
|
+
{
|
|
5019
|
+
"name": "SdsSelectEmptyContext",
|
|
5020
|
+
"kind": "interface",
|
|
5021
|
+
"body": "interface SdsSelectEmptyContext { /** Same as {@link filterText} — enables the implicit `let-filterText` binding. */ $implicit: string; /** The current filter query (empty when the field isn't filterable or is blank). */ filterText: string; }"
|
|
5022
|
+
},
|
|
5023
|
+
{
|
|
5024
|
+
"name": "SdsSelectFooterContext",
|
|
5025
|
+
"kind": "interface",
|
|
5026
|
+
"body": "interface SdsSelectFooterContext { /** Same as {@link filterText} — enables the implicit `let-filterText` binding. */ $implicit: string; /** The current filter query. */ filterText: string; /** Closes the open panel — handy for a footer action (e.g. \"+ New…\"). */ close: () => void; }"
|
|
5027
|
+
}
|
|
5028
|
+
],
|
|
5029
|
+
"projectionSlots": [],
|
|
5030
|
+
"hostBindings": {},
|
|
5031
|
+
"examples": []
|
|
5032
|
+
},
|
|
5033
|
+
{
|
|
5034
|
+
"className": "SdsSelectOption",
|
|
5035
|
+
"selector": "ng-template[sdsSelectOption]",
|
|
5036
|
+
"kind": "directive",
|
|
5037
|
+
"group": "form",
|
|
5038
|
+
"importName": "SdsSelectOption",
|
|
5039
|
+
"description": null,
|
|
5040
|
+
"overviewDescription": null,
|
|
5041
|
+
"jsdoc": "Supplies a custom template for each option row (and the selected value shown\nin the trigger) of an `<sds-select>` / `<sds-multi-select>`. Use as a\nstructural template projected into the select:",
|
|
5042
|
+
"example": "<sds-select [options]=\"categories\" optionLabel=\"name\" optionValue=\"id\" [(ngModel)]=\"catId\">\n <ng-template sdsSelectOption let-option let-selected=\"selected\">\n <span class=\"dot\" [style.background]=\"option.color\"></span>\n <span class=\"truncate\">{{ option.name }}</span>\n </ng-template>\n</sds-select>",
|
|
5043
|
+
"cva": false,
|
|
5044
|
+
"usesNgModel": false,
|
|
5045
|
+
"inputs": [],
|
|
5046
|
+
"outputs": [],
|
|
5047
|
+
"exportedTypes": [
|
|
5048
|
+
{
|
|
5049
|
+
"name": "SdsSelectOptionContext",
|
|
5050
|
+
"kind": "interface",
|
|
5051
|
+
"body": "interface SdsSelectOptionContext { /** Same as {@link option} — enables the implicit `let-option` binding. Typed `any` so consumer templates * can read their own option fields (e.g. `option.color`) without casting. */ $implicit: any; /** The raw option object (or primitive) from the `options` array. */ option: any; /** The resolved display label (via optionLabel). */ label: string; /** The resolved option value (via optionValue). */ value: unknown; /** Whether this option is currently selected. */ selected: boolean; /** Whether this option is disabled. */ disabled: boolean; /** Zero-based inde"
|
|
5052
|
+
},
|
|
5053
|
+
{
|
|
5054
|
+
"name": "SdsSelectEmptyContext",
|
|
5055
|
+
"kind": "interface",
|
|
5056
|
+
"body": "interface SdsSelectEmptyContext { /** Same as {@link filterText} — enables the implicit `let-filterText` binding. */ $implicit: string; /** The current filter query (empty when the field isn't filterable or is blank). */ filterText: string; }"
|
|
5057
|
+
},
|
|
5058
|
+
{
|
|
5059
|
+
"name": "SdsSelectFooterContext",
|
|
5060
|
+
"kind": "interface",
|
|
5061
|
+
"body": "interface SdsSelectFooterContext { /** Same as {@link filterText} — enables the implicit `let-filterText` binding. */ $implicit: string; /** The current filter query. */ filterText: string; /** Closes the open panel — handy for a footer action (e.g. \"+ New…\"). */ close: () => void; }"
|
|
5062
|
+
}
|
|
5063
|
+
],
|
|
5064
|
+
"projectionSlots": [],
|
|
5065
|
+
"hostBindings": {},
|
|
5066
|
+
"examples": []
|
|
5067
|
+
},
|
|
4923
5068
|
{
|
|
4924
5069
|
"className": "SdsTableCell",
|
|
4925
5070
|
"selector": "ng-template[sdsCell]",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@besaitech/ng-design-system-mcp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "MCP server that exposes the @besaitech/ng-design-system Angular component library documentation (API, examples, tokens, icons, setup) to AI coding tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|