@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,121 @@
1
+ <!--
2
+ GENERATED FILE - do not edit by hand.
3
+ Source of truth: docs/agents/ in the magma monorepo.
4
+ Regenerate with: npm run sync.agent-docs (from the stencil package).
5
+ -->
6
+ # Magma patterns catalogue (7 patterns, 6 candidates, 4 building blocks, 6 domains of Foundation)
7
+
8
+ > Generated from the patterns of the magma monorepo. A pattern is the solution to a task that
9
+ > spans components (where a message goes, when to ask before acting), the same in every
10
+ > product: Magma's default. Each one is defined on a few variables of the situation; read its
11
+ > file in `agents/patterns/`, or ask the MCP server: `get_pattern` with the values of the
12
+ > variables you know gives the case to follow. Its "Always true" rules hold in every product.
13
+ > The domains of Foundation (`kind: foundation`) are the rules of composition the patterns
14
+ > stand on: the space between two elements, which action weighs more, the style of a title, when
15
+ > a surface, how wide. They are read the same way, and each rule says the principle it serves and
16
+ > what carries it (a component, a token, a utility, a lint rule): write the carrier, not its
17
+ > value; a carrier still planned is not there yet, so write the value the case gives.
18
+ > `get_guide` serves each domain by its id; the answer of `get_pattern` for a situation
19
+ > lists in `rules` the ones its case relies on, and `get_component` the ones that govern a
20
+ > component.
21
+ > The building blocks (`kind: block`) are the sections of a page that come back in several
22
+ > patterns (the head of a page): space, not time. A block has regions in the order of the page
23
+ > instead of cases, each saying when it shows; `get_pattern` with the values of its variables
24
+ > gives the regions to lay out, and its Layout section says how they stand.
25
+ > A product may keep a layer in its own repository, `magma/patterns/<id>.md`, that narrows the
26
+ > open choices and adds situations (A product's layer, below); `get_pattern` applies it. A candidate is a need Magma knows
27
+ > and has not defined yet: no default covers it, so say which choice you made and why.
28
+
29
+ ## Foundation
30
+
31
+ | Domain | Title | Need | Status |
32
+ | ------ | ----- | ---- | ------ |
33
+ | [`actions`](patterns/actions.md) | Actions | Tell at a glance which action moves the task forward, which ones stand beside it, and which ones destroy, and find them in the same place on every screen. | decided |
34
+ | [`density`](patterns/density.md) | Density | Fit more or less on a screen without changing how its parts relate: more for a product that shows a lot at once, less for a person who needs more room to point. | decided |
35
+ | [`rhythm`](patterns/rhythm.md) | Rhythm | Space two elements of a composition by how they relate, so that each one stands nearer to what it belongs to than to its neighbour. | decided |
36
+ | [`surfaces`](patterns/surfaces.md) | Surfaces | Give a boundary only to what space cannot separate, so that a surface on the screen means something: an item of a set, a thing that stays put, a dialog. | decided |
37
+ | [`titles`](patterns/titles.md) | Titles | Tell at a glance what a title names, the whole page, a section of it, a dialog, a part or a group of fields, and keep the outline of the page true for whoever navigates it by headings. | decided |
38
+ | [`widths`](patterns/widths.md) | Widths and alignment | Give text, forms, pages and dialogs a width that keeps them readable at every size of window and of text, and line them up on one edge. | decided |
39
+
40
+ ## Building blocks
41
+
42
+ | Block | Title | Need | Status |
43
+ | ----- | ----- | ---- | ------ |
44
+ | [`app-shell`](patterns/app-shell.md) | Application shell | The person knows which application they are in, reaches each of its sections from any page, and sees who they are signed in as. | decided |
45
+ | [`page-header`](patterns/page-header.md) | Page header | The person sees at once what the page holds or is about, where they are, and what they can do with it. | decided |
46
+ | [`item-list`](patterns/item-list.md) | Item list | The person sees a set of items, narrows it to the ones they need, knows how many there are, and reaches the rest. | decided |
47
+ | [`labels-and-values`](patterns/labels-and-values.md) | Labels and values | The person reads the data of an item, each value under the name of what it is. | decided |
48
+
49
+ ## Data
50
+
51
+ | Pattern | Title | Need | Status |
52
+ | ------- | ----- | ---- | ------ |
53
+ | [`choose-items`](patterns/choose-items.md) | Choose items | The person picks items from a long list to use them for something else, such as members to add to a group or documents to attach. | candidate |
54
+ | [`concurrent-editing`](patterns/concurrent-editing.md) | Concurrent editing | Two people change the same record at the same time, and neither loses their changes. | candidate |
55
+ | [`list-with-filters`](patterns/list-with-filters.md) | List with filters | The person finds the items they need in a long list, by searching, filtering and paging. | decided |
56
+ | [`permissions`](patterns/permissions.md) | Permissions | The person sees what their role lets them see and do, and understands why an action is not available. | candidate |
57
+ | [`record-detail`](patterns/record-detail.md) | Record detail | The person opens one record to read it and act on it, then goes back to the list as it was. | decided |
58
+
59
+ ## Input
60
+
61
+ | Pattern | Title | Need | Status |
62
+ | ------- | ----- | ---- | ------ |
63
+ | [`consent-and-legal`](patterns/consent-and-legal.md) | Consent and legal steps | The person pays, signs or gives consent: steps with legal rules of their own. | candidate |
64
+ | [`form-and-validation`](patterns/form-and-validation.md) | Form and validation | The person fills in a form, sees what is wrong and where, and sends it. | candidate |
65
+
66
+ ## Messages and states
67
+
68
+ | Pattern | Title | Need | Status |
69
+ | ------- | ----- | ---- | ------ |
70
+ | [`confirm-action`](patterns/confirm-action.md) | Confirm an action | The person is about to do something that cannot be taken back, and must decide knowing what will happen. | decided |
71
+ | [`empty-state`](patterns/empty-state.md) | An empty part of the page | The person reaches a part of the page with nothing in it, and must understand why and what to do next. | decided |
72
+ | [`error-recovery`](patterns/error-recovery.md) | When something fails | Something did not work, and the person must understand what did not happen and go on without losing their work. | decided |
73
+ | [`loading`](patterns/loading.md) | Waiting for something | The person waits for content or for the end of an action, and must know that it is coming and whether they can do something else meanwhile. | decided |
74
+ | [`message-placement`](patterns/message-placement.md) | Where a message goes | The person did something or opened a view, and must know what happened without looking for it. | decided |
75
+ | [`notification-center`](patterns/notification-center.md) | Notification center | The person comes back to the outcomes that arrived while they were elsewhere, and to what they still have to act on. | candidate |
76
+
77
+ ## A product's layer
78
+
79
+ A product adapts a pattern in its own repository, one file per pattern, named after it:
80
+ `magma/patterns/<id>.md` under the project's root. The layer fixes the open choices the pattern
81
+ leaves to the products, within what each one `may`, and maps the situations of the product's
82
+ domain to the cases of the pattern. It never changes an "Always true" rule nor a case: a product
83
+ that needs one changed asks Magma for it (`reporting.md`).
84
+
85
+ ```markdown
86
+ ---
87
+ id: message-placement
88
+ extends: magma:message-placement
89
+ layer: example-backoffice
90
+ narrows:
91
+ success-toast-duration: 8000
92
+ situations:
93
+ - situation: A protocol number is assigned to a filed document
94
+ case: action-done-elsewhere
95
+ note: the toast carries Copy, so it stays (toast-action-stays)
96
+ ---
97
+
98
+ # Where a message goes, in Example Backoffice
99
+
100
+ ## Why
101
+
102
+ The operators read slowly between two phone calls: 8 seconds instead of 5. (2026-10-29)
103
+ ```
104
+
105
+ | Field | What it holds |
106
+ | ----- | ------------- |
107
+ | `id` | The id of the Magma pattern, the name of the file. |
108
+ | `extends` | `magma:<id>`. |
109
+ | `layer` | The name of the product, never `magma`. |
110
+ | `narrows` | `<open choice>: <value>`, only for the open choices of the pattern. |
111
+ | `situations` | `{ situation, case, note }`, with a case of the pattern or a list of them; or `{ situation, use: <pattern> }` when another pattern answers it. |
112
+
113
+ The body is free: why each choice was made, with its date, for whoever changes it next.
114
+ `get_pattern` without arguments lists in `layerErrors` what is wrong in the folder; with the
115
+ id it returns the pattern with the layer applied (`narrowed-by` on each choice it fixes, `layer`
116
+ on each situation it adds). A layer with an error is not applied: the answer stays Magma's
117
+ default until it is fixed. A need no Magma pattern covers, which the product cannot wait for,
118
+ may get a pattern of its own in the same folder, in the shape of Magma's files (its own
119
+ `layer`, no `extends`, never an id Magma has); a pattern that comes back in two or three
120
+ products is proposed to Magma. In Claude Code, the Magma plugin writes and checks a layer with
121
+ `/magma:pattern-layer`.
@@ -14,8 +14,8 @@
14
14
 
15
15
  ## 1. Make sure it is Magma's
16
16
 
17
- - Read the component's `AGENTS.md` and `antipattern.md`, and
18
- [`anti-patterns.md`](anti-patterns.md): a documented mistake is the project's to fix,
17
+ - Read the component's `AGENTS.md` and its own `mistakes.md`, and
18
+ [`mistakes.md`](mistakes.md): a documented mistake is the project's to fix,
19
19
  not a Magma bug.
20
20
  - Check that the installed `magma`, `styles` and `design-tokens` versions belong
21
21
  together (the ones a `magma` release depends on): mismatched versions break tokens
@@ -139,7 +139,10 @@ when:
139
139
  - a tool said Magma has nothing for a well-formed question: its answer carries `gap`, or
140
140
  its error says it does not know;
141
141
  - a tool answered, but not with what the task needed: a field it does not return, a
142
- filter or an argument it does not take.
142
+ filter or an argument it does not take;
143
+ - a flow across components that no pattern covers (`get_pattern` finds none for the need,
144
+ or only a candidate, or its answer for your situation is a gap): the pattern is the
145
+ missing answer, `magma-mcp: no pattern for <the need>`.
143
146
 
144
147
  It is not a gap when the answer is right but not the one you hoped for, when your own
145
148
  input was wrong (an unknown tag, a missing argument), or when the question is about the
package/agents/theming.md CHANGED
@@ -39,35 +39,43 @@ inside a component's shadow root it matches nothing.
39
39
  ## Named themes
40
40
 
41
41
  A named theme retints the whole neutral scaffolding of the page at once - surfaces,
42
- wash, borders, text, the inverse chip - and keeps it contrast-checked. It is one
43
- attribute on `<html>`, and it needs `themes.css` ([`assets.md`](assets.md)):
42
+ wash, borders, text, the inverse chip - and the accent, and keeps it contrast-checked.
43
+ It is one attribute on `<html>`, and it needs `themes.css` ([`assets.md`](assets.md)):
44
44
 
45
45
  ```html
46
- <html data-theme-name="cool"><!-- or "warm"; no attribute = the default theme --></html>
46
+ <html data-theme-name="editorial"><!-- no attribute = business --></html>
47
47
  ```
48
48
 
49
- | Theme | Family | Cast |
50
- | --- | --- | --- |
51
- | (none) | `neutral` | grey |
52
- | `cool` | `porcelain` | blue-grey |
53
- | `warm` | `bisque` | warm grey |
49
+ | Theme | For | Family | Accent |
50
+ | --- | --- | --- | --- |
51
+ | `business` (no attribute) | the management software | `neutral`, grey | the Maggioli brand |
52
+ | `editorial` | the publishing side | `bisque`, warm grey | the Maggioli Editore brand |
53
+
54
+ No `data-theme-name` means `business`: it is the base `:root` and emits no rule.
55
+ `default` (its old name), `cool` and `warm` still work and are deprecated: they leave at
56
+ the next major.
54
57
 
55
58
  The status colors (info, success, warning, danger) never change with the theme. To let
56
59
  the user choose, use `mds-pref-theme`: it writes the attribute, remembers the choice and
57
- also carries the corner shape (below). A theme works only on code that paints with the
60
+ also carries the corner shape (below). Each `mds-pref-theme-item` shows the theme it
61
+ names, from the preview every theme publishes on the page (`--magma-preview-<name>-wash`,
62
+ `--magma-preview-<name>-accent`). A theme works only on code that paints with the
58
63
  semantic roles; a raw palette step stays as it is. Defining your own theme is not a
59
64
  consumer feature yet.
60
65
 
61
66
  ## Surfaces and elevation
62
67
 
63
68
  Every neutral background is one of five surface levels. They are not five greys to pick
64
- from: each one says where the element sits relative to the page.
69
+ from: each one says where the element sits relative to the page. When an element gets a
70
+ surface at all (a card is an item of a set, the groups of one subject are bare sections, a
71
+ band is drawn only by a component that stays put) is the domain
72
+ [`surfaces`](patterns/surfaces.md).
65
73
 
66
74
  ```text
67
75
  surface-default the page, the canvas everything else sits on
68
76
  surface-sunken recessed into the page: wells, insets, code blocks, tracks
69
- surface-muted on the page plane, grouped: zebra rows, a subtle section
70
- surface-raised lifted off the page: cards, panels, sticky headers
77
+ surface-muted on the page plane, grouped, inside components: zebra rows
78
+ surface-raised lifted off the page: cards, panels, the bars that stay put
71
79
  surface-overlay floating above everything: modal, dropdown, popover, tooltip
72
80
  ```
73
81
 
@@ -104,6 +112,22 @@ components do (`mds-card` uses `--shadow-md-sharp`, `mds-modal` `--shadow-2xl`):
104
112
  An overlay separates from what is under it by its shadow, not by a border: in dark
105
113
  `border-muted` is darker than `surface-overlay`.
106
114
 
115
+ **A field stands a step off its surface** (#1193). On the page a field (`mds-input`,
116
+ `mds-input-select`, `mds-input-date`, the drop area of `mds-input-upload`) paints
117
+ `surface-overlay`; inside a surface that paints `overlay` (the window of a dialog, `mds-banner`,
118
+ `mds-status-bar`, `mds-dropdown`, `mds-table`) it paints `surface-default`, the step below, so
119
+ its fill never melts into the window. The surface passes the step down as
120
+ `--magma-field-fill`, an inherited custom property, and a field reads it with `overlay` as the
121
+ fallback. A surface of your own that paints `overlay` passes it the same way:
122
+
123
+ ```css
124
+ .panel {
125
+ --magma-field-fill: var(--magma-surface-default);
126
+
127
+ background: rgb(var(--magma-surface-overlay));
128
+ }
129
+ ```
130
+
107
131
  **Text is safe on every level.** Each text role is computed against the least
108
132
  contrasting surface of its family, so `text-default`, `text-muted` and the rest are
109
133
  legible on all five levels in both modes (checked in CI). The tinted pills are a
@@ -26,7 +26,32 @@ Inside component markup, `mds-text` sets a style through its `typography` prop (
26
26
  family to the `read` one.
27
27
 
28
28
  ```html
29
- <h2 class="text-title-h3">Invoices</h2>
29
+ <h1 class="text-title-page">Invoices</h1>
30
30
  <p class="typography-read-paragraph">Plain CSS, no Tailwind.</p>
31
- <mds-text typography="h3">Invoices</mds-text>
31
+ <mds-text typography="h3" tag="h1">Invoices</mds-text>
32
32
  ```
33
+
34
+ ## Titles by role
35
+
36
+ A title takes the style of its role and its tag from the outline of the page, never one from
37
+ the other: the domain [`titles`](patterns/titles.md).
38
+
39
+ | Role | Style | Tag | Writes |
40
+ | --- | --- | --- | --- |
41
+ | the page | `h3` | `h1`, the only one (`titles/one-h1`) | `text-title-page` |
42
+ | a section of the page | `h5` | `h2` | `text-title-section` |
43
+ | a dialog | `h5` | the headline of its window | `text-title-dialog` |
44
+ | a part: a card, a panel, an item of an accordion | `h6` | the level of its place | `text-title-part` |
45
+ | a group of fields | `h6` | the `legend` of its `fieldset` (`field-group`) | `text-title-group` |
46
+
47
+ Without Tailwind the same roles are `typography-title-<role>`. `mds-text` takes the roles in
48
+ its `typography` with #1200; until then it takes the style of the level with the tag of the
49
+ place (`typography="h5" tag="h2"`), and a heading never skips a level
50
+ (`titles/tag-is-structure`).
51
+
52
+ ## Reading measure
53
+
54
+ Text to read stops at `56ch`, 65 to 80 characters on a line: the reset caps `p`, `li` and
55
+ `figcaption`, and `mds-text` caps itself with those tags, so nothing has to be written for it
56
+ (`widths/reading`; the other widths, of a form, a page and a dialog, are the domain
57
+ [`widths`](patterns/widths.md)).
@@ -52,7 +52,7 @@ Allowed values depend on the component but draw from these families:
52
52
  | `success` | Status | Successful operations, positive confirmation |
53
53
  | `warning` | Status | Caution, non-blocking issues that require attention |
54
54
  | `info` | Status | Neutral informational content or guidance |
55
- | `dark` | Neutral | Neutral chrome. Painted with roles that follow the mode, so it is not "for light backgrounds": check the component's `pattern.md` for how it renders |
55
+ | `dark` | Neutral | Neutral chrome. Painted with roles that follow the mode, so it is not "for light backgrounds": check the component's `examples.md` for how it renders |
56
56
  | `light` | Neutral | The other half of the neutral pair, same caveat as `dark` |
57
57
  | `amaranth` | Label | Decorative amaranth label for tags, categories, or visual grouping |
58
58
  | `red` | Label | Decorative red label for tags, categories, or visual grouping |
@@ -3,120 +3,120 @@
3
3
  * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
4
  */
5
5
  /* eslint-disable */
6
- export { MdsAccordionItem } from "./mds-accordion-item.js";
7
- export { MdsAccordionTimerItem } from "./mds-accordion-timer-item.js";
8
- export { MdsAccordionTimer } from "./mds-accordion-timer.js";
9
- export { MdsAccordion } from "./mds-accordion.js";
10
- export { MdsAuthor } from "./mds-author.js";
11
- export { MdsAvatarStackItem } from "./mds-avatar-stack-item.js";
12
- export { MdsAvatarStack } from "./mds-avatar-stack.js";
13
- export { MdsAvatar } from "./mds-avatar.js";
14
- export { MdsBadge } from "./mds-badge.js";
15
- export { MdsBanner } from "./mds-banner.js";
16
- export { MdsBenchmarkBar } from "./mds-benchmark-bar.js";
17
- export { MdsBibliography } from "./mds-bibliography.js";
18
- export { MdsBook } from "./mds-book.js";
19
- export { MdsBreadcrumbItem } from "./mds-breadcrumb-item.js";
20
- export { MdsBreadcrumb } from "./mds-breadcrumb.js";
21
- export { MdsButtonDropdown } from "./mds-button-dropdown.js";
22
- export { MdsButtonGroup } from "./mds-button-group.js";
23
- export { MdsButton } from "./mds-button.js";
24
- export { MdsCalendarCell } from "./mds-calendar-cell.js";
25
- export { MdsCalendar } from "./mds-calendar.js";
26
- export { MdsCardContent } from "./mds-card-content.js";
27
- export { MdsCardFooter } from "./mds-card-footer.js";
28
- export { MdsCardHeader } from "./mds-card-header.js";
29
- export { MdsCardMedia } from "./mds-card-media.js";
30
- export { MdsCard } from "./mds-card.js";
31
- export { MdsChip } from "./mds-chip.js";
32
- export { MdsDetails } from "./mds-details.js";
33
- export { MdsDropdown } from "./mds-dropdown.js";
34
- export { MdsEmoji } from "./mds-emoji.js";
35
- export { MdsEntity } from "./mds-entity.js";
36
- export { MdsFilePreview } from "./mds-file-preview.js";
37
- export { MdsFile } from "./mds-file.js";
38
- export { MdsFilterItem } from "./mds-filter-item.js";
39
- export { MdsFilter } from "./mds-filter.js";
40
- export { MdsHeaderBar } from "./mds-header-bar.js";
41
- export { MdsHeader } from "./mds-header.js";
42
- export { MdsHelp } from "./mds-help.js";
43
- export { MdsHorizontalScroll } from "./mds-horizontal-scroll.js";
44
- export { MdsHr } from "./mds-hr.js";
45
- export { MdsIcon } from "./mds-icon.js";
46
- export { MdsImg } from "./mds-img.js";
47
- export { MdsInputDateRangePreselection } from "./mds-input-date-range-preselection.js";
48
- export { MdsInputDateRange } from "./mds-input-date-range.js";
49
- export { MdsInputDate } from "./mds-input-date.js";
50
- export { MdsInputField } from "./mds-input-field.js";
51
- export { MdsInputOtp } from "./mds-input-otp.js";
52
- export { MdsInputRange } from "./mds-input-range.js";
53
- export { MdsInputSelect } from "./mds-input-select.js";
54
- export { MdsInputSwitch } from "./mds-input-switch.js";
55
- export { MdsInputTipItem } from "./mds-input-tip-item.js";
56
- export { MdsInputTip } from "./mds-input-tip.js";
57
- export { MdsInputUpload } from "./mds-input-upload.js";
58
- export { MdsInput } from "./mds-input.js";
59
- export { MdsKeyboardKey } from "./mds-keyboard-key.js";
60
- export { MdsKeyboard } from "./mds-keyboard.js";
61
- export { MdsKpiItem } from "./mds-kpi-item.js";
62
- export { MdsKpi } from "./mds-kpi.js";
63
- export { MdsLabel } from "./mds-label.js";
64
- export { MdsLink } from "./mds-link.js";
65
- export { MdsListItem } from "./mds-list-item.js";
66
- export { MdsList } from "./mds-list.js";
67
- export { MdsMention } from "./mds-mention.js";
68
- export { MdsModal } from "./mds-modal.js";
69
- export { MdsNote } from "./mds-note.js";
70
- export { MdsNotification } from "./mds-notification.js";
71
- export { MdsPaginatorItem } from "./mds-paginator-item.js";
72
- export { MdsPaginator } from "./mds-paginator.js";
73
- export { MdsPolicyAi } from "./mds-policy-ai.js";
74
- export { MdsPrefAnimation } from "./mds-pref-animation.js";
75
- export { MdsPrefConsumption } from "./mds-pref-consumption.js";
76
- export { MdsPrefContrast } from "./mds-pref-contrast.js";
77
- export { MdsPrefLanguageItem } from "./mds-pref-language-item.js";
78
- export { MdsPrefLanguage } from "./mds-pref-language.js";
79
- export { MdsPrefMode } from "./mds-pref-mode.js";
80
- export { MdsPrefThemeItem } from "./mds-pref-theme-item.js";
81
- export { MdsPrefTheme } from "./mds-pref-theme.js";
82
- export { MdsPref } from "./mds-pref.js";
83
- export { MdsPriceTableFeaturesCell } from "./mds-price-table-features-cell.js";
84
- export { MdsPriceTableFeaturesRow } from "./mds-price-table-features-row.js";
85
- export { MdsPriceTableFeatures } from "./mds-price-table-features.js";
86
- export { MdsPriceTableHeader } from "./mds-price-table-header.js";
87
- export { MdsPriceTableListItem } from "./mds-price-table-list-item.js";
88
- export { MdsPriceTableList } from "./mds-price-table-list.js";
89
- export { MdsPriceTable } from "./mds-price-table.js";
90
- export { MdsProgress } from "./mds-progress.js";
91
- export { MdsPushNotificationItem } from "./mds-push-notification-item.js";
92
- export { MdsPushNotification } from "./mds-push-notification.js";
93
- export { MdsQuote } from "./mds-quote.js";
94
- export { MdsRadialMenuItem } from "./mds-radial-menu-item.js";
95
- export { MdsRadialMenu } from "./mds-radial-menu.js";
96
- export { MdsRadialProgress } from "./mds-radial-progress.js";
97
- export { MdsSeparator } from "./mds-separator.js";
98
- export { MdsSpinner } from "./mds-spinner.js";
99
- export { MdsStatusBar } from "./mds-status-bar.js";
100
- export { MdsStepperBarItem } from "./mds-stepper-bar-item.js";
101
- export { MdsStepperBar } from "./mds-stepper-bar.js";
102
- export { MdsTabBarItem } from "./mds-tab-bar-item.js";
103
- export { MdsTabBar } from "./mds-tab-bar.js";
104
- export { MdsTabItem } from "./mds-tab-item.js";
105
- export { MdsTab } from "./mds-tab.js";
106
- export { MdsTableBody } from "./mds-table-body.js";
107
- export { MdsTableCell } from "./mds-table-cell.js";
108
- export { MdsTableFooter } from "./mds-table-footer.js";
109
- export { MdsTableHeaderCell } from "./mds-table-header-cell.js";
110
- export { MdsTableHeader } from "./mds-table-header.js";
111
- export { MdsTableRow } from "./mds-table-row.js";
112
- export { MdsTable } from "./mds-table.js";
113
- export { MdsText } from "./mds-text.js";
114
- export { MdsToastRegion } from "./mds-toast-region.js";
115
- export { MdsToast } from "./mds-toast.js";
116
- export { MdsTooltip } from "./mds-tooltip.js";
117
- export { MdsTreeItem } from "./mds-tree-item.js";
118
- export { MdsTree } from "./mds-tree.js";
119
- export { MdsUrlView } from "./mds-url-view.js";
120
- export { MdsUsage } from "./mds-usage.js";
121
- export { MdsVideoWall } from "./mds-video-wall.js";
122
- export { MdsZero } from "./mds-zero.js";
6
+ export { MdsAccordion } from './mds-accordion.js';
7
+ export { MdsAccordionItem } from './mds-accordion-item.js';
8
+ export { MdsAccordionTimer } from './mds-accordion-timer.js';
9
+ export { MdsAccordionTimerItem } from './mds-accordion-timer-item.js';
10
+ export { MdsAuthor } from './mds-author.js';
11
+ export { MdsAvatar } from './mds-avatar.js';
12
+ export { MdsAvatarStack } from './mds-avatar-stack.js';
13
+ export { MdsAvatarStackItem } from './mds-avatar-stack-item.js';
14
+ export { MdsBadge } from './mds-badge.js';
15
+ export { MdsBanner } from './mds-banner.js';
16
+ export { MdsBenchmarkBar } from './mds-benchmark-bar.js';
17
+ export { MdsBibliography } from './mds-bibliography.js';
18
+ export { MdsBook } from './mds-book.js';
19
+ export { MdsBreadcrumb } from './mds-breadcrumb.js';
20
+ export { MdsBreadcrumbItem } from './mds-breadcrumb-item.js';
21
+ export { MdsButton } from './mds-button.js';
22
+ export { MdsButtonDropdown } from './mds-button-dropdown.js';
23
+ export { MdsButtonGroup } from './mds-button-group.js';
24
+ export { MdsCalendar } from './mds-calendar.js';
25
+ export { MdsCalendarCell } from './mds-calendar-cell.js';
26
+ export { MdsCard } from './mds-card.js';
27
+ export { MdsCardContent } from './mds-card-content.js';
28
+ export { MdsCardFooter } from './mds-card-footer.js';
29
+ export { MdsCardHeader } from './mds-card-header.js';
30
+ export { MdsCardMedia } from './mds-card-media.js';
31
+ export { MdsChip } from './mds-chip.js';
32
+ export { MdsDetails } from './mds-details.js';
33
+ export { MdsDropdown } from './mds-dropdown.js';
34
+ export { MdsEmoji } from './mds-emoji.js';
35
+ export { MdsEntity } from './mds-entity.js';
36
+ export { MdsFile } from './mds-file.js';
37
+ export { MdsFilePreview } from './mds-file-preview.js';
38
+ export { MdsFilter } from './mds-filter.js';
39
+ export { MdsFilterItem } from './mds-filter-item.js';
40
+ export { MdsHeader } from './mds-header.js';
41
+ export { MdsHeaderBar } from './mds-header-bar.js';
42
+ export { MdsHelp } from './mds-help.js';
43
+ export { MdsHorizontalScroll } from './mds-horizontal-scroll.js';
44
+ export { MdsHr } from './mds-hr.js';
45
+ export { MdsIcon } from './mds-icon.js';
46
+ export { MdsImg } from './mds-img.js';
47
+ export { MdsInput } from './mds-input.js';
48
+ export { MdsInputDate } from './mds-input-date.js';
49
+ export { MdsInputDateRange } from './mds-input-date-range.js';
50
+ export { MdsInputDateRangePreselection } from './mds-input-date-range-preselection.js';
51
+ export { MdsInputField } from './mds-input-field.js';
52
+ export { MdsInputOtp } from './mds-input-otp.js';
53
+ export { MdsInputRange } from './mds-input-range.js';
54
+ export { MdsInputSelect } from './mds-input-select.js';
55
+ export { MdsInputSwitch } from './mds-input-switch.js';
56
+ export { MdsInputTip } from './mds-input-tip.js';
57
+ export { MdsInputTipItem } from './mds-input-tip-item.js';
58
+ export { MdsInputUpload } from './mds-input-upload.js';
59
+ export { MdsKeyboard } from './mds-keyboard.js';
60
+ export { MdsKeyboardKey } from './mds-keyboard-key.js';
61
+ export { MdsKpi } from './mds-kpi.js';
62
+ export { MdsKpiItem } from './mds-kpi-item.js';
63
+ export { MdsLabel } from './mds-label.js';
64
+ export { MdsLink } from './mds-link.js';
65
+ export { MdsList } from './mds-list.js';
66
+ export { MdsListItem } from './mds-list-item.js';
67
+ export { MdsMention } from './mds-mention.js';
68
+ export { MdsModal } from './mds-modal.js';
69
+ export { MdsNote } from './mds-note.js';
70
+ export { MdsNotification } from './mds-notification.js';
71
+ export { MdsPaginator } from './mds-paginator.js';
72
+ export { MdsPaginatorItem } from './mds-paginator-item.js';
73
+ export { MdsPolicyAi } from './mds-policy-ai.js';
74
+ export { MdsPref } from './mds-pref.js';
75
+ export { MdsPrefAnimation } from './mds-pref-animation.js';
76
+ export { MdsPrefConsumption } from './mds-pref-consumption.js';
77
+ export { MdsPrefContrast } from './mds-pref-contrast.js';
78
+ export { MdsPrefLanguage } from './mds-pref-language.js';
79
+ export { MdsPrefLanguageItem } from './mds-pref-language-item.js';
80
+ export { MdsPrefMode } from './mds-pref-mode.js';
81
+ export { MdsPrefTheme } from './mds-pref-theme.js';
82
+ export { MdsPrefThemeItem } from './mds-pref-theme-item.js';
83
+ export { MdsPriceTable } from './mds-price-table.js';
84
+ export { MdsPriceTableFeatures } from './mds-price-table-features.js';
85
+ export { MdsPriceTableFeaturesCell } from './mds-price-table-features-cell.js';
86
+ export { MdsPriceTableFeaturesRow } from './mds-price-table-features-row.js';
87
+ export { MdsPriceTableHeader } from './mds-price-table-header.js';
88
+ export { MdsPriceTableList } from './mds-price-table-list.js';
89
+ export { MdsPriceTableListItem } from './mds-price-table-list-item.js';
90
+ export { MdsProgress } from './mds-progress.js';
91
+ export { MdsPushNotification } from './mds-push-notification.js';
92
+ export { MdsPushNotificationItem } from './mds-push-notification-item.js';
93
+ export { MdsQuote } from './mds-quote.js';
94
+ export { MdsRadialMenu } from './mds-radial-menu.js';
95
+ export { MdsRadialMenuItem } from './mds-radial-menu-item.js';
96
+ export { MdsRadialProgress } from './mds-radial-progress.js';
97
+ export { MdsSeparator } from './mds-separator.js';
98
+ export { MdsSpinner } from './mds-spinner.js';
99
+ export { MdsStatusBar } from './mds-status-bar.js';
100
+ export { MdsStepperBar } from './mds-stepper-bar.js';
101
+ export { MdsStepperBarItem } from './mds-stepper-bar-item.js';
102
+ export { MdsTab } from './mds-tab.js';
103
+ export { MdsTabBar } from './mds-tab-bar.js';
104
+ export { MdsTabBarItem } from './mds-tab-bar-item.js';
105
+ export { MdsTabItem } from './mds-tab-item.js';
106
+ export { MdsTable } from './mds-table.js';
107
+ export { MdsTableBody } from './mds-table-body.js';
108
+ export { MdsTableCell } from './mds-table-cell.js';
109
+ export { MdsTableFooter } from './mds-table-footer.js';
110
+ export { MdsTableHeader } from './mds-table-header.js';
111
+ export { MdsTableHeaderCell } from './mds-table-header-cell.js';
112
+ export { MdsTableRow } from './mds-table-row.js';
113
+ export { MdsText } from './mds-text.js';
114
+ export { MdsToast } from './mds-toast.js';
115
+ export { MdsToastRegion } from './mds-toast-region.js';
116
+ export { MdsTooltip } from './mds-tooltip.js';
117
+ export { MdsTree } from './mds-tree.js';
118
+ export { MdsTreeItem } from './mds-tree-item.js';
119
+ export { MdsUrlView } from './mds-url-view.js';
120
+ export { MdsUsage } from './mds-usage.js';
121
+ export { MdsVideoWall } from './mds-video-wall.js';
122
+ export { MdsZero } from './mds-zero.js';