kanto-ds 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +24 -6
  2. package/dist/chunks/{defaults-DKzFsNbv.js → defaults-BwgjMcww.js} +27 -26
  3. package/dist/chunks/{defaults-DKzFsNbv.js.map → defaults-BwgjMcww.js.map} +1 -1
  4. package/dist/chunks/index-DSSLJirw.js +79 -0
  5. package/dist/chunks/index-DSSLJirw.js.map +1 -0
  6. package/dist/chunks/kt-element-E-tfJpGQ.js +52 -0
  7. package/dist/chunks/kt-element-E-tfJpGQ.js.map +1 -0
  8. package/dist/components/core/kt-avatar/kt-avatar.js +8 -7
  9. package/dist/components/core/kt-avatar/kt-avatar.js.map +1 -1
  10. package/dist/components/core/kt-badge/kt-badge.js +7 -6
  11. package/dist/components/core/kt-badge/kt-badge.js.map +1 -1
  12. package/dist/components/core/kt-button/kt-button.js +1 -1
  13. package/dist/components/core/kt-card/kt-card.js +1 -1
  14. package/dist/components/core/kt-code/kt-code.js +31 -30
  15. package/dist/components/core/kt-code/kt-code.js.map +1 -1
  16. package/dist/components/core/kt-icon/kt-icon.js +2 -2
  17. package/dist/components/core/kt-kbd/kt-kbd.js +1 -1
  18. package/dist/components/core/kt-split-button/kt-split-button.d.ts +2 -2
  19. package/dist/components/core/kt-split-button/kt-split-button.js +27 -26
  20. package/dist/components/core/kt-split-button/kt-split-button.js.map +1 -1
  21. package/dist/components/data/kt-chart/kt-chart.d.ts +2 -2
  22. package/dist/components/data/kt-chart/kt-chart.js +222 -221
  23. package/dist/components/data/kt-chart/kt-chart.js.map +1 -1
  24. package/dist/components/data/kt-meter/kt-meter.js +1 -1
  25. package/dist/components/data/kt-pagination/kt-pagination.d.ts +1 -1
  26. package/dist/components/data/kt-pagination/kt-pagination.js +29 -28
  27. package/dist/components/data/kt-pagination/kt-pagination.js.map +1 -1
  28. package/dist/components/data/kt-stat/kt-stat.js +1 -1
  29. package/dist/components/data/kt-table/kt-table.d.ts +2 -2
  30. package/dist/components/data/kt-table/kt-table.js +30 -29
  31. package/dist/components/data/kt-table/kt-table.js.map +1 -1
  32. package/dist/components/data/kt-timeline/kt-timeline.js +1 -1
  33. package/dist/components/feedback/kt-alert/kt-alert.js +17 -16
  34. package/dist/components/feedback/kt-alert/kt-alert.js.map +1 -1
  35. package/dist/components/feedback/kt-empty-state/kt-empty-state.js +1 -1
  36. package/dist/components/feedback/kt-progress-bar/kt-progress-bar.js +1 -1
  37. package/dist/components/feedback/kt-skeleton/kt-skeleton.js +1 -1
  38. package/dist/components/feedback/kt-toast/kt-toast.js +25 -19
  39. package/dist/components/feedback/kt-toast/kt-toast.js.map +1 -1
  40. package/dist/components/feedback/kt-toast-container/kt-toast-container.js +1 -1
  41. package/dist/components/feedback/kt-tooltip/kt-tooltip.js +1 -1
  42. package/dist/components/forms/kt-checkbox/kt-checkbox.d.ts +66 -0
  43. package/dist/components/forms/kt-checkbox/kt-checkbox.js +198 -0
  44. package/dist/components/forms/kt-checkbox/kt-checkbox.js.map +1 -0
  45. package/dist/components/forms/kt-drag-drop/kt-drag-drop.d.ts +2 -2
  46. package/dist/components/forms/kt-drag-drop/kt-drag-drop.js +60 -57
  47. package/dist/components/forms/kt-drag-drop/kt-drag-drop.js.map +1 -1
  48. package/dist/components/forms/kt-form/kt-form.js +11 -10
  49. package/dist/components/forms/kt-form/kt-form.js.map +1 -1
  50. package/dist/components/forms/kt-input/kt-input.js +56 -55
  51. package/dist/components/forms/kt-input/kt-input.js.map +1 -1
  52. package/dist/components/forms/kt-input-menu/kt-input-menu.d.ts +1 -1
  53. package/dist/components/forms/kt-input-menu/kt-input-menu.js +57 -56
  54. package/dist/components/forms/kt-input-menu/kt-input-menu.js.map +1 -1
  55. package/dist/components/forms/kt-label-input/kt-label-input.js +1 -1
  56. package/dist/components/forms/kt-radio-group/kt-radio-group.d.ts +103 -0
  57. package/dist/components/forms/kt-radio-group/kt-radio-group.js +265 -0
  58. package/dist/components/forms/kt-radio-group/kt-radio-group.js.map +1 -0
  59. package/dist/components/forms/kt-select/kt-select.d.ts +2 -2
  60. package/dist/components/forms/kt-select/kt-select.js +62 -61
  61. package/dist/components/forms/kt-select/kt-select.js.map +1 -1
  62. package/dist/components/forms/kt-textarea/kt-textarea.js +9 -8
  63. package/dist/components/forms/kt-textarea/kt-textarea.js.map +1 -1
  64. package/dist/components/forms/kt-toggle/kt-toggle.js +1 -1
  65. package/dist/components/navigation/kt-breadcrumb/kt-breadcrumb.d.ts +1 -1
  66. package/dist/components/navigation/kt-breadcrumb/kt-breadcrumb.js +6 -5
  67. package/dist/components/navigation/kt-breadcrumb/kt-breadcrumb.js.map +1 -1
  68. package/dist/components/navigation/kt-header/kt-header.js +11 -10
  69. package/dist/components/navigation/kt-header/kt-header.js.map +1 -1
  70. package/dist/components/navigation/kt-page-header/kt-page-header.js +1 -1
  71. package/dist/components/navigation/kt-segmented-control/kt-segmented-control.js +44 -43
  72. package/dist/components/navigation/kt-segmented-control/kt-segmented-control.js.map +1 -1
  73. package/dist/components/navigation/kt-sub-menu-navigation/kt-sub-menu-navigation.d.ts +1 -1
  74. package/dist/components/navigation/kt-sub-menu-navigation/kt-sub-menu-navigation.js +6 -5
  75. package/dist/components/navigation/kt-sub-menu-navigation/kt-sub-menu-navigation.js.map +1 -1
  76. package/dist/components/navigation/kt-tabs/kt-tabs.js +1 -1
  77. package/dist/components/navigation/kt-toggle-button/kt-toggle-button.js +1 -1
  78. package/dist/components/navigation/kt-toggle-button-group/kt-toggle-button-group.js +12 -6
  79. package/dist/components/navigation/kt-toggle-button-group/kt-toggle-button-group.js.map +1 -1
  80. package/dist/components/overlays/kt-collapsible/kt-collapsible.js +1 -1
  81. package/dist/components/overlays/kt-confirm-dialog/kt-confirm-dialog.d.ts +3 -3
  82. package/dist/components/overlays/kt-confirm-dialog/kt-confirm-dialog.js +30 -27
  83. package/dist/components/overlays/kt-confirm-dialog/kt-confirm-dialog.js.map +1 -1
  84. package/dist/components/overlays/kt-dropdown/kt-dropdown.d.ts +1 -1
  85. package/dist/components/overlays/kt-dropdown/kt-dropdown.js +8 -7
  86. package/dist/components/overlays/kt-dropdown/kt-dropdown.js.map +1 -1
  87. package/dist/components/overlays/kt-modal/kt-modal.js +5 -4
  88. package/dist/components/overlays/kt-modal/kt-modal.js.map +1 -1
  89. package/dist/components/overlays/kt-side-panel/kt-side-panel.d.ts +1 -1
  90. package/dist/components/overlays/kt-side-panel/kt-side-panel.js +24 -23
  91. package/dist/components/overlays/kt-side-panel/kt-side-panel.js.map +1 -1
  92. package/dist/custom-elements.json +1870 -1071
  93. package/dist/icons/defaults.d.ts +1 -0
  94. package/dist/icons/index.js +1 -1
  95. package/dist/index.d.ts +5 -0
  96. package/dist/index.js +93 -83
  97. package/dist/index.js.map +1 -1
  98. package/dist/internal/kt-element.d.ts +6 -1
  99. package/dist/internal/strings.d.ts +103 -0
  100. package/dist/react/index.d.ts +13 -0
  101. package/dist/react/index.js +176 -157
  102. package/dist/react/index.js.map +1 -1
  103. package/dist/react/jsx.d.ts +12 -1
  104. package/dist/strings/index.d.ts +11 -0
  105. package/dist/strings/index.js +8 -0
  106. package/dist/strings/index.js.map +1 -0
  107. package/dist/tokens/base.css +56 -0
  108. package/dist/vscode.css-custom-data.json +12 -0
  109. package/dist/vscode.html-custom-data.json +85 -0
  110. package/dist/vue/index.d.ts +6 -0
  111. package/dist/vue/index.js +9 -7
  112. package/dist/vue/index.js.map +1 -1
  113. package/dist/web-types.json +263 -39
  114. package/package.json +19 -3
  115. package/dist/chunks/kt-element-B_jjQDhg.js +0 -38
  116. package/dist/chunks/kt-element-B_jjQDhg.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "kanto-ds",
4
- "version": "1.2.0",
4
+ "version": "1.4.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -587,7 +587,7 @@
587
587
  {
588
588
  "name": "menu-label",
589
589
  "description": "Accessible name of the caret, which has no text of its own.",
590
- "value": { "type": "string", "default": "'More actions'" }
590
+ "value": { "type": "string | undefined", "default": "undefined" }
591
591
  },
592
592
  {
593
593
  "name": "preferred-placement",
@@ -596,7 +596,7 @@
596
596
  },
597
597
  {
598
598
  "name": "empty-text",
599
- "value": { "type": "string", "default": "'No actions'" }
599
+ "value": { "type": "string | undefined", "default": "undefined" }
600
600
  }
601
601
  ],
602
602
  "slots": [
@@ -636,14 +636,14 @@
636
636
  {
637
637
  "name": "menuLabel",
638
638
  "description": "Accessible name of the caret, which has no text of its own.",
639
- "type": "string"
639
+ "type": "string | undefined"
640
640
  },
641
641
  {
642
642
  "name": "preferredPlacement",
643
643
  "description": "Where to put the menu when there is room on both sides.",
644
644
  "type": "KtDropdownPlacement"
645
645
  },
646
- { "name": "emptyText", "type": "string" },
646
+ { "name": "emptyText", "type": "string | undefined" },
647
647
  {
648
648
  "name": "isOpen",
649
649
  "description": "Whether the menu is showing.",
@@ -716,12 +716,12 @@
716
716
  {
717
717
  "name": "center-label",
718
718
  "description": "Names the total in the middle of a doughnut.",
719
- "value": { "type": "string", "default": "'Total'" }
719
+ "value": { "type": "string | undefined", "default": "undefined" }
720
720
  },
721
721
  {
722
722
  "name": "total-label",
723
723
  "description": "Names the sum in a stacked chart's tooltip and table.",
724
- "value": { "type": "string", "default": "'Total'" }
724
+ "value": { "type": "string | undefined", "default": "undefined" }
725
725
  },
726
726
  {
727
727
  "name": "label",
@@ -802,12 +802,12 @@
802
802
  {
803
803
  "name": "centerLabel",
804
804
  "description": "Names the total in the middle of a doughnut.",
805
- "type": "string"
805
+ "type": "string | undefined"
806
806
  },
807
807
  {
808
808
  "name": "totalLabel",
809
809
  "description": "Names the sum in a stacked chart's tooltip and table.",
810
- "type": "string"
810
+ "type": "string | undefined"
811
811
  },
812
812
  {
813
813
  "name": "label",
@@ -918,7 +918,7 @@
918
918
  },
919
919
  {
920
920
  "name": "label",
921
- "value": { "type": "string", "default": "'Pagination'" }
921
+ "value": { "type": "string | undefined", "default": "undefined" }
922
922
  }
923
923
  ],
924
924
  "events": [
@@ -935,7 +935,7 @@
935
935
  "type": "number"
936
936
  },
937
937
  { "name": "totalPages", "type": "number" },
938
- { "name": "label", "type": "string" }
938
+ { "name": "label", "type": "string | undefined" }
939
939
  ],
940
940
  "events": [
941
941
  {
@@ -1067,11 +1067,11 @@
1067
1067
  },
1068
1068
  {
1069
1069
  "name": "empty-text",
1070
- "value": { "type": "string", "default": "'No data to display'" }
1070
+ "value": { "type": "string | undefined", "default": "undefined" }
1071
1071
  },
1072
1072
  {
1073
1073
  "name": "loading-text",
1074
- "value": { "type": "string", "default": "'Loading…'" }
1074
+ "value": { "type": "string | undefined", "default": "undefined" }
1075
1075
  },
1076
1076
  {
1077
1077
  "name": "label",
@@ -1122,8 +1122,8 @@
1122
1122
  "description": "Renders a cell. Return `undefined` to fall back to the raw value.",
1123
1123
  "type": "KtCellRenderer | undefined"
1124
1124
  },
1125
- { "name": "emptyText", "type": "string" },
1126
- { "name": "loadingText", "type": "string" },
1125
+ { "name": "emptyText", "type": "string | undefined" },
1126
+ { "name": "loadingText", "type": "string | undefined" },
1127
1127
  {
1128
1128
  "name": "label",
1129
1129
  "description": "Accessible name for the table.",
@@ -1648,6 +1648,92 @@
1648
1648
  "events": []
1649
1649
  }
1650
1650
  },
1651
+ {
1652
+ "name": "kt-checkbox",
1653
+ "description": "A checkbox: a choice that applies when the form is submitted.\n\nBuilt on a real `<input type=\"checkbox\">`, laid invisibly over the drawn\nbox, so the keyboard, the label click, the indeterminate state and what a\nscreen reader announces all come from the platform rather than a\nreimplementation of it.\n\nFor a setting that takes effect the moment it is flipped, use\n`<kt-toggle>`; for one choice among several, `<kt-radio-group>`.\n\n---\n\n\n### **Events:**\n - **kt-change** - The box was checked or unchecked. `detail: { checked }`.\n\n### **Slots:**\n - _default_ - The label, clickable.\n\n### **CSS Parts:**\n - **base** - The `<label>` around box and text.\n- **input** - The native checkbox.\n- **box** - The drawn box.",
1654
+ "doc-url": "",
1655
+ "attributes": [
1656
+ {
1657
+ "name": "checked",
1658
+ "value": { "type": "boolean", "default": "false" }
1659
+ },
1660
+ {
1661
+ "name": "indeterminate",
1662
+ "description": "Neither checked nor unchecked — for a \"select all\" over a partial\nselection. Cleared as soon as the user clicks, as on a native checkbox.",
1663
+ "value": { "type": "boolean", "default": "false" }
1664
+ },
1665
+ {
1666
+ "name": "disabled",
1667
+ "value": { "type": "boolean", "default": "false" }
1668
+ },
1669
+ {
1670
+ "name": "required",
1671
+ "value": { "type": "boolean", "default": "false" }
1672
+ },
1673
+ {
1674
+ "name": "size",
1675
+ "value": { "type": "KtCheckboxSize", "default": "'medium'" }
1676
+ },
1677
+ { "name": "name", "value": { "type": "string", "default": "''" } },
1678
+ {
1679
+ "name": "value",
1680
+ "description": "Submitted when checked, as for a native checkbox.",
1681
+ "value": { "type": "string", "default": "'on'" }
1682
+ },
1683
+ {
1684
+ "name": "label",
1685
+ "description": "Accessible name, when nothing is slotted.",
1686
+ "value": { "type": "string", "default": "''" }
1687
+ },
1688
+ {
1689
+ "name": "error",
1690
+ "description": "Error message. A non-empty value puts the box in its error state.",
1691
+ "value": { "type": "string", "default": "''" }
1692
+ }
1693
+ ],
1694
+ "slots": [{ "name": "", "description": "The label, clickable." }],
1695
+ "events": [
1696
+ {
1697
+ "name": "kt-change",
1698
+ "description": "The box was checked or unchecked. `detail: { checked }`."
1699
+ }
1700
+ ],
1701
+ "js": {
1702
+ "properties": [
1703
+ { "name": "checked", "type": "boolean" },
1704
+ {
1705
+ "name": "indeterminate",
1706
+ "description": "Neither checked nor unchecked — for a \"select all\" over a partial\nselection. Cleared as soon as the user clicks, as on a native checkbox.",
1707
+ "type": "boolean"
1708
+ },
1709
+ { "name": "disabled", "type": "boolean" },
1710
+ { "name": "required", "type": "boolean" },
1711
+ { "name": "size", "type": "KtCheckboxSize" },
1712
+ { "name": "name", "type": "string" },
1713
+ {
1714
+ "name": "value",
1715
+ "description": "Submitted when checked, as for a native checkbox.",
1716
+ "type": "string"
1717
+ },
1718
+ {
1719
+ "name": "label",
1720
+ "description": "Accessible name, when nothing is slotted.",
1721
+ "type": "string"
1722
+ },
1723
+ {
1724
+ "name": "error",
1725
+ "description": "Error message. A non-empty value puts the box in its error state.",
1726
+ "type": "string"
1727
+ }
1728
+ ],
1729
+ "events": [
1730
+ {
1731
+ "name": "kt-change",
1732
+ "description": "The box was checked or unchecked. `detail: { checked }`."
1733
+ }
1734
+ ]
1735
+ }
1736
+ },
1651
1737
  {
1652
1738
  "name": "kt-drag-drop",
1653
1739
  "description": "A file drop zone.\n\nAccepts a drop or a click, lists what was picked with sizes and types, and\nlets each entry be removed. It holds the files in memory and reports them —\nuploading is the application's business.\n\n---\n\n\n### **Events:**\n - **kt-files-change** - The selection changed. `detail: { files }`.\n- **kt-files-rejected** - Files were refused. `detail: { files, reason }`.\n\n### **Methods:**\n - **clear(): _void_** - Empties the selection without firing a rejection.\n\n### **CSS Parts:**\n - **base** - The dashed drop zone.\n- **list** - The list of chosen files.",
@@ -1656,12 +1742,12 @@
1656
1742
  {
1657
1743
  "name": "heading",
1658
1744
  "description": "The prompt above the browse link.\n\nNamed `heading`, not `title`: an element already has a `title`, and\nreusing it would put the prompt in a native tooltip on the whole zone.",
1659
- "value": { "type": "string", "default": "'Drag and drop or'" }
1745
+ "value": { "type": "string | undefined", "default": "undefined" }
1660
1746
  },
1661
1747
  {
1662
1748
  "name": "link-text",
1663
1749
  "description": "The clickable-looking part of the prompt.",
1664
- "value": { "type": "string", "default": "'browse your files'" }
1750
+ "value": { "type": "string | undefined", "default": "undefined" }
1665
1751
  },
1666
1752
  {
1667
1753
  "name": "recommended-size",
@@ -1711,12 +1797,12 @@
1711
1797
  {
1712
1798
  "name": "heading",
1713
1799
  "description": "The prompt above the browse link.\n\nNamed `heading`, not `title`: an element already has a `title`, and\nreusing it would put the prompt in a native tooltip on the whole zone.",
1714
- "type": "string"
1800
+ "type": "string | undefined"
1715
1801
  },
1716
1802
  {
1717
1803
  "name": "linkText",
1718
1804
  "description": "The clickable-looking part of the prompt.",
1719
- "type": "string"
1805
+ "type": "string | undefined"
1720
1806
  },
1721
1807
  {
1722
1808
  "name": "recommendedSize",
@@ -2007,7 +2093,7 @@
2007
2093
  { "name": "label", "value": { "type": "string", "default": "''" } },
2008
2094
  {
2009
2095
  "name": "empty-text",
2010
- "value": { "type": "string", "default": "'No options available'" }
2096
+ "value": { "type": "string | undefined", "default": "undefined" }
2011
2097
  }
2012
2098
  ],
2013
2099
  "events": [
@@ -2030,7 +2116,7 @@
2030
2116
  { "name": "required", "type": "boolean" },
2031
2117
  { "name": "error", "type": "string" },
2032
2118
  { "name": "label", "type": "string" },
2033
- { "name": "emptyText", "type": "string" },
2119
+ { "name": "emptyText", "type": "string | undefined" },
2034
2120
  { "name": "selectedOption", "type": "KtOption | undefined" }
2035
2121
  ],
2036
2122
  "events": [
@@ -2081,6 +2167,144 @@
2081
2167
  "events": []
2082
2168
  }
2083
2169
  },
2170
+ {
2171
+ "name": "kt-radio",
2172
+ "description": "One option of a `<kt-radio-group>`.\n\nIt draws itself and carries `role=\"radio\"`; the group owns the selection,\nthe tab stop and the keyboard. A `<kt-radio>` outside a group does nothing\nuseful.\n\n---\n\n\n### **Slots:**\n - _default_ - The label.\n\n### **CSS Parts:**\n - **base** - The `role=\"radio\"` row.\n- **circle** - The drawn circle.",
2173
+ "doc-url": "",
2174
+ "attributes": [
2175
+ {
2176
+ "name": "value",
2177
+ "description": "Submitted by the group when this option is chosen.",
2178
+ "value": { "type": "string", "default": "''" }
2179
+ },
2180
+ {
2181
+ "name": "disabled",
2182
+ "value": { "type": "boolean", "default": "false" }
2183
+ },
2184
+ {
2185
+ "name": "checked",
2186
+ "description": "Set by the group.",
2187
+ "value": { "type": "boolean", "default": "false" }
2188
+ },
2189
+ {
2190
+ "name": "invalid",
2191
+ "description": "Set by the group while it reports an error.",
2192
+ "value": { "type": "boolean", "default": "false" }
2193
+ },
2194
+ {
2195
+ "name": "group-disabled",
2196
+ "description": "Set by the group while the whole group is disabled.",
2197
+ "value": { "type": "boolean", "default": "false" }
2198
+ }
2199
+ ],
2200
+ "slots": [{ "name": "", "description": "The label." }],
2201
+ "events": [],
2202
+ "js": {
2203
+ "properties": [
2204
+ {
2205
+ "name": "value",
2206
+ "description": "Submitted by the group when this option is chosen.",
2207
+ "type": "string"
2208
+ },
2209
+ { "name": "disabled", "type": "boolean" },
2210
+ {
2211
+ "name": "checked",
2212
+ "description": "Set by the group.",
2213
+ "type": "boolean"
2214
+ },
2215
+ {
2216
+ "name": "tabbable",
2217
+ "description": "Set by the group: whether this option holds the group's one tab stop.",
2218
+ "type": "boolean"
2219
+ },
2220
+ {
2221
+ "name": "invalid",
2222
+ "description": "Set by the group while it reports an error.",
2223
+ "type": "boolean"
2224
+ },
2225
+ {
2226
+ "name": "groupDisabled",
2227
+ "description": "Set by the group while the whole group is disabled.",
2228
+ "type": "boolean"
2229
+ }
2230
+ ],
2231
+ "events": []
2232
+ }
2233
+ },
2234
+ {
2235
+ "name": "kt-radio-group",
2236
+ "description": "One choice among a few, all visible at once.\n\nReach for it over `<kt-select>` when there are few enough options to show\nthem all — seeing every option is the point — and over\n`<kt-segmented-control>` when the options need a sentence each, or the\nchoice belongs in a form rather than a toolbar.\n\nNative radios cannot form a group across shadow roots, so this is the ARIA\nradio group pattern: one tab stop for the whole group, arrow keys move and\nselect, disabled options are skipped.\n\n---\n\n\n### **Events:**\n - **kt-change** - An option was chosen. `detail: { value }`.\n\n### **Slots:**\n - _default_ - The `<kt-radio>` options.\n\n### **CSS Parts:**\n - **base** - The `role=\"radiogroup\"` container.",
2237
+ "doc-url": "",
2238
+ "attributes": [
2239
+ {
2240
+ "name": "value",
2241
+ "description": "The chosen option's value, or `null`.",
2242
+ "value": { "type": "string | null", "default": "null" }
2243
+ },
2244
+ { "name": "name", "value": { "type": "string", "default": "''" } },
2245
+ {
2246
+ "name": "label",
2247
+ "description": "Accessible name of the group.",
2248
+ "value": { "type": "string", "default": "''" }
2249
+ },
2250
+ {
2251
+ "name": "disabled",
2252
+ "value": { "type": "boolean", "default": "false" }
2253
+ },
2254
+ {
2255
+ "name": "required",
2256
+ "value": { "type": "boolean", "default": "false" }
2257
+ },
2258
+ {
2259
+ "name": "orientation",
2260
+ "value": {
2261
+ "type": "KtRadioGroupOrientation",
2262
+ "default": "'vertical'"
2263
+ }
2264
+ },
2265
+ {
2266
+ "name": "error",
2267
+ "description": "Error message. A non-empty value puts the group in its error state.",
2268
+ "value": { "type": "string", "default": "''" }
2269
+ }
2270
+ ],
2271
+ "slots": [{ "name": "", "description": "The `<kt-radio>` options." }],
2272
+ "events": [
2273
+ {
2274
+ "name": "kt-change",
2275
+ "description": "An option was chosen. `detail: { value }`."
2276
+ }
2277
+ ],
2278
+ "js": {
2279
+ "properties": [
2280
+ {
2281
+ "name": "value",
2282
+ "description": "The chosen option's value, or `null`.",
2283
+ "type": "string | null"
2284
+ },
2285
+ { "name": "name", "type": "string" },
2286
+ {
2287
+ "name": "label",
2288
+ "description": "Accessible name of the group.",
2289
+ "type": "string"
2290
+ },
2291
+ { "name": "disabled", "type": "boolean" },
2292
+ { "name": "required", "type": "boolean" },
2293
+ { "name": "orientation", "type": "KtRadioGroupOrientation" },
2294
+ {
2295
+ "name": "error",
2296
+ "description": "Error message. A non-empty value puts the group in its error state.",
2297
+ "type": "string"
2298
+ }
2299
+ ],
2300
+ "events": [
2301
+ {
2302
+ "name": "kt-change",
2303
+ "description": "An option was chosen. `detail: { value }`."
2304
+ }
2305
+ ]
2306
+ }
2307
+ },
2084
2308
  {
2085
2309
  "name": "kt-select",
2086
2310
  "description": "A single-choice dropdown.\n\nUnlike the trigger-plus-div it replaces, this is a real listbox: arrow keys\nmove an active descendant, Home and End jump to the ends, Enter commits,\nEscape closes without changing anything, and disabled options are skipped\nrather than merely unclickable.\n\n---\n\n\n### **Events:**\n - **kt-change** - An option was chosen or cleared. `detail: { value, option }`.\n\n### **CSS Parts:**\n - **trigger** - The button that opens the list.\n- **popup** - The option list.\n- **option** - An option row.",
@@ -2093,7 +2317,7 @@
2093
2317
  },
2094
2318
  {
2095
2319
  "name": "placeholder",
2096
- "value": { "type": "string", "default": "'Select'" }
2320
+ "value": { "type": "string | undefined", "default": "undefined" }
2097
2321
  },
2098
2322
  { "name": "name", "value": { "type": "string", "default": "''" } },
2099
2323
  {
@@ -2126,7 +2350,7 @@
2126
2350
  {
2127
2351
  "name": "empty-text",
2128
2352
  "description": "Shown when `options` is empty.",
2129
- "value": { "type": "string", "default": "'No options available'" }
2353
+ "value": { "type": "string | undefined", "default": "undefined" }
2130
2354
  }
2131
2355
  ],
2132
2356
  "events": [
@@ -2147,7 +2371,7 @@
2147
2371
  "description": "The selected option's id, or `null`.",
2148
2372
  "type": "string | number | null"
2149
2373
  },
2150
- { "name": "placeholder", "type": "string" },
2374
+ { "name": "placeholder", "type": "string | undefined" },
2151
2375
  { "name": "name", "type": "string" },
2152
2376
  { "name": "size", "type": "KtSelectSize" },
2153
2377
  { "name": "disabled", "type": "boolean" },
@@ -2170,7 +2394,7 @@
2170
2394
  {
2171
2395
  "name": "emptyText",
2172
2396
  "description": "Shown when `options` is empty.",
2173
- "type": "string"
2397
+ "type": "string | undefined"
2174
2398
  },
2175
2399
  {
2176
2400
  "name": "selectedOption",
@@ -2349,7 +2573,7 @@
2349
2573
  {
2350
2574
  "name": "label",
2351
2575
  "description": "Accessible name for the navigation landmark.",
2352
- "value": { "type": "string", "default": "'Breadcrumb'" }
2576
+ "value": { "type": "string | undefined", "default": "undefined" }
2353
2577
  }
2354
2578
  ],
2355
2579
  "events": [
@@ -2368,7 +2592,7 @@
2368
2592
  {
2369
2593
  "name": "label",
2370
2594
  "description": "Accessible name for the navigation landmark.",
2371
- "type": "string"
2595
+ "type": "string | undefined"
2372
2596
  }
2373
2597
  ],
2374
2598
  "events": [
@@ -2590,7 +2814,7 @@
2590
2814
  },
2591
2815
  {
2592
2816
  "name": "label",
2593
- "value": { "type": "string", "default": "'Secondary navigation'" }
2817
+ "value": { "type": "string | undefined", "default": "undefined" }
2594
2818
  },
2595
2819
  {
2596
2820
  "name": "flush",
@@ -2621,7 +2845,7 @@
2621
2845
  "description": "The href of the current page. Marks the matching link active.",
2622
2846
  "type": "string"
2623
2847
  },
2624
- { "name": "label", "type": "string" },
2848
+ { "name": "label", "type": "string | undefined" },
2625
2849
  {
2626
2850
  "name": "flush",
2627
2851
  "description": "Drops the card background, for a sidebar that owns its own surface.",
@@ -2907,7 +3131,7 @@
2907
3131
  },
2908
3132
  {
2909
3133
  "name": "heading",
2910
- "value": { "type": "string", "default": "'Are you sure?'" }
3134
+ "value": { "type": "string | undefined", "default": "undefined" }
2911
3135
  },
2912
3136
  {
2913
3137
  "name": "message",
@@ -2915,11 +3139,11 @@
2915
3139
  },
2916
3140
  {
2917
3141
  "name": "confirm-label",
2918
- "value": { "type": "string", "default": "'Confirm'" }
3142
+ "value": { "type": "string | undefined", "default": "undefined" }
2919
3143
  },
2920
3144
  {
2921
3145
  "name": "cancel-label",
2922
- "value": { "type": "string", "default": "'Cancel'" }
3146
+ "value": { "type": "string | undefined", "default": "undefined" }
2923
3147
  },
2924
3148
  {
2925
3149
  "name": "variant",
@@ -2946,10 +3170,10 @@
2946
3170
  "js": {
2947
3171
  "properties": [
2948
3172
  { "name": "open", "type": "boolean" },
2949
- { "name": "heading", "type": "string" },
3173
+ { "name": "heading", "type": "string | undefined" },
2950
3174
  { "name": "message", "type": "string" },
2951
- { "name": "confirmLabel", "type": "string" },
2952
- { "name": "cancelLabel", "type": "string" },
3175
+ { "name": "confirmLabel", "type": "string | undefined" },
3176
+ { "name": "cancelLabel", "type": "string | undefined" },
2953
3177
  {
2954
3178
  "name": "variant",
2955
3179
  "description": "`danger` gives the confirm button the solid red treatment.",
@@ -2994,7 +3218,7 @@
2994
3218
  },
2995
3219
  {
2996
3220
  "name": "empty-text",
2997
- "value": { "type": "string", "default": "'No results'" }
3221
+ "value": { "type": "string | undefined", "default": "undefined" }
2998
3222
  }
2999
3223
  ],
3000
3224
  "slots": [
@@ -3035,7 +3259,7 @@
3035
3259
  "type": "KtDropdownAlign"
3036
3260
  },
3037
3261
  { "name": "disabled", "type": "boolean" },
3038
- { "name": "emptyText", "type": "string" },
3262
+ { "name": "emptyText", "type": "string | undefined" },
3039
3263
  {
3040
3264
  "name": "isOpen",
3041
3265
  "description": "Whether the panel is showing.",
@@ -3135,7 +3359,7 @@
3135
3359
  {
3136
3360
  "name": "eyebrow",
3137
3361
  "description": "Small uppercase label above the heading — \"Details\", \"Editing\".",
3138
- "value": { "type": "string", "default": "'Details'" }
3362
+ "value": { "type": "string | undefined", "default": "undefined" }
3139
3363
  },
3140
3364
  {
3141
3365
  "name": "heading",
@@ -3163,7 +3387,7 @@
3163
3387
  {
3164
3388
  "name": "eyebrow",
3165
3389
  "description": "Small uppercase label above the heading — \"Details\", \"Editing\".",
3166
- "type": "string"
3390
+ "type": "string | undefined"
3167
3391
  },
3168
3392
  { "name": "heading", "type": "string" },
3169
3393
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kanto-ds",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "Framework-agnostic design system for data-dense product interfaces.",
5
5
  "keywords": [
6
6
  "design-system",
@@ -11,7 +11,9 @@
11
11
  "dark-theme"
12
12
  ],
13
13
  "homepage": "https://kanto.arnaudmichel.fr",
14
- "bugs": "https://github.com/MrArnaudMichel/kanto/issues",
14
+ "bugs": {
15
+ "url": "https://github.com/MrArnaudMichel/kanto/issues"
16
+ },
15
17
  "repository": {
16
18
  "type": "git",
17
19
  "url": "git+https://github.com/MrArnaudMichel/kanto.git"
@@ -51,6 +53,10 @@
51
53
  "types": "./dist/icons/index.d.ts",
52
54
  "default": "./dist/icons/index.js"
53
55
  },
56
+ "./strings": {
57
+ "types": "./dist/strings/index.d.ts",
58
+ "default": "./dist/strings/index.js"
59
+ },
54
60
  "./react": {
55
61
  "types": "./dist/react/index.d.ts",
56
62
  "default": "./dist/react/index.js"
@@ -147,6 +153,10 @@
147
153
  "types": "./dist/components/feedback/kt-tooltip/kt-tooltip.d.ts",
148
154
  "default": "./dist/components/feedback/kt-tooltip/kt-tooltip.js"
149
155
  },
156
+ "./components/forms/kt-checkbox": {
157
+ "types": "./dist/components/forms/kt-checkbox/kt-checkbox.d.ts",
158
+ "default": "./dist/components/forms/kt-checkbox/kt-checkbox.js"
159
+ },
150
160
  "./components/forms/kt-drag-drop": {
151
161
  "types": "./dist/components/forms/kt-drag-drop/kt-drag-drop.d.ts",
152
162
  "default": "./dist/components/forms/kt-drag-drop/kt-drag-drop.js"
@@ -167,6 +177,10 @@
167
177
  "types": "./dist/components/forms/kt-label-input/kt-label-input.d.ts",
168
178
  "default": "./dist/components/forms/kt-label-input/kt-label-input.js"
169
179
  },
180
+ "./components/forms/kt-radio-group": {
181
+ "types": "./dist/components/forms/kt-radio-group/kt-radio-group.d.ts",
182
+ "default": "./dist/components/forms/kt-radio-group/kt-radio-group.js"
183
+ },
170
184
  "./components/forms/kt-select": {
171
185
  "types": "./dist/components/forms/kt-select/kt-select.d.ts",
172
186
  "default": "./dist/components/forms/kt-select/kt-select.js"
@@ -264,7 +278,8 @@
264
278
  "format:check": "prettier --check .",
265
279
  "clean": "node -e \"fs.rmSync(dist,{recursive:true,force:true})\"",
266
280
  "check:exports": "node scripts/check-exports.js",
267
- "verify": "npm run format:check && npm run lint && npm run typecheck && npm run test && npm run build && npm run check:exports && npm run build:demo",
281
+ "check:size": "node scripts/check-size.js",
282
+ "verify": "npm run format:check && npm run lint && npm run typecheck && npm run test && npm run build && npm run check:exports && npm run check:size && npm run build:demo",
268
283
  "release": "node scripts/release.js",
269
284
  "release:dry": "node scripts/release.js --dry-run",
270
285
  "prepublishOnly": "npm run verify"
@@ -300,6 +315,7 @@
300
315
  "axe-core": "^4.13.0",
301
316
  "custom-element-jet-brains-integration": "^1.8.0",
302
317
  "custom-element-vs-code-integration": "^1.5.0",
318
+ "esbuild": "^0.28.2",
303
319
  "eslint": "^10.10.0",
304
320
  "eslint-config-prettier": "^10.1.8",
305
321
  "eslint-plugin-lit": "^2.3.1",
@@ -1,38 +0,0 @@
1
- import { LitElement as i, css as s } from "lit";
2
- class o extends i {
3
- static {
4
- this.styles = s`
5
- :host {
6
- box-sizing: border-box;
7
- }
8
-
9
- :host([hidden]) {
10
- display: none !important;
11
- }
12
-
13
- *,
14
- *::before,
15
- *::after {
16
- box-sizing: inherit;
17
- }
18
-
19
- /* Read by assistive technology, never drawn. */
20
- .visually-hidden {
21
- position: absolute;
22
- width: 1px;
23
- height: 1px;
24
- overflow: hidden;
25
- clip-path: inset(50%);
26
- white-space: nowrap;
27
- }
28
- `;
29
- }
30
- }
31
- function d(e, t) {
32
- customElements.get(e) || customElements.define(e, t);
33
- }
34
- export {
35
- o as K,
36
- d
37
- };
38
- //# sourceMappingURL=kt-element-B_jjQDhg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kt-element-B_jjQDhg.js","sources":["../../src/internal/kt-element.ts"],"sourcesContent":["import { LitElement, css, type CSSResultGroup } from 'lit';\n\n/**\n * Base class for every Kanto element.\n *\n * It exists for two reasons. First, `box-sizing: border-box` does not cross a\n * shadow boundary, so each root has to re-establish it. Second, `[hidden]`\n * loses to a `:host { display: flex }` rule inside the shadow root, and every\n * element in this system sets its own display — without the override here,\n * hiding a Kanto element from the outside silently does nothing.\n */\nexport class KtElement extends LitElement {\n static override styles: CSSResultGroup = css`\n :host {\n box-sizing: border-box;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n *,\n *::before,\n *::after {\n box-sizing: inherit;\n }\n\n /* Read by assistive technology, never drawn. */\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n }\n `;\n}\n\n/**\n * Registers a custom element, tolerating a repeat call.\n *\n * A design system gets loaded twice more often than you would like — two\n * versions in one dependency tree, a dev-server hot reload, a micro-frontend\n * mounting a second copy. `customElements.define` throws on a duplicate tag\n * and would take the whole page down with it.\n */\nexport function defineElement(tag: string, ctor: CustomElementConstructor): void {\n if (customElements.get(tag)) return;\n customElements.define(tag, ctor);\n}\n"],"names":["KtElement","LitElement","css","defineElement","tag","ctor"],"mappings":";AAWO,MAAMA,UAAkBC,EAAW;AAAA,EACxC,OAAA;AAAA,SAAgB,SAAyBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAyB3C;AAUO,SAASC,EAAcC,GAAaC,GAAsC;AAC/E,EAAI,eAAe,IAAID,CAAG,KAC1B,eAAe,OAAOA,GAAKC,CAAI;AACjC;"}