@chat21/chat21-web-widget 5.1.34-rc1 → 5.1.34

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 (193) hide show
  1. package/.github/workflows/docker-community-push-latest.yml +13 -23
  2. package/.github/workflows/docker-image-tag-community-tag-push.yml +12 -22
  3. package/CHANGELOG.md +8 -129
  4. package/Dockerfile +5 -4
  5. package/angular.json +3 -21
  6. package/docs/changelog/this-branch.md +0 -36
  7. package/env.sample +2 -3
  8. package/nginx.conf +2 -22
  9. package/package.json +3 -10
  10. package/src/app/app.component.html +2 -2
  11. package/src/app/app.component.scss +14 -25
  12. package/src/app/app.component.spec.ts +6 -21
  13. package/src/app/app.component.ts +9 -10
  14. package/src/app/app.module.ts +0 -13
  15. package/src/app/component/conversation-detail/conversation/conversation.component.html +11 -25
  16. package/src/app/component/conversation-detail/conversation/conversation.component.scss +2 -40
  17. package/src/app/component/conversation-detail/conversation/conversation.component.spec.ts +75 -644
  18. package/src/app/component/conversation-detail/conversation/conversation.component.ts +14 -100
  19. package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.html +13 -25
  20. package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.spec.ts +5 -123
  21. package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.ts +0 -1
  22. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.html +10 -23
  23. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.scss +1 -19
  24. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.spec.ts +149 -242
  25. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.ts +5 -8
  26. package/src/app/component/conversation-detail/conversation-emojii/conversation-emojii.component.spec.ts +3 -53
  27. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.html +96 -200
  28. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.scss +6 -211
  29. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.spec.ts +78 -452
  30. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts +76 -291
  31. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.html +53 -113
  32. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.scss +4 -12
  33. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.spec.ts +29 -274
  34. package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.html +9 -23
  35. package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.spec.ts +8 -80
  36. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.html +23 -29
  37. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.spec.ts +16 -185
  38. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.ts +14 -34
  39. package/src/app/component/error-alert/error-alert.component.spec.ts +5 -65
  40. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.html +7 -16
  41. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.scss +0 -21
  42. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.spec.ts +7 -89
  43. package/src/app/component/form/form-builder/form-builder.component.html +1 -1
  44. package/src/app/component/form/form-builder/form-builder.component.spec.ts +21 -163
  45. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.html +4 -8
  46. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.scss +5 -10
  47. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.spec.ts +16 -90
  48. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.ts +0 -26
  49. package/src/app/component/form/inputs/form-label/form-label.component.spec.ts +11 -45
  50. package/src/app/component/form/inputs/form-radio-button/form-radio-button.component.spec.ts +6 -24
  51. package/src/app/component/form/inputs/form-select/form-select.component.spec.ts +5 -14
  52. package/src/app/component/form/inputs/form-text/form-text.component.html +12 -14
  53. package/src/app/component/form/inputs/form-text/form-text.component.scss +1 -11
  54. package/src/app/component/form/inputs/form-text/form-text.component.spec.ts +17 -113
  55. package/src/app/component/form/inputs/form-text/form-text.component.ts +3 -35
  56. package/src/app/component/form/inputs/form-textarea/form-textarea.component.html +11 -13
  57. package/src/app/component/form/inputs/form-textarea/form-textarea.component.scss +5 -6
  58. package/src/app/component/form/inputs/form-textarea/form-textarea.component.spec.ts +13 -149
  59. package/src/app/component/form/inputs/form-textarea/form-textarea.component.ts +0 -26
  60. package/src/app/component/form/prechat-form/prechat-form.component.html +11 -14
  61. package/src/app/component/form/prechat-form/prechat-form.component.spec.ts +10 -102
  62. package/src/app/component/form/prechat-form/prechat-form.component.ts +1 -8
  63. package/src/app/component/home/home.component.html +31 -38
  64. package/src/app/component/home/home.component.scss +2 -4
  65. package/src/app/component/home/home.component.spec.ts +11 -226
  66. package/src/app/component/home-conversations/home-conversations.component.html +26 -30
  67. package/src/app/component/home-conversations/home-conversations.component.scss +0 -3
  68. package/src/app/component/home-conversations/home-conversations.component.spec.ts +36 -212
  69. package/src/app/component/last-message/last-message.component.html +9 -15
  70. package/src/app/component/last-message/last-message.component.scss +2 -16
  71. package/src/app/component/last-message/last-message.component.spec.ts +23 -204
  72. package/src/app/component/last-message/last-message.component.ts +1 -4
  73. package/src/app/component/launcher-button/launcher-button.component.html +13 -8
  74. package/src/app/component/launcher-button/launcher-button.component.spec.ts +8 -104
  75. package/src/app/component/list-all-conversations/list-all-conversations.component.html +17 -12
  76. package/src/app/component/list-all-conversations/list-all-conversations.component.scss +0 -2
  77. package/src/app/component/list-conversations/list-conversations.component.html +22 -22
  78. package/src/app/component/menu-options/menu-options.component.html +20 -30
  79. package/src/app/component/menu-options/menu-options.component.spec.ts +9 -125
  80. package/src/app/component/message/audio/audio.component.html +15 -13
  81. package/src/app/component/message/audio/audio.component.spec.ts +5 -140
  82. package/src/app/component/message/audio/audio.component.ts +5 -1
  83. package/src/app/component/message/avatar/avatar.component.html +2 -2
  84. package/src/app/component/message/avatar/avatar.component.spec.ts +7 -99
  85. package/src/app/component/message/bubble-message/bubble-message.component.html +51 -38
  86. package/src/app/component/message/bubble-message/bubble-message.component.scss +1 -54
  87. package/src/app/component/message/bubble-message/bubble-message.component.spec.ts +57 -154
  88. package/src/app/component/message/bubble-message/bubble-message.component.ts +11 -89
  89. package/src/app/component/message/buttons/action-button/action-button.component.html +4 -3
  90. package/src/app/component/message/buttons/action-button/action-button.component.spec.ts +5 -49
  91. package/src/app/component/message/buttons/link-button/link-button.component.scss +8 -5
  92. package/src/app/component/message/buttons/link-button/link-button.component.spec.ts +5 -50
  93. package/src/app/component/message/buttons/text-button/text-button.component.spec.ts +5 -44
  94. package/src/app/component/message/carousel/carousel.component.html +16 -29
  95. package/src/app/component/message/carousel/carousel.component.scss +8 -20
  96. package/src/app/component/message/carousel/carousel.component.spec.ts +3 -80
  97. package/src/app/component/message/carousel/carousel.component.ts +0 -16
  98. package/src/app/component/message/frame/frame.component.html +4 -9
  99. package/src/app/component/message/frame/frame.component.spec.ts +15 -34
  100. package/src/app/component/message/frame/frame.component.ts +2 -7
  101. package/src/app/component/message/html/html.component.html +1 -1
  102. package/src/app/component/message/html/html.component.scss +1 -1
  103. package/src/app/component/message/html/html.component.spec.ts +7 -24
  104. package/src/app/component/message/image/image.component.html +10 -12
  105. package/src/app/component/message/image/image.component.scss +0 -16
  106. package/src/app/component/message/image/image.component.spec.ts +15 -101
  107. package/src/app/component/message/image/image.component.ts +51 -90
  108. package/src/app/component/message/info-message/info-message.component.spec.ts +14 -26
  109. package/src/app/component/message/like-unlike/like-unlike.component.html +9 -7
  110. package/src/app/component/message/like-unlike/like-unlike.component.spec.ts +3 -31
  111. package/src/app/component/message/return-receipt/return-receipt.component.spec.ts +17 -38
  112. package/src/app/component/message/text/text.component.html +3 -3
  113. package/src/app/component/message/text/text.component.scss +86 -80
  114. package/src/app/component/message/text/text.component.spec.ts +13 -106
  115. package/src/app/component/message-attachment/message-attachment.component.spec.ts +13 -134
  116. package/src/app/component/selection-department/selection-department.component.html +23 -21
  117. package/src/app/component/selection-department/selection-department.component.spec.ts +14 -159
  118. package/src/app/component/selection-department/selection-department.component.ts +1 -8
  119. package/src/app/component/send-button/send-button.component.html +13 -5
  120. package/src/app/component/send-button/send-button.component.spec.ts +2 -2
  121. package/src/app/component/star-rating-widget/star-rating-widget.component.html +81 -51
  122. package/src/app/directives/tooltip.directive.spec.ts +4 -8
  123. package/src/app/modals/confirm-close/confirm-close.component.html +8 -20
  124. package/src/app/modals/confirm-close/confirm-close.component.scss +0 -3
  125. package/src/app/modals/confirm-close/confirm-close.component.spec.ts +4 -13
  126. package/src/app/modals/confirm-close/confirm-close.component.ts +1 -8
  127. package/src/app/pipe/html-entites-encode.pipe.spec.ts +2 -35
  128. package/src/app/pipe/marked.pipe.spec.ts +2 -38
  129. package/src/app/pipe/marked.pipe.ts +41 -51
  130. package/src/app/providers/app-config.service.ts +2 -4
  131. package/src/app/providers/brand.service.spec.ts +2 -23
  132. package/src/app/providers/brand.service.ts +1 -1
  133. package/src/app/providers/global-settings.service.spec.ts +14 -1009
  134. package/src/app/providers/global-settings.service.ts +2 -82
  135. package/src/app/providers/translator.service.ts +6 -26
  136. package/src/app/sass/_variables.scss +0 -3
  137. package/src/app/sass/animations.scss +1 -19
  138. package/src/app/utils/globals.ts +1 -21
  139. package/src/app/utils/utils-resources.ts +1 -1
  140. package/src/assets/i18n/en.json +99 -106
  141. package/src/assets/i18n/es.json +100 -107
  142. package/src/assets/i18n/fr.json +100 -107
  143. package/src/assets/i18n/it.json +98 -107
  144. package/src/assets/twp/index-dev.html +0 -18
  145. package/src/chat21-core/models/message.ts +1 -2
  146. package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +2 -3
  147. package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +0 -12
  148. package/src/chat21-core/providers/scripts/script.service.spec.ts +2 -12
  149. package/src/chat21-core/providers/tiledesk/tiledesk-requests.service.ts +1 -1
  150. package/src/chat21-core/utils/utils-message.ts +0 -7
  151. package/src/chat21-core/utils/utils.ts +2 -5
  152. package/src/widget-config-template.json +1 -4
  153. package/src/widget-config.json +1 -4
  154. package/tsconfig.json +0 -5
  155. package/.angular-mcp-cache/package.json +0 -1
  156. package/.cursor/angular18-accessibility-auditor-skill.md +0 -442
  157. package/.cursor/mcp.json +0 -15
  158. package/.github/workflows/build.yml +0 -22
  159. package/.github/workflows/playwright.yml +0 -27
  160. package/mocks/voice-websocket-mock/server.cjs +0 -245
  161. package/playwright.config.ts +0 -41
  162. package/src/app/component/conversation-detail/stream-audio-spectrum/stream-audio-spectrum.component.html +0 -46
  163. package/src/app/component/conversation-detail/stream-audio-spectrum/stream-audio-spectrum.component.scss +0 -83
  164. package/src/app/component/conversation-detail/stream-audio-spectrum/stream-audio-spectrum.component.ts +0 -192
  165. package/src/app/component/form/prechat-form-test-mock.ts +0 -35
  166. package/src/app/component/message/audio-sync/audio-sync.component.html +0 -18
  167. package/src/app/component/message/audio-sync/audio-sync.component.scss +0 -65
  168. package/src/app/component/message/audio-sync/audio-sync.component.spec.ts +0 -103
  169. package/src/app/component/message/audio-sync/audio-sync.component.ts +0 -643
  170. package/src/app/providers/tts-audio-playback-coordinator.service.spec.ts +0 -117
  171. package/src/app/providers/tts-audio-playback-coordinator.service.ts +0 -109
  172. package/src/app/providers/voice/STT&TTS/openai-voice.config.ts +0 -12
  173. package/src/app/providers/voice/STT&TTS/openai-voice.provider.ts +0 -171
  174. package/src/app/providers/voice/STT&TTS/speech-provider.abstract.ts +0 -39
  175. package/src/app/providers/voice/audio.types.ts +0 -40
  176. package/src/app/providers/voice/vad.service.spec.ts +0 -28
  177. package/src/app/providers/voice/vad.service.ts +0 -70
  178. package/src/app/providers/voice/voice-streaming.service.spec.ts +0 -23
  179. package/src/app/providers/voice/voice-streaming.service.ts +0 -702
  180. package/src/app/providers/voice/voice-streaming.types.ts +0 -112
  181. package/src/app/providers/voice/voice.service.spec.ts +0 -227
  182. package/src/app/providers/voice/voice.service.ts +0 -973
  183. package/src/app/shims/onnxruntime-web-wasm.ts +0 -4
  184. package/src/assets/onnx/ort-wasm-simd-threaded.mjs +0 -59
  185. package/src/assets/onnx/ort-wasm-simd-threaded.wasm +0 -0
  186. package/src/assets/sounds/keyboard.mp3 +0 -0
  187. package/src/assets/twp/tiledesk_widget_files/widget-css-override-example.css +0 -14
  188. package/src/assets/vad/silero_vad_legacy.onnx +0 -0
  189. package/src/assets/vad/vad.worklet.bundle.min.js +0 -1
  190. package/src/chat21-core/providers/chat-manager.spec.ts +0 -72
  191. package/tests/widget-form-rich.spec.ts +0 -67
  192. package/tests/widget-index-dev-settings.spec.ts +0 -52
  193. package/tests/widget-twp-iframe.spec.ts +0 -39
@@ -1,442 +0,0 @@
1
- # Angular 18 Accessibility Auditor Skill
2
-
3
- ## Role
4
-
5
- You are an expert Angular 18 architect and accessibility auditor specialized in:
6
-
7
- - Angular standalone architecture
8
- - Dynamic bootstrap systems (`launch.js`)
9
- - iframe-hosted Angular applications
10
- - WCAG 2.2 AA compliance
11
- - WAI-ARIA best practices
12
- - Semantic HTML validation
13
- - Keyboard navigation analysis
14
- - Screen reader compatibility
15
- - Component API inspection
16
- - UI accessibility remediation
17
-
18
- Your task is to inspect an Angular 18 project loaded through an iframe and bootstrapped by a `launch.js` file.
19
-
20
- ---
21
-
22
- # Objectives
23
-
24
- Analyze the entire Angular application and produce:
25
-
26
- 1. Full component inventory
27
- 2. Component hierarchy map
28
- 3. Inputs and Outputs analysis
29
- 4. Accessibility audit
30
- 5. WCAG 2.2 violations
31
- 6. ARIA compliance report
32
- 7. Keyboard navigation issues
33
- 8. Screen reader compatibility issues
34
- 9. Semantic HTML problems
35
- 10. Accessibility remediation suggestions
36
- 11. Severity classification
37
- 12. Suggested code fixes
38
-
39
- ---
40
-
41
- # Project Context
42
-
43
- The Angular application:
44
-
45
- - Uses Angular 18
46
- - Is bootstrapped dynamically through `launch.js`
47
- - Is rendered inside an iframe
48
- - May use standalone components
49
- - May use signals
50
- - May use lazy routes
51
- - May use custom UI libraries
52
- - May use Shadow DOM
53
- - May use dynamic rendering
54
-
55
- You must inspect:
56
-
57
- - `launch.js`
58
- - `main.ts`
59
- - `app.config.ts`
60
- - routing configuration
61
- - all Angular components
62
- - templates (`.html`)
63
- - inline templates
64
- - directives
65
- - pipes
66
- - services involved in UI rendering
67
-
68
- ---
69
-
70
- # Mandatory Analysis Rules
71
-
72
- ## Component Discovery
73
-
74
- You MUST identify:
75
-
76
- - selector
77
- - standalone or module-based
78
- - templateUrl or inline template
79
- - styleUrls
80
- - imported dependencies
81
- - nested components
82
- - dynamic component rendering
83
- - projected content (`ng-content`)
84
- - structural directives
85
-
86
- For every component extract:
87
-
88
- ```ts
89
- @Input()
90
- @Output()
91
- signal()
92
- computed()
93
- effect()
94
- viewChild()
95
- contentChild()
96
- hostBinding()
97
- hostListener()
98
- ```
99
-
100
- ---
101
-
102
- # Accessibility Audit Rules
103
-
104
- For every component evaluate:
105
-
106
- ## 1. Semantic HTML
107
-
108
- Detect misuse or absence of:
109
-
110
- - button
111
- - nav
112
- - main
113
- - section
114
- - article
115
- - header
116
- - footer
117
- - aside
118
- - label
119
- - fieldset
120
- - legend
121
- - table semantics
122
-
123
- Flag:
124
-
125
- - clickable divs
126
- - clickable spans
127
- - missing labels
128
- - invalid heading hierarchy
129
- - missing alt text
130
- - empty buttons
131
- - duplicate IDs
132
-
133
- ---
134
-
135
- ## 2. WCAG 2.2 Compliance
136
-
137
- Evaluate against:
138
-
139
- ### Perceivable
140
-
141
- - text alternatives
142
- - contrast risks
143
- - resize behavior
144
- - responsive accessibility
145
-
146
- ### Operable
147
-
148
- - keyboard navigation
149
- - focus trapping
150
- - tab order
151
- - focus visibility
152
- - skip links
153
- - hover-only interactions
154
-
155
- ### Understandable
156
-
157
- - label clarity
158
- - form instructions
159
- - error messages
160
- - consistent navigation
161
-
162
- ### Robust
163
-
164
- - ARIA validity
165
- - semantic correctness
166
- - screen reader compatibility
167
-
168
- ---
169
-
170
- ## 3. ARIA Validation
171
-
172
- Validate:
173
-
174
- - aria-label
175
- - aria-labelledby
176
- - aria-describedby
177
- - aria-hidden
178
- - role
179
- - live regions
180
- - dialog accessibility
181
- - menu accessibility
182
- - tabs accessibility
183
- - accordion accessibility
184
-
185
- Detect:
186
-
187
- - invalid ARIA roles
188
- - redundant ARIA
189
- - conflicting ARIA attributes
190
- - inaccessible custom controls
191
-
192
- ---
193
-
194
- ## 4. Forms Accessibility
195
-
196
- Check:
197
-
198
- - labels association
199
- - required indicators
200
- - error handling
201
- - aria-invalid
202
- - autocomplete
203
- - focus management
204
- - keyboard operability
205
-
206
- ---
207
-
208
- ## 5. Keyboard Navigation
209
-
210
- Detect:
211
-
212
- - inaccessible controls
213
- - tabindex misuse
214
- - focus loss
215
- - inaccessible modal dialogs
216
- - inaccessible dropdowns
217
- - inaccessible popovers
218
-
219
- ---
220
-
221
- ## 6. Dynamic UI Accessibility
222
-
223
- Because the app is iframe-hosted and dynamically bootstrapped:
224
-
225
- Analyze:
226
-
227
- - iframe title
228
- - focus transfer into iframe
229
- - dynamic DOM rendering
230
- - lazy-loaded accessibility
231
- - async content announcements
232
- - Angular CDK overlays
233
- - dialogs
234
- - portals
235
-
236
- ---
237
-
238
- # Severity Levels
239
-
240
- Each issue must include:
241
-
242
- | Severity | Meaning |
243
- |---|---|
244
- | Critical | Blocks accessibility completely |
245
- | High | Serious usability issue |
246
- | Medium | Partial accessibility degradation |
247
- | Low | Minor improvement |
248
-
249
- ---
250
-
251
- # Output Format
252
-
253
- Always produce output in this structure:
254
-
255
- # Angular Accessibility Audit Report
256
-
257
- ## Project Overview
258
-
259
- - Angular version
260
- - Bootstrap mode
261
- - iframe integration
262
- - routing strategy
263
- - standalone usage
264
-
265
- ---
266
-
267
- # Component Inventory
268
-
269
- ## Component: ExampleComponent
270
-
271
- ### Metadata
272
-
273
- - Selector:
274
- - Standalone:
275
- - Template:
276
- - Style:
277
- - Inputs:
278
- - Outputs:
279
-
280
- ### Accessibility Findings
281
-
282
- | Severity | Rule | Problem | Recommendation |
283
- |---|---|---|---|
284
-
285
- ### WCAG 2.2 Violations
286
-
287
- | WCAG Ref | Description |
288
- |---|---|
289
-
290
- ### ARIA Findings
291
-
292
- | Type | Issue |
293
- |---|---|
294
-
295
- ### Keyboard Accessibility
296
-
297
- | Issue | Recommendation |
298
- |---|---|
299
-
300
- ### Suggested Fix
301
-
302
- ```html
303
- <!-- before -->
304
- <div (click)="save()"></div>
305
-
306
- <!-- after -->
307
- <button type="button" (click)="save()">
308
- Save
309
- </button>
310
- ```
311
-
312
- ---
313
-
314
- # Global Accessibility Issues
315
-
316
- ## Routing Accessibility
317
-
318
- ## Dialog Accessibility
319
-
320
- ## Overlay Accessibility
321
-
322
- ## Focus Management
323
-
324
- ## Screen Reader Compatibility
325
-
326
- ---
327
-
328
- # Final Accessibility Score
329
-
330
- | Area | Score |
331
- |---|---|
332
- | Semantic HTML | |
333
- | Keyboard Accessibility | |
334
- | ARIA Compliance | |
335
- | Forms Accessibility | |
336
- | WCAG 2.2 Compliance | |
337
-
338
- ---
339
-
340
- # Final Recommendations
341
-
342
- Provide:
343
-
344
- 1. Immediate fixes
345
- 2. Structural improvements
346
- 3. Refactoring recommendations
347
- 4. Angular CDK accessibility recommendations
348
- 5. aria-live recommendations
349
- 6. Focus management improvements
350
- 7. Design system accessibility improvements
351
-
352
- ---
353
-
354
- # Additional Technical Requirements
355
-
356
- When analyzing Angular 18 code:
357
-
358
- - Understand signals API
359
- - Understand standalone components
360
- - Understand control flow syntax:
361
- - @if
362
- - @for
363
- - @switch
364
- - Understand deferred loading
365
- - Understand hydration
366
- - Understand SSR accessibility implications
367
- - Understand Angular CDK a11y utilities
368
-
369
- ---
370
-
371
- # Accessibility Best Practices Reference
372
-
373
- Use these standards as authoritative references:
374
-
375
- - WCAG 2.2 AA
376
- - WAI-ARIA 1.2
377
- - HTML Living Standard
378
- - Angular CDK Accessibility
379
- - MDN Accessibility Guidelines
380
-
381
- ---
382
-
383
- # Behavioral Instructions
384
-
385
- You must:
386
-
387
- - Be extremely strict
388
- - Never assume accessibility exists unless verified
389
- - Prefer semantic HTML over ARIA
390
- - Explain WHY something is inaccessible
391
- - Suggest production-grade fixes
392
- - Consider screen readers:
393
- - NVDA
394
- - JAWS
395
- - VoiceOver
396
- - Consider keyboard-only users
397
- - Consider low vision users
398
- - Consider cognitive accessibility
399
-
400
- ---
401
-
402
- # Extra Analysis
403
-
404
- If possible also detect:
405
-
406
- - inaccessible animations
407
- - reduced-motion support
408
- - color dependency issues
409
- - inaccessible charts
410
- - inaccessible SVGs
411
- - inaccessible icons
412
- - missing i18n accessibility
413
- - RTL accessibility problems
414
-
415
- ---
416
-
417
- # Advanced Angular-Specific Checks
418
-
419
- Validate:
420
-
421
- - CDK Dialog accessibility
422
- - Material accessibility
423
- - OverlayContainer focus management
424
- - Dynamic component injection
425
- - Renderer2 misuse
426
- - HostListener keyboard traps
427
- - signal-driven DOM updates
428
- - custom form controls
429
- - ControlValueAccessor accessibility
430
-
431
- ---
432
-
433
- # Final Rule
434
-
435
- Never provide generic accessibility advice.
436
-
437
- Every finding MUST reference:
438
-
439
- - the exact component
440
- - the exact template section
441
- - the exact issue
442
- - the exact remediation
package/.cursor/mcp.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "angular-cli": {
4
- "command": "/Users/gabriele95/.angular-mcp-runner/run-angular-mcp.sh",
5
- "args": []
6
- },
7
- "playwright": {
8
- "command": "npx",
9
- "args": ["-y", "@playwright/mcp@latest", "--caps=testing"],
10
- "env": {
11
- "PATH": "/Users/gabriele95/.nvm/versions/node/v20.19.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
12
- }
13
- }
14
- }
15
- }
@@ -1,22 +0,0 @@
1
- name: Build
2
- on:
3
- push:
4
- branches:
5
- - master # The default branch
6
- - (branch|release)-.* # The other branches to be analyzed
7
- - (features|release)/.*
8
- pull_request:
9
- types: [opened, synchronize, reopened]
10
- jobs:
11
- sonarcloud:
12
- name: SonarCloud
13
- runs-on: ubuntu-latest
14
- steps:
15
- - uses: actions/checkout@v2
16
- with:
17
- fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
18
- - name: SonarCloud Scan
19
- uses: SonarSource/sonarcloud-github-action@master
20
- env:
21
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
22
- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
@@ -1,27 +0,0 @@
1
- name: Playwright Tests
2
- on:
3
- push:
4
- branches: [ main, master ]
5
- pull_request:
6
- branches: [ main, master ]
7
- jobs:
8
- test:
9
- timeout-minutes: 60
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
- - uses: actions/setup-node@v4
14
- with:
15
- node-version: lts/*
16
- - name: Install dependencies
17
- run: npm ci
18
- - name: Install Playwright Browsers
19
- run: npx playwright install --with-deps
20
- - name: Run Playwright tests
21
- run: npx playwright test
22
- - uses: actions/upload-artifact@v4
23
- if: ${{ !cancelled() }}
24
- with:
25
- name: playwright-report
26
- path: playwright-report/
27
- retention-days: 30