@besaitech/ng-design-system-mcp 0.0.11 → 0.0.12

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.
Files changed (2) hide show
  1. package/data/docs.json +405 -3
  2. package/package.json +1 -1
package/data/docs.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "libraryVersion": "0.0.41",
3
+ "libraryVersion": "0.0.42",
4
4
  "packageName": "@besaitech/ng-design-system",
5
5
  "devImport": "saitech-design-system",
6
- "generatedAt": "2026-09-15T12:45:18.055Z",
7
- "componentCount": 33,
6
+ "generatedAt": "2026-09-19T16:33:04.483Z",
7
+ "componentCount": 34,
8
8
  "components": [
9
9
  {
10
10
  "className": "SdsAccordion",
@@ -1576,6 +1576,405 @@
1576
1576
  }
1577
1577
  ]
1578
1578
  },
1579
+ {
1580
+ "className": "SdsInputNumber",
1581
+ "selector": "sds-input-number",
1582
+ "kind": "component",
1583
+ "group": "form",
1584
+ "importName": "SdsInputNumber",
1585
+ "description": "Champ numérique avec formatage localisé, devise, préfixe/suffixe, bornes min/max/pas et boutons d'incrément. La valeur est un number | null via ControlValueAccessor. Le formatage est appliqué en direct pendant la saisie : symbole monétaire, séparateurs de milliers et affixes restent visibles, et le curseur est préservé.",
1586
+ "overviewDescription": "Saisie numérique : devise, préfixe/suffixe, bornes et incrémenteur.",
1587
+ "jsdoc": "Numeric input with locale-aware formatting, optional currency, prefix/suffix affixes, min/max/step\nboundaries and spinner buttons — the design-system counterpart of PrimeNG's `InputNumber`.\n\nThe value is a `number | null` bound through ControlValueAccessor, so it works with reactive forms\nor `[(ngModel)]`: `<sds-input-number [(ngModel)]=\"amount\" mode=\"currency\" currency=\"EUR\" />`.\n\nThe field formats **live as you type**: the currency symbol, grouping separators and prefix/suffix\nstay visible on every keystroke, and the caret is kept where it belongs. The value is clamped to\n{@link min}/{@link max} on blur and on every spinner step; ArrowUp / ArrowDown also step it.",
1588
+ "example": null,
1589
+ "cva": true,
1590
+ "usesNgModel": true,
1591
+ "inputs": [
1592
+ {
1593
+ "name": "label",
1594
+ "type": "string",
1595
+ "default": "''",
1596
+ "required": false,
1597
+ "transform": null,
1598
+ "alias": null,
1599
+ "jsdoc": null
1600
+ },
1601
+ {
1602
+ "name": "ariaLabel",
1603
+ "type": "string",
1604
+ "default": "''",
1605
+ "required": false,
1606
+ "transform": null,
1607
+ "alias": null,
1608
+ "jsdoc": "Accessible name used when no visible [label] is provided."
1609
+ },
1610
+ {
1611
+ "name": "placeholder",
1612
+ "type": "string",
1613
+ "default": "''",
1614
+ "required": false,
1615
+ "transform": null,
1616
+ "alias": null,
1617
+ "jsdoc": null
1618
+ },
1619
+ {
1620
+ "name": "hint",
1621
+ "type": "string",
1622
+ "default": "''",
1623
+ "required": false,
1624
+ "transform": null,
1625
+ "alias": null,
1626
+ "jsdoc": null
1627
+ },
1628
+ {
1629
+ "name": "error",
1630
+ "type": "string",
1631
+ "default": "''",
1632
+ "required": false,
1633
+ "transform": null,
1634
+ "alias": null,
1635
+ "jsdoc": null
1636
+ },
1637
+ {
1638
+ "name": "size",
1639
+ "type": "SdsInputNumberSize",
1640
+ "default": "'md'",
1641
+ "required": false,
1642
+ "transform": null,
1643
+ "alias": null,
1644
+ "jsdoc": null
1645
+ },
1646
+ {
1647
+ "name": "appearance",
1648
+ "type": "SdsInputNumberAppearance",
1649
+ "default": "'default'",
1650
+ "required": false,
1651
+ "transform": null,
1652
+ "alias": null,
1653
+ "jsdoc": "`filled` is a borderless field on a muted ground; `default` is the bordered white field."
1654
+ },
1655
+ {
1656
+ "name": "disabled",
1657
+ "type": "boolean",
1658
+ "default": "false",
1659
+ "required": false,
1660
+ "transform": "booleanAttribute",
1661
+ "alias": null,
1662
+ "jsdoc": null
1663
+ },
1664
+ {
1665
+ "name": "readonly",
1666
+ "type": "boolean",
1667
+ "default": "false",
1668
+ "required": false,
1669
+ "transform": "booleanAttribute",
1670
+ "alias": null,
1671
+ "jsdoc": "Read-only: the value is shown and selectable but cannot be typed or stepped."
1672
+ },
1673
+ {
1674
+ "name": "mode",
1675
+ "type": "SdsInputNumberMode",
1676
+ "default": "'decimal'",
1677
+ "required": false,
1678
+ "transform": null,
1679
+ "alias": null,
1680
+ "jsdoc": null
1681
+ },
1682
+ {
1683
+ "name": "locale",
1684
+ "type": "string",
1685
+ "default": "''",
1686
+ "required": false,
1687
+ "transform": null,
1688
+ "alias": null,
1689
+ "jsdoc": "BCP 47 locale for grouping/decimal symbols (e.g. `fr-FR`). Empty follows the runtime locale."
1690
+ },
1691
+ {
1692
+ "name": "currency",
1693
+ "type": "string",
1694
+ "default": "''",
1695
+ "required": false,
1696
+ "transform": null,
1697
+ "alias": null,
1698
+ "jsdoc": "ISO 4217 code, required when {@link mode} is `currency` (e.g. `EUR`, `USD`)."
1699
+ },
1700
+ {
1701
+ "name": "currencyDisplay",
1702
+ "type": "SdsInputNumberCurrencyDisplay",
1703
+ "default": "'symbol'",
1704
+ "required": false,
1705
+ "transform": null,
1706
+ "alias": null,
1707
+ "jsdoc": null
1708
+ },
1709
+ {
1710
+ "name": "useGrouping",
1711
+ "type": "boolean",
1712
+ "default": "true",
1713
+ "required": false,
1714
+ "transform": "booleanAttribute",
1715
+ "alias": null,
1716
+ "jsdoc": "Thousands/grouping separators."
1717
+ },
1718
+ {
1719
+ "name": "minFractionDigits",
1720
+ "type": "number | null",
1721
+ "default": "null",
1722
+ "required": false,
1723
+ "transform": null,
1724
+ "alias": null,
1725
+ "jsdoc": null
1726
+ },
1727
+ {
1728
+ "name": "maxFractionDigits",
1729
+ "type": "number | null",
1730
+ "default": "null",
1731
+ "required": false,
1732
+ "transform": null,
1733
+ "alias": null,
1734
+ "jsdoc": null
1735
+ },
1736
+ {
1737
+ "name": "prefix",
1738
+ "type": "string",
1739
+ "default": "''",
1740
+ "required": false,
1741
+ "transform": null,
1742
+ "alias": null,
1743
+ "jsdoc": "Text shown before the value (e.g. `↑ `)."
1744
+ },
1745
+ {
1746
+ "name": "suffix",
1747
+ "type": "string",
1748
+ "default": "''",
1749
+ "required": false,
1750
+ "transform": null,
1751
+ "alias": null,
1752
+ "jsdoc": "Text shown after the value (e.g. ` kg`, `%`)."
1753
+ },
1754
+ {
1755
+ "name": "min",
1756
+ "type": "number | null",
1757
+ "default": "null",
1758
+ "required": false,
1759
+ "transform": null,
1760
+ "alias": null,
1761
+ "jsdoc": null
1762
+ },
1763
+ {
1764
+ "name": "max",
1765
+ "type": "number | null",
1766
+ "default": "null",
1767
+ "required": false,
1768
+ "transform": null,
1769
+ "alias": null,
1770
+ "jsdoc": null
1771
+ },
1772
+ {
1773
+ "name": "step",
1774
+ "type": "number",
1775
+ "default": "1",
1776
+ "required": false,
1777
+ "transform": "numberAttribute",
1778
+ "alias": null,
1779
+ "jsdoc": null
1780
+ },
1781
+ {
1782
+ "name": "showButtons",
1783
+ "type": "boolean",
1784
+ "default": "false",
1785
+ "required": false,
1786
+ "transform": "booleanAttribute",
1787
+ "alias": null,
1788
+ "jsdoc": "Show the increment/decrement spinner buttons."
1789
+ },
1790
+ {
1791
+ "name": "buttonLayout",
1792
+ "type": "SdsInputNumberButtonLayout",
1793
+ "default": "'stacked'",
1794
+ "required": false,
1795
+ "transform": null,
1796
+ "alias": null,
1797
+ "jsdoc": null
1798
+ },
1799
+ {
1800
+ "name": "incrementIcon",
1801
+ "type": "SdsIconName | null",
1802
+ "default": "null",
1803
+ "required": false,
1804
+ "transform": null,
1805
+ "alias": null,
1806
+ "jsdoc": "Override the increment button icon (defaults: chevron-up when stacked, plus otherwise)."
1807
+ },
1808
+ {
1809
+ "name": "decrementIcon",
1810
+ "type": "SdsIconName | null",
1811
+ "default": "null",
1812
+ "required": false,
1813
+ "transform": null,
1814
+ "alias": null,
1815
+ "jsdoc": "Override the decrement button icon (defaults: chevron-down when stacked, minus otherwise)."
1816
+ },
1817
+ {
1818
+ "name": "allowEmpty",
1819
+ "type": "boolean",
1820
+ "default": "true",
1821
+ "required": false,
1822
+ "transform": "booleanAttribute",
1823
+ "alias": null,
1824
+ "jsdoc": "Allow an empty (null) value. When false, blurring an empty field falls back to {@link min} or 0."
1825
+ },
1826
+ {
1827
+ "name": "clearable",
1828
+ "type": "boolean",
1829
+ "default": "false",
1830
+ "required": false,
1831
+ "transform": "booleanAttribute",
1832
+ "alias": null,
1833
+ "jsdoc": null
1834
+ },
1835
+ {
1836
+ "name": "clearLabel",
1837
+ "type": "string",
1838
+ "default": "'Effacer'",
1839
+ "required": false,
1840
+ "transform": null,
1841
+ "alias": null,
1842
+ "jsdoc": "Accessible names for the icon-only controls. French defaults so existing consumers are unchanged;\ntranslate them in a multi-language app."
1843
+ },
1844
+ {
1845
+ "name": "incrementLabel",
1846
+ "type": "string",
1847
+ "default": "'Augmenter'",
1848
+ "required": false,
1849
+ "transform": null,
1850
+ "alias": null,
1851
+ "jsdoc": null
1852
+ },
1853
+ {
1854
+ "name": "decrementLabel",
1855
+ "type": "string",
1856
+ "default": "'Diminuer'",
1857
+ "required": false,
1858
+ "transform": null,
1859
+ "alias": null,
1860
+ "jsdoc": null
1861
+ }
1862
+ ],
1863
+ "outputs": [],
1864
+ "exportedTypes": [
1865
+ {
1866
+ "name": "SdsInputNumberSize",
1867
+ "kind": "union",
1868
+ "body": "'sm' | 'md' | 'lg'"
1869
+ },
1870
+ {
1871
+ "name": "SdsInputNumberAppearance",
1872
+ "kind": "union",
1873
+ "body": "'default' | 'filled'"
1874
+ },
1875
+ {
1876
+ "name": "SdsInputNumberMode",
1877
+ "kind": "union",
1878
+ "body": "'decimal' | 'currency'"
1879
+ },
1880
+ {
1881
+ "name": "SdsInputNumberCurrencyDisplay",
1882
+ "kind": "union",
1883
+ "body": "'symbol' | 'code' | 'name'"
1884
+ },
1885
+ {
1886
+ "name": "SdsInputNumberButtonLayout",
1887
+ "kind": "union",
1888
+ "body": "'stacked' | 'horizontal' | 'vertical'"
1889
+ }
1890
+ ],
1891
+ "projectionSlots": [],
1892
+ "hostBindings": {
1893
+ "class": "block"
1894
+ },
1895
+ "examples": [
1896
+ {
1897
+ "sectionTitle": "Basique",
1898
+ "sectionDescription": "Regroupement des milliers selon la locale ; la valeur émise reste un nombre simple.",
1899
+ "code": "<sds-input-number label=\"Lits disponibles\" [(ngModel)]=\"beds\" />\n\n// beds = 42723; → affiché « 42 723 »",
1900
+ "runnableExample": "<sds-input-number label=\"Lits disponibles\" [(ngModel)]=\"beds\" />",
1901
+ "stack": true,
1902
+ "dark": false
1903
+ },
1904
+ {
1905
+ "sectionTitle": "Devise",
1906
+ "sectionDescription": "mode='currency' avec un code ISO 4217 ; currencyDisplay choisit le symbole, le code ou le nom.",
1907
+ "code": "<sds-input-number\n label=\"Budget mensuel\"\n mode=\"currency\"\n currency=\"EUR\"\n locale=\"fr-FR\"\n [(ngModel)]=\"budget\"\n/>\n<sds-input-number\n label=\"Facturation (US)\"\n mode=\"currency\"\n currency=\"USD\"\n currencyDisplay=\"code\"\n locale=\"en-US\"\n [(ngModel)]=\"invoice\"\n/>",
1908
+ "runnableExample": "<sds-input-number\n label=\"Budget mensuel\"\n mode=\"currency\"\n currency=\"EUR\"\n locale=\"fr-FR\"\n [(ngModel)]=\"budget\"\n />\n <sds-input-number\n label=\"Facturation (US)\"\n mode=\"currency\"\n currency=\"USD\"\n currencyDisplay=\"code\"\n locale=\"en-US\"\n [(ngModel)]=\"invoice\"\n />",
1909
+ "stack": true,
1910
+ "dark": false
1911
+ },
1912
+ {
1913
+ "sectionTitle": "Préfixe & suffixe",
1914
+ "sectionDescription": "Des affixes texte pour les pourcentages, unités ou libellés — sur un nombre simple.",
1915
+ "code": "<sds-input-number label=\"Taux d'occupation\" suffix=\" %\" [min]=\"0\" [max]=\"100\" [(ngModel)]=\"occupancy\" />\n<sds-input-number label=\"Poids du patient\" suffix=\" kg\" [minFractionDigits]=\"1\" [(ngModel)]=\"weight\" />\n<sds-input-number label=\"Température\" prefix=\"↑ \" suffix=\" ℃\" [(ngModel)]=\"temperature\" />",
1916
+ "runnableExample": "<sds-input-number label=\"Taux d'occupation\" suffix=\" %\" [min]=\"0\" [max]=\"100\" [(ngModel)]=\"occupancy\" />\n <sds-input-number label=\"Poids du patient\" suffix=\" kg\" [minFractionDigits]=\"1\" [(ngModel)]=\"weight\" />\n <sds-input-number label=\"Température\" prefix=\"↑ \" suffix=\" ℃\" [(ngModel)]=\"temperature\" />",
1917
+ "stack": true,
1918
+ "dark": false
1919
+ },
1920
+ {
1921
+ "sectionTitle": "Bornes & pas",
1922
+ "sectionDescription": "min, max et step encadrent la valeur ; le dépassement est corrigé à la validation et à chaque incrément.",
1923
+ "code": "<sds-input-number\n label=\"Dose (0–10, pas 0,5)\"\n [min]=\"0\"\n [max]=\"10\"\n [step]=\"0.5\"\n showButtons\n [(ngModel)]=\"dose\"\n/>",
1924
+ "runnableExample": "<sds-input-number\n label=\"Dose (0–10, pas 0,5)\"\n [min]=\"0\"\n [max]=\"10\"\n [step]=\"0.5\"\n showButtons\n [(ngModel)]=\"dose\"\n />",
1925
+ "stack": true,
1926
+ "dark": false
1927
+ },
1928
+ {
1929
+ "sectionTitle": "Boutons",
1930
+ "sectionDescription": "showButtons ajoute un incrémenteur ; buttonLayout le dispose en pile, à l'horizontale ou à la verticale.",
1931
+ "code": "<sds-input-number label=\"Empilé\" showButtons [(ngModel)]=\"qty\" />\n<sds-input-number label=\"Horizontal\" showButtons buttonLayout=\"horizontal\" [(ngModel)]=\"qty\" />\n<sds-input-number label=\"Vertical\" showButtons buttonLayout=\"vertical\" [(ngModel)]=\"qty\" />",
1932
+ "runnableExample": "<sds-input-number label=\"Empilé\" showButtons [(ngModel)]=\"qtyStacked\" />\n <sds-input-number label=\"Horizontal\" showButtons buttonLayout=\"horizontal\" [(ngModel)]=\"qtyHorizontal\" />\n <sds-input-number label=\"Vertical\" showButtons buttonLayout=\"vertical\" [(ngModel)]=\"qtyVertical\" />",
1933
+ "stack": false,
1934
+ "dark": false
1935
+ },
1936
+ {
1937
+ "sectionTitle": "Décimales & groupement",
1938
+ "sectionDescription": "minFractionDigits / maxFractionDigits contrôlent la précision ; useGrouping='false' retire les séparateurs.",
1939
+ "code": "<sds-input-number\n label=\"Résultat de laboratoire\"\n [minFractionDigits]=\"2\"\n [maxFractionDigits]=\"4\"\n [(ngModel)]=\"labResult\"\n/>\n<sds-input-number label=\"Référence dossier\" [useGrouping]=\"false\" [(ngModel)]=\"reference\" />",
1940
+ "runnableExample": "<sds-input-number\n label=\"Résultat de laboratoire\"\n [minFractionDigits]=\"2\"\n [maxFractionDigits]=\"4\"\n [(ngModel)]=\"labResult\"\n />\n <sds-input-number label=\"Référence dossier\" [useGrouping]=\"false\" [(ngModel)]=\"reference\" />",
1941
+ "stack": true,
1942
+ "dark": false
1943
+ },
1944
+ {
1945
+ "sectionTitle": "Effaçable",
1946
+ "sectionDescription": "clearable affiche un bouton d'effacement quand une valeur est saisie.",
1947
+ "code": "<sds-input-number\n label=\"Plafond de dépense\"\n mode=\"currency\"\n currency=\"EUR\"\n locale=\"fr-FR\"\n clearable\n [(ngModel)]=\"cap\"\n/>",
1948
+ "runnableExample": "<sds-input-number label=\"Plafond de dépense\" mode=\"currency\" currency=\"EUR\" locale=\"fr-FR\" clearable [(ngModel)]=\"cap\" />",
1949
+ "stack": true,
1950
+ "dark": false
1951
+ },
1952
+ {
1953
+ "sectionTitle": "Tailles",
1954
+ "sectionDescription": null,
1955
+ "code": "<sds-input-number size=\"sm\" label=\"Petit (sm)\" [(ngModel)]=\"value\" />\n<sds-input-number size=\"md\" label=\"Moyen (md)\" [(ngModel)]=\"value\" />\n<sds-input-number size=\"lg\" label=\"Grand (lg)\" [(ngModel)]=\"value\" />",
1956
+ "runnableExample": "<sds-input-number size=\"sm\" label=\"Petit (sm)\" [(ngModel)]=\"sizeSm\" />\n <sds-input-number size=\"md\" label=\"Moyen (md)\" [(ngModel)]=\"sizeMd\" />\n <sds-input-number size=\"lg\" label=\"Grand (lg)\" [(ngModel)]=\"sizeLg\" />",
1957
+ "stack": true,
1958
+ "dark": false
1959
+ },
1960
+ {
1961
+ "sectionTitle": "Rempli & erreur",
1962
+ "sectionDescription": null,
1963
+ "code": "<sds-input-number appearance=\"filled\" label=\"Rempli\" [(ngModel)]=\"value\" />\n<sds-input-number label=\"Nombre requis\" [error]=\"'Veuillez saisir un nombre.'\" [(ngModel)]=\"value\" />",
1964
+ "runnableExample": "<sds-input-number appearance=\"filled\" label=\"Rempli\" [(ngModel)]=\"filled\" />\n <sds-input-number label=\"Nombre requis\" [error]=\"'Veuillez saisir un nombre.'\" [(ngModel)]=\"required\" />",
1965
+ "stack": true,
1966
+ "dark": false
1967
+ },
1968
+ {
1969
+ "sectionTitle": "Désactivé",
1970
+ "sectionDescription": null,
1971
+ "code": "<sds-input-number label=\"Capacité verrouillée\" [ngModel]=\"120\" disabled />",
1972
+ "runnableExample": "<sds-input-number label=\"Capacité verrouillée\" [ngModel]=\"120\" disabled />",
1973
+ "stack": true,
1974
+ "dark": false
1975
+ }
1976
+ ]
1977
+ },
1579
1978
  {
1580
1979
  "className": "SdsLocalizedInput",
1581
1980
  "selector": "sds-localized-input",
@@ -4662,6 +5061,7 @@
4662
5061
  "chevron-down",
4663
5062
  "chevron-left",
4664
5063
  "chevron-right",
5064
+ "chevron-up",
4665
5065
  "chevrons-left",
4666
5066
  "chevrons-right",
4667
5067
  "chevrons-up-down",
@@ -4686,6 +5086,7 @@
4686
5086
  "map-pin",
4687
5087
  "megaphone",
4688
5088
  "menu",
5089
+ "minus",
4689
5090
  "monitor",
4690
5091
  "package",
4691
5092
  "package-open",
@@ -4697,6 +5098,7 @@
4697
5098
  "panel-top",
4698
5099
  "panels-top-left",
4699
5100
  "phone",
5101
+ "plus",
4700
5102
  "refresh-cw",
4701
5103
  "rotate-ccw",
4702
5104
  "rows-3",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besaitech/ng-design-system-mcp",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
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": {