@ds-mo/ui 15.0.0 → 15.1.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 (145) hide show
  1. package/NOTICE +6 -0
  2. package/README.md +7 -0
  3. package/dist/.package-ready.json +1 -1
  4. package/dist/agent-patterns.json +1 -1
  5. package/dist/agent.json +2320 -90
  6. package/dist/components/ds-agent-questionnaire.js +1 -1
  7. package/dist/components/ds-agent-response.js +1 -1
  8. package/dist/components/ds-banner.js +1 -1
  9. package/dist/components/ds-banner.js.map +1 -1
  10. package/dist/components/ds-card-chart.js +1 -1
  11. package/dist/components/ds-card-chart.js.map +1 -1
  12. package/dist/components/ds-card-overview.js +1 -1
  13. package/dist/components/ds-card-overview.js.map +1 -1
  14. package/dist/components/ds-card-setting.js +1 -1
  15. package/dist/components/ds-card-setting.js.map +1 -1
  16. package/dist/components/ds-chart.js +1 -1
  17. package/dist/components/ds-chart.js.map +1 -1
  18. package/dist/components/ds-checkbox.js +1 -1
  19. package/dist/components/ds-conversation-list-item.js +1 -1
  20. package/dist/components/ds-conversation-list-item.js.map +1 -1
  21. package/dist/components/ds-data-filter.js +1 -1
  22. package/dist/components/ds-data-preferences.js +1 -1
  23. package/dist/components/ds-data-saved-views.js +1 -1
  24. package/dist/components/ds-data-search.js +1 -1
  25. package/dist/components/ds-data-search.js.map +1 -1
  26. package/dist/components/ds-filter-menu.js +1 -1
  27. package/dist/components/ds-message-scroller.js.map +1 -1
  28. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  29. package/dist/components/ds-pagination.js +1 -1
  30. package/dist/components/ds-scroll-overlay.js.map +1 -1
  31. package/dist/components/ds-select.js +1 -1
  32. package/dist/components/ds-shell-app.js +1 -1
  33. package/dist/components/ds-table.js +1 -1
  34. package/dist/components/{p-Dpr2y6_S.js → p-B_jdoM7e.js} +2 -2
  35. package/dist/components/{p-CElUM-xU.js → p-C6xVxqOn.js} +2 -2
  36. package/dist/components/{p-MG4lcN0D.js → p-CdGXzRP8.js} +2 -2
  37. package/dist/components/{p-D6Wl3dRO.js → p-Cqc2U1ZQ.js} +2 -2
  38. package/dist/components/{p-D6Wl3dRO.js.map → p-Cqc2U1ZQ.js.map} +1 -1
  39. package/dist/components/{p-Nc76seSq.js → p-DEW7r0U9.js} +2 -2
  40. package/dist/components/{p-IEq_06J0.js → p-Dfs98tpL.js} +2 -2
  41. package/dist/components/{p-IEq_06J0.js.map → p-Dfs98tpL.js.map} +1 -1
  42. package/dist/components/p-ZhP2tVmM.js.map +1 -1
  43. package/dist/components/p-etifxiDc.js.map +1 -1
  44. package/dist/docs/components.json +1 -1
  45. package/dist/lint/STYLELINT-LICENSE +20 -0
  46. package/dist/lint/THIRD-PARTY-NOTICES +553 -0
  47. package/dist/lint/index.d.ts +7 -0
  48. package/dist/lint/index.js +51385 -0
  49. package/dist/lint/types.d.ts +13 -0
  50. package/dist/mcp-data/registry/agent-activity.json +6 -1
  51. package/dist/mcp-data/registry/agent-questionnaire.json +6 -1
  52. package/dist/mcp-data/registry/agent-response.json +12 -1
  53. package/dist/mcp-data/registry/agent-source-list.json +6 -1
  54. package/dist/mcp-data/registry/agent-tool-call.json +6 -1
  55. package/dist/mcp-data/registry/attachment-list.json +6 -1
  56. package/dist/mcp-data/registry/avatar.json +21 -1
  57. package/dist/mcp-data/registry/badge.json +30 -2
  58. package/dist/mcp-data/registry/banner.json +28 -2
  59. package/dist/mcp-data/registry/bar-action.json +24 -1
  60. package/dist/mcp-data/registry/bar-nav.json +6 -1
  61. package/dist/mcp-data/registry/bar-page-title.json +24 -1
  62. package/dist/mcp-data/registry/bar-title.json +26 -1
  63. package/dist/mcp-data/registry/bar-workflow.json +24 -1
  64. package/dist/mcp-data/registry/breadcrumb.json +6 -1
  65. package/dist/mcp-data/registry/button-filled.json +68 -1
  66. package/dist/mcp-data/registry/button-inverted.json +64 -1
  67. package/dist/mcp-data/registry/button-unfilled.json +66 -1
  68. package/dist/mcp-data/registry/calendar.json +14 -1
  69. package/dist/mcp-data/registry/card-action-center.json +24 -1
  70. package/dist/mcp-data/registry/card-chart.json +37 -2
  71. package/dist/mcp-data/registry/card-navigation.json +36 -1
  72. package/dist/mcp-data/registry/card-overview.json +27 -2
  73. package/dist/mcp-data/registry/card-setting.json +35 -2
  74. package/dist/mcp-data/registry/card-settings-scope.json +24 -1
  75. package/dist/mcp-data/registry/chart-legend.json +6 -1
  76. package/dist/mcp-data/registry/chart.json +7 -2
  77. package/dist/mcp-data/registry/checkbox.json +38 -2
  78. package/dist/mcp-data/registry/chip.json +50 -1
  79. package/dist/mcp-data/registry/code-block.json +30 -1
  80. package/dist/mcp-data/registry/conversation-list-item.json +25 -2
  81. package/dist/mcp-data/registry/conversation-list-section.json +14 -1
  82. package/dist/mcp-data/registry/conversation-list.json +6 -1
  83. package/dist/mcp-data/registry/data-customize.json +26 -1
  84. package/dist/mcp-data/registry/data-filter.json +26 -1
  85. package/dist/mcp-data/registry/data-group.json +26 -1
  86. package/dist/mcp-data/registry/data-preferences.json +26 -1
  87. package/dist/mcp-data/registry/data-saved-views.json +26 -1
  88. package/dist/mcp-data/registry/data-search.json +27 -2
  89. package/dist/mcp-data/registry/data-sort.json +26 -1
  90. package/dist/mcp-data/registry/data-toolbar.json +14 -1
  91. package/dist/mcp-data/registry/divider.json +6 -1
  92. package/dist/mcp-data/registry/empty-state.json +6 -1
  93. package/dist/mcp-data/registry/field.json +14 -1
  94. package/dist/mcp-data/registry/filter-menu.json +48 -1
  95. package/dist/mcp-data/registry/icon.json +21 -1
  96. package/dist/mcp-data/registry/input-date.json +48 -1
  97. package/dist/mcp-data/registry/input-time.json +48 -1
  98. package/dist/mcp-data/registry/input.json +48 -1
  99. package/dist/mcp-data/registry/loader.json +21 -1
  100. package/dist/mcp-data/registry/markdown.json +17 -1
  101. package/dist/mcp-data/registry/menu.json +26 -1
  102. package/dist/mcp-data/registry/message-actions.json +6 -1
  103. package/dist/mcp-data/registry/message-bubble.json +26 -1
  104. package/dist/mcp-data/registry/message-composer.json +24 -1
  105. package/dist/mcp-data/registry/message-scroller.json +12 -1
  106. package/dist/mcp-data/registry/message.json +6 -1
  107. package/dist/mcp-data/registry/mobile-bar-nav.json +24 -1
  108. package/dist/mcp-data/registry/mobile-header.json +26 -1
  109. package/dist/mcp-data/registry/mobile-section-switcher.json +26 -1
  110. package/dist/mcp-data/registry/mobile-sheet-nav.json +27 -2
  111. package/dist/mcp-data/registry/modal.json +24 -1
  112. package/dist/mcp-data/registry/pagination.json +6 -1
  113. package/dist/mcp-data/registry/panel-nav.json +28 -2
  114. package/dist/mcp-data/registry/panel-sub-nav.json +25 -0
  115. package/dist/mcp-data/registry/panel-tool-header.json +24 -1
  116. package/dist/mcp-data/registry/panel-tool-search.json +24 -1
  117. package/dist/mcp-data/registry/panel-tools.json +25 -1
  118. package/dist/mcp-data/registry/paper-texture.json +6 -1
  119. package/dist/mcp-data/registry/radio.json +35 -1
  120. package/dist/mcp-data/registry/registry.json +2319 -89
  121. package/dist/mcp-data/registry/score.json +38 -1
  122. package/dist/mcp-data/registry/scroll-overlay.json +6 -1
  123. package/dist/mcp-data/registry/select.json +52 -1
  124. package/dist/mcp-data/registry/shell-app.json +26 -1
  125. package/dist/mcp-data/registry/shell-page.json +6 -1
  126. package/dist/mcp-data/registry/shell-tools.json +25 -1
  127. package/dist/mcp-data/registry/skeleton.json +41 -1
  128. package/dist/mcp-data/registry/slider.json +42 -1
  129. package/dist/mcp-data/registry/swatch-picker.json +24 -1
  130. package/dist/mcp-data/registry/switch.json +37 -1
  131. package/dist/mcp-data/registry/tab-group.json +49 -1
  132. package/dist/mcp-data/registry/table.json +102 -1
  133. package/dist/mcp-data/registry/tag.json +52 -1
  134. package/dist/mcp-data/registry/text.json +22 -1
  135. package/dist/mcp-data/registry/textarea.json +38 -1
  136. package/dist/mcp-data/registry/time-picker.json +14 -1
  137. package/dist/mcp-data/registry/toast.json +24 -1
  138. package/dist/mcp-data/registry/tooltip-chart.json +24 -1
  139. package/dist/mcp-data/registry/tooltip.json +26 -1
  140. package/dist/mcp-data/registry/typing-indicator.json +6 -1
  141. package/package.json +32 -7
  142. /package/dist/components/{p-Dpr2y6_S.js.map → p-B_jdoM7e.js.map} +0 -0
  143. /package/dist/components/{p-CElUM-xU.js.map → p-C6xVxqOn.js.map} +0 -0
  144. /package/dist/components/{p-MG4lcN0D.js.map → p-CdGXzRP8.js.map} +0 -0
  145. /package/dist/components/{p-Nc76seSq.js.map → p-DEW7r0U9.js.map} +0 -0
@@ -80,7 +80,44 @@
80
80
  "label": "Cross-browser form and accessibility coverage",
81
81
  "path": "tests/e2e/forms.spec.ts"
82
82
  }
83
- ]
83
+ ],
84
+ "styling": {
85
+ "rationale": "The component owns the protected recipes below; unspecified host properties and application layout remain customizable.",
86
+ "protected": [
87
+ {
88
+ "properties": [
89
+ "font",
90
+ "font-size",
91
+ "font-weight",
92
+ "font-family",
93
+ "line-height",
94
+ "letter-spacing",
95
+ "padding",
96
+ "border-radius"
97
+ ],
98
+ "reason": "Size selects the text and inset recipe; rows and resize retain their documented height ownership.",
99
+ "props": [
100
+ "size",
101
+ "rows",
102
+ "resize"
103
+ ]
104
+ },
105
+ {
106
+ "properties": [
107
+ "background",
108
+ "border",
109
+ "box-shadow",
110
+ "color"
111
+ ],
112
+ "reason": "The component owns its surface and interaction treatment; use its semantic presentation props or compose an application-owned surrounding surface.",
113
+ "props": [
114
+ "hasBorder",
115
+ "size"
116
+ ]
117
+ }
118
+ ],
119
+ "customProperties": []
120
+ }
84
121
  },
85
122
  "api": {
86
123
  "props": {
@@ -65,7 +65,20 @@
65
65
  "label": "Storybook examples",
66
66
  "path": "src/wc/components/TimePicker/TimePicker.stories.ts"
67
67
  }
68
- ]
68
+ ],
69
+ "styling": {
70
+ "rationale": "The component owns the protected recipes below; unspecified host properties and application layout remain customizable.",
71
+ "protected": [
72
+ {
73
+ "properties": [
74
+ "gap"
75
+ ],
76
+ "reason": "The component owns spacing between its immediate content regions; the application controls surrounding margins and placement.",
77
+ "props": []
78
+ }
79
+ ],
80
+ "customProperties": []
81
+ }
69
82
  },
70
83
  "api": {
71
84
  "props": {
@@ -104,7 +104,30 @@
104
104
  "label": "Cross-browser behavior coverage",
105
105
  "path": "tests/e2e/toast.spec.ts"
106
106
  }
107
- ]
107
+ ],
108
+ "styling": {
109
+ "rationale": "The component owns the protected recipes below; unspecified host properties and application layout remain customizable.",
110
+ "protected": [
111
+ {
112
+ "properties": [
113
+ "background",
114
+ "border",
115
+ "box-shadow",
116
+ "color"
117
+ ],
118
+ "reason": "The component owns its surface and interaction treatment; use its semantic presentation props or compose an application-owned surrounding surface.",
119
+ "props": []
120
+ },
121
+ {
122
+ "properties": [
123
+ "border-radius"
124
+ ],
125
+ "reason": "The component owns its surface radius; retain the shared recipe and customize an outer wrapper when needed.",
126
+ "props": []
127
+ }
128
+ ],
129
+ "customProperties": []
130
+ }
108
131
  },
109
132
  "api": {
110
133
  "props": {
@@ -75,7 +75,30 @@
75
75
  "label": "Storybook example",
76
76
  "path": "src/wc/components/TooltipChart/TooltipChart.stories.ts"
77
77
  }
78
- ]
78
+ ],
79
+ "styling": {
80
+ "rationale": "The component owns the protected recipes below; unspecified host properties and application layout remain customizable.",
81
+ "protected": [
82
+ {
83
+ "properties": [
84
+ "background",
85
+ "border",
86
+ "box-shadow",
87
+ "color"
88
+ ],
89
+ "reason": "The component owns its surface and interaction treatment; use its semantic presentation props or compose an application-owned surrounding surface.",
90
+ "props": []
91
+ },
92
+ {
93
+ "properties": [
94
+ "border-radius"
95
+ ],
96
+ "reason": "The component owns its surface radius; retain the shared recipe and customize an outer wrapper when needed.",
97
+ "props": []
98
+ }
99
+ ],
100
+ "customProperties": []
101
+ }
79
102
  },
80
103
  "api": {
81
104
  "props": {
@@ -96,7 +96,32 @@
96
96
  "label": "Positioning unit coverage",
97
97
  "path": "tests/anchored-position.test.ts"
98
98
  }
99
- ]
99
+ ],
100
+ "styling": {
101
+ "rationale": "The component owns the protected recipes below; unspecified host properties and application layout remain customizable.",
102
+ "protected": [
103
+ {
104
+ "properties": [
105
+ "background",
106
+ "border",
107
+ "box-shadow",
108
+ "color"
109
+ ],
110
+ "reason": "The component owns its surface and interaction treatment; use its semantic presentation props or compose an application-owned surrounding surface.",
111
+ "props": [
112
+ "size"
113
+ ]
114
+ },
115
+ {
116
+ "properties": [
117
+ "border-radius"
118
+ ],
119
+ "reason": "The component owns its surface radius; retain the shared recipe and customize an outer wrapper when needed.",
120
+ "props": []
121
+ }
122
+ ],
123
+ "customProperties": []
124
+ }
100
125
  },
101
126
  "api": {
102
127
  "props": {
@@ -44,7 +44,12 @@
44
44
  "label": "Storybook example",
45
45
  "path": "src/wc/components/TypingIndicator/TypingIndicator.stories.ts"
46
46
  }
47
- ]
47
+ ],
48
+ "styling": {
49
+ "rationale": "The indicator composes loader and text recipes inside an application-positioned host.",
50
+ "protected": [],
51
+ "customProperties": []
52
+ }
48
53
  },
49
54
  "api": {
50
55
  "props": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "15.0.0",
3
+ "version": "15.1.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -75,7 +75,12 @@
75
75
  "./agent": "./dist/agent.json",
76
76
  "./agent/patterns": "./dist/agent-patterns.json",
77
77
  "./dist/components/*": "./dist/components/*",
78
- "./components/*": "./dist/components/*"
78
+ "./components/*": "./dist/components/*",
79
+ "./lint": {
80
+ "types": "./dist/lint/index.d.ts",
81
+ "import": "./dist/lint/index.js",
82
+ "default": "./dist/lint/index.js"
83
+ }
79
84
  },
80
85
  "files": [
81
86
  "dist",
@@ -85,7 +90,7 @@
85
90
  "prebuild": "npm run clean && npm run clean:framework-proxies && node scripts/generate-icon-catalog.mjs",
86
91
  "pretypecheck": "node scripts/generate-icon-catalog.mjs",
87
92
  "pretest": "node scripts/generate-icon-catalog.mjs",
88
- "build": "stencil build && node scripts/verify-framework-proxies.mjs && node scripts/patch-index-types.mjs && node scripts/verify-icons-externalized.mjs && node scripts/build-lib-exports.mjs && node scripts/build-style-exports.mjs && node scripts/build-framework-exports.mjs && node scripts/build-registry.mjs && node scripts/build-agent-manifest.mjs && node scripts/build-mcp.mjs && node scripts/verify-framework-proxies.mjs && node scripts/write-build-stamp.mjs",
93
+ "build": "stencil build && node scripts/verify-framework-proxies.mjs && node scripts/patch-index-types.mjs && node scripts/verify-icons-externalized.mjs && node scripts/build-lib-exports.mjs && node scripts/build-style-exports.mjs && node scripts/build-framework-exports.mjs && node scripts/build-registry.mjs && node scripts/build-agent-manifest.mjs && node scripts/build-lint.mjs && node scripts/build-mcp.mjs && node scripts/verify-framework-proxies.mjs && node scripts/write-build-stamp.mjs",
89
94
  "verify:pack": "node scripts/verify-framework-proxies.mjs && node scripts/verify-npm-pack.mjs && node scripts/verify-package-imports.mjs",
90
95
  "verify:local": "npm run format:check && npm run typecheck && npm run typecheck:storybook && npm run lint && npm test && npm run build && npm run agent:validate && npm run verify:pack",
91
96
  "verify:local:full": "npm run verify:local && npm run test:e2e:chromium",
@@ -114,8 +119,8 @@
114
119
  "clean:framework-proxies": "node scripts/clean-framework-proxies.mjs",
115
120
  "typecheck": "tsc --noEmit",
116
121
  "typecheck:storybook": "tsc -p tsconfig.storybook-tests.json",
117
- "lint": "eslint src/ .storybook/vitest.setup.ts vitest.config.ts tests/ci-browser-scope.test.ts && npm run lint:css",
118
- "lint:css": "stylelint \"src/wc/components/**/*.css\" \"src/wc/styles/**/*.css\" \"src/wc/utils/**/*.css\"",
122
+ "lint": "eslint src/ .storybook/vitest.setup.ts vitest.config.ts tests/ci-browser-scope.test.ts",
123
+ "lint:css": "eslint \"src/wc/components/**/*.css\" \"src/wc/styles/**/*.css\" \"src/wc/utils/**/*.css\"",
119
124
  "registry:build": "node scripts/build-registry.mjs",
120
125
  "agent:validate": "node scripts/validate-agent-contract.mjs",
121
126
  "agent:validate:trilogy": "node scripts/validate-trilogy-manifests.mjs",
@@ -126,6 +131,8 @@
126
131
  "@angular/forms": ">=19 <23",
127
132
  "@ds-mo/icons": "^8.1.0",
128
133
  "@ds-mo/tokens": "^6.5.1",
134
+ "@eslint/css": "^2.0.0",
135
+ "eslint": "^10.7.0",
129
136
  "react": "^18 || ^19",
130
137
  "react-dom": "^18 || ^19",
131
138
  "rxjs": "^7.8.0",
@@ -149,6 +156,12 @@
149
156
  },
150
157
  "vue": {
151
158
  "optional": true
159
+ },
160
+ "eslint": {
161
+ "optional": true
162
+ },
163
+ "@eslint/css": {
164
+ "optional": true
152
165
  }
153
166
  },
154
167
  "devDependencies": {
@@ -157,8 +170,14 @@
157
170
  "@angular/core": "^22.0.7",
158
171
  "@angular/forms": "^22.0.7",
159
172
  "@axe-core/playwright": "^4.12.1",
173
+ "@csstools/css-calc": "^3.3.0",
174
+ "@csstools/css-parser-algorithms": "^4.0.0",
175
+ "@csstools/css-syntax-patches-for-csstree": "^1.1.7",
176
+ "@csstools/css-tokenizer": "^4.0.0",
177
+ "@csstools/media-query-list-parser": "^5.0.0",
160
178
  "@ds-mo/icons": "^8.1.0",
161
179
  "@ds-mo/tokens": "^6.5.1",
180
+ "@eslint/css": "^2.0.0",
162
181
  "@eslint/js": "^10.0.1",
163
182
  "@fontsource-variable/inter": "^5.3.0",
164
183
  "@fontsource/fira-code": "^5.3.0",
@@ -183,18 +202,24 @@
183
202
  "@vitest/browser-playwright": "^4.1.10",
184
203
  "ajv": "^8.20.0",
185
204
  "axe-core": "^4.12.1",
205
+ "colord": "^2.9.3",
186
206
  "concurrently": "^10.0.3",
207
+ "css-tree": "^3.2.1",
187
208
  "esbuild": "^0.28.1",
188
209
  "eslint": "^10.7.0",
189
210
  "eslint-plugin-react-hooks": "^7.1.1",
190
211
  "globals": "^17.7.0",
212
+ "html-tags": "^5.1.0",
191
213
  "lit": "^3.3.3",
214
+ "mathml-tag-names": "^4.0.0",
215
+ "postcss": "^8.5.26",
216
+ "postcss-selector-parser": "^7.1.4",
217
+ "postcss-value-parser": "^4.2.0",
192
218
  "prettier": "3.8.3",
193
219
  "react": "^19.2.7",
194
220
  "react-dom": "^19.2.7",
195
221
  "storybook": "^10.5.0",
196
- "stylelint": "^17.14.0",
197
- "stylelint-config-standard": "^40.0.0",
222
+ "svg-tags": "^1.0.0",
198
223
  "tsx": "^4.23.0",
199
224
  "typescript": "~6.0.3",
200
225
  "typescript-eslint": "^8.63.0",