@maggioli-design-system/magma-react 2.9.0 → 2.11.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 (618) hide show
  1. package/AGENTS.md +10 -7
  2. package/CHANGELOG.md +109 -0
  3. package/README.md +38 -0
  4. package/agents/assets.md +2 -2
  5. package/agents/color.md +7 -5
  6. package/agents/components.md +2 -2
  7. package/agents/conventions.md +1 -1
  8. package/agents/mcp.md +78 -8
  9. package/agents/{anti-patterns.md → mistakes.md} +2 -2
  10. package/agents/patterns/actions.md +393 -0
  11. package/agents/patterns/app-shell.md +223 -0
  12. package/agents/patterns/choose-items.md +18 -0
  13. package/agents/patterns/concurrent-editing.md +17 -0
  14. package/agents/patterns/confirm-action.md +216 -0
  15. package/agents/patterns/consent-and-legal.md +16 -0
  16. package/agents/patterns/density.md +236 -0
  17. package/agents/patterns/empty-state.md +201 -0
  18. package/agents/patterns/error-recovery.md +237 -0
  19. package/agents/patterns/form-and-validation.md +16 -0
  20. package/agents/patterns/item-list.md +214 -0
  21. package/agents/patterns/labels-and-values.md +184 -0
  22. package/agents/patterns/list-with-filters.md +282 -0
  23. package/agents/patterns/loading.md +221 -0
  24. package/agents/patterns/message-placement.md +304 -0
  25. package/agents/patterns/notification-center.md +18 -0
  26. package/agents/patterns/page-header.md +201 -0
  27. package/agents/patterns/permissions.md +17 -0
  28. package/agents/patterns/previews/actions/banner.html +21 -0
  29. package/agents/patterns/previews/actions/confirm.html +11 -0
  30. package/agents/patterns/previews/actions/danger-zone.html +22 -0
  31. package/agents/patterns/previews/actions/destructive-in-menu.html +19 -0
  32. package/agents/patterns/previews/actions/dismiss-message.html +15 -0
  33. package/agents/patterns/previews/actions/dismiss.html +25 -0
  34. package/agents/patterns/previews/actions/more-in-menu.html +21 -0
  35. package/agents/patterns/previews/actions/part-primary.html +28 -0
  36. package/agents/patterns/previews/actions/primary.html +20 -0
  37. package/agents/patterns/previews/actions/remove.html +44 -0
  38. package/agents/patterns/previews/actions/secondary.html +20 -0
  39. package/agents/patterns/previews/actions/stacked.html +17 -0
  40. package/agents/patterns/previews/actions/toast.html +10 -0
  41. package/agents/patterns/previews/app-shell/back-office.html +41 -0
  42. package/agents/patterns/previews/app-shell/many-sections.html +45 -0
  43. package/agents/patterns/previews/app-shell/public-service.html +31 -0
  44. package/agents/patterns/previews/confirm-action/act-then-undo.html +44 -0
  45. package/agents/patterns/previews/confirm-action/ask-before-sending.html +25 -0
  46. package/agents/patterns/previews/confirm-action/ask-first-many.html +11 -0
  47. package/agents/patterns/previews/confirm-action/ask-first.html +14 -0
  48. package/agents/patterns/previews/confirm-action/make-reversible.html +54 -0
  49. package/agents/patterns/previews/confirm-action/send-as-shown.html +57 -0
  50. package/agents/patterns/previews/empty-state/add-the-first.html +19 -0
  51. package/agents/patterns/previews/empty-state/all-done.html +15 -0
  52. package/agents/patterns/previews/empty-state/clear-filters.html +35 -0
  53. package/agents/patterns/previews/empty-state/filled-by-others.html +15 -0
  54. package/agents/patterns/previews/empty-state/not-found.html +38 -0
  55. package/agents/patterns/previews/empty-state/one-line.html +12 -0
  56. package/agents/patterns/previews/error-recovery/action-another-way.html +35 -0
  57. package/agents/patterns/previews/error-recovery/changed-meanwhile.html +26 -0
  58. package/agents/patterns/previews/error-recovery/check-or-repeat.html +38 -0
  59. package/agents/patterns/previews/error-recovery/content-another-way.html +12 -0
  60. package/agents/patterns/previews/error-recovery/partial.html +29 -0
  61. package/agents/patterns/previews/error-recovery/retry-action.html +35 -0
  62. package/agents/patterns/previews/error-recovery/retry-content.html +40 -0
  63. package/agents/patterns/previews/error-recovery/sign-in-again.html +44 -0
  64. package/agents/patterns/previews/item-list/documents-of-a-request.html +12 -0
  65. package/agents/patterns/previews/item-list/queue-of-a-desk.html +109 -0
  66. package/agents/patterns/previews/item-list/requests-of-an-office.html +74 -0
  67. package/agents/patterns/previews/item-list/requests-to-assign.html +80 -0
  68. package/agents/patterns/previews/labels-and-values/data-of-a-contact.html +31 -0
  69. package/agents/patterns/previews/labels-and-values/payment-before-paying.html +21 -0
  70. package/agents/patterns/previews/labels-and-values/what-is-sent.html +25 -0
  71. package/agents/patterns/previews/list-with-filters/act-on-many.html +121 -0
  72. package/agents/patterns/previews/list-with-filters/find-and-open.html +109 -0
  73. package/agents/patterns/previews/list-with-filters/show-new-items.html +132 -0
  74. package/agents/patterns/previews/loading/await-and-say.html +41 -0
  75. package/agents/patterns/previews/loading/await-the-control.html +28 -0
  76. package/agents/patterns/previews/loading/first-load.html +10 -0
  77. package/agents/patterns/previews/loading/keep-while-reloading.html +80 -0
  78. package/agents/patterns/previews/loading/long-load-measured.html +16 -0
  79. package/agents/patterns/previews/loading/long-load.html +12 -0
  80. package/agents/patterns/previews/loading/progress-in-place.html +52 -0
  81. package/agents/patterns/previews/loading/run-in-background.html +24 -0
  82. package/agents/patterns/previews/message-placement/action-done-elsewhere.html +38 -0
  83. package/agents/patterns/previews/message-placement/action-done-in-page.html +53 -0
  84. package/agents/patterns/previews/message-placement/action-done-in-part.html +42 -0
  85. package/agents/patterns/previews/message-placement/action-failed-elsewhere.html +40 -0
  86. package/agents/patterns/previews/message-placement/action-failed-in-place.html +31 -0
  87. package/agents/patterns/previews/message-placement/action-later.html +24 -0
  88. package/agents/patterns/previews/message-placement/action-partial-elsewhere.html +33 -0
  89. package/agents/patterns/previews/message-placement/action-partial-in-place.html +51 -0
  90. package/agents/patterns/previews/message-placement/action-taken.html +25 -0
  91. package/agents/patterns/previews/message-placement/app-deadline.html +20 -0
  92. package/agents/patterns/previews/message-placement/app-failed.html +48 -0
  93. package/agents/patterns/previews/message-placement/app-info.html +39 -0
  94. package/agents/patterns/previews/message-placement/decision.html +49 -0
  95. package/agents/patterns/previews/message-placement/field-error.html +28 -0
  96. package/agents/patterns/previews/message-placement/field-hint.html +30 -0
  97. package/agents/patterns/previews/message-placement/field-valid.html +11 -0
  98. package/agents/patterns/previews/message-placement/region-failed.html +31 -0
  99. package/agents/patterns/previews/message-placement/region-info.html +16 -0
  100. package/agents/patterns/previews/page-header/contact-being-edited.html +25 -0
  101. package/agents/patterns/previews/page-header/members-of-a-group.html +18 -0
  102. package/agents/patterns/previews/page-header/own-profile.html +17 -0
  103. package/agents/patterns/previews/page-header/request-from-the-list.html +33 -0
  104. package/agents/patterns/previews/page-header/requests-of-an-office.html +16 -0
  105. package/agents/patterns/previews/record-detail/ask-for-words.html +72 -0
  106. package/agents/patterns/previews/record-detail/edit-data.html +104 -0
  107. package/agents/patterns/previews/record-detail/read-the-data.html +80 -0
  108. package/agents/patterns/previews/record-detail/record-changed.html +87 -0
  109. package/agents/patterns/previews/record-detail/run-at-once.html +88 -0
  110. package/agents/patterns/previews/record-detail/work-on-it.html +106 -0
  111. package/agents/patterns/previews/rhythm/between-containers.html +29 -0
  112. package/agents/patterns/previews/rhythm/between-fields.html +14 -0
  113. package/agents/patterns/previews/rhythm/between-groups.html +23 -0
  114. package/agents/patterns/previews/rhythm/between-sections.html +17 -0
  115. package/agents/patterns/previews/rhythm/content-actions.html +14 -0
  116. package/agents/patterns/previews/rhythm/inline.html +12 -0
  117. package/agents/patterns/previews/rhythm/inset.html +11 -0
  118. package/agents/patterns/previews/rhythm/label-control.html +8 -0
  119. package/agents/patterns/previews/rhythm/title-content.html +10 -0
  120. package/agents/patterns/previews/surfaces/band.html +73 -0
  121. package/agents/patterns/previews/surfaces/canvas.html +66 -0
  122. package/agents/patterns/previews/surfaces/card.html +30 -0
  123. package/agents/patterns/previews/surfaces/dialog.html +28 -0
  124. package/agents/patterns/previews/surfaces/edit-actions.html +35 -0
  125. package/agents/patterns/previews/surfaces/section.html +35 -0
  126. package/agents/patterns/previews/titles/dialog.html +18 -0
  127. package/agents/patterns/previews/titles/group.html +14 -0
  128. package/agents/patterns/previews/titles/page.html +25 -0
  129. package/agents/patterns/previews/titles/part.html +24 -0
  130. package/agents/patterns/previews/titles/section.html +14 -0
  131. package/agents/patterns/previews/widths/dialog.html +33 -0
  132. package/agents/patterns/previews/widths/field.html +20 -0
  133. package/agents/patterns/previews/widths/form.html +27 -0
  134. package/agents/patterns/previews/widths/page.html +49 -0
  135. package/agents/patterns/previews/widths/reading.html +15 -0
  136. package/agents/patterns/record-detail.md +268 -0
  137. package/agents/patterns/rhythm.md +212 -0
  138. package/agents/patterns/surfaces.md +212 -0
  139. package/agents/patterns/titles.md +208 -0
  140. package/agents/patterns/widths.md +202 -0
  141. package/agents/patterns.md +121 -0
  142. package/agents/reporting.md +6 -3
  143. package/agents/theming.md +36 -12
  144. package/agents/typography.md +27 -2
  145. package/agents/variants.md +1 -1
  146. package/dist/components.js +117 -117
  147. package/dist/components.server.js +117 -117
  148. package/dist/mds-accordion-item.js +8 -3
  149. package/dist/mds-accordion-item.server.js +7 -2
  150. package/dist/mds-accordion-timer-item.js +8 -3
  151. package/dist/mds-accordion-timer-item.server.js +7 -2
  152. package/dist/mds-accordion-timer.js +11 -4
  153. package/dist/mds-accordion-timer.server.js +7 -2
  154. package/dist/mds-accordion.js +11 -4
  155. package/dist/mds-accordion.server.js +7 -2
  156. package/dist/mds-author.js +8 -3
  157. package/dist/mds-author.server.js +7 -2
  158. package/dist/mds-avatar-stack-item.js +8 -3
  159. package/dist/mds-avatar-stack-item.server.js +7 -2
  160. package/dist/mds-avatar-stack.js +8 -3
  161. package/dist/mds-avatar-stack.server.js +7 -2
  162. package/dist/mds-avatar.js +8 -3
  163. package/dist/mds-avatar.server.js +7 -2
  164. package/dist/mds-badge.js +8 -3
  165. package/dist/mds-badge.server.js +7 -2
  166. package/dist/mds-banner.js +11 -4
  167. package/dist/mds-banner.server.js +7 -2
  168. package/dist/mds-benchmark-bar.js +8 -3
  169. package/dist/mds-benchmark-bar.server.js +7 -2
  170. package/dist/mds-bibliography.js +8 -3
  171. package/dist/mds-bibliography.server.js +7 -2
  172. package/dist/mds-book.js +8 -3
  173. package/dist/mds-book.server.js +7 -2
  174. package/dist/mds-breadcrumb-item.js +11 -4
  175. package/dist/mds-breadcrumb-item.server.js +7 -2
  176. package/dist/mds-breadcrumb.js +11 -4
  177. package/dist/mds-breadcrumb.server.js +10 -3
  178. package/dist/mds-button-dropdown.js +11 -4
  179. package/dist/mds-button-dropdown.server.js +7 -2
  180. package/dist/mds-button-group.js +8 -3
  181. package/dist/mds-button-group.server.js +7 -2
  182. package/dist/mds-button.js +8 -3
  183. package/dist/mds-button.server.js +7 -2
  184. package/dist/mds-calendar-cell.js +8 -3
  185. package/dist/mds-calendar-cell.server.js +7 -2
  186. package/dist/mds-calendar.js +8 -3
  187. package/dist/mds-calendar.server.js +7 -2
  188. package/dist/mds-card-content.js +8 -3
  189. package/dist/mds-card-content.server.js +7 -2
  190. package/dist/mds-card-footer.js +8 -3
  191. package/dist/mds-card-footer.server.js +7 -2
  192. package/dist/mds-card-header.js +8 -3
  193. package/dist/mds-card-header.server.js +7 -2
  194. package/dist/mds-card-media.js +8 -3
  195. package/dist/mds-card-media.server.js +7 -2
  196. package/dist/mds-card.js +8 -3
  197. package/dist/mds-card.server.js +10 -3
  198. package/dist/mds-chip.js +8 -3
  199. package/dist/mds-chip.server.js +7 -2
  200. package/dist/mds-details.js +11 -4
  201. package/dist/mds-details.server.js +10 -3
  202. package/dist/mds-dropdown.js +8 -3
  203. package/dist/mds-dropdown.server.js +7 -2
  204. package/dist/mds-emoji.js +8 -3
  205. package/dist/mds-emoji.server.js +10 -3
  206. package/dist/mds-entity.js +8 -3
  207. package/dist/mds-entity.server.js +7 -2
  208. package/dist/mds-file-preview.js +8 -3
  209. package/dist/mds-file-preview.server.js +7 -2
  210. package/dist/mds-file.js +11 -4
  211. package/dist/mds-file.server.js +7 -2
  212. package/dist/mds-filter-item.js +11 -4
  213. package/dist/mds-filter-item.server.js +7 -2
  214. package/dist/mds-filter.js +11 -4
  215. package/dist/mds-filter.server.js +7 -2
  216. package/dist/mds-header-bar.js +11 -4
  217. package/dist/mds-header-bar.server.js +7 -2
  218. package/dist/mds-header.js +8 -3
  219. package/dist/mds-header.server.js +7 -2
  220. package/dist/mds-help.js +8 -3
  221. package/dist/mds-help.server.js +7 -2
  222. package/dist/mds-horizontal-scroll.js +8 -3
  223. package/dist/mds-horizontal-scroll.server.js +7 -2
  224. package/dist/mds-hr.js +8 -3
  225. package/dist/mds-hr.server.js +7 -2
  226. package/dist/mds-icon.js +8 -3
  227. package/dist/mds-icon.server.js +10 -3
  228. package/dist/mds-img.js +8 -3
  229. package/dist/mds-img.server.js +7 -2
  230. package/dist/mds-input-date-range-preselection.js +8 -3
  231. package/dist/mds-input-date-range-preselection.server.js +7 -2
  232. package/dist/mds-input-date-range.js +11 -4
  233. package/dist/mds-input-date-range.server.js +7 -2
  234. package/dist/mds-input-date.js +8 -3
  235. package/dist/mds-input-date.server.js +7 -2
  236. package/dist/mds-input-field.js +8 -3
  237. package/dist/mds-input-field.server.js +8 -2
  238. package/dist/mds-input-otp.js +8 -3
  239. package/dist/mds-input-otp.server.js +7 -2
  240. package/dist/mds-input-range.js +11 -4
  241. package/dist/mds-input-range.server.js +7 -2
  242. package/dist/mds-input-select.js +11 -4
  243. package/dist/mds-input-select.server.js +7 -2
  244. package/dist/mds-input-switch.js +11 -4
  245. package/dist/mds-input-switch.server.js +7 -2
  246. package/dist/mds-input-tip-item.js +8 -3
  247. package/dist/mds-input-tip-item.server.js +7 -2
  248. package/dist/mds-input-tip.js +8 -3
  249. package/dist/mds-input-tip.server.js +7 -2
  250. package/dist/mds-input-upload.js +11 -4
  251. package/dist/mds-input-upload.server.js +7 -2
  252. package/dist/mds-input.js +8 -3
  253. package/dist/mds-input.server.js +7 -2
  254. package/dist/mds-keyboard-key.js +8 -3
  255. package/dist/mds-keyboard-key.server.js +7 -2
  256. package/dist/mds-keyboard.js +8 -3
  257. package/dist/mds-keyboard.server.js +7 -2
  258. package/dist/mds-kpi-item.js +8 -3
  259. package/dist/mds-kpi-item.server.js +7 -2
  260. package/dist/mds-kpi.js +8 -3
  261. package/dist/mds-kpi.server.js +7 -2
  262. package/dist/mds-label.js +11 -4
  263. package/dist/mds-label.server.js +7 -2
  264. package/dist/mds-link.js +8 -3
  265. package/dist/mds-link.server.js +7 -2
  266. package/dist/mds-list-item.js +8 -3
  267. package/dist/mds-list-item.server.js +7 -2
  268. package/dist/mds-list.js +8 -3
  269. package/dist/mds-list.server.js +7 -2
  270. package/dist/mds-mention.js +11 -4
  271. package/dist/mds-mention.server.js +7 -2
  272. package/dist/mds-modal.js +8 -3
  273. package/dist/mds-modal.server.js +7 -2
  274. package/dist/mds-note.js +11 -4
  275. package/dist/mds-note.server.js +7 -2
  276. package/dist/mds-notification.js +8 -3
  277. package/dist/mds-notification.server.js +10 -3
  278. package/dist/mds-paginator-item.js +8 -3
  279. package/dist/mds-paginator-item.server.js +7 -2
  280. package/dist/mds-paginator.js +11 -4
  281. package/dist/mds-paginator.server.js +7 -2
  282. package/dist/mds-policy-ai.js +8 -3
  283. package/dist/mds-policy-ai.server.js +7 -2
  284. package/dist/mds-pref-animation.js +11 -4
  285. package/dist/mds-pref-animation.server.js +7 -2
  286. package/dist/mds-pref-consumption.js +11 -4
  287. package/dist/mds-pref-consumption.server.js +7 -2
  288. package/dist/mds-pref-contrast.js +11 -4
  289. package/dist/mds-pref-contrast.server.js +7 -2
  290. package/dist/mds-pref-language-item.js +11 -4
  291. package/dist/mds-pref-language-item.server.js +7 -2
  292. package/dist/mds-pref-language.js +8 -3
  293. package/dist/mds-pref-language.server.js +7 -2
  294. package/dist/mds-pref-mode.js +11 -4
  295. package/dist/mds-pref-mode.server.js +7 -2
  296. package/dist/mds-pref-theme-item.js +11 -4
  297. package/dist/mds-pref-theme-item.server.js +7 -2
  298. package/dist/mds-pref-theme.js +8 -3
  299. package/dist/mds-pref-theme.server.js +7 -2
  300. package/dist/mds-pref.js +8 -3
  301. package/dist/mds-pref.server.js +7 -2
  302. package/dist/mds-price-table-features-cell.js +8 -3
  303. package/dist/mds-price-table-features-cell.server.js +10 -3
  304. package/dist/mds-price-table-features-row.js +8 -3
  305. package/dist/mds-price-table-features-row.server.js +7 -2
  306. package/dist/mds-price-table-features.js +8 -3
  307. package/dist/mds-price-table-features.server.js +10 -3
  308. package/dist/mds-price-table-header.js +8 -3
  309. package/dist/mds-price-table-header.server.js +7 -2
  310. package/dist/mds-price-table-list-item.js +8 -3
  311. package/dist/mds-price-table-list-item.server.js +7 -2
  312. package/dist/mds-price-table-list.js +8 -3
  313. package/dist/mds-price-table-list.server.js +7 -2
  314. package/dist/mds-price-table.js +8 -3
  315. package/dist/mds-price-table.server.js +7 -2
  316. package/dist/mds-progress.js +8 -3
  317. package/dist/mds-progress.server.js +7 -2
  318. package/dist/mds-push-notification-item.js +11 -4
  319. package/dist/mds-push-notification-item.server.js +7 -2
  320. package/dist/mds-push-notification.js +8 -3
  321. package/dist/mds-push-notification.server.js +7 -2
  322. package/dist/mds-quote.js +8 -3
  323. package/dist/mds-quote.server.js +7 -2
  324. package/dist/mds-radial-menu-item.js +8 -3
  325. package/dist/mds-radial-menu-item.server.js +7 -2
  326. package/dist/mds-radial-menu.js +8 -3
  327. package/dist/mds-radial-menu.server.js +7 -2
  328. package/dist/mds-radial-progress.js +8 -3
  329. package/dist/mds-radial-progress.server.js +7 -2
  330. package/dist/mds-separator.js +8 -3
  331. package/dist/mds-separator.server.js +7 -2
  332. package/dist/mds-spinner.js +8 -3
  333. package/dist/mds-spinner.server.js +10 -3
  334. package/dist/mds-status-bar.js +8 -3
  335. package/dist/mds-status-bar.server.js +7 -2
  336. package/dist/mds-stepper-bar-item.js +11 -4
  337. package/dist/mds-stepper-bar-item.server.js +7 -2
  338. package/dist/mds-stepper-bar.js +11 -4
  339. package/dist/mds-stepper-bar.server.js +7 -2
  340. package/dist/mds-tab-bar-item.js +11 -4
  341. package/dist/mds-tab-bar-item.server.js +7 -2
  342. package/dist/mds-tab-bar.js +11 -4
  343. package/dist/mds-tab-bar.server.js +7 -2
  344. package/dist/mds-tab-item.js +8 -3
  345. package/dist/mds-tab-item.server.js +7 -2
  346. package/dist/mds-tab.js +11 -4
  347. package/dist/mds-tab.server.js +7 -2
  348. package/dist/mds-table-body.js +8 -3
  349. package/dist/mds-table-body.server.js +7 -2
  350. package/dist/mds-table-cell.js +8 -3
  351. package/dist/mds-table-cell.server.js +10 -3
  352. package/dist/mds-table-footer.js +8 -3
  353. package/dist/mds-table-footer.server.js +10 -3
  354. package/dist/mds-table-header-cell.js +11 -4
  355. package/dist/mds-table-header-cell.server.js +7 -2
  356. package/dist/mds-table-header.js +8 -3
  357. package/dist/mds-table-header.server.js +10 -3
  358. package/dist/mds-table-row.js +8 -3
  359. package/dist/mds-table-row.server.js +7 -2
  360. package/dist/mds-table.js +11 -4
  361. package/dist/mds-table.server.js +7 -2
  362. package/dist/mds-text.js +8 -3
  363. package/dist/mds-text.server.js +7 -2
  364. package/dist/mds-toast-region.js +8 -3
  365. package/dist/mds-toast-region.server.js +7 -2
  366. package/dist/mds-toast.js +11 -4
  367. package/dist/mds-toast.server.js +7 -2
  368. package/dist/mds-tooltip.js +8 -3
  369. package/dist/mds-tooltip.server.js +7 -2
  370. package/dist/mds-tree-item.js +8 -3
  371. package/dist/mds-tree-item.server.js +7 -2
  372. package/dist/mds-tree.js +8 -3
  373. package/dist/mds-tree.server.js +7 -2
  374. package/dist/mds-url-view.js +11 -4
  375. package/dist/mds-url-view.server.js +7 -2
  376. package/dist/mds-usage.js +8 -3
  377. package/dist/mds-usage.server.js +7 -2
  378. package/dist/mds-video-wall.js +8 -3
  379. package/dist/mds-video-wall.server.js +7 -2
  380. package/dist/mds-zero.js +8 -3
  381. package/dist/mds-zero.server.js +7 -2
  382. package/dist/types/components.d.ts +117 -117
  383. package/dist/types/components.server.d.ts +118 -118
  384. package/dist/types/mds-accordion-item.d.ts +4 -8
  385. package/dist/types/mds-accordion-item.server.d.ts +4 -4
  386. package/dist/types/mds-accordion-timer-item.d.ts +4 -8
  387. package/dist/types/mds-accordion-timer-item.server.d.ts +4 -4
  388. package/dist/types/mds-accordion-timer.d.ts +4 -8
  389. package/dist/types/mds-accordion-timer.server.d.ts +4 -4
  390. package/dist/types/mds-accordion.d.ts +4 -8
  391. package/dist/types/mds-accordion.server.d.ts +4 -4
  392. package/dist/types/mds-author.d.ts +2 -6
  393. package/dist/types/mds-author.server.d.ts +3 -3
  394. package/dist/types/mds-avatar-stack-item.d.ts +2 -6
  395. package/dist/types/mds-avatar-stack-item.server.d.ts +3 -3
  396. package/dist/types/mds-avatar-stack.d.ts +2 -6
  397. package/dist/types/mds-avatar-stack.server.d.ts +3 -3
  398. package/dist/types/mds-avatar.d.ts +2 -6
  399. package/dist/types/mds-avatar.server.d.ts +3 -3
  400. package/dist/types/mds-badge.d.ts +2 -6
  401. package/dist/types/mds-badge.server.d.ts +3 -3
  402. package/dist/types/mds-banner.d.ts +4 -8
  403. package/dist/types/mds-banner.server.d.ts +4 -4
  404. package/dist/types/mds-benchmark-bar.d.ts +2 -6
  405. package/dist/types/mds-benchmark-bar.server.d.ts +3 -3
  406. package/dist/types/mds-bibliography.d.ts +2 -6
  407. package/dist/types/mds-bibliography.server.d.ts +3 -3
  408. package/dist/types/mds-book.d.ts +2 -6
  409. package/dist/types/mds-book.server.d.ts +3 -3
  410. package/dist/types/mds-breadcrumb-item.d.ts +4 -8
  411. package/dist/types/mds-breadcrumb-item.server.d.ts +4 -4
  412. package/dist/types/mds-breadcrumb.d.ts +4 -8
  413. package/dist/types/mds-breadcrumb.server.d.ts +4 -4
  414. package/dist/types/mds-button-dropdown.d.ts +4 -8
  415. package/dist/types/mds-button-dropdown.server.d.ts +4 -4
  416. package/dist/types/mds-button-group.d.ts +2 -6
  417. package/dist/types/mds-button-group.server.d.ts +3 -3
  418. package/dist/types/mds-button.d.ts +2 -6
  419. package/dist/types/mds-button.server.d.ts +3 -3
  420. package/dist/types/mds-calendar-cell.d.ts +2 -6
  421. package/dist/types/mds-calendar-cell.server.d.ts +3 -3
  422. package/dist/types/mds-calendar.d.ts +4 -8
  423. package/dist/types/mds-calendar.server.d.ts +4 -4
  424. package/dist/types/mds-card-content.d.ts +2 -6
  425. package/dist/types/mds-card-content.server.d.ts +3 -3
  426. package/dist/types/mds-card-footer.d.ts +2 -6
  427. package/dist/types/mds-card-footer.server.d.ts +3 -3
  428. package/dist/types/mds-card-header.d.ts +2 -6
  429. package/dist/types/mds-card-header.server.d.ts +3 -3
  430. package/dist/types/mds-card-media.d.ts +2 -6
  431. package/dist/types/mds-card-media.server.d.ts +3 -3
  432. package/dist/types/mds-card.d.ts +2 -6
  433. package/dist/types/mds-card.server.d.ts +3 -3
  434. package/dist/types/mds-chip.d.ts +4 -8
  435. package/dist/types/mds-chip.server.d.ts +4 -4
  436. package/dist/types/mds-details.d.ts +4 -8
  437. package/dist/types/mds-details.server.d.ts +4 -4
  438. package/dist/types/mds-dropdown.d.ts +4 -8
  439. package/dist/types/mds-dropdown.server.d.ts +4 -4
  440. package/dist/types/mds-emoji.d.ts +2 -6
  441. package/dist/types/mds-emoji.server.d.ts +3 -3
  442. package/dist/types/mds-entity.d.ts +2 -6
  443. package/dist/types/mds-entity.server.d.ts +3 -3
  444. package/dist/types/mds-file-preview.d.ts +4 -8
  445. package/dist/types/mds-file-preview.server.d.ts +4 -4
  446. package/dist/types/mds-file.d.ts +4 -8
  447. package/dist/types/mds-file.server.d.ts +4 -4
  448. package/dist/types/mds-filter-item.d.ts +4 -8
  449. package/dist/types/mds-filter-item.server.d.ts +4 -4
  450. package/dist/types/mds-filter.d.ts +4 -8
  451. package/dist/types/mds-filter.server.d.ts +4 -4
  452. package/dist/types/mds-header-bar.d.ts +4 -8
  453. package/dist/types/mds-header-bar.server.d.ts +4 -4
  454. package/dist/types/mds-header.d.ts +4 -8
  455. package/dist/types/mds-header.server.d.ts +4 -4
  456. package/dist/types/mds-help.d.ts +2 -6
  457. package/dist/types/mds-help.server.d.ts +3 -3
  458. package/dist/types/mds-horizontal-scroll.d.ts +2 -6
  459. package/dist/types/mds-horizontal-scroll.server.d.ts +3 -3
  460. package/dist/types/mds-hr.d.ts +2 -6
  461. package/dist/types/mds-hr.server.d.ts +3 -3
  462. package/dist/types/mds-icon.d.ts +2 -6
  463. package/dist/types/mds-icon.server.d.ts +3 -3
  464. package/dist/types/mds-img.d.ts +4 -8
  465. package/dist/types/mds-img.server.d.ts +4 -4
  466. package/dist/types/mds-input-date-range-preselection.d.ts +2 -6
  467. package/dist/types/mds-input-date-range-preselection.server.d.ts +3 -3
  468. package/dist/types/mds-input-date-range.d.ts +4 -8
  469. package/dist/types/mds-input-date-range.server.d.ts +4 -4
  470. package/dist/types/mds-input-date.d.ts +4 -8
  471. package/dist/types/mds-input-date.server.d.ts +4 -4
  472. package/dist/types/mds-input-field.d.ts +2 -6
  473. package/dist/types/mds-input-field.server.d.ts +3 -3
  474. package/dist/types/mds-input-otp.d.ts +2 -6
  475. package/dist/types/mds-input-otp.server.d.ts +3 -3
  476. package/dist/types/mds-input-range.d.ts +4 -8
  477. package/dist/types/mds-input-range.server.d.ts +4 -4
  478. package/dist/types/mds-input-select.d.ts +4 -8
  479. package/dist/types/mds-input-select.server.d.ts +4 -4
  480. package/dist/types/mds-input-switch.d.ts +4 -8
  481. package/dist/types/mds-input-switch.server.d.ts +4 -4
  482. package/dist/types/mds-input-tip-item.d.ts +2 -6
  483. package/dist/types/mds-input-tip-item.server.d.ts +3 -3
  484. package/dist/types/mds-input-tip.d.ts +2 -6
  485. package/dist/types/mds-input-tip.server.d.ts +3 -3
  486. package/dist/types/mds-input-upload.d.ts +4 -8
  487. package/dist/types/mds-input-upload.server.d.ts +4 -4
  488. package/dist/types/mds-input.d.ts +4 -8
  489. package/dist/types/mds-input.server.d.ts +4 -4
  490. package/dist/types/mds-keyboard-key.d.ts +2 -6
  491. package/dist/types/mds-keyboard-key.server.d.ts +3 -3
  492. package/dist/types/mds-keyboard.d.ts +2 -6
  493. package/dist/types/mds-keyboard.server.d.ts +3 -3
  494. package/dist/types/mds-kpi-item.d.ts +2 -6
  495. package/dist/types/mds-kpi-item.server.d.ts +3 -3
  496. package/dist/types/mds-kpi.d.ts +2 -6
  497. package/dist/types/mds-kpi.server.d.ts +3 -3
  498. package/dist/types/mds-label.d.ts +4 -8
  499. package/dist/types/mds-label.server.d.ts +4 -4
  500. package/dist/types/mds-link.d.ts +2 -6
  501. package/dist/types/mds-link.server.d.ts +3 -3
  502. package/dist/types/mds-list-item.d.ts +2 -6
  503. package/dist/types/mds-list-item.server.d.ts +3 -3
  504. package/dist/types/mds-list.d.ts +2 -6
  505. package/dist/types/mds-list.server.d.ts +3 -3
  506. package/dist/types/mds-mention.d.ts +4 -8
  507. package/dist/types/mds-mention.server.d.ts +4 -4
  508. package/dist/types/mds-modal.d.ts +4 -8
  509. package/dist/types/mds-modal.server.d.ts +4 -4
  510. package/dist/types/mds-note.d.ts +4 -8
  511. package/dist/types/mds-note.server.d.ts +4 -4
  512. package/dist/types/mds-notification.d.ts +2 -6
  513. package/dist/types/mds-notification.server.d.ts +3 -3
  514. package/dist/types/mds-paginator-item.d.ts +2 -6
  515. package/dist/types/mds-paginator-item.server.d.ts +3 -3
  516. package/dist/types/mds-paginator.d.ts +4 -8
  517. package/dist/types/mds-paginator.server.d.ts +4 -4
  518. package/dist/types/mds-policy-ai.d.ts +2 -6
  519. package/dist/types/mds-policy-ai.server.d.ts +3 -3
  520. package/dist/types/mds-pref-animation.d.ts +4 -8
  521. package/dist/types/mds-pref-animation.server.d.ts +4 -4
  522. package/dist/types/mds-pref-consumption.d.ts +4 -8
  523. package/dist/types/mds-pref-consumption.server.d.ts +4 -4
  524. package/dist/types/mds-pref-contrast.d.ts +4 -8
  525. package/dist/types/mds-pref-contrast.server.d.ts +4 -4
  526. package/dist/types/mds-pref-language-item.d.ts +4 -8
  527. package/dist/types/mds-pref-language-item.server.d.ts +4 -4
  528. package/dist/types/mds-pref-language.d.ts +4 -8
  529. package/dist/types/mds-pref-language.server.d.ts +4 -4
  530. package/dist/types/mds-pref-mode.d.ts +4 -8
  531. package/dist/types/mds-pref-mode.server.d.ts +4 -4
  532. package/dist/types/mds-pref-theme-item.d.ts +4 -8
  533. package/dist/types/mds-pref-theme-item.server.d.ts +4 -4
  534. package/dist/types/mds-pref-theme.d.ts +4 -8
  535. package/dist/types/mds-pref-theme.server.d.ts +4 -4
  536. package/dist/types/mds-pref.d.ts +2 -6
  537. package/dist/types/mds-pref.server.d.ts +3 -3
  538. package/dist/types/mds-price-table-features-cell.d.ts +2 -6
  539. package/dist/types/mds-price-table-features-cell.server.d.ts +3 -3
  540. package/dist/types/mds-price-table-features-row.d.ts +2 -6
  541. package/dist/types/mds-price-table-features-row.server.d.ts +3 -3
  542. package/dist/types/mds-price-table-features.d.ts +2 -6
  543. package/dist/types/mds-price-table-features.server.d.ts +3 -3
  544. package/dist/types/mds-price-table-header.d.ts +2 -6
  545. package/dist/types/mds-price-table-header.server.d.ts +3 -3
  546. package/dist/types/mds-price-table-list-item.d.ts +2 -6
  547. package/dist/types/mds-price-table-list-item.server.d.ts +3 -3
  548. package/dist/types/mds-price-table-list.d.ts +2 -6
  549. package/dist/types/mds-price-table-list.server.d.ts +3 -3
  550. package/dist/types/mds-price-table.d.ts +2 -6
  551. package/dist/types/mds-price-table.server.d.ts +3 -3
  552. package/dist/types/mds-progress.d.ts +2 -6
  553. package/dist/types/mds-progress.server.d.ts +3 -3
  554. package/dist/types/mds-push-notification-item.d.ts +4 -8
  555. package/dist/types/mds-push-notification-item.server.d.ts +4 -4
  556. package/dist/types/mds-push-notification.d.ts +4 -8
  557. package/dist/types/mds-push-notification.server.d.ts +4 -4
  558. package/dist/types/mds-quote.d.ts +2 -6
  559. package/dist/types/mds-quote.server.d.ts +3 -3
  560. package/dist/types/mds-radial-menu-item.d.ts +2 -6
  561. package/dist/types/mds-radial-menu-item.server.d.ts +3 -3
  562. package/dist/types/mds-radial-menu.d.ts +2 -6
  563. package/dist/types/mds-radial-menu.server.d.ts +3 -3
  564. package/dist/types/mds-radial-progress.d.ts +2 -6
  565. package/dist/types/mds-radial-progress.server.d.ts +3 -3
  566. package/dist/types/mds-separator.d.ts +2 -6
  567. package/dist/types/mds-separator.server.d.ts +3 -3
  568. package/dist/types/mds-spinner.d.ts +2 -6
  569. package/dist/types/mds-spinner.server.d.ts +3 -3
  570. package/dist/types/mds-status-bar.d.ts +2 -6
  571. package/dist/types/mds-status-bar.server.d.ts +3 -3
  572. package/dist/types/mds-stepper-bar-item.d.ts +4 -8
  573. package/dist/types/mds-stepper-bar-item.server.d.ts +4 -4
  574. package/dist/types/mds-stepper-bar.d.ts +4 -8
  575. package/dist/types/mds-stepper-bar.server.d.ts +4 -4
  576. package/dist/types/mds-tab-bar-item.d.ts +4 -8
  577. package/dist/types/mds-tab-bar-item.server.d.ts +4 -4
  578. package/dist/types/mds-tab-bar.d.ts +4 -8
  579. package/dist/types/mds-tab-bar.server.d.ts +4 -4
  580. package/dist/types/mds-tab-item.d.ts +4 -8
  581. package/dist/types/mds-tab-item.server.d.ts +4 -4
  582. package/dist/types/mds-tab.d.ts +4 -8
  583. package/dist/types/mds-tab.server.d.ts +4 -4
  584. package/dist/types/mds-table-body.d.ts +2 -6
  585. package/dist/types/mds-table-body.server.d.ts +3 -3
  586. package/dist/types/mds-table-cell.d.ts +2 -6
  587. package/dist/types/mds-table-cell.server.d.ts +3 -3
  588. package/dist/types/mds-table-footer.d.ts +2 -6
  589. package/dist/types/mds-table-footer.server.d.ts +3 -3
  590. package/dist/types/mds-table-header-cell.d.ts +4 -8
  591. package/dist/types/mds-table-header-cell.server.d.ts +4 -4
  592. package/dist/types/mds-table-header.d.ts +2 -6
  593. package/dist/types/mds-table-header.server.d.ts +3 -3
  594. package/dist/types/mds-table-row.d.ts +2 -6
  595. package/dist/types/mds-table-row.server.d.ts +3 -3
  596. package/dist/types/mds-table.d.ts +4 -8
  597. package/dist/types/mds-table.server.d.ts +4 -4
  598. package/dist/types/mds-text.d.ts +2 -6
  599. package/dist/types/mds-text.server.d.ts +3 -3
  600. package/dist/types/mds-toast-region.d.ts +2 -6
  601. package/dist/types/mds-toast-region.server.d.ts +3 -3
  602. package/dist/types/mds-toast.d.ts +4 -8
  603. package/dist/types/mds-toast.server.d.ts +4 -4
  604. package/dist/types/mds-tooltip.d.ts +2 -6
  605. package/dist/types/mds-tooltip.server.d.ts +3 -3
  606. package/dist/types/mds-tree-item.d.ts +4 -8
  607. package/dist/types/mds-tree-item.server.d.ts +4 -4
  608. package/dist/types/mds-tree.d.ts +2 -6
  609. package/dist/types/mds-tree.server.d.ts +3 -3
  610. package/dist/types/mds-url-view.d.ts +4 -8
  611. package/dist/types/mds-url-view.server.d.ts +4 -4
  612. package/dist/types/mds-usage.d.ts +2 -6
  613. package/dist/types/mds-usage.server.d.ts +3 -3
  614. package/dist/types/mds-video-wall.d.ts +2 -6
  615. package/dist/types/mds-video-wall.server.d.ts +3 -3
  616. package/dist/types/mds-zero.d.ts +2 -6
  617. package/dist/types/mds-zero.server.d.ts +3 -3
  618. package/package.json +3 -3
@@ -0,0 +1,31 @@
1
+ <!--
2
+ try: Look at the bar of a citizen not signed in yet: the name of the service, its sections with Servizi marked as the current one, and Accedi last. Narrow the stage to a phone: the sections and Accedi move into the menu of the bar.
3
+ height: 520
4
+ whole-page: true
5
+ -->
6
+ <mds-header>
7
+ <mds-header-bar>
8
+ <mds-text typography="h6" tag="p">Sportello del cittadino</mds-text>
9
+ <mds-button slot="nav" href="#" aria-current="page" variant="dark" tone="weak">Servizi</mds-button>
10
+ <mds-button slot="nav" href="#" variant="dark" tone="text">Pagamenti</mds-button>
11
+ <mds-button slot="nav" href="#" variant="dark" tone="text">Appuntamenti</mds-button>
12
+ <mds-button slot="nav" href="#" variant="dark" tone="outline">Accedi</mds-button>
13
+ </mds-header-bar>
14
+ <nav slot="menu" class="grid gap-inline p-inset">
15
+ <mds-button href="#" aria-current="page" variant="dark" tone="weak" class="w-full justify-start">Servizi</mds-button>
16
+ <mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Pagamenti</mds-button>
17
+ <mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Appuntamenti</mds-button>
18
+ <mds-separator></mds-separator>
19
+ <mds-button href="#" variant="dark" tone="outline" class="w-full">Accedi</mds-button>
20
+ </nav>
21
+ </mds-header>
22
+ <main class="page-frame grid gap-between-sections py-between-sections">
23
+ <header class="grid gap-title-content">
24
+ <mds-text typography="page" tag="h1">Servizi</mds-text>
25
+ <mds-text typography="detail" tag="p" class="text-fg-muted">Le richieste che puoi fare al Comune senza andare allo sportello.</mds-text>
26
+ </header>
27
+ <section class="grid gap-title-content">
28
+ <mds-text typography="section" tag="h2">I più richiesti</mds-text>
29
+ <mds-text tag="p">Certificato di residenza, cambio di indirizzo, carta d'identità.</mds-text>
30
+ </section>
31
+ </main>
@@ -0,0 +1,44 @@
1
+ <!--
2
+ try: Press the archive button of 2026/0412: the request leaves the list at once, with no question, and a toast says what went and offers Ripristina.
3
+ height: 340
4
+ -->
5
+ <section class="grid gap-title-content">
6
+ <mds-text typography="section" tag="h2">Pratiche concluse</mds-text>
7
+ <div id="pratiche" class="grid">
8
+ <div class="flex items-center justify-between gap-inline">
9
+ <mds-text>2026/0412, Giulia Bianchi</mds-text>
10
+ <mds-button icon="mi/baseline/archive" variant="dark" tone="text" aria-label="Archivia la pratica 2026/0412"></mds-button>
11
+ </div>
12
+ <div class="flex items-center justify-between gap-inline">
13
+ <mds-text>2026/0398, Luca Ferri</mds-text>
14
+ <mds-button icon="mi/baseline/archive" variant="dark" tone="text" aria-label="Archivia la pratica 2026/0398"></mds-button>
15
+ </div>
16
+ <div class="flex items-center justify-between gap-inline">
17
+ <mds-text>2026/0377, Anna Rossi</mds-text>
18
+ <mds-button icon="mi/baseline/archive" variant="dark" tone="text" aria-label="Archivia la pratica 2026/0377"></mds-button>
19
+ </div>
20
+ </div>
21
+ </section>
22
+ <mds-toast-region>
23
+ <mds-toast id="toast" duration="0" dismissible>
24
+ Pratica archiviata: 2026/0412
25
+ <mds-button id="restore" slot="action" size="sm" variant="dark" tone="outline">Ripristina</mds-button>
26
+ </mds-toast>
27
+ </mds-toast-region>
28
+ <script>
29
+ const list = document.getElementById('pratiche');
30
+ const toast = document.getElementById('toast');
31
+ let archived;
32
+ list.addEventListener('click', (event) => {
33
+ const item = event.target.closest('mds-button')?.parentElement;
34
+ if (!item) return;
35
+ archived = { item, next: item.nextElementSibling };
36
+ toast.firstChild.data = `Pratica archiviata: ${item.querySelector('mds-text').textContent.split(',')[0]}`;
37
+ item.remove();
38
+ toast.visible = true;
39
+ });
40
+ document.getElementById('restore').addEventListener('click', () => {
41
+ list.insertBefore(archived.item, archived.next);
42
+ toast.visible = undefined;
43
+ });
44
+ </script>
@@ -0,0 +1,25 @@
1
+ <!--
2
+ try: Look at the dialog of the reminder, opened from the menu of a row: it shows who receives it and the text that goes before Invia sollecito; Annulla holds the focus.
3
+ height: 480
4
+ -->
5
+ <mds-modal opened aria-label="Inviare il sollecito a Marco Bianchi?">
6
+ <mds-banner slot="window" variant="light" tone="box" dismissible headline="Inviare il sollecito a Marco Bianchi?">
7
+ <div class="@container">
8
+ <dl class="m-0 grid items-start gap-between-fields @md:grid-cols-2">
9
+ <div class="grid gap-label-control">
10
+ <mds-text typography="label" tag="dt" class="text-fg-muted">Destinatario</mds-text>
11
+ <mds-text tag="dd" class="m-0">m.bianchi@pec.esempio.it</mds-text>
12
+ </div>
13
+ <div class="col-span-full grid gap-label-control">
14
+ <mds-text typography="label" tag="dt" class="text-fg-muted">Testo</mds-text>
15
+ <mds-text tag="dd" class="m-0">
16
+ Per la pratica 2026/0412 manca ancora la planimetria dell'immobile. La carichi entro il 30
17
+ marzo, o la pratica viene archiviata.
18
+ </mds-text>
19
+ </div>
20
+ </dl>
21
+ </div>
22
+ <mds-button slot="action" variant="dark" tone="outline" autofocus>Annulla</mds-button>
23
+ <mds-button slot="action">Invia sollecito</mds-button>
24
+ </mds-banner>
25
+ </mds-modal>
@@ -0,0 +1,11 @@
1
+ <!--
2
+ try: Look at the question: it says how many notes go, and the button repeats it; Annulla holds the focus, so Invio cancels.
3
+ height: 320
4
+ -->
5
+ <mds-modal opened aria-label="Eliminare 12 note?">
6
+ <mds-banner slot="window" variant="light" tone="box" dismissible headline="Eliminare 12 note?">
7
+ <mds-text>Le 12 note selezionate vengono cancellate e non si possono recuperare.</mds-text>
8
+ <mds-button slot="action" variant="dark" tone="outline" autofocus>Annulla</mds-button>
9
+ <mds-button slot="action" variant="error" tone="strong">Elimina 12 note</mds-button>
10
+ </mds-banner>
11
+ </mds-modal>
@@ -0,0 +1,14 @@
1
+ <!--
2
+ try: Look at the question: it names the user, and the text says what follows; Annulla holds the focus, so Invio cancels, and Elimina utente stands last in red.
3
+ height: 340
4
+ -->
5
+ <mds-modal opened aria-label="Eliminare l'utente Mario Rossi?">
6
+ <mds-banner slot="window" variant="light" tone="box" dismissible headline="Eliminare l'utente Mario Rossi?">
7
+ <mds-text>
8
+ Non potrà più accedere, e l'utente non si può recuperare. Le pratiche che ha seguito restano,
9
+ a suo nome.
10
+ </mds-text>
11
+ <mds-button slot="action" variant="dark" tone="outline" autofocus>Annulla</mds-button>
12
+ <mds-button slot="action" variant="error" tone="strong">Elimina utente</mds-button>
13
+ </mds-banner>
14
+ </mds-modal>
@@ -0,0 +1,54 @@
1
+ <!--
2
+ try: Press Chiudi segnalazione on the first card: it closes at once, with no question, and a toast offers Riapri while the application still keeps it.
3
+ height: 520
4
+ -->
5
+ <section class="grid gap-title-content">
6
+ <mds-text typography="section" tag="h2">Segnalazioni risolte</mds-text>
7
+ <div id="segnalazioni" class="grid gap-between-containers">
8
+ <mds-card>
9
+ <mds-card-header>
10
+ <mds-text typography="part" tag="h3">Lampione spento in via Roma</mds-text>
11
+ </mds-card-header>
12
+ <mds-card-content>
13
+ <mds-text typography="detail" tag="p">Segnalazione 2026/0412, riparato dalla squadra esterna.</mds-text>
14
+ </mds-card-content>
15
+ <mds-card-footer>
16
+ <mds-button variant="primary" tone="outline">Chiudi segnalazione</mds-button>
17
+ </mds-card-footer>
18
+ </mds-card>
19
+ <mds-card>
20
+ <mds-card-header>
21
+ <mds-text typography="part" tag="h3">Buca in via Emilia</mds-text>
22
+ </mds-card-header>
23
+ <mds-card-content>
24
+ <mds-text typography="detail" tag="p">Segnalazione 2026/0398, asfalto rifatto il 3 marzo.</mds-text>
25
+ </mds-card-content>
26
+ <mds-card-footer>
27
+ <mds-button variant="primary" tone="outline">Chiudi segnalazione</mds-button>
28
+ </mds-card-footer>
29
+ </mds-card>
30
+ </div>
31
+ </section>
32
+ <mds-toast-region>
33
+ <mds-toast id="toast" duration="0" dismissible>
34
+ Segnalazione chiusa: Lampione spento in via Roma
35
+ <mds-button id="reopen" slot="action" size="sm" variant="dark" tone="outline">Riapri</mds-button>
36
+ </mds-toast>
37
+ </mds-toast-region>
38
+ <script>
39
+ const list = document.getElementById('segnalazioni');
40
+ const toast = document.getElementById('toast');
41
+ let closed;
42
+ list.addEventListener('click', (event) => {
43
+ const card = event.target.closest('mds-button')?.closest('mds-card');
44
+ if (!card) return;
45
+ closed = { card, next: card.nextElementSibling };
46
+ toast.firstChild.data = `Segnalazione chiusa: ${card.querySelector('mds-text').textContent}`;
47
+ card.remove();
48
+ toast.visible = true;
49
+ });
50
+ document.getElementById('reopen').addEventListener('click', () => {
51
+ list.insertBefore(closed.card, closed.next);
52
+ toast.visible = undefined;
53
+ });
54
+ </script>
@@ -0,0 +1,57 @@
1
+ <!--
2
+ try: Press Invia: the message leaves with no question, since the recipient and the text are on screen as they go; a banner takes the place of the form, so nothing can be sent twice, and Scrivi un'altra comunicazione brings back an empty form.
3
+ height: 640
4
+ -->
5
+ <div class="grid gap-between-sections">
6
+ <mds-text id="title" typography="page" tag="h1" tabindex="-1">Nuova comunicazione</mds-text>
7
+ <form id="form" class="@container grid max-w-form gap-content-actions">
8
+ <div class="grid gap-between-fields">
9
+ <mds-input-field label="Destinatario">
10
+ <mds-input type="email" name="to" value="m.bianchi@pec.esempio.it"></mds-input>
11
+ </mds-input-field>
12
+ <mds-input-field label="Oggetto">
13
+ <mds-input name="subject" value="Documenti mancanti, pratica 2026/0412"></mds-input>
14
+ </mds-input-field>
15
+ <mds-input-field label="Testo">
16
+ <mds-input
17
+ type="textarea"
18
+ name="text"
19
+ value="Buongiorno, per chiudere la pratica manca la planimetria dell'immobile. Può caricarla entro il 30 marzo."
20
+ ></mds-input>
21
+ </mds-input-field>
22
+ </div>
23
+ <div class="flex justify-end gap-inline @max-actions:flex-col @max-actions:*:self-stretch">
24
+ <mds-button type="button" variant="dark" tone="outline">Annulla</mds-button>
25
+ <mds-button id="send" type="submit">Invia</mds-button>
26
+ </div>
27
+ </form>
28
+ <mds-banner id="sent" variant="success" tone="strong" headline="Comunicazione inviata" class="hidden max-w-form">
29
+ <mds-text>A m.bianchi@pec.esempio.it, con oggetto Documenti mancanti, pratica 2026/0412.</mds-text>
30
+ <mds-button id="again" slot="action" variant="success" tone="strong">Scrivi un'altra comunicazione</mds-button>
31
+ </mds-banner>
32
+ </div>
33
+ <script>
34
+ const form = document.getElementById('form');
35
+ const send = document.getElementById('send');
36
+ const sent = document.getElementById('sent');
37
+ form.addEventListener('submit', (event) => {
38
+ event.preventDefault();
39
+ send.await = true;
40
+ // the preview answers at once; in the product the back end does
41
+ setTimeout(() => {
42
+ send.await = undefined;
43
+ // the form goes: what was sent cannot be sent again by a second press
44
+ form.classList.add('hidden');
45
+ sent.classList.remove('hidden');
46
+ // Invia is gone: the focus goes to the heading, the banner is read out
47
+ document.getElementById('title').focus();
48
+ }, 400);
49
+ });
50
+ document.getElementById('again').addEventListener('click', () => {
51
+ for (const input of form.querySelectorAll('mds-input')) input.value = '';
52
+ sent.classList.add('hidden');
53
+ form.classList.remove('hidden');
54
+ // Scrivi un'altra comunicazione is gone: the focus goes back to the heading, over the empty form
55
+ document.getElementById('title').focus();
56
+ });
57
+ </script>
@@ -0,0 +1,19 @@
1
+ <!--
2
+ try: Look at the empty list of Deleghe: the panel says what a delegation is for and offers the first one; Nuova delega stays in the header too, the one filled action of the page.
3
+ -->
4
+ <div class="grid gap-between-sections">
5
+ <div class="flex flex-wrap items-start justify-between gap-inline">
6
+ <mds-text typography="page" tag="h1" class="min-w-0">Deleghe</mds-text>
7
+ <mds-button>Nuova delega</mds-button>
8
+ </div>
9
+ <mds-zero>
10
+ <div slot="content" class="grid gap-title-content">
11
+ <mds-text typography="part" tag="h2">Nessuna delega</mds-text>
12
+ <mds-text typography="detail" tag="p">
13
+ Con una delega un familiare o un professionista presenta le richieste a tuo nome.
14
+ Aggiungi la prima per iniziare.
15
+ </mds-text>
16
+ </div>
17
+ <mds-button slot="action" variant="primary" tone="outline">Nuova delega</mds-button>
18
+ </mds-zero>
19
+ </div>
@@ -0,0 +1,15 @@
1
+ <!--
2
+ try: Look at Da gestire, emptied by the work done: the panel says all is handled and what will come here, with no button and no illustration.
3
+ -->
4
+ <div class="grid gap-between-sections">
5
+ <mds-text typography="page" tag="h1">Da gestire</mds-text>
6
+ <mds-zero>
7
+ <div slot="content" class="grid gap-title-content">
8
+ <mds-text typography="part" tag="h2">Nessuna richiesta da gestire</mds-text>
9
+ <mds-text typography="detail" tag="p">
10
+ Hai gestito tutte le richieste del tuo ufficio. Le nuove arrivano qui appena un cittadino
11
+ le invia.
12
+ </mds-text>
13
+ </div>
14
+ </mds-zero>
15
+ </div>
@@ -0,0 +1,35 @@
1
+ <!--
2
+ try: Look at the search for Rossini among the open requests: the summary and the panel say nothing matches, and the panel offers Rimuovi i filtri only; Nuova richiesta stays in the header.
3
+ -->
4
+ <div class="grid gap-between-sections">
5
+ <div class="flex flex-wrap items-start justify-between gap-inline">
6
+ <mds-text typography="page" tag="h1" class="min-w-0">Richieste</mds-text>
7
+ <mds-button>Nuova richiesta</mds-button>
8
+ </div>
9
+ <div class="grid gap-between-groups">
10
+ <form role="search" class="grid gap-between-fields">
11
+ <div class="field-group max-w-form">
12
+ <mds-input-field label="Cerca per nome o numero">
13
+ <mds-input type="search" name="q" value="Rossini"></mds-input>
14
+ </mds-input-field>
15
+ </div>
16
+ <mds-filter label="Stato" class="justify-self-start">
17
+ <mds-filter-item label="Tutte" value="all"></mds-filter-item>
18
+ <mds-filter-item label="Aperte" value="open" selected></mds-filter-item>
19
+ <mds-filter-item label="Chiuse" value="closed"></mds-filter-item>
20
+ </mds-filter>
21
+ </form>
22
+ <div class="grid gap-title-content">
23
+ <mds-text typography="detail" tag="p" role="status">Nessuna richiesta corrisponde</mds-text>
24
+ <mds-zero>
25
+ <div slot="content" class="grid gap-title-content">
26
+ <mds-text typography="part" tag="h2">Nessuna richiesta trovata</mds-text>
27
+ <mds-text typography="detail" tag="p">
28
+ Prova con altre parole, o rimuovi i filtri per vedere tutte le richieste.
29
+ </mds-text>
30
+ </div>
31
+ <mds-button slot="action" variant="primary" tone="outline">Rimuovi i filtri</mds-button>
32
+ </mds-zero>
33
+ </div>
34
+ </div>
35
+ </div>
@@ -0,0 +1,15 @@
1
+ <!--
2
+ try: Look at Documenti, still empty: the panel says who adds the documents and when, and offers no button, since the person has nothing to do here.
3
+ -->
4
+ <section class="grid gap-title-content">
5
+ <mds-text typography="section" tag="h2">Documenti</mds-text>
6
+ <mds-zero>
7
+ <div slot="content" class="grid gap-title-content">
8
+ <mds-text typography="part" tag="h3">Nessun documento</mds-text>
9
+ <mds-text typography="detail" tag="p">
10
+ L'ufficio anagrafe aggiunge qui i documenti della pratica quando la prende in carico, di
11
+ solito entro cinque giorni lavorativi.
12
+ </mds-text>
13
+ </div>
14
+ </mds-zero>
15
+ </section>
@@ -0,0 +1,38 @@
1
+ <!--
2
+ try: Look at the page of a deleted request: under the bar of the application the panel takes the place of the page, its title is the h1, and Vai alle richieste leads back to the list.
3
+ whole-page: true
4
+ -->
5
+ <mds-header>
6
+ <mds-header-bar>
7
+ <mds-text typography="h6" tag="p">Servizi demografici</mds-text>
8
+ <mds-button slot="nav" href="#" aria-current="page" variant="dark" tone="weak">Richieste</mds-button>
9
+ <mds-button slot="nav" href="#" variant="dark" tone="text">Archivio</mds-button>
10
+ <mds-button id="persona" slot="nav" icon="mi/baseline/account-circle" variant="dark" tone="text" aria-label="Account di Mario Rossi"></mds-button>
11
+ </mds-header-bar>
12
+ <nav slot="menu" class="grid gap-inline p-inset">
13
+ <mds-button href="#" aria-current="page" variant="dark" tone="weak" class="w-full justify-start">Richieste</mds-button>
14
+ <mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Archivio</mds-button>
15
+ <mds-separator></mds-separator>
16
+ <mds-text typography="detail" tag="p" class="text-fg-muted">Mario Rossi</mds-text>
17
+ <mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Profilo</mds-button>
18
+ <mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Esci</mds-button>
19
+ </nav>
20
+ </mds-header>
21
+ <mds-dropdown target="#persona" placement="bottom-end" strategy="fixed">
22
+ <mds-text typography="detail" tag="p" class="text-fg-muted">Mario Rossi</mds-text>
23
+ <mds-button href="#" icon="mi/baseline/person" variant="dark" tone="text" label="Profilo"></mds-button>
24
+ <mds-separator></mds-separator>
25
+ <mds-button href="#" icon="mi/baseline/logout" variant="dark" tone="text" label="Esci"></mds-button>
26
+ </mds-dropdown>
27
+ <main class="page-frame py-between-sections">
28
+ <mds-zero>
29
+ <div slot="content" class="grid gap-title-content">
30
+ <mds-text typography="page" tag="h1">Richiesta non trovata</mds-text>
31
+ <mds-text typography="detail" tag="p">
32
+ La richiesta 2026/0412 non esiste più: è stata eliminata, o l'indirizzo è sbagliato.
33
+ Cercala nell'elenco delle richieste.
34
+ </mds-text>
35
+ </div>
36
+ <mds-button slot="action" href="#">Vai alle richieste</mds-button>
37
+ </mds-zero>
38
+ </main>
@@ -0,0 +1,12 @@
1
+ <!--
2
+ try: Look under Comune di residenza: no town matches the text typed, so one line says so where the options would be; the field above it is the way out.
3
+ height: 220
4
+ -->
5
+ <div class="grid max-w-form">
6
+ <mds-input-field label="Comune di residenza">
7
+ <mds-input id="comune" value="Santarcangiolo"></mds-input>
8
+ </mds-input-field>
9
+ </div>
10
+ <mds-dropdown target="#comune" interaction="none" placement="bottom-start" role="status" visible>
11
+ <mds-text typography="detail" class="text-fg-muted">Nessun comune corrisponde a "Santarcangiolo"</mds-text>
12
+ </mds-dropdown>
@@ -0,0 +1,35 @@
1
+ <!--
2
+ try: Press Salva: the server refuses the code, already in use, so there is no Riprova; the error goes on the field Codice, which takes the focus, and says what to write instead.
3
+ height: 440
4
+ -->
5
+ <div class="grid gap-between-sections">
6
+ <mds-text typography="page" tag="h1">Nuovo ufficio</mds-text>
7
+ <form id="form" class="@container grid max-w-form gap-content-actions">
8
+ <div class="grid gap-between-fields">
9
+ <mds-input-field label="Nome">
10
+ <mds-input value="Ufficio tributi, sede di Viserba"></mds-input>
11
+ </mds-input-field>
12
+ <mds-input-field id="code-field" label="Codice">
13
+ <mds-input id="code" value="TR01"></mds-input>
14
+ </mds-input-field>
15
+ </div>
16
+ <div class="flex justify-end gap-inline @max-actions:flex-col @max-actions:*:self-stretch">
17
+ <mds-button type="button" variant="dark" tone="outline">Annulla</mds-button>
18
+ <mds-button id="save">Salva</mds-button>
19
+ </div>
20
+ </form>
21
+ </div>
22
+ <script>
23
+ const save = document.getElementById('save');
24
+ document.getElementById('form').addEventListener('submit', (event) => event.preventDefault());
25
+ save.addEventListener('click', () => {
26
+ save.await = true;
27
+ setTimeout(() => {
28
+ save.await = undefined;
29
+ const field = document.getElementById('code-field');
30
+ field.variant = 'error';
31
+ field.message = "TR01 è già il codice dell'ufficio tributi di Rimini: scegline un altro, come TR02.";
32
+ document.getElementById('code').setFocus();
33
+ }, 400);
34
+ });
35
+ </script>
@@ -0,0 +1,26 @@
1
+ <!--
2
+ try: Look at the error above the row: it says who changed the request and when, and that nothing was saved; the changes written here stay in their fields.
3
+ -->
4
+ <div class="grid gap-between-sections">
5
+ <mds-text typography="page" tag="h1">Modifica pratica</mds-text>
6
+ <form class="@container grid max-w-form gap-content-actions">
7
+ <div class="grid gap-between-fields">
8
+ <mds-input-field label="Oggetto">
9
+ <mds-input value="Rinnovo concessione suolo pubblico"></mds-input>
10
+ </mds-input-field>
11
+ <mds-input-field label="Durata in giorni">
12
+ <mds-input value="120"></mds-input>
13
+ </mds-input-field>
14
+ <mds-banner variant="error" tone="strong" headline="Modifiche non salvate">
15
+ <mds-text>
16
+ Anna Rossi ha modificato la pratica alle 10:42, dopo che l'hai aperta. Non è stato salvato
17
+ nulla e le tue modifiche sono ancora qui: guarda le sue prima di salvare.
18
+ </mds-text>
19
+ </mds-banner>
20
+ </div>
21
+ <div class="flex justify-end gap-inline @max-actions:flex-col @max-actions:*:self-stretch">
22
+ <mds-button type="button" variant="dark" tone="outline">Annulla</mds-button>
23
+ <mds-button>Salva</mds-button>
24
+ </div>
25
+ </form>
26
+ </div>
@@ -0,0 +1,38 @@
1
+ <!--
2
+ try: Press Invia: the connection drops, Invia waits while the application asks the server what happened, then the error above the row says nothing left, so Invia can send it once.
3
+ height: 560
4
+ -->
5
+ <div class="grid gap-between-sections">
6
+ <mds-text typography="page" tag="h1">Nuova comunicazione</mds-text>
7
+ <form id="form" class="@container grid max-w-form gap-content-actions">
8
+ <div class="grid gap-between-fields">
9
+ <mds-input-field label="Destinatario">
10
+ <mds-input type="email" value="m.bianchi@pec.esempio.it"></mds-input>
11
+ </mds-input-field>
12
+ <mds-input-field label="Oggetto">
13
+ <mds-input value="Documenti mancanti, pratica 2026/0412"></mds-input>
14
+ </mds-input-field>
15
+ <mds-banner id="error" variant="error" tone="strong" headline="Comunicazione non inviata" class="hidden">
16
+ <mds-text>
17
+ La connessione si è interrotta durante l'invio, e dal controllo risulta che non è partita.
18
+ Quello che hai scritto è qui: inviala di nuovo, arriverà una volta sola.
19
+ </mds-text>
20
+ </mds-banner>
21
+ </div>
22
+ <div class="flex justify-end gap-inline @max-actions:flex-col @max-actions:*:self-stretch">
23
+ <mds-button type="button" variant="dark" tone="outline">Annulla</mds-button>
24
+ <mds-button id="send">Invia</mds-button>
25
+ </div>
26
+ </form>
27
+ </div>
28
+ <script>
29
+ const send = document.getElementById('send');
30
+ document.getElementById('form').addEventListener('submit', (event) => event.preventDefault());
31
+ send.addEventListener('click', () => {
32
+ send.await = true;
33
+ setTimeout(() => {
34
+ send.await = undefined;
35
+ document.getElementById('error').classList.remove('hidden');
36
+ }, 600);
37
+ });
38
+ </script>
@@ -0,0 +1,12 @@
1
+ <!--
2
+ try: Look at the request that cannot be opened: no Riprova, since trying again fails the same way; the error says why and who can give access.
3
+ -->
4
+ <div class="grid gap-between-sections">
5
+ <mds-text typography="page" tag="h1">Pratica 2026/0412</mds-text>
6
+ <mds-banner variant="error" tone="strong" headline="Non puoi vedere questa pratica">
7
+ <mds-text>
8
+ La segue l'ufficio tributi, e il tuo profilo non ne fa parte. Per l'accesso scrivi ad Anna
9
+ Rossi, responsabile dell'ufficio.
10
+ </mds-text>
11
+ </mds-banner>
12
+ </div>
@@ -0,0 +1,29 @@
1
+ <!--
2
+ try: Look at the error above the list: 9 archived, 3 not, each with its reason; Riprova acts only on the two the server did not receive.
3
+ -->
4
+ <section class="grid gap-title-content">
5
+ <mds-text typography="section" tag="h2">Pratiche concluse</mds-text>
6
+ <div class="grid gap-between-fields">
7
+ <mds-banner variant="error" tone="strong" headline="9 pratiche archiviate, 3 no">
8
+ <mds-text>
9
+ La 2026/0412 è aperta da Anna Rossi: si archivia quando la chiude. La 2026/0398 e la
10
+ 2026/0377 non sono arrivate al server: Riprova archivia solo queste due.
11
+ </mds-text>
12
+ <mds-button slot="action" variant="error" tone="strong">Riprova</mds-button>
13
+ </mds-banner>
14
+ <div class="grid">
15
+ <div class="flex items-center justify-between gap-inline">
16
+ <mds-text>2026/0412, Giulia Bianchi</mds-text>
17
+ <mds-button icon="mi/baseline/archive" variant="dark" tone="text" aria-label="Archivia la pratica 2026/0412"></mds-button>
18
+ </div>
19
+ <div class="flex items-center justify-between gap-inline">
20
+ <mds-text>2026/0398, Luca Ferri</mds-text>
21
+ <mds-button icon="mi/baseline/archive" variant="dark" tone="text" aria-label="Archivia la pratica 2026/0398"></mds-button>
22
+ </div>
23
+ <div class="flex items-center justify-between gap-inline">
24
+ <mds-text>2026/0377, Paolo Neri</mds-text>
25
+ <mds-button icon="mi/baseline/archive" variant="dark" tone="text" aria-label="Archivia la pratica 2026/0377"></mds-button>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </section>
@@ -0,0 +1,35 @@
1
+ <!--
2
+ try: Press Salva: the save fails, the error stands right above the row, what was written stays, and Salva, which keeps the focus, is the way to try again.
3
+ height: 520
4
+ -->
5
+ <div class="grid gap-between-sections">
6
+ <mds-text typography="page" tag="h1">Modifica referente</mds-text>
7
+ <form id="form" class="@container grid max-w-form gap-content-actions">
8
+ <div class="grid gap-between-fields">
9
+ <mds-input-field label="Nome e cognome">
10
+ <mds-input value="Marco Bianchi"></mds-input>
11
+ </mds-input-field>
12
+ <mds-input-field label="PEC">
13
+ <mds-input type="email" value="m.bianchi@pec.esempio.it"></mds-input>
14
+ </mds-input-field>
15
+ <mds-banner id="error" variant="error" tone="strong" headline="Modifiche non salvate" class="hidden">
16
+ <mds-text>Il server non ha risposto e non è cambiato nulla. Quello che hai scritto è qui: salva di nuovo tra poco.</mds-text>
17
+ </mds-banner>
18
+ </div>
19
+ <div class="flex justify-end gap-inline @max-actions:flex-col @max-actions:*:self-stretch">
20
+ <mds-button type="button" variant="dark" tone="outline">Annulla</mds-button>
21
+ <mds-button id="save">Salva</mds-button>
22
+ </div>
23
+ </form>
24
+ </div>
25
+ <script>
26
+ const save = document.getElementById('save');
27
+ document.getElementById('form').addEventListener('submit', (event) => event.preventDefault());
28
+ save.addEventListener('click', () => {
29
+ save.await = true;
30
+ setTimeout(() => {
31
+ save.await = undefined;
32
+ document.getElementById('error').classList.remove('hidden');
33
+ }, 400);
34
+ });
35
+ </script>
@@ -0,0 +1,40 @@
1
+ <!--
2
+ try: Press Riprova in Allegati: it waits, then the attachments come in and the error goes; Richiedente, which had loaded, never moved.
3
+ -->
4
+ <div class="grid gap-between-sections">
5
+ <section class="grid gap-title-content">
6
+ <mds-text typography="section" tag="h2">Richiedente</mds-text>
7
+ <dl class="m-0 grid max-w-form items-start gap-between-fields @md:grid-cols-2">
8
+ <div class="grid gap-label-control">
9
+ <mds-text typography="label" tag="dt" class="text-fg-muted">Nome e cognome</mds-text>
10
+ <mds-text tag="dd" class="m-0">Giulia Bianchi</mds-text>
11
+ </div>
12
+ <div class="grid gap-label-control">
13
+ <mds-text typography="label" tag="dt" class="text-fg-muted">Pratica</mds-text>
14
+ <mds-text tag="dd" class="m-0">2026/0412</mds-text>
15
+ </div>
16
+ </dl>
17
+ </section>
18
+ <section class="grid gap-title-content">
19
+ <mds-text id="title" typography="section" tag="h2" tabindex="-1">Allegati</mds-text>
20
+ <mds-banner id="error" variant="error" tone="strong" headline="Allegati non caricati">
21
+ <mds-text>Controlla la connessione, poi riprova.</mds-text>
22
+ <mds-button id="retry" slot="action" variant="error" tone="strong">Riprova</mds-button>
23
+ </mds-banner>
24
+ <div id="list" class="grid gap-between-containers hidden">
25
+ <mds-file filename="planimetria.pdf"></mds-file>
26
+ <mds-file filename="delega-firmata.pdf"></mds-file>
27
+ </div>
28
+ </section>
29
+ </div>
30
+ <script>
31
+ const retry = document.getElementById('retry');
32
+ retry.addEventListener('click', () => {
33
+ retry.await = true;
34
+ setTimeout(() => {
35
+ document.getElementById('error').remove();
36
+ document.getElementById('list').classList.remove('hidden');
37
+ document.getElementById('title').focus();
38
+ }, 500);
39
+ });
40
+ </script>