@maggioli-design-system/magma-react 2.5.0 → 2.6.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.
package/AGENTS.md CHANGED
@@ -5,7 +5,7 @@
5
5
  -->
6
6
  # @maggioli-design-system/magma-react - agent install guide
7
7
 
8
- > Version 2.5.0. You (the agent) are installing Magma into THIS project. Do not
8
+ > Version 2.6.0. You (the agent) are installing Magma into THIS project. Do not
9
9
  > assume the setup - detect it from the project, then ask the user only for what you
10
10
  > cannot infer. The detailed steps live in [`agents/install.md`](agents/install.md)
11
11
  > (this target) and [`agents/assets.md`](agents/assets.md) (shared styles, fonts,
@@ -53,14 +53,26 @@ Ask the user only what detection left undecided. Typical questions:
53
53
  4. Register components: import the Mds* components from '@maggioli-design-system/magma-react' (no defineCustomElements needed).
54
54
  5. Set up editor autocomplete - see [`agents/assets.md`](agents/assets.md) section 5: MERGE the
55
55
  keys into `.vscode/settings.json` and `.vscode/extensions.json`, never overwrite them.
56
+ 6. Set up the lint - see [`agents/lint.md`](agents/lint.md): the ESLint and Stylelint rules ship
57
+ in this package; MERGE the Magma presets into the project's ESLint and Stylelint
58
+ configurations, never overwrite them.
59
+ 7. Set up the MCP server - see [`agents/mcp.md`](agents/mcp.md): it ships in this package as
60
+ the `magma-mcp` command, started with `npx --no magma-mcp` (never without `--no`, which
61
+ would let npx install a package of that name from the registry). For Claude Code, register
62
+ the Magma plugin in the project's `.claude/settings.json` instead: it starts the server and
63
+ adds the Magma skills (`/magma:setup`, `/magma:review`, `/magma:migrate`). For the other
64
+ clients MERGE the entry into `.vscode/mcp.json` or `.cursor/mcp.json`; never both the
65
+ plugin and an `.mcp.json` entry, or the server runs twice. Then call its `check_setup`
66
+ tool: it lists what the integration still misses.
56
67
 
57
68
  ## Step 4 - verify
58
69
 
59
70
  Build the app and confirm an `mds-*` component renders and every icon it names loads
60
71
  from the configured path (no 404 on `<path><slug>.svg`). In VS Code, check both halves of
61
72
  the autocomplete: `var(--magma-` completes Magma tokens in a CSS file and, with Tailwind,
62
- `bg-surface-default` shows a swatch. Report what was installed, the cascade order used, the
63
- icon route and the icon path.
73
+ `bg-surface-default` shows a swatch. Run the lint ([`agents/lint.md`](agents/lint.md)): no
74
+ error. Report what was installed, the cascade order used, the icon route, the icon path and
75
+ the lint configuration.
64
76
 
65
77
  ## Using the components
66
78
 
@@ -68,15 +80,18 @@ Once installed, do not guess component APIs or rules - read only the file you ne
68
80
 
69
81
  | You need | Read |
70
82
  | -------- | ---- |
71
- | Which component to reach for | [`agents/components.md`](agents/components.md) - the catalogue, one line each |
83
+ | Which component to reach for | [`agents/components.md`](agents/components.md) - the catalogue by category, one line each |
72
84
  | One component's API (props with allowed values, events, methods, slots, parts, CSS vars) | its `AGENTS.md`, linked from the catalogue |
73
85
  | Correct usage and mistakes for one component | `pattern.md` / `antipattern.md` beside its `AGENTS.md` |
74
86
  | Rules shared by every component: naming, events, slots, compound, icons, a11y, styling from outside | [`agents/conventions.md`](agents/conventions.md) |
75
87
  | `variant` and `tone` values | [`agents/variants.md`](agents/variants.md) |
76
88
  | Mistakes to avoid with any component | [`agents/anti-patterns.md`](agents/anti-patterns.md) |
77
89
  | Coloring your own UI | [`agents/color.md`](agents/color.md) |
90
+ | Colors in an Android, iOS or Flutter app, where the components do not run | [`agents/color.md`](agents/color.md), "Outside the web" |
78
91
  | Typography utilities | [`agents/typography.md`](agents/typography.md) |
79
92
  | Dark mode, preferences, named themes, surface levels and elevation, global design decisions, corner geometry | [`agents/theming.md`](agents/theming.md) |
93
+ | Asking instead of reading: the API of a component, the role for a need, a class, an icon slug, a guide section, a snippet checked before writing | the tools of the `magma` MCP server, [`agents/mcp.md`](agents/mcp.md) |
94
+ | Checking what you wrote: run ESLint and Stylelint with the Magma presets after every change, and fix what they report | [`agents/lint.md`](agents/lint.md) |
80
95
  | Reporting a problem that is Magma's, not this project's (bug, wrong guide, missing token), with this project's origin label | [`agents/reporting.md`](agents/reporting.md) |
81
96
  | What changed between the installed version and a newer one, before upgrading | `CHANGELOG.md` of each Magma package, newest release first (`magma-react` and `magma-angular` carry the releases of `magma`) |
82
97
 
package/CHANGELOG.md CHANGED
@@ -7,6 +7,67 @@ package.
7
7
  It is released together with `magma`, at the same version: the sections are the
8
8
  releases of `magma`.
9
9
 
10
+ ## [magma@2.6.0] - 2026-10-24
11
+
12
+ ### Bug Fixes
13
+
14
+ - *(mds-book)* Cut the caps of a rounded spine on the arc of its slats
15
+ - *(magma,lint)* Start magma-mcp with npx --no, never letting npx install it
16
+
17
+ ### Changes
18
+
19
+ - *(mds-book)* Show the side-to-side drag with an ew-resize cursor
20
+
21
+ ### Documentation
22
+
23
+ - *(magma)* Point the Copilot instructions to AGENTS.md
24
+ - *(mds-book)* Show the Catalogue story as a page of a bookshop
25
+ - *(magma,styles)* Allow dark: for a deliberate per-mode choice
26
+ - *(design-tokens,magma)* Document the Android, iOS and Flutter color files
27
+ - *(stencil)* Give an alt to the images of the usage examples, a name to the paginator arrows
28
+ - *(magma)* Set up the lint at bootstrap and run it after every change
29
+ - *(magma)* Set up the MCP server at bootstrap and say when to call each tool
30
+ - *(magma)* Get the Claude Code plugin at bootstrap, the MCP entry for the other clients
31
+ - *(magma,stencil)* Describe the component categories and group the reference by them
32
+ - *(storybook)* File the component stories under their categories, keeping their URLs
33
+ - *(magma,stencil)* Describe where a component page sits in Storybook
34
+ - *(magma)* Name only public CSS custom properties in the usage docs
35
+ - *(magma)* The contract of the component CSS custom properties
36
+
37
+ ### Features
38
+
39
+ - *(mds-book)* Add a book drawn as a physical object in 3D from its front cover
40
+ - *(lint)* Add the ESLint and Stylelint rules that check consumer code against the installed Magma
41
+ - *(lint)* Point no-color-scheme-override to the dark variant for a per-mode choice
42
+ - *(magma,lint)* Ship the consumer lint inside magma as ./eslint and ./stylelint
43
+ - *(lint)* The MCP server, ten read-only tools on the data of the installed magma
44
+ - *(magma,lint)* Ship the MCP server in magma as the magma-mcp command
45
+ - *(lint)* Check_setup counts the Magma plugin as the MCP server of Claude Code
46
+ - *(stencil)* Sort the components into categories, their parts under their parent
47
+ - *(stencil)* Carry the public or internal mark of each CSS custom property
48
+ - *(magma)* Promise 184 CSS custom properties, the other 520 are internal
49
+ - *(lint)* Reject internal custom properties, let the static ones take a colour
50
+
51
+ ### Styling
52
+
53
+ - *(mds-push-notification)* Paint the light fade with --magma-surface-sunken
54
+
55
+ ## [magma@2.5.1] - 2026-10-22
56
+
57
+ ### Bug Fixes
58
+
59
+ - *(mds-stepper-bar-item)* Show the status of the step in its badge
60
+ - *(mds-input-range)* Draw a light thumb in dark, apart from the progress
61
+ - *(mds-input-range)* Keep the disabled colours in dark
62
+ - *(mds-input)* Show the validation messages in the language of the page
63
+ - *(mds-input-select)* Emit no change on load, before any selection
64
+ - *(mds-status-bar)* Keep the bar inside its area at 480px and less
65
+ - *(mds-keyboard)* Start the test with Enter without failing it at once
66
+ - *(mds-input)* Wait for the first blur to validate a required field
67
+ - *(mds-emoji)* Draw the emoji in Firefox, keep the inner svg flat
68
+ - *(mds-input)* Report maxlength and minlength under their own error keys
69
+ - *(stencil)* Give a page language with a region the texts of its base language
70
+
10
71
  ## [magma@2.5.0] - 2026-10-21
11
72
 
12
73
  ### Bug Fixes
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020-2026 Maggioli S.p.A.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/agents/assets.md CHANGED
@@ -389,7 +389,7 @@ names through functions (`clsx`, `cva`, `cn`), list the ones it uses in
389
389
 
390
390
  Verify, after reloading the window:
391
391
 
392
- - in a CSS file, `var(--magma-surface` lists the surface roles, in order, with swatches;
392
+ - in a CSS file, `var(--magma-surface-` lists the surface roles, in order, with swatches;
393
393
  - with Tailwind, in markup: hovering `p-600` shows `1.5rem = 24px`, and `bg-surface-default`
394
394
  shows a swatch in the completion list. No swatch on the semantic classes means an older
395
395
  `@maggioli-design-system/styles`: update it.
package/agents/color.md CHANGED
@@ -16,15 +16,15 @@ Paint your UI with the semantic roles (`--magma-*`), not with a raw palette step
16
16
  with Tailwind's own palette:
17
17
 
18
18
  ```html
19
- <!-- correct: roles follow the mode, the named theme and high contrast -->
19
+ <!-- CORRECT: roles follow the mode, the named theme and high contrast -->
20
20
  <section class="bg-surface-raised text-fg-default border border-border-muted">
21
21
  <p class="text-fg-muted">Secondary text</p>
22
22
  </section>
23
23
 
24
- <!-- incorrect: raw Magma steps only flip with the mode -->
24
+ <!-- INCORRECT: raw Magma steps only flip with the mode -->
25
25
  <section class="bg-tone-neutral-seed text-tone-neutral-01 border-tone-neutral-09">...</section>
26
26
 
27
- <!-- incorrect: Tailwind's palette ignores Magma entirely -->
27
+ <!-- INCORRECT: Tailwind's palette ignores Magma entirely -->
28
28
  <section class="bg-white text-gray-700">...</section>
29
29
  ```
30
30
 
@@ -150,7 +150,11 @@ measured.
150
150
  what the element is, not by the shade you want, and give `raised` / `overlay` a shadow
151
151
  ([`theming.md`](theming.md#surfaces-and-elevation)). A grey that has to look marked in
152
152
  both modes (a pill, a chip, a hover) is a wash, not a surface.
153
- - **No `dark:` variants and no dark-mode media queries.** The roles already flip.
153
+ - **The roles already flip: `dark:` never corrects them.** Keep `dark:` for a deliberate
154
+ choice that differs per mode (a well that sits on the page in light and rises to
155
+ `surface-raised` in dark). It follows the Magma mode, `system` included
156
+ ([`theming.md`](theming.md#dark-mode-and-preferences)), in the light DOM only. Never
157
+ write a dark-mode media query by hand.
154
158
 
155
159
  ## When a raw palette colour is right
156
160
 
@@ -170,6 +174,20 @@ with `data-theme-name` ([`theming.md`](theming.md)), do not paint them by hand.
170
174
  Deprecated: `--magma-neutral-emphasis` / `--magma-neutral-on-emphasis` are aliases of
171
175
  `--magma-surface-inverse` / `--magma-on-inverse`.
172
176
 
177
+ ## Outside the web
178
+
179
+ The roles (`--magma-*`), the utilities and the components are web only. An Android, iOS or
180
+ Flutter app takes its colours from `@maggioli-design-system/design-tokens`, as files to copy
181
+ into the app: `dist/android/colors.xml`, one of `dist/ios-swift/*.swift`,
182
+ `dist/flutter/colors.dart`. They hold the palettes and the surface, border and text colours
183
+ of each family, both modes side by side (`color_surface_neutral_light_default`,
184
+ `..._dark_...`), and nothing else: no type, spacing or motion tokens, no theme or contrast
185
+ switch. Paint with the family of the default theme, `neutral` (`surface_neutral_*`,
186
+ `border_neutral_*`, `text_neutral_*`), switch the mode in the app, and take any other role
187
+ from the step it points at. The names per platform, the mode switch and the outputs that do
188
+ not compile (`dist/ios/`, `dist/flutter/fonts.dart`) are in
189
+ `node_modules/@maggioli-design-system/design-tokens/README.md`, "Native platforms".
190
+
173
191
  ## Migrating Magma 1 colour classes
174
192
 
175
193
  Magma 1 code paints raw steps, often with a hand-tuned `dark:` override. These steps have
@@ -3,129 +3,201 @@
3
3
  Source of truth: docs/agents/ in the magma monorepo.
4
4
  Regenerate with: npm run sync.agent-docs (from the stencil package).
5
5
  -->
6
- # Magma components catalogue (116 components)
6
+ # Magma components catalogue (117 components)
7
7
 
8
8
  > Generated from each component's usage description. Each tag links the component's
9
9
  > own `AGENTS.md` (its API, with `pattern.md` and `antipattern.md` beside it) in
10
10
  > `@maggioli-design-system/magma/dist/collection/components/<tag>/`. The rules shared by
11
11
  > every component: [`conventions.md`](conventions.md), [`variants.md`](variants.md),
12
12
  > [`anti-patterns.md`](anti-patterns.md).
13
+ >
14
+ > Grouped by category (the `@category` docs tag of each component in
15
+ > `dist/documentation.json`). A part of a compound component (`@parent`) follows its
16
+ > component and names the components it sits in: it always composes inside them.
17
+
18
+ ## Actions
19
+
20
+ Controls that make something happen: buttons, links, action bars and menus.
13
21
 
14
22
  | Component | What it is |
15
23
  | --------- | ---------- |
16
- | [`mds-accordion`](../../magma/dist/collection/components/mds-accordion/AGENTS.md) | The `<mds-accordion>` web component is the compound container of the Magma Design System that groups and orchestrates a set of collapsible `<mds-accordion-item>` panels |
17
- | [`mds-accordion-item`](../../magma/dist/collection/components/mds-accordion-item/AGENTS.md) | The `<mds-accordion-item>` web component is a single collapsible panel of the Magma Design System, designed to be slotted inside its parent `<mds-accordion>` |
18
- | [`mds-accordion-timer`](../../magma/dist/collection/components/mds-accordion-timer/AGENTS.md) | The `<mds-accordion-timer>` web component is the orchestrating parent of an auto-advancing accordion in the Magma Design System |
19
- | [`mds-accordion-timer-item`](../../magma/dist/collection/components/mds-accordion-timer-item/AGENTS.md) | The `<mds-accordion-timer-item>` web component is the single collapsible panel of a timed, auto-advancing accordion, designed to live exclusively inside its parent `<mds-accordion-timer>` |
20
- | [`mds-author`](../../magma/dist/collection/components/mds-author/AGENTS.md) | The `<mds-author>` web component is the layout primitive of the Magma Design System for presenting a person's identity: it pairs an avatar with author information (name, role, or any related details) |
21
- | [`mds-avatar`](../../magma/dist/collection/components/mds-avatar/AGENTS.md) | The `<mds-avatar>` web component renders a compact, circular representation of a user or entity in the Magma Design System |
22
- | [`mds-avatar-stack`](../../magma/dist/collection/components/mds-avatar-stack/AGENTS.md) | The `<mds-avatar-stack>` web component groups a set of overlapping `<mds-avatar-stack-item>` children into a single horizontal cluster, the Magma Design System pattern for showing the people associated with an entity (assignees, participants, collaborators) in a compact, space-saving row. |
23
- | [`mds-avatar-stack-item`](../../magma/dist/collection/components/mds-avatar-stack-item/AGENTS.md) | The `<mds-avatar-stack-item>` web component is a compound child that represents a single avatar inside an `<mds-avatar-stack>`, wrapping an internal `<mds-avatar>` so individual avatars can be overlapped, sized, and counted as a group rather than rendered standalone. |
24
- | [`mds-badge`](../../magma/dist/collection/components/mds-badge/AGENTS.md) | The `<mds-badge>` web component is the Magma Design System's compact status and label indicator, used to attach a short categorical signal (count, state, tag) to other content |
25
- | [`mds-banner`](../../magma/dist/collection/components/mds-banner/AGENTS.md) | The `<mds-banner>` web component is the Magma Design System surface for contextual, in-page messages - informational notices, status callouts, and alerts - pairing an optional icon, headline, body text, and inline actions inside a single themed box. |
26
- | [`mds-benchmark-bar`](../../magma/dist/collection/components/mds-benchmark-bar/AGENTS.md) | The `<mds-benchmark-bar>` web component is a read-only data-visualization element of the Magma Design System that pairs a labelled caption with a horizontal progress bar to express a single benchmark value on a 0-100 scale |
27
- | [`mds-bibliography`](../../magma/dist/collection/components/mds-bibliography/AGENTS.md) | The `<mds-bibliography>` web component renders a single citation entry formatted according to a recognized academic style |
28
- | [`mds-breadcrumb`](../../magma/dist/collection/components/mds-breadcrumb/AGENTS.md) | The `<mds-breadcrumb>` web component is the navigation-trail container of the Magma Design System |
29
- | [`mds-breadcrumb-item`](../../magma/dist/collection/components/mds-breadcrumb-item/AGENTS.md) | The `<mds-breadcrumb-item>` web component represents a single navigable depth in a breadcrumb trail |
30
24
  | [`mds-button`](../../magma/dist/collection/components/mds-button/AGENTS.md) | The `<mds-button>` web component is the primary interactive action control of the Magma Design System |
31
25
  | [`mds-button-dropdown`](../../magma/dist/collection/components/mds-button-dropdown/AGENTS.md) | The `<mds-button-dropdown>` web component is a split-button control of the Magma Design System: it pairs a primary `<mds-button>` action with a secondary chevron button that opens an attached `<mds-dropdown>`, giving users a default action plus a menu of related choices in a single, visually unified control. |
32
26
  | [`mds-button-group`](../../magma/dist/collection/components/mds-button-group/AGENTS.md) | The `<mds-button-group>` web component is a layout container of the Magma Design System that clusters related `<mds-button>` controls into a single, evenly-spaced horizontal group such as toolbars, action bars, or segmented sets of actions |
27
+ | [`mds-link`](../../magma/dist/collection/components/mds-link/AGENTS.md) | The `<mds-link>` web component is the inline link of Magma: a word or a phrase inside running text, usually inside an `<mds-text>`, that opens a URL or runs an inline action |
28
+ | [`mds-radial-menu`](../../magma/dist/collection/components/mds-radial-menu/AGENTS.md) | The `<mds-radial-menu>` web component is a floating action menu of the Magma Design System that arranges its child items along a circular arc around a central trigger button, expanding them outward when opened |
29
+ | [`mds-radial-menu-item`](../../magma/dist/collection/components/mds-radial-menu-item/AGENTS.md), part of `mds-radial-menu` | The `<mds-radial-menu-item>` web component is a single actionable spoke of the `<mds-radial-menu>` compound |
30
+ | [`mds-status-bar`](../../magma/dist/collection/components/mds-status-bar/AGENTS.md) | The `<mds-status-bar>` web component is a persistent action bar of the Magma Design System that docks a small set of actions (typically `mds-button` elements) to an edge of the viewport, accompanied by an optional descriptive label |
31
+
32
+ ## Forms
33
+
34
+ Fields that take a value, and the calendar and the filters that help pick one.
35
+
36
+ | Component | What it is |
37
+ | --------- | ---------- |
33
38
  | [`mds-calendar`](../../magma/dist/collection/components/mds-calendar/AGENTS.md) | The `<mds-calendar>` web component is the date-selection surface of the Magma Design System: a localized month grid that lets users pick either a single day or a date range |
34
- | [`mds-calendar-cell`](../../magma/dist/collection/components/mds-calendar-cell/AGENTS.md) | The `<mds-calendar-cell>` web component represents a single selectable day inside the `<mds-calendar>` grid |
35
- | [`mds-card`](../../magma/dist/collection/components/mds-card/AGENTS.md) | The `<mds-card>` web component is the surface container of the Magma Design System: a styled, self-contained panel that groups related media, heading, body and action content into a single bounded region |
36
- | [`mds-card-content`](../../magma/dist/collection/components/mds-card-content/AGENTS.md) | The `<mds-card-content>` web component is the body region of a `<mds-card>`, grouping the primary textual or component content of a card |
37
- | [`mds-card-footer`](../../magma/dist/collection/components/mds-card-footer/AGENTS.md) | The `<mds-card-footer>` web component is the footer region of a `<mds-card>`, grouping the trailing content of a card (typically actions such as buttons or supplementary metadata) into the card's bottom region. |
38
- | [`mds-card-header`](../../magma/dist/collection/components/mds-card-header/AGENTS.md) | The `<mds-card-header>` web component is the header region of a `<mds-card>`, grouping the card's title, supporting text, and optional inline actions |
39
- | [`mds-card-media`](../../magma/dist/collection/components/mds-card-media/AGENTS.md) | The `<mds-card-media>` web component is the media region of a `<mds-card>`: it wraps an image, video or other visual asset and provides an optional overlay layer for text or controls rendered on top of that asset |
40
- | [`mds-chip`](../../magma/dist/collection/components/mds-chip/AGENTS.md) | The `<mds-chip>` web component is the Magma Design System's compact element for representing a discrete piece of information, a filter, a selection, or a removable token |
41
- | [`mds-details`](../../magma/dist/collection/components/mds-details/AGENTS.md) | The `<mds-details>` web component is the disclosure widget of the Magma Design System: a collapsible block with a clickable header that shows or hides its content on demand |
42
- | [`mds-dropdown`](../../magma/dist/collection/components/mds-dropdown/AGENTS.md) | The `<mds-dropdown>` web component is a floating overlay surface of the Magma Design System that anchors arbitrary slotted content next to an external trigger element |
43
- | [`mds-emoji`](../../magma/dist/collection/components/mds-emoji/AGENTS.md) | The `<mds-emoji>` web component renders one of the Magma Design System's animated mascot illustrations (`mia` or `simi`) as an interactive SVG |
44
- | [`mds-entity`](../../magma/dist/collection/components/mds-entity/AGENTS.md) | The `<mds-entity>` web component represents a person, organization, or resource as a compact identity block in the Magma Design System, pairing an avatar with a name, optional secondary details, and contextual actions |
45
- | [`mds-file`](../../magma/dist/collection/components/mds-file/AGENTS.md) | The `<mds-file>` web component is the Magma Design System control for representing a downloadable file as a rich, clickable card |
46
- | [`mds-file-preview`](../../magma/dist/collection/components/mds-file-preview/AGENTS.md) | The `<mds-file-preview>` web component is the Magma Design System card that previews an uploaded or referenced file, surfacing its name, size, type, and a format-aware icon or thumbnail |
39
+ | [`mds-calendar-cell`](../../magma/dist/collection/components/mds-calendar-cell/AGENTS.md), part of `mds-calendar` | The `<mds-calendar-cell>` web component represents a single selectable day inside the `<mds-calendar>` grid |
47
40
  | [`mds-filter`](../../magma/dist/collection/components/mds-filter/AGENTS.md) | The `<mds-filter>` web component is a compound container that groups a set of `<mds-filter-item>` chips into a single, scrollable filter bar, coordinating their selection state and exposing the active values as one combined change event |
48
- | [`mds-filter-item`](../../magma/dist/collection/components/mds-filter-item/AGENTS.md) | The `<mds-filter-item>` web component is a single selectable option inside the `<mds-filter>` container of the Magma Design System |
49
- | [`mds-header`](../../magma/dist/collection/components/mds-header/AGENTS.md) | The `<mds-header>` web component is the top-level page header container of the Magma Design System |
50
- | [`mds-header-bar`](../../magma/dist/collection/components/mds-header-bar/AGENTS.md) | The `<mds-header-bar>` web component is the top bar of a Magma application layout: it holds the product branding on the left and the primary navigation actions on the right, collapsing those actions into a hamburger menu on smaller viewports |
51
- | [`mds-help`](../../magma/dist/collection/components/mds-help/AGENTS.md) | The `<mds-help>` web component is a contextual help affordance of the Magma Design System: a small help icon that reveals an explanatory tooltip on interaction |
52
- | [`mds-horizontal-scroll`](../../magma/dist/collection/components/mds-horizontal-scroll/AGENTS.md) | The `<mds-horizontal-scroll>` web component is a horizontally scrolling container of the Magma Design System |
53
- | [`mds-hr`](../../magma/dist/collection/components/mds-hr/AGENTS.md) | The `<mds-hr>` web component is the horizontal rule of the Magma Design System |
54
- | [`mds-icon`](../../magma/dist/collection/components/mds-icon/AGENTS.md) | The `<mds-icon>` web component is the single glyph primitive of the Magma Design System: it inlines an SVG into the DOM so the artwork inherits color and sizing from CSS, and it is the building block that nearly every other component (button, chip, input, banner, list-item, etc.) composes to render its iconography |
55
- | [`mds-img`](../../magma/dist/collection/components/mds-img/AGENTS.md) | The `<mds-img>` web component is the responsive image primitive of the Magma Design System |
41
+ | [`mds-filter-item`](../../magma/dist/collection/components/mds-filter-item/AGENTS.md), part of `mds-filter` | The `<mds-filter-item>` web component is a single selectable option inside the `<mds-filter>` container of the Magma Design System |
56
42
  | [`mds-input`](../../magma/dist/collection/components/mds-input/AGENTS.md) | The `<mds-input>` web component is the primary single- and multi-line text entry control of the Magma Design System |
43
+ | [`mds-input-tip`](../../magma/dist/collection/components/mds-input-tip/AGENTS.md), part of `mds-input` or `mds-input-date` or `mds-input-select` | The `<mds-input-tip>` web component is the floating helper container of the Magma Design System input family: it overlays an input field and carries supplementary content (slotted `mds-input-tip-item` chips: status labels, hints, counters) that slides into place when the field becomes active |
44
+ | [`mds-input-tip-item`](../../magma/dist/collection/components/mds-input-tip-item/AGENTS.md), part of `mds-input-tip` | The `<mds-input-tip-item>` web component is a single contextual hint row rendered inside the `<mds-input-tip>` container |
57
45
  | [`mds-input-date`](../../magma/dist/collection/components/mds-input-date/AGENTS.md) | The `<mds-input-date>` web component is the Magma Design System control for capturing a single calendar date |
58
46
  | [`mds-input-date-range`](../../magma/dist/collection/components/mds-input-date-range/AGENTS.md) | The `<mds-input-date-range>` web component is the Magma Design System control for capturing a start/end date pair, composing two slotted `<mds-input-date>` fields with a shared pop-up `mds-calendar` (in range mode) and optional quick-pick presets |
59
- | [`mds-input-date-range-preselection`](../../magma/dist/collection/components/mds-input-date-range-preselection/AGENTS.md) | The `<mds-input-date-range-preselection>` web component is a compound child of `<mds-input-date-range>` |
47
+ | [`mds-input-date-range-preselection`](../../magma/dist/collection/components/mds-input-date-range-preselection/AGENTS.md), part of `mds-input-date-range` | The `<mds-input-date-range-preselection>` web component is a compound child of `<mds-input-date-range>` |
60
48
  | [`mds-input-field`](../../magma/dist/collection/components/mds-input-field/AGENTS.md) | The `<mds-input-field>` web component is the form-field wrapper of the Magma Design System |
61
49
  | [`mds-input-otp`](../../magma/dist/collection/components/mds-input-otp/AGENTS.md) | The `<mds-input-otp>` web component is the Magma Design System control for entering one-time passcodes, rendering a row of single-digit fields that together compose a single form value |
62
50
  | [`mds-input-range`](../../magma/dist/collection/components/mds-input-range/AGENTS.md) | The `<mds-input-range>` web component is the Magma Design System slider control for picking a single numeric value from a continuous interval |
63
51
  | [`mds-input-select`](../../magma/dist/collection/components/mds-input-select/AGENTS.md) | The `<mds-input-select>` web component is the Magma Design System single- and multi-choice dropdown control |
64
52
  | [`mds-input-switch`](../../magma/dist/collection/components/mds-input-switch/AGENTS.md) | The `<mds-input-switch>` web component is the binary/selectable input control of the Magma Design System |
65
- | [`mds-input-tip`](../../magma/dist/collection/components/mds-input-tip/AGENTS.md) | The `<mds-input-tip>` web component is the floating helper container of the Magma Design System input family: it overlays an input field and carries supplementary content (slotted `mds-input-tip-item` chips: status labels, hints, counters) that slides into place when the field becomes active |
66
- | [`mds-input-tip-item`](../../magma/dist/collection/components/mds-input-tip-item/AGENTS.md) | The `<mds-input-tip-item>` web component is a single contextual hint row rendered inside the `<mds-input-tip>` container |
67
53
  | [`mds-input-upload`](../../magma/dist/collection/components/mds-input-upload/AGENTS.md) | The `<mds-input-upload>` web component is the Magma Design System file-upload control |
68
- | [`mds-keyboard`](../../magma/dist/collection/components/mds-keyboard/AGENTS.md) | The `<mds-keyboard>` web component renders a keyboard shortcut as a row of physical-looking keycaps, acting as the compound parent for one or more slotted `<mds-keyboard-key>` children |
69
- | [`mds-keyboard-key`](../../magma/dist/collection/components/mds-keyboard-key/AGENTS.md) | The `<mds-keyboard-key>` web component renders a single physical-looking keycap inside a `<mds-keyboard>` parent, supplying the visual unit for one key of a shortcut combination (e.g |
70
- | [`mds-kpi`](../../magma/dist/collection/components/mds-kpi/AGENTS.md) | The `<mds-kpi>` web component is the layout container of the Magma Design System for presenting groups of key performance indicators |
71
- | [`mds-kpi-item`](../../magma/dist/collection/components/mds-kpi-item/AGENTS.md) | The `<mds-kpi-item>` web component is a compound child that represents a single key-performance-indicator entry - a prominent numeric `label` with an optional `description` and `icon` - inside its parent container `<mds-kpi>` |
72
- | [`mds-label`](../../magma/dist/collection/components/mds-label/AGENTS.md) | The `<mds-label>` web component is the Magma Design System tag/chip used to display a short, non-interactive piece of text such as a status, a category, or a removable selection. |
73
- | [`mds-link`](../../magma/dist/collection/components/mds-link/AGENTS.md) | The `<mds-link>` web component is the inline link of Magma: a word or a phrase inside running text, usually inside an `<mds-text>`, that opens a URL or runs an inline action |
74
- | [`mds-list`](../../magma/dist/collection/components/mds-list/AGENTS.md) | The `<mds-list>` web component is the structural container of the Magma Design System list family |
75
- | [`mds-list-item`](../../magma/dist/collection/components/mds-list-item/AGENTS.md) | The `<mds-list-item>` web component is the single entry of a Magma list, designed to be slotted exclusively inside its parent `<mds-list>` |
76
- | [`mds-mention`](../../magma/dist/collection/components/mds-mention/AGENTS.md) | The `<mds-mention>` web component renders a compact inline chip that references a person or entity - the kind of token produced when you type `@name` in an editor or comment field |
77
- | [`mds-modal`](../../magma/dist/collection/components/mds-modal/AGENTS.md) | The `<mds-modal>` web component is the Magma Design System overlay container for dialogs, presenting content in a windowed surface layered above the page with an optional backdrop |
78
- | [`mds-note`](../../magma/dist/collection/components/mds-note/AGENTS.md) | The `<mds-note>` web component is the annotation surface of the Magma Design System: a short, colored sticky-note block used to attach a remark, reminder, or callout to surrounding content |
79
- | [`mds-notification`](../../magma/dist/collection/components/mds-notification/AGENTS.md) | The `<mds-notification>` web component is a numeric badge/dot indicator of the Magma Design System that attaches to another element (an icon, a button, an avatar) to signal a count of pending items |
54
+
55
+ ## Navigation
56
+
57
+ Where the user is and where they can go: breadcrumbs, tabs, steps, pages, trees.
58
+
59
+ | Component | What it is |
60
+ | --------- | ---------- |
61
+ | [`mds-breadcrumb`](../../magma/dist/collection/components/mds-breadcrumb/AGENTS.md) | The `<mds-breadcrumb>` web component is the navigation-trail container of the Magma Design System |
62
+ | [`mds-breadcrumb-item`](../../magma/dist/collection/components/mds-breadcrumb-item/AGENTS.md), part of `mds-breadcrumb` | The `<mds-breadcrumb-item>` web component represents a single navigable depth in a breadcrumb trail |
80
63
  | [`mds-paginator`](../../magma/dist/collection/components/mds-paginator/AGENTS.md) | The `<mds-paginator>` web component is the page-navigation control of the Magma Design System |
81
- | [`mds-paginator-item`](../../magma/dist/collection/components/mds-paginator-item/AGENTS.md) | The `<mds-paginator-item>` web component is a compound child of `<mds-paginator>` that renders a single clickable cell of the pagination control: either a numbered page or a navigation arrow |
82
- | [`mds-policy-ai`](../../magma/dist/collection/components/mds-policy-ai/AGENTS.md) | The `<mds-policy-ai>` web component is the Magma Design System disclosure marker that flags AI-generated content as produced by MIA (Maggioli's artificial intelligence) and links to the official AI usage policy |
83
- | [`mds-pref`](../../magma/dist/collection/components/mds-pref/AGENTS.md) | The `<mds-pref>` web component is the accessibility-preferences panel of the Magma Design System: a compound parent that groups user-facing settings (animation, consumption, contrast, theme, language) so people can tune readability, motion, and language for their session |
84
- | [`mds-pref-animation`](../../magma/dist/collection/components/mds-pref-animation/AGENTS.md) | The `<mds-pref-animation>` web component is a preference control that lets users choose how animations are presented (reduced, system-driven, or fully enabled) |
85
- | [`mds-pref-consumption`](../../magma/dist/collection/components/mds-pref-consumption/AGENTS.md) | The `<mds-pref-consumption>` web component is a preference control of the Magma Design System that lets the user pick an energy-consumption mode (`low`, `medium`, `high`); it is usually a child of `<mds-pref>` and renders as a tab group with one option per mode, so it has no native HTML primitive equivalent. |
86
- | [`mds-pref-contrast`](../../magma/dist/collection/components/mds-pref-contrast/AGENTS.md) | The `<mds-pref-contrast>` web component is a preference control that lets users switch the application's contrast mode (`more`, `system`, or `no-preference`) |
87
- | [`mds-pref-language`](../../magma/dist/collection/components/mds-pref-language/AGENTS.md) | The `<mds-pref-language>` web component is the language-preference control of the Magma Design System, usually slotted inside the `<mds-pref>` panel alongside the other preference children |
88
- | [`mds-pref-language-item`](../../magma/dist/collection/components/mds-pref-language-item/AGENTS.md) | The `<mds-pref-language-item>` web component represents a single selectable language option inside the language-preference picker `<mds-pref-language>` |
89
- | [`mds-pref-mode`](../../magma/dist/collection/components/mds-pref-mode/AGENTS.md) | The `<mds-pref-mode>` web component is the mode preference control of the Magma Design System, usually a direct child of the `<mds-pref>` panel |
90
- | [`mds-pref-theme`](../../magma/dist/collection/components/mds-pref-theme/AGENTS.md) | The `<mds-pref-theme>` web component is the theme-switcher segment of the Magma accessibility preferences panel, usually a direct child of `<mds-pref>` |
91
- | [`mds-pref-theme-item`](../../magma/dist/collection/components/mds-pref-theme-item/AGENTS.md) | The `<mds-pref-theme-item>` web component is a single selectable theme entry inside the `<mds-pref-theme>` preference picker |
92
- | [`mds-price-table`](../../magma/dist/collection/components/mds-price-table/AGENTS.md) | The `<mds-price-table>` web component is the layout container of the Magma Design System pricing-table family |
93
- | [`mds-price-table-features`](../../magma/dist/collection/components/mds-price-table-features/AGENTS.md) | The `<mds-price-table-features>` web component is the feature-matrix block of the Magma Design System pricing-table family |
94
- | [`mds-price-table-features-cell`](../../magma/dist/collection/components/mds-price-table-features-cell/AGENTS.md) | The `<mds-price-table-features-cell>` web component is a single cell within a feature comparison row of the Magma price table, rendering one of several visual representations (a support icon, plain text, a label, or arbitrary custom content) depending on its `type` |
95
- | [`mds-price-table-features-row`](../../magma/dist/collection/components/mds-price-table-features-row/AGENTS.md) | The `<mds-price-table-features-row>` web component is a layout child of `<mds-price-table-features>` that represents a single horizontal row inside the feature-comparison table, conceptually playing the role of a table row (`<tr>`). |
96
- | [`mds-price-table-header`](../../magma/dist/collection/components/mds-price-table-header/AGENTS.md) | The `<mds-price-table-header>` web component is the layout child that forms the top band of a `<mds-price-table>`, aligning an optional leading title cell with the per-plan `<mds-price-table-list>` columns so the header sits in the same column grid as the feature rows below it |
97
- | [`mds-price-table-list`](../../magma/dist/collection/components/mds-price-table-list/AGENTS.md) | The `<mds-price-table-list>` web component is a single pricing-plan column inside the `<mds-price-table>` layout container |
98
- | [`mds-price-table-list-item`](../../magma/dist/collection/components/mds-price-table-list-item/AGENTS.md) | The `<mds-price-table-list-item>` web component represents a single feature row inside a `<mds-price-table-list>`, pairing a supported/unsupported status icon with a textual feature label |
64
+ | [`mds-paginator-item`](../../magma/dist/collection/components/mds-paginator-item/AGENTS.md), part of `mds-paginator` | The `<mds-paginator-item>` web component is a compound child of `<mds-paginator>` that renders a single clickable cell of the pagination control: either a numbered page or a navigation arrow |
65
+ | [`mds-stepper-bar`](../../magma/dist/collection/components/mds-stepper-bar/AGENTS.md) | The `<mds-stepper-bar>` web component is the Magma Design System container that orchestrates a multi-step progress flow, coordinating a set of slotted `<mds-stepper-bar-item>` children and revealing the matching content panel for the active step |
66
+ | [`mds-stepper-bar-item`](../../magma/dist/collection/components/mds-stepper-bar-item/AGENTS.md), part of `mds-stepper-bar` | The `<mds-stepper-bar-item>` web component represents a single step inside a `<mds-stepper-bar>` progress indicator, rendering the step's icon, optional ordinal label, descriptive text and status badge |
67
+ | [`mds-tab`](../../magma/dist/collection/components/mds-tab/AGENTS.md) | The `<mds-tab>` web component is the compound container that orchestrates a tabbed navigation in the Magma Design System |
68
+ | [`mds-tab-item`](../../magma/dist/collection/components/mds-tab-item/AGENTS.md), part of `mds-tab` | The `<mds-tab-item>` web component is the individual, clickable tab control of the Magma Design System, designed to be slotted into the default slot of its parent `<mds-tab>` |
69
+ | [`mds-tab-bar`](../../magma/dist/collection/components/mds-tab-bar/AGENTS.md) | The `<mds-tab-bar>` web component is the compound container of the Magma Design System that groups a set of `<mds-tab-bar-item>` children into a single selectable navigation bar, owning the mutual-exclusion logic that keeps exactly one item active at a time |
70
+ | [`mds-tab-bar-item`](../../magma/dist/collection/components/mds-tab-bar-item/AGENTS.md), part of `mds-tab-bar` | The `<mds-tab-bar-item>` web component is a single selectable tab within the `<mds-tab-bar>` container |
71
+ | [`mds-tree`](../../magma/dist/collection/components/mds-tree/AGENTS.md) | The `<mds-tree>` web component is the root container of the Magma Design System tree view, organizing a hierarchy of slotted `<mds-tree-item>` nodes into an expandable/collapsible structure |
72
+ | [`mds-tree-item`](../../magma/dist/collection/components/mds-tree-item/AGENTS.md), part of `mds-tree` or `mds-tree-item` | The `<mds-tree-item>` web component is the node primitive of the Magma Design System tree view: it represents a single labeled, expandable/collapsible entry inside an `<mds-tree>` and is also the recursive container for its own descendants |
73
+
74
+ ## Feedback
75
+
76
+ Messages, progress and empty states that tell the user what is happening.
77
+
78
+ | Component | What it is |
79
+ | --------- | ---------- |
80
+ | [`mds-banner`](../../magma/dist/collection/components/mds-banner/AGENTS.md) | The `<mds-banner>` web component is the Magma Design System surface for contextual, in-page messages - informational notices, status callouts, and alerts - pairing an optional icon, headline, body text, and inline actions inside a single themed box. |
81
+ | [`mds-notification`](../../magma/dist/collection/components/mds-notification/AGENTS.md) | The `<mds-notification>` web component is a numeric badge/dot indicator of the Magma Design System that attaches to another element (an icon, a button, an avatar) to signal a count of pending items |
99
82
  | [`mds-progress`](../../magma/dist/collection/components/mds-progress/AGENTS.md) | The `<mds-progress>` web component is the progress indicator of the Magma Design System, rendering the completion state of a determinate task as a bar or ring |
100
83
  | [`mds-push-notification`](../../magma/dist/collection/components/mds-push-notification/AGENTS.md) | The `<mds-push-notification>` web component is the Magma Design System container that hosts and orchestrates a stack of transient notification items, managing their show/hide lifecycle, entry/exit animations, and overall visibility |
101
- | [`mds-push-notification-item`](../../magma/dist/collection/components/mds-push-notification-item/AGENTS.md) | The `<mds-push-notification-item>` web component is a single notification card rendered inside its parent container `<mds-push-notification>` |
102
- | [`mds-quote`](../../magma/dist/collection/components/mds-quote/AGENTS.md) | The `<mds-quote>` web component is the Magma Design System primitive for rendering a stylized blockquote: it wraps quoted text in decorative typographic quotation marks (` .. |
103
- | [`mds-radial-menu`](../../magma/dist/collection/components/mds-radial-menu/AGENTS.md) | The `<mds-radial-menu>` web component is a floating action menu of the Magma Design System that arranges its child items along a circular arc around a central trigger button, expanding them outward when opened |
104
- | [`mds-radial-menu-item`](../../magma/dist/collection/components/mds-radial-menu-item/AGENTS.md) | The `<mds-radial-menu-item>` web component is a single actionable spoke of the `<mds-radial-menu>` compound |
84
+ | [`mds-push-notification-item`](../../magma/dist/collection/components/mds-push-notification-item/AGENTS.md), part of `mds-push-notification` | The `<mds-push-notification-item>` web component is a single notification card rendered inside its parent container `<mds-push-notification>` |
105
85
  | [`mds-radial-progress`](../../magma/dist/collection/components/mds-radial-progress/AGENTS.md) | The `<mds-radial-progress>` web component renders a circular progress indicator that visualizes a completion ratio as a ring with a numeric percentage at its center |
106
- | [`mds-separator`](../../magma/dist/collection/components/mds-separator/AGENTS.md) | The `<mds-separator>` web component is the visual divider of the Magma Design System: a thin, full-radius horizontal rule used to partition content into distinct groups |
107
86
  | [`mds-spinner`](../../magma/dist/collection/components/mds-spinner/AGENTS.md) | The `<mds-spinner>` web component is the Magma Design System's loading/await indicator: a self-contained, animated SVG spinner used standalone or embedded inside host components (`mds-button`, `mds-input`, `mds-entity`) to signal an in-progress, indeterminate operation |
108
- | [`mds-status-bar`](../../magma/dist/collection/components/mds-status-bar/AGENTS.md) | The `<mds-status-bar>` web component is a persistent action bar of the Magma Design System that docks a small set of actions (typically `mds-button` elements) to an edge of the viewport, accompanied by an optional descriptive label |
109
- | [`mds-stepper-bar`](../../magma/dist/collection/components/mds-stepper-bar/AGENTS.md) | The `<mds-stepper-bar>` web component is the Magma Design System container that orchestrates a multi-step progress flow, coordinating a set of slotted `<mds-stepper-bar-item>` children and revealing the matching content panel for the active step |
110
- | [`mds-stepper-bar-item`](../../magma/dist/collection/components/mds-stepper-bar-item/AGENTS.md) | The `<mds-stepper-bar-item>` web component represents a single step inside a `<mds-stepper-bar>` progress indicator, rendering the step's icon, optional ordinal label, descriptive text and status badge |
111
- | [`mds-tab`](../../magma/dist/collection/components/mds-tab/AGENTS.md) | The `<mds-tab>` web component is the compound container that orchestrates a tabbed navigation in the Magma Design System |
112
- | [`mds-tab-bar`](../../magma/dist/collection/components/mds-tab-bar/AGENTS.md) | The `<mds-tab-bar>` web component is the compound container of the Magma Design System that groups a set of `<mds-tab-bar-item>` children into a single selectable navigation bar, owning the mutual-exclusion logic that keeps exactly one item active at a time |
113
- | [`mds-tab-bar-item`](../../magma/dist/collection/components/mds-tab-bar-item/AGENTS.md) | The `<mds-tab-bar-item>` web component is a single selectable tab within the `<mds-tab-bar>` container |
114
- | [`mds-tab-item`](../../magma/dist/collection/components/mds-tab-item/AGENTS.md) | The `<mds-tab-item>` web component is the individual, clickable tab control of the Magma Design System, designed to be slotted into the default slot of its parent `<mds-tab>` |
115
- | [`mds-table`](../../magma/dist/collection/components/mds-table/AGENTS.md) | The `<mds-table>` web component is the root container of the Magma Design System tabular data system |
116
- | [`mds-table-body`](../../magma/dist/collection/components/mds-table-body/AGENTS.md) | The `<mds-table-body>` web component is the row-group container of the Magma Design System tabular data system, used inside `<mds-table>` |
117
- | [`mds-table-cell`](../../magma/dist/collection/components/mds-table-cell/AGENTS.md) | The `<mds-table-cell>` web component is the data-cell building block of the Magma table, designed to be slotted inside `<mds-table-row>` |
118
- | [`mds-table-footer`](../../magma/dist/collection/components/mds-table-footer/AGENTS.md) | The `<mds-table-footer>` web component is a structural child of `<mds-table>` that renders the footer row of a table - typically used for totals or summaries |
119
- | [`mds-table-header`](../../magma/dist/collection/components/mds-table-header/AGENTS.md) | The `<mds-table-header>` web component is the header region of a Magma table, used exclusively as a direct slot child of its parent `<mds-table>` |
120
- | [`mds-table-header-cell`](../../magma/dist/collection/components/mds-table-header-cell/AGENTS.md) | The `<mds-table-header-cell>` web component is the column-header cell of a Magma data table |
121
- | [`mds-table-row`](../../magma/dist/collection/components/mds-table-row/AGENTS.md) | The `<mds-table-row>` web component represents a single data row inside a `<mds-table>` (slotted through `mds-table-body`; `mds-table-header` and `mds-table-footer` are rows themselves) |
122
- | [`mds-text`](../../magma/dist/collection/components/mds-text/AGENTS.md) | The `<mds-text>` web component is the foundational typography primitive of the Magma Design System |
123
87
  | [`mds-toast`](../../magma/dist/collection/components/mds-toast/AGENTS.md) | The `<mds-toast>` web component is the transient notification surface of the Magma Design System, used to surface brief, non-blocking feedback messages that appear over the viewport and auto-dismiss after a timeout |
124
88
  | [`mds-toast-region`](../../magma/dist/collection/components/mds-toast-region/AGENTS.md) | The `<mds-toast-region>` web component is the place where an application shows its toasts: placed once in the application shell, at an edge of the viewport, it lines up the `<mds-toast>` elements visible at the same time, each one readable, and announces them to assistive technologies |
89
+ | [`mds-zero`](../../magma/dist/collection/components/mds-zero/AGENTS.md) | The `<mds-zero>` web component is the empty-state (zero-data) panel of the Magma Design System: a centered, vertically stacked layout that pairs an illustration, explanatory copy, and a call-to-action to guide users when a list, search, or section has no content to show |
90
+
91
+ ## Overlays
92
+
93
+ Surfaces that float over the page: dialogs, dropdowns, tooltips, help.
94
+
95
+ | Component | What it is |
96
+ | --------- | ---------- |
97
+ | [`mds-dropdown`](../../magma/dist/collection/components/mds-dropdown/AGENTS.md) | The `<mds-dropdown>` web component is a floating overlay surface of the Magma Design System that anchors arbitrary slotted content next to an external trigger element |
98
+ | [`mds-help`](../../magma/dist/collection/components/mds-help/AGENTS.md) | The `<mds-help>` web component is a contextual help affordance of the Magma Design System: a small help icon that reveals an explanatory tooltip on interaction |
99
+ | [`mds-modal`](../../magma/dist/collection/components/mds-modal/AGENTS.md) | The `<mds-modal>` web component is the Magma Design System overlay container for dialogs, presenting content in a windowed surface layered above the page with an optional backdrop |
125
100
  | [`mds-tooltip`](../../magma/dist/collection/components/mds-tooltip/AGENTS.md) | The `<mds-tooltip>` web component is the floating contextual hint of the Magma Design System |
126
- | [`mds-tree`](../../magma/dist/collection/components/mds-tree/AGENTS.md) | The `<mds-tree>` web component is the root container of the Magma Design System tree view, organizing a hierarchy of slotted `<mds-tree-item>` nodes into an expandable/collapsible structure |
127
- | [`mds-tree-item`](../../magma/dist/collection/components/mds-tree-item/AGENTS.md) | The `<mds-tree-item>` web component is the node primitive of the Magma Design System tree view: it represents a single labeled, expandable/collapsible entry inside an `<mds-tree>` and is also the recursive container for its own descendants |
101
+
102
+ ## Data
103
+
104
+ Sets of values and the people they belong to: tables, lists, figures, avatars.
105
+
106
+ | Component | What it is |
107
+ | --------- | ---------- |
108
+ | [`mds-author`](../../magma/dist/collection/components/mds-author/AGENTS.md) | The `<mds-author>` web component is the layout primitive of the Magma Design System for presenting a person's identity: it pairs an avatar with author information (name, role, or any related details) |
109
+ | [`mds-avatar`](../../magma/dist/collection/components/mds-avatar/AGENTS.md) | The `<mds-avatar>` web component renders a compact, circular representation of a user or entity in the Magma Design System |
110
+ | [`mds-avatar-stack`](../../magma/dist/collection/components/mds-avatar-stack/AGENTS.md) | The `<mds-avatar-stack>` web component groups a set of overlapping `<mds-avatar-stack-item>` children into a single horizontal cluster, the Magma Design System pattern for showing the people associated with an entity (assignees, participants, collaborators) in a compact, space-saving row. |
111
+ | [`mds-avatar-stack-item`](../../magma/dist/collection/components/mds-avatar-stack-item/AGENTS.md), part of `mds-avatar-stack` | The `<mds-avatar-stack-item>` web component is a compound child that represents a single avatar inside an `<mds-avatar-stack>`, wrapping an internal `<mds-avatar>` so individual avatars can be overlapped, sized, and counted as a group rather than rendered standalone. |
112
+ | [`mds-benchmark-bar`](../../magma/dist/collection/components/mds-benchmark-bar/AGENTS.md) | The `<mds-benchmark-bar>` web component is a read-only data-visualization element of the Magma Design System that pairs a labelled caption with a horizontal progress bar to express a single benchmark value on a 0-100 scale |
113
+ | [`mds-entity`](../../magma/dist/collection/components/mds-entity/AGENTS.md) | The `<mds-entity>` web component represents a person, organization, or resource as a compact identity block in the Magma Design System, pairing an avatar with a name, optional secondary details, and contextual actions |
114
+ | [`mds-kpi`](../../magma/dist/collection/components/mds-kpi/AGENTS.md) | The `<mds-kpi>` web component is the layout container of the Magma Design System for presenting groups of key performance indicators |
115
+ | [`mds-kpi-item`](../../magma/dist/collection/components/mds-kpi-item/AGENTS.md), part of `mds-kpi` | The `<mds-kpi-item>` web component is a compound child that represents a single key-performance-indicator entry - a prominent numeric `label` with an optional `description` and `icon` - inside its parent container `<mds-kpi>` |
116
+ | [`mds-list`](../../magma/dist/collection/components/mds-list/AGENTS.md) | The `<mds-list>` web component is the structural container of the Magma Design System list family |
117
+ | [`mds-list-item`](../../magma/dist/collection/components/mds-list-item/AGENTS.md), part of `mds-list` | The `<mds-list-item>` web component is the single entry of a Magma list, designed to be slotted exclusively inside its parent `<mds-list>` |
118
+ | [`mds-price-table`](../../magma/dist/collection/components/mds-price-table/AGENTS.md) | The `<mds-price-table>` web component is the layout container of the Magma Design System pricing-table family |
119
+ | [`mds-price-table-features`](../../magma/dist/collection/components/mds-price-table-features/AGENTS.md), part of `mds-price-table` | The `<mds-price-table-features>` web component is the feature-matrix block of the Magma Design System pricing-table family |
120
+ | [`mds-price-table-features-cell`](../../magma/dist/collection/components/mds-price-table-features-cell/AGENTS.md), part of `mds-price-table-features-row` | The `<mds-price-table-features-cell>` web component is a single cell within a feature comparison row of the Magma price table, rendering one of several visual representations (a support icon, plain text, a label, or arbitrary custom content) depending on its `type` |
121
+ | [`mds-price-table-features-row`](../../magma/dist/collection/components/mds-price-table-features-row/AGENTS.md), part of `mds-price-table-features` | The `<mds-price-table-features-row>` web component is a layout child of `<mds-price-table-features>` that represents a single horizontal row inside the feature-comparison table, conceptually playing the role of a table row (`<tr>`). |
122
+ | [`mds-price-table-header`](../../magma/dist/collection/components/mds-price-table-header/AGENTS.md), part of `mds-price-table` | The `<mds-price-table-header>` web component is the layout child that forms the top band of a `<mds-price-table>`, aligning an optional leading title cell with the per-plan `<mds-price-table-list>` columns so the header sits in the same column grid as the feature rows below it |
123
+ | [`mds-price-table-list`](../../magma/dist/collection/components/mds-price-table-list/AGENTS.md), part of `mds-price-table` or `mds-price-table-header` | The `<mds-price-table-list>` web component is a single pricing-plan column inside the `<mds-price-table>` layout container |
124
+ | [`mds-price-table-list-item`](../../magma/dist/collection/components/mds-price-table-list-item/AGENTS.md), part of `mds-price-table-list` | The `<mds-price-table-list-item>` web component represents a single feature row inside a `<mds-price-table-list>`, pairing a supported/unsupported status icon with a textual feature label |
125
+ | [`mds-table`](../../magma/dist/collection/components/mds-table/AGENTS.md) | The `<mds-table>` web component is the root container of the Magma Design System tabular data system |
126
+ | [`mds-table-body`](../../magma/dist/collection/components/mds-table-body/AGENTS.md), part of `mds-table` | The `<mds-table-body>` web component is the row-group container of the Magma Design System tabular data system, used inside `<mds-table>` |
127
+ | [`mds-table-cell`](../../magma/dist/collection/components/mds-table-cell/AGENTS.md), part of `mds-table-row` or `mds-table-footer` | The `<mds-table-cell>` web component is the data-cell building block of the Magma table, designed to be slotted inside `<mds-table-row>` |
128
+ | [`mds-table-footer`](../../magma/dist/collection/components/mds-table-footer/AGENTS.md), part of `mds-table` | The `<mds-table-footer>` web component is a structural child of `<mds-table>` that renders the footer row of a table - typically used for totals or summaries |
129
+ | [`mds-table-header`](../../magma/dist/collection/components/mds-table-header/AGENTS.md), part of `mds-table` | The `<mds-table-header>` web component is the header region of a Magma table, used exclusively as a direct slot child of its parent `<mds-table>` |
130
+ | [`mds-table-header-cell`](../../magma/dist/collection/components/mds-table-header-cell/AGENTS.md), part of `mds-table-header` | The `<mds-table-header-cell>` web component is the column-header cell of a Magma data table |
131
+ | [`mds-table-row`](../../magma/dist/collection/components/mds-table-row/AGENTS.md), part of `mds-table-body` | The `<mds-table-row>` web component represents a single data row inside a `<mds-table>` (slotted through `mds-table-body`; `mds-table-header` and `mds-table-footer` are rows themselves) |
132
+
133
+ ## Tags
134
+
135
+ Short markers attached to other content: badges, chips, labels, mentions, keys.
136
+
137
+ | Component | What it is |
138
+ | --------- | ---------- |
139
+ | [`mds-badge`](../../magma/dist/collection/components/mds-badge/AGENTS.md) | The `<mds-badge>` web component is the Magma Design System's compact status and label indicator, used to attach a short categorical signal (count, state, tag) to other content |
140
+ | [`mds-chip`](../../magma/dist/collection/components/mds-chip/AGENTS.md) | The `<mds-chip>` web component is the Magma Design System's compact element for representing a discrete piece of information, a filter, a selection, or a removable token |
141
+ | [`mds-keyboard`](../../magma/dist/collection/components/mds-keyboard/AGENTS.md) | The `<mds-keyboard>` web component renders a keyboard shortcut as a row of physical-looking keycaps, acting as the compound parent for one or more slotted `<mds-keyboard-key>` children |
142
+ | [`mds-keyboard-key`](../../magma/dist/collection/components/mds-keyboard-key/AGENTS.md), part of `mds-keyboard` | The `<mds-keyboard-key>` web component renders a single physical-looking keycap inside a `<mds-keyboard>` parent, supplying the visual unit for one key of a shortcut combination (e.g |
143
+ | [`mds-label`](../../magma/dist/collection/components/mds-label/AGENTS.md) | The `<mds-label>` web component is the Magma Design System tag/chip used to display a short, non-interactive piece of text such as a status, a category, or a removable selection. |
144
+ | [`mds-mention`](../../magma/dist/collection/components/mds-mention/AGENTS.md) | The `<mds-mention>` web component renders a compact inline chip that references a person or entity - the kind of token produced when you type `@name` in an editor or comment field |
145
+ | [`mds-policy-ai`](../../magma/dist/collection/components/mds-policy-ai/AGENTS.md) | The `<mds-policy-ai>` web component is the Magma Design System disclosure marker that flags AI-generated content as produced by MIA (Maggioli's artificial intelligence) and links to the official AI usage policy |
146
+
147
+ ## Structure
148
+
149
+ Containers and dividers that lay the page out: cards, accordions, headers, rules.
150
+
151
+ | Component | What it is |
152
+ | --------- | ---------- |
153
+ | [`mds-accordion`](../../magma/dist/collection/components/mds-accordion/AGENTS.md) | The `<mds-accordion>` web component is the compound container of the Magma Design System that groups and orchestrates a set of collapsible `<mds-accordion-item>` panels |
154
+ | [`mds-accordion-item`](../../magma/dist/collection/components/mds-accordion-item/AGENTS.md), part of `mds-accordion` | The `<mds-accordion-item>` web component is a single collapsible panel of the Magma Design System, designed to be slotted inside its parent `<mds-accordion>` |
155
+ | [`mds-accordion-timer`](../../magma/dist/collection/components/mds-accordion-timer/AGENTS.md) | The `<mds-accordion-timer>` web component is the orchestrating parent of an auto-advancing accordion in the Magma Design System |
156
+ | [`mds-accordion-timer-item`](../../magma/dist/collection/components/mds-accordion-timer-item/AGENTS.md), part of `mds-accordion-timer` | The `<mds-accordion-timer-item>` web component is the single collapsible panel of a timed, auto-advancing accordion, designed to live exclusively inside its parent `<mds-accordion-timer>` |
157
+ | [`mds-card`](../../magma/dist/collection/components/mds-card/AGENTS.md) | The `<mds-card>` web component is the surface container of the Magma Design System: a styled, self-contained panel that groups related media, heading, body and action content into a single bounded region |
158
+ | [`mds-card-content`](../../magma/dist/collection/components/mds-card-content/AGENTS.md), part of `mds-card` | The `<mds-card-content>` web component is the body region of a `<mds-card>`, grouping the primary textual or component content of a card |
159
+ | [`mds-card-footer`](../../magma/dist/collection/components/mds-card-footer/AGENTS.md), part of `mds-card` | The `<mds-card-footer>` web component is the footer region of a `<mds-card>`, grouping the trailing content of a card (typically actions such as buttons or supplementary metadata) into the card's bottom region. |
160
+ | [`mds-card-header`](../../magma/dist/collection/components/mds-card-header/AGENTS.md), part of `mds-card` | The `<mds-card-header>` web component is the header region of a `<mds-card>`, grouping the card's title, supporting text, and optional inline actions |
161
+ | [`mds-card-media`](../../magma/dist/collection/components/mds-card-media/AGENTS.md), part of `mds-card` | The `<mds-card-media>` web component is the media region of a `<mds-card>`: it wraps an image, video or other visual asset and provides an optional overlay layer for text or controls rendered on top of that asset |
162
+ | [`mds-details`](../../magma/dist/collection/components/mds-details/AGENTS.md) | The `<mds-details>` web component is the disclosure widget of the Magma Design System: a collapsible block with a clickable header that shows or hides its content on demand |
163
+ | [`mds-header`](../../magma/dist/collection/components/mds-header/AGENTS.md) | The `<mds-header>` web component is the top-level page header container of the Magma Design System |
164
+ | [`mds-header-bar`](../../magma/dist/collection/components/mds-header-bar/AGENTS.md), part of `mds-header` | The `<mds-header-bar>` web component is the top bar of a Magma application layout: it holds the product branding on the left and the primary navigation actions on the right, collapsing those actions into a hamburger menu on smaller viewports |
165
+ | [`mds-horizontal-scroll`](../../magma/dist/collection/components/mds-horizontal-scroll/AGENTS.md) | The `<mds-horizontal-scroll>` web component is a horizontally scrolling container of the Magma Design System |
166
+ | [`mds-hr`](../../magma/dist/collection/components/mds-hr/AGENTS.md) | The `<mds-hr>` web component is the horizontal rule of the Magma Design System |
167
+ | [`mds-separator`](../../magma/dist/collection/components/mds-separator/AGENTS.md) | The `<mds-separator>` web component is the visual divider of the Magma Design System: a thin, full-radius horizontal rule used to partition content into distinct groups |
168
+
169
+ ## Content
170
+
171
+ Text, media and files: typography, images, icons, quotes, notes, previews.
172
+
173
+ | Component | What it is |
174
+ | --------- | ---------- |
175
+ | [`mds-bibliography`](../../magma/dist/collection/components/mds-bibliography/AGENTS.md) | The `<mds-bibliography>` web component renders a single citation entry formatted according to a recognized academic style |
176
+ | [`mds-book`](../../magma/dist/collection/components/mds-book/AGENTS.md) | The `<mds-book>` web component shows a book as a physical object, from the image of its front cover alone: front cover, spine and page block drawn in CSS 3D, turned a little so the spine shows |
177
+ | [`mds-emoji`](../../magma/dist/collection/components/mds-emoji/AGENTS.md) | The `<mds-emoji>` web component renders one of the Magma Design System's animated mascot illustrations (`mia` or `simi`) as an interactive SVG |
178
+ | [`mds-file`](../../magma/dist/collection/components/mds-file/AGENTS.md) | The `<mds-file>` web component is the Magma Design System control for representing a downloadable file as a rich, clickable card |
179
+ | [`mds-file-preview`](../../magma/dist/collection/components/mds-file-preview/AGENTS.md) | The `<mds-file-preview>` web component is the Magma Design System card that previews an uploaded or referenced file, surfacing its name, size, type, and a format-aware icon or thumbnail |
180
+ | [`mds-icon`](../../magma/dist/collection/components/mds-icon/AGENTS.md) | The `<mds-icon>` web component is the single glyph primitive of the Magma Design System: it inlines an SVG into the DOM so the artwork inherits color and sizing from CSS, and it is the building block that nearly every other component (button, chip, input, banner, list-item, etc.) composes to render its iconography |
181
+ | [`mds-img`](../../magma/dist/collection/components/mds-img/AGENTS.md) | The `<mds-img>` web component is the responsive image primitive of the Magma Design System |
182
+ | [`mds-note`](../../magma/dist/collection/components/mds-note/AGENTS.md) | The `<mds-note>` web component is the annotation surface of the Magma Design System: a short, colored sticky-note block used to attach a remark, reminder, or callout to surrounding content |
183
+ | [`mds-quote`](../../magma/dist/collection/components/mds-quote/AGENTS.md) | The `<mds-quote>` web component is the Magma Design System primitive for rendering a stylized blockquote: it wraps quoted text in decorative typographic quotation marks (` .. |
184
+ | [`mds-text`](../../magma/dist/collection/components/mds-text/AGENTS.md) | The `<mds-text>` web component is the foundational typography primitive of the Magma Design System |
128
185
  | [`mds-url-view`](../../magma/dist/collection/components/mds-url-view/AGENTS.md) | The `<mds-url-view>` web component renders an embedded preview of an external web page inside a framed browser-like window, wrapping a native `<iframe>` with a titled header, an identifying icon, and a dismiss control |
129
186
  | [`mds-usage`](../../magma/dist/collection/components/mds-usage/AGENTS.md) | The `<mds-usage>` web component is a documentation-oriented annotation block of the Magma Design System used to frame example content as a recommendation, a warning, or an informational note |
130
187
  | [`mds-video-wall`](../../magma/dist/collection/components/mds-video-wall/AGENTS.md) | The `<mds-video-wall>` web component is the Magma Design System's full-bleed background video surface, used to render an autoplaying, looping ambient video behind foreground content |
131
- | [`mds-zero`](../../magma/dist/collection/components/mds-zero/AGENTS.md) | The `<mds-zero>` web component is the empty-state (zero-data) panel of the Magma Design System: a centered, vertically stacked layout that pairs an illustration, explanatory copy, and a call-to-action to guide users when a list, search, or section has no content to show |
188
+
189
+ ## Preferences
190
+
191
+ The controls a user tunes the interface with: mode, theme, contrast, motion, language.
192
+
193
+ | Component | What it is |
194
+ | --------- | ---------- |
195
+ | [`mds-pref`](../../magma/dist/collection/components/mds-pref/AGENTS.md) | The `<mds-pref>` web component is the accessibility-preferences panel of the Magma Design System: a compound parent that groups user-facing settings (animation, consumption, contrast, theme, language) so people can tune readability, motion, and language for their session |
196
+ | [`mds-pref-animation`](../../magma/dist/collection/components/mds-pref-animation/AGENTS.md) | The `<mds-pref-animation>` web component is a preference control that lets users choose how animations are presented (reduced, system-driven, or fully enabled) |
197
+ | [`mds-pref-consumption`](../../magma/dist/collection/components/mds-pref-consumption/AGENTS.md) | The `<mds-pref-consumption>` web component is a preference control of the Magma Design System that lets the user pick an energy-consumption mode (`low`, `medium`, `high`); it is usually a child of `<mds-pref>` and renders as a tab group with one option per mode, so it has no native HTML primitive equivalent. |
198
+ | [`mds-pref-contrast`](../../magma/dist/collection/components/mds-pref-contrast/AGENTS.md) | The `<mds-pref-contrast>` web component is a preference control that lets users switch the application's contrast mode (`more`, `system`, or `no-preference`) |
199
+ | [`mds-pref-language`](../../magma/dist/collection/components/mds-pref-language/AGENTS.md) | The `<mds-pref-language>` web component is the language-preference control of the Magma Design System, usually slotted inside the `<mds-pref>` panel alongside the other preference children |
200
+ | [`mds-pref-language-item`](../../magma/dist/collection/components/mds-pref-language-item/AGENTS.md), part of `mds-pref-language` | The `<mds-pref-language-item>` web component represents a single selectable language option inside the language-preference picker `<mds-pref-language>` |
201
+ | [`mds-pref-mode`](../../magma/dist/collection/components/mds-pref-mode/AGENTS.md) | The `<mds-pref-mode>` web component is the mode preference control of the Magma Design System, usually a direct child of the `<mds-pref>` panel |
202
+ | [`mds-pref-theme`](../../magma/dist/collection/components/mds-pref-theme/AGENTS.md) | The `<mds-pref-theme>` web component is the theme-switcher segment of the Magma accessibility preferences panel, usually a direct child of `<mds-pref>` |
203
+ | [`mds-pref-theme-item`](../../magma/dist/collection/components/mds-pref-theme-item/AGENTS.md), part of `mds-pref-theme` | The `<mds-pref-theme-item>` web component is a single selectable theme entry inside the `<mds-pref-theme>` preference picker |
@@ -99,6 +99,10 @@ Parent/child pairs communicate internally. Rules:
99
99
  2. Never use a child outside its parent (no `mds-accordion-item` without `mds-accordion`).
100
100
  3. Never mix child types across parents.
101
101
 
102
+ Which parent a child belongs in: [`components.md`](components.md) lists every part right
103
+ after its compound and names the components it sits in (the `@parent` docs tag of the
104
+ component in `documentation.json`).
105
+
102
106
  ```html
103
107
  <mds-accordion>
104
108
  <mds-accordion-item>...</mds-accordion-item>
@@ -173,22 +177,35 @@ Maggioli):
173
177
  - Use the preference components / classes for high contrast and reduced motion - do not
174
178
  hard-code those styles (see [`theming.md`](theming.md)).
175
179
 
180
+ ## Language
181
+
182
+ - The texts of the components (labels, tooltips, validation messages) follow the language of
183
+ the page, `<html lang>`: Magma has them in `el`, `en`, `es` and `it`. A language with a
184
+ region gets the texts of its base language (`it-IT` and `it-CH` get `it`), and any other
185
+ language gets English. To let the user choose, add `mds-pref-language`.
186
+
176
187
  ## Styling components from outside
177
188
 
178
189
  A component's styling API is what its `AGENTS.md` documents:
179
190
 
180
- 1. **CSS custom properties** ("CSS custom properties" table), named
191
+ 1. **Public CSS custom properties** ("CSS custom properties" table), named
181
192
  `--mds-<component>-<prop>`. The first choice: set them on the host element or on a
182
- parent selector.
193
+ parent selector. The table lists only the public ones, the ones the component promises;
194
+ its other custom properties are internal (`"visibility": "internal"` in
195
+ `documentation.json`): they may change or go in any release, so never set or read
196
+ them, and the lint reports them (`magma/no-internal-tokens`, [`lint.md`](lint.md)). A
197
+ component with no public custom property is styled with its props, its parts and the
198
+ roles around it. A public one marked **Static** takes a value of its own, not a role
199
+ (the colours of an illustration, a cover colour from a catalogue record).
183
200
  2. **Shadow parts** ("Parts" table), for a deep customisation the custom properties do
184
201
  not cover. Only the documented part names: they are public API, the rest of the
185
202
  shadow tree is not.
186
203
 
187
- Never reach past that: undocumented parts, internal class names, `>>>` or `/deep/`
188
- break on any release.
204
+ Never reach past that: internal custom properties, undocumented parts, internal class
205
+ names, `>>>` or `/deep/` break on any release.
189
206
 
190
207
  ```css
191
- /* correct */
208
+ /* CORRECT */
192
209
  mds-button { --mds-button-radius: var(--magma-radius-full); }
193
210
 
194
211
  .featured-card mds-button {
@@ -196,10 +213,10 @@ mds-button { --mds-button-radius: var(--magma-radius-full); }
196
213
  --mds-button-radius: var(--magma-radius-lg);
197
214
  }
198
215
 
199
- /* correct, deep customisation: `icon` is a documented part of mds-button */
216
+ /* CORRECT, deep customisation: `icon` is a documented part of mds-button */
200
217
  mds-button::part(icon) { fill: rgb(var(--magma-accent-fg)); }
201
218
 
202
- /* incorrect - internal nodes are not API */
219
+ /* INCORRECT - internal nodes are not API */
203
220
  mds-button >>> .internal { color: red; }
204
221
  ```
205
222
 
package/agents/install.md CHANGED
@@ -201,6 +201,13 @@ With React Router the handler is `(href) => navigate(href)` from `useNavigate()`
201
201
  `false` from the handler for a link the browser is to load. Without a registered router, an
202
202
  `onClick` on the component can still cancel the click with `preventDefault()` and route by hand.
203
203
 
204
+ ## 7. Lint
205
+
206
+ The ESLint and Stylelint rules ship in `@maggioli-design-system/magma`: nothing more to
207
+ install from Magma. Add the block for this target to the project's ESLint configuration and
208
+ the Stylelint preset for its stylesheets, as [`lint.md`](lint.md) shows ([React](lint.md#react)),
209
+ merging into what the project already has, and run both after every change.
210
+
204
211
  ## Gotchas
205
212
 
206
213
  - The icon path effect must run on the client. In Next.js App Router the wrapper that
package/agents/lint.md ADDED
@@ -0,0 +1,270 @@
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 lint
7
+
8
+ > Scope: checking the code you write against the installed Magma, with the ESLint and
9
+ > Stylelint rules that ship inside `@maggioli-design-system/magma`. Set them up once, when
10
+ > you install Magma, and run them after every change.
11
+
12
+ The rules make the prose of these guides executable: a prop value the component does not
13
+ take, a boolean turned "off" with `"false"`, an icon-only control without a name, a colour
14
+ painted with Tailwind's palette or a raw palette step, a hand-written dark mode. They read
15
+ the API and the tokens of the installed version, the same release as the components, so
16
+ they follow every update with nothing to keep in sync.
17
+
18
+ ## Set it up
19
+
20
+ Nothing to install from Magma: the rules are in `@maggioli-design-system/magma`, which
21
+ `magma-react` and `magma-angular` require too. The project needs ESLint 9 and Stylelint 16
22
+ (`npm i -D eslint stylelint` when it has none) and the parser of its templates:
23
+
24
+ | Templates | Parser |
25
+ | --- | --- |
26
+ | HTML | `@html-eslint/parser` |
27
+ | Angular (external `.html` templates) | `@angular-eslint/template-parser` (with angular-eslint) |
28
+ | React (JSX, TSX) | the one the project already uses |
29
+
30
+ MERGE the blocks below into the project's `eslint.config.js` and `stylelint.config.mjs`:
31
+ never replace an existing configuration. Each ESLint preset sets rules only, so it goes in
32
+ the block that parses the templates.
33
+
34
+ ### HTML and web components
35
+
36
+ ```js
37
+ // eslint.config.js
38
+ import html from '@html-eslint/parser';
39
+ import magma from '@maggioli-design-system/magma/eslint';
40
+
41
+ export default [
42
+ { files: ['**/*.html'], languageOptions: { parser: html }, ...magma.configs.recommended },
43
+ ];
44
+ ```
45
+
46
+ ### React
47
+
48
+ ```js
49
+ // eslint.config.js
50
+ import magma from '@maggioli-design-system/magma/eslint';
51
+
52
+ export default [
53
+ // ...the block that parses .jsx and .tsx
54
+ { files: ['**/*.{jsx,tsx}'], ...magma.configs.recommended },
55
+ ];
56
+ ```
57
+
58
+ The rules read both `<mds-button>` and the wrappers of `magma-react` (`<MdsButton>`), and a
59
+ `className` written as a string or a template literal.
60
+
61
+ ### Angular
62
+
63
+ ```js
64
+ // eslint.config.js, next to the blocks of angular-eslint
65
+ import angularTemplate from '@angular-eslint/template-parser';
66
+ import magma from '@maggioli-design-system/magma/eslint';
67
+
68
+ export default [
69
+ { files: ['**/*.html'], languageOptions: { parser: angularTemplate }, ...magma.configs.recommended },
70
+ ];
71
+ ```
72
+
73
+ With the inline-template processor of angular-eslint, the inline `template` of a component
74
+ is linted as an `.html` file too.
75
+
76
+ ### CSS and SCSS
77
+
78
+ ```js
79
+ // stylelint.config.mjs
80
+ export default {
81
+ extends: ['@maggioli-design-system/magma/stylelint/recommended'],
82
+ };
83
+ ```
84
+
85
+ ### Presets
86
+
87
+ - `recommended`, for a product that already exists: what is broken or not accessible is an
88
+ error, the palette and an internal custom property a warning;
89
+ - `strict` (`magma.configs.strict`, `@maggioli-design-system/magma/stylelint/strict`), for a
90
+ new product: every rule is an error.
91
+
92
+ ## Run it after writing
93
+
94
+ After every change, run ESLint on the templates you touched and Stylelint on the
95
+ stylesheets, and fix what they report before you hand the work over:
96
+
97
+ ```bash
98
+ npx eslint src
99
+ npx stylelint "src/**/*.{css,scss}"
100
+ ```
101
+
102
+ An error is something broken or not accessible; a warning of `recommended` is a colour that
103
+ does not follow the mode, the named theme and the contrast preference, or a custom property a
104
+ component may change in any release. When a rule is wrong about Magma itself, report it
105
+ ([`reporting.md`](reporting.md)) instead of disabling it.
106
+
107
+ ## Rules
108
+
109
+ | Rule | Tool | `recommended` | `strict` |
110
+ | --- | --- | --- | --- |
111
+ | [`valid-attribute-values`](#valid-attribute-values) | ESLint | error | error |
112
+ | [`no-false-boolean`](#no-false-boolean) | ESLint | error | error |
113
+ | [`accessible-name`](#accessible-name) | ESLint | error | error |
114
+ | [`no-raw-palette-classes`](#no-raw-palette-classes) | ESLint | warn | error |
115
+ | [`no-color-scheme-override`](#no-color-scheme-override) | Stylelint | error | error |
116
+ | [`no-raw-color`](#no-raw-color) | Stylelint | warning | error |
117
+ | [`no-internal-tokens`](#no-internal-tokens) | ESLint, Stylelint | warn | error |
118
+
119
+ The ESLint rules are named `magma/<rule>` once the preset is loaded, the Stylelint rules
120
+ `magma/<rule>` once the plugin (`@maggioli-design-system/magma/stylelint`) is.
121
+
122
+ ### valid-attribute-values
123
+
124
+ A prop whose type is a union of literals takes one of them (the values each prop takes are
125
+ in the component's `AGENTS.md`).
126
+
127
+ ```html
128
+ <!-- INCORRECT: tone takes "box", "strong" or "weak" -->
129
+ <mds-banner tone="outline">Saved</mds-banner>
130
+
131
+ <!-- CORRECT -->
132
+ <mds-banner tone="weak">Saved</mds-banner>
133
+ ```
134
+
135
+ A value bound to an expression (`[tone]="tone"`, `tone={tone}`) is known only at run time and
136
+ is not checked; a literal binding (`[tone]="'box'"`) is.
137
+
138
+ ### no-false-boolean
139
+
140
+ A boolean prop is turned off by removing its attribute
141
+ ([`conventions.md`](conventions.md#boolean-disabled-and-await-props)): a form-associated
142
+ component reads any value as on, `"false"` included.
143
+
144
+ ```html
145
+ <!-- INCORRECT -->
146
+ <mds-button disabled="false">Save</mds-button>
147
+
148
+ <!-- CORRECT -->
149
+ <mds-button>Save</mds-button>
150
+ ```
151
+
152
+ Reported: the string `"false"` in any form, and an Angular attribute binding
153
+ (`[attr.disabled]="false"`), which writes the attribute `"false"`. Bind a real boolean to the
154
+ property instead: `<MdsButton disabled={isDisabled}>`, `[disabled]="isDisabled"`.
155
+
156
+ ### accessible-name
157
+
158
+ A component that takes an `icon` next to a `label` or a default slot, shown with its icon
159
+ alone, needs a name: without `label` or `aria-label`, `mds-button` is announced by the slug of
160
+ its icon, which names the icon and not the action. An `mds-img` with a `src` and no `alt` is
161
+ named after its file: describe the image, or set `alt=""` when it is decorative.
162
+
163
+ ```html
164
+ <!-- INCORRECT -->
165
+ <mds-button icon="mi/baseline/send"></mds-button>
166
+ <mds-img src="/img/report-2024.jpg"></mds-img>
167
+
168
+ <!-- CORRECT -->
169
+ <mds-button icon="mi/baseline/send" label="Send"></mds-button>
170
+ <mds-img src="/img/report-2024.jpg" alt="Annual report 2024"></mds-img>
171
+ ```
172
+
173
+ Left alone, because one element does not show its name: an element with an `id` (an
174
+ `mds-tooltip` with `relation="label"`, or an `aria-labelledby` elsewhere, may name it) and
175
+ one that spreads its props (`{...props}`).
176
+
177
+ ### no-raw-palette-classes
178
+
179
+ A colour class names a role ([`color.md`](color.md)), never Tailwind's palette (`bg-white`,
180
+ `text-gray-700`), which ignores Magma, nor a raw Magma step (`bg-tone-neutral-03`,
181
+ `border-surface-neutral-default`), which follows the mode only. Variants, `!` and opacity are
182
+ read through: `dark:hover:bg-white/50` is `bg-white`.
183
+
184
+ ```html
185
+ <!-- INCORRECT -->
186
+ <section class="bg-white text-gray-700">...</section>
187
+
188
+ <!-- CORRECT -->
189
+ <section class="bg-surface-raised text-fg-default">...</section>
190
+ ```
191
+
192
+ Not reported: `label-*` and `brand-*`, for colour that encodes data, and the seed of a tone,
193
+ the pure extreme of the mode. Only the classes written in the template are read: a class
194
+ built at run time (`clsx(...)`, an Angular `[ngClass]`) is not.
195
+
196
+ ### no-color-scheme-override
197
+
198
+ A `prefers-color-scheme` media query follows the OS, not the mode the user picked
199
+ (`mds-pref-mode`). The roles follow both: paint with them, and dark mode comes with no
200
+ query. For a deliberate choice that differs per mode, use the `dark` variant of the Magma
201
+ Tailwind theme, which follows the Magma mode ([`theming.md`](theming.md)).
202
+
203
+ ```css
204
+ /* INCORRECT */
205
+ @media (prefers-color-scheme: dark) {
206
+ .panel {
207
+ background: rgb(var(--magma-surface-overlay));
208
+ }
209
+ }
210
+
211
+ /* CORRECT */
212
+ .panel {
213
+ background: rgb(var(--magma-surface-raised));
214
+ }
215
+ ```
216
+
217
+ ### no-raw-color
218
+
219
+ A hex, `rgb()`, `hsl()`, `oklch()` or other colour literal where a role belongs. A colour that
220
+ names a token is fine (`rgb(var(--magma-text-muted) / 0.5)`), and so are the keywords
221
+ (`currentColor`, `transparent`). In a shadow the hint is the shadow ink,
222
+ `rgb(var(--magma-shadow-ink) / <alpha>)`. Not read: `mask` and `mask-image`, and the
223
+ `initial-value` of an `@property`.
224
+
225
+ Not reported either: the public custom properties marked **Static** in a component's
226
+ `AGENTS.md`, which take a colour of their own, not a role (the skin of an illustration, the
227
+ cover of a book from its catalogue record):
228
+
229
+ ```css
230
+ mds-emoji[name='simi'] {
231
+ --mds-emoji-simi-skin: #f5c8a0;
232
+ }
233
+ ```
234
+
235
+ Any other colour that is not a role keeps its literal under a disable comment that says why:
236
+ `/* stylelint-disable-next-line magma/no-raw-color -- <the reason> */`.
237
+
238
+ ### no-internal-tokens
239
+
240
+ An `--mds-*` custom property, set or read, that no component promises. A component's
241
+ `AGENTS.md` lists its public custom properties, the only ones a product sets; the others are
242
+ internal, its implementation, and may change or go in any release without notice. A name no
243
+ component documents is reported too. Stylelint reads the stylesheets; ESLint reads the
244
+ inline styles of the templates: a `style` attribute, a React `style={{ '--mds-<name>': ... }}`
245
+ object, an Angular `[style.--mds-<name>]` binding.
246
+
247
+ ```css
248
+ /* INCORRECT: internal, it may change in any release */
249
+ mds-chip {
250
+ --mds-chip-icon-color: rgb(var(--magma-accent-fg));
251
+ }
252
+
253
+ /* CORRECT: a public custom property of the chip */
254
+ mds-chip {
255
+ --mds-chip-icon-background: rgb(var(--magma-accent-surface));
256
+ }
257
+ ```
258
+
259
+ When no public custom property does what you need, use a prop, a documented part, or a role
260
+ on the markup around the component; if none does, ask for one ([`reporting.md`](reporting.md))
261
+ rather than setting an internal one.
262
+
263
+ ## Settings
264
+
265
+ The rules need no settings: they read the `documentation.json` beside them in the installed
266
+ `magma`, and the tokens of the `design-tokens` and `styles` it depends on. To check against
267
+ other files, set their paths under `settings.magma` in the ESLint configuration (relative to
268
+ `root`, the project by default): `documentation`, `tokens`, `consumption`. The Stylelint rules
269
+ take `root` and `documentation` as secondary options:
270
+ `'magma/no-internal-tokens': [true, { documentation: './documentation.json' }]`.
package/agents/mcp.md ADDED
@@ -0,0 +1,103 @@
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 MCP server
7
+
8
+ > Scope: asking Magma precise questions while you work, through the MCP server that ships
9
+ > inside `@maggioli-design-system/magma`. Set it up once, when you install Magma; then reach
10
+ > for its tools instead of reading whole files.
11
+
12
+ The server answers from the version installed in the project: the components and their
13
+ API, the roles and tokens with what each one is for, the classes of the Magma Tailwind
14
+ theme, the icon slugs that exist, the sections of these guides, and the lint
15
+ ([`lint.md`](lint.md)) on a snippet before it is written. It is read-only: no tool changes
16
+ a file.
17
+
18
+ ## Set it up
19
+
20
+ Nothing to install: the server is the `magma-mcp` command of `@maggioli-design-system/magma`,
21
+ which `magma-react` and `magma-angular` require too. The agent's client starts it on stdio
22
+ from the project's root; MERGE the entry into the client's configuration, never replace
23
+ the file.
24
+
25
+ ### Claude Code: the Magma plugin
26
+
27
+ In Claude Code, the Magma plugin starts the server for you and adds the skills that run a
28
+ whole job: `/magma:setup`, `/magma:review`, `/magma:migrate`, and `ui`, which Claude loads by
29
+ itself for UI work. Register it for the whole team in the project's committed
30
+ `.claude/settings.json`; Claude Code loads it once the folder is trusted, in the terminal and
31
+ in the desktop app, which reads the same settings:
32
+
33
+ ```json
34
+ {
35
+ "extraKnownMarketplaces": {
36
+ "magma": { "source": { "source": "github", "repo": "magma-design-system/magma" }, "autoUpdate": true }
37
+ },
38
+ "enabledPlugins": { "magma@magma": true }
39
+ }
40
+ ```
41
+
42
+ On one machine only, in a Claude Code session in the terminal:
43
+ `/plugin marketplace add magma-design-system/magma`, then `/plugin install magma@magma`.
44
+
45
+ With the plugin, do not also add the `.mcp.json` entry below: the server would run twice.
46
+
47
+ ### Claude Code without the plugin, and the other clients
48
+
49
+ Claude Code, `.mcp.json` at the project root (committed, so the whole team gets it; Claude
50
+ Code asks once before it starts a project server):
51
+
52
+ ```json
53
+ {
54
+ "mcpServers": {
55
+ "magma": { "command": "npx", "args": ["--no", "magma-mcp"] }
56
+ }
57
+ }
58
+ ```
59
+
60
+ VS Code (GitHub Copilot), `.vscode/mcp.json`:
61
+
62
+ ```json
63
+ {
64
+ "servers": {
65
+ "magma": { "type": "stdio", "command": "npx", "args": ["--no", "magma-mcp"] }
66
+ }
67
+ }
68
+ ```
69
+
70
+ Cursor, `.cursor/mcp.json`: the same entry as Claude Code, under `mcpServers`.
71
+
72
+ `npx --no magma-mcp` runs the installed version, so the answers always match the components
73
+ the project uses. Keep `--no`: without it, a client that starts the server before
74
+ `npm install` (a fresh clone with the configuration committed) lets `npx` download and run
75
+ whatever package the npm registry has under that name; with it, `npx` stops instead. When the
76
+ client starts servers elsewhere than the project's root, pass it:
77
+ `"args": ["--no", "magma-mcp", "--root", "<the project's folder>"]`.
78
+
79
+ ## The tools
80
+
81
+ | Tool | Ask it | Instead of |
82
+ | --- | --- | --- |
83
+ | `find_component` | which component fits a need ("a date range picker") | reading the catalogue |
84
+ | `get_component` | the API of one component: props with their values and default, events, methods, slots, parts, public CSS custom properties | reading its `AGENTS.md` |
85
+ | `get_usage` | how HTML, React or Angular writes it: import, props, events (`onMdsInputChange`, `(mdsInputChange)`) | guessing the names |
86
+ | `list_tokens` | the role for a need ("secondary text"), with its value and class | reading [`color.md`](color.md) |
87
+ | `suggest_role` | the role for a colour, a raw class or a palette step | picking a role by eye |
88
+ | `explain_class` | what a class does with the Magma theme | the trap of the scale: `p-4` is 0.01rem, `p-400` is 1rem |
89
+ | `find_icon` | a slug that exists, by meaning, or whether a slug exists | an `icon="..."` that renders nothing |
90
+ | `get_guide` | one section of a guide | reading the whole file |
91
+ | `check_markup` | whether a snippet passes the lint, before it is written | a lint run after the fact |
92
+ | `check_setup` | what the Magma integration of the project misses | checking the install steps by hand |
93
+
94
+ `check_markup` uses the ESLint, Stylelint and template parsers the project installed with
95
+ the lint ([`lint.md`](lint.md)).
96
+
97
+ ## When to call them
98
+
99
+ - Before writing a component: `find_component`, then `get_component` and `get_usage`.
100
+ - Before a colour, a spacing or a class: `list_tokens`, `suggest_role`, `explain_class`.
101
+ - Before an icon: `find_icon`.
102
+ - After writing: `check_markup`, then the project's lint ([`lint.md`](lint.md)).
103
+ - After the bootstrap, or when something does not render: `check_setup`.
package/agents/theming.md CHANGED
@@ -28,6 +28,14 @@ let the user choose, each preference has its component - `mds-pref-mode`,
28
28
  `mds-pref-language` - and `mds-pref` groups them in one panel; they write the classes and
29
29
  remember the choice. Never write `color-scheme` or dark-mode media queries by hand.
30
30
 
31
+ Tailwind's `dark:` follows the same mode: the Magma Tailwind theme brings a `dark`
32
+ variant that turns on where the palette turns dark - `pref-mode-dark`, `pref-mode-system`
33
+ or no controller on a dark OS, a theme locked to dark (`pref-theme-scheme-dark`) - and
34
+ never under `pref-mode-light` or a theme locked to light (`pref-theme-scheme-light`). The
35
+ roles flip without it, so `dark:` is never needed to correct a colour: use it only for a
36
+ deliberate per-mode choice. It matches the light DOM only (pages, layouts, stories);
37
+ inside a component's shadow root it matches nothing.
38
+
31
39
  ## Named themes
32
40
 
33
41
  A named theme retints the whole neutral scaffolding of the page at once - surfaces,
@@ -15,6 +15,7 @@ export { MdsBadge } from "./mds-badge.js";
15
15
  export { MdsBanner } from "./mds-banner.js";
16
16
  export { MdsBenchmarkBar } from "./mds-benchmark-bar.js";
17
17
  export { MdsBibliography } from "./mds-bibliography.js";
18
+ export { MdsBook } from "./mds-book.js";
18
19
  export { MdsBreadcrumbItem } from "./mds-breadcrumb-item.js";
19
20
  export { MdsBreadcrumb } from "./mds-breadcrumb.js";
20
21
  export { MdsButtonDropdown } from "./mds-button-dropdown.js";
@@ -15,6 +15,7 @@ export { MdsBadge } from "./mds-badge.server.js";
15
15
  export { MdsBanner } from "./mds-banner.server.js";
16
16
  export { MdsBenchmarkBar } from "./mds-benchmark-bar.server.js";
17
17
  export { MdsBibliography } from "./mds-bibliography.server.js";
18
+ export { MdsBook } from "./mds-book.server.js";
18
19
  export { MdsBreadcrumbItem } from "./mds-breadcrumb-item.server.js";
19
20
  export { MdsBreadcrumb } from "./mds-breadcrumb.server.js";
20
21
  export { MdsButtonDropdown } from "./mds-button-dropdown.server.js";
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { createComponent } from '@stencil/react-output-target/runtime';
3
+ import React from 'react';
4
+ import { MdsBook as MdsBookElement, defineCustomElement as defineMdsBook } from "@maggioli-design-system/magma/dist/components/mds-book.js";
5
+ export const MdsBook = /*@__PURE__*/ createComponent({
6
+ tagName: 'mds-book',
7
+ elementClass: MdsBookElement,
8
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
9
+ react: React,
10
+ events: {},
11
+ defineCustomElement: defineMdsBook
12
+ });
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { createComponent } from '@stencil/react-output-target/ssr';
3
+ // @ts-ignore - ignore potential type issues as the project is importing itself
4
+ import * as clientComponents from "@maggioli-design-system/magma-react";
5
+ export const serializeShadowRoot = "declarative-shadow-dom";
6
+ export const MdsBook = /*@__PURE__*/ createComponent({
7
+ tagName: 'mds-book',
8
+ properties: {
9
+ alt: 'alt',
10
+ author: 'author',
11
+ binding: 'binding',
12
+ format: 'format',
13
+ loading: 'loading',
14
+ name: 'name',
15
+ pages: 'pages',
16
+ pose: 'pose',
17
+ publisher: 'publisher',
18
+ src: 'src'
19
+ },
20
+ hydrateModule: typeof window === 'undefined' ? import('@maggioli-design-system/magma/hydrate') : undefined,
21
+ clientModule: clientComponents.MdsBook,
22
+ serializeShadowRoot
23
+ });
@@ -14,6 +14,7 @@ export { MdsBadge } from "./mds-badge.js";
14
14
  export { MdsBanner } from "./mds-banner.js";
15
15
  export { MdsBenchmarkBar } from "./mds-benchmark-bar.js";
16
16
  export { MdsBibliography } from "./mds-bibliography.js";
17
+ export { MdsBook } from "./mds-book.js";
17
18
  export { MdsBreadcrumbItem } from "./mds-breadcrumb-item.js";
18
19
  export { MdsBreadcrumb } from "./mds-breadcrumb.js";
19
20
  export { MdsButtonDropdown } from "./mds-button-dropdown.js";
@@ -16,6 +16,7 @@ export { MdsBadge } from "./mds-badge.server.js";
16
16
  export { MdsBanner } from "./mds-banner.server.js";
17
17
  export { MdsBenchmarkBar } from "./mds-benchmark-bar.server.js";
18
18
  export { MdsBibliography } from "./mds-bibliography.server.js";
19
+ export { MdsBook } from "./mds-book.server.js";
19
20
  export { MdsBreadcrumbItem } from "./mds-breadcrumb-item.server.js";
20
21
  export { MdsBreadcrumb } from "./mds-breadcrumb.server.js";
21
22
  export { MdsButtonDropdown } from "./mds-button-dropdown.server.js";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This file was automatically generated by the Stencil React Output Target.
3
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
+ */
5
+ import type { StencilReactComponent } from '@stencil/react-output-target/runtime';
6
+ import type { Components } from "@maggioli-design-system/magma/dist/components";
7
+ import { MdsBook as MdsBookElement } from "@maggioli-design-system/magma/dist/components/mds-book.js";
8
+ export type MdsBookEvents = NonNullable<unknown>;
9
+ export declare const MdsBook: StencilReactComponent<MdsBookElement, MdsBookEvents, Components.MdsBook>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This file was automatically generated by the Stencil React Output Target.
3
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
+ */
5
+ import type { StencilReactComponent } from '@stencil/react-output-target/runtime';
6
+ import { type SerializeShadowRootOptions } from '@stencil/react-output-target/ssr';
7
+ import type { Components } from "@maggioli-design-system/magma/dist/components";
8
+ import { MdsBook as MdsBookElement } from "@maggioli-design-system/magma/dist/components/mds-book.js";
9
+ export declare const serializeShadowRoot: SerializeShadowRootOptions;
10
+ export type MdsBookEvents = NonNullable<unknown>;
11
+ export declare const MdsBook: StencilReactComponent<MdsBookElement, MdsBookEvents, Components.MdsBook>;
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@maggioli-design-system/magma-react",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
+ "license": "MIT",
4
5
  "main": "dist/components.js",
5
6
  "module": "dist/components.js",
6
7
  "types": "dist/types/components.d.ts",
@@ -34,7 +35,7 @@
34
35
  "access": "public"
35
36
  },
36
37
  "dependencies": {
37
- "@maggioli-design-system/magma": "2.5.0",
38
+ "@maggioli-design-system/magma": "2.6.0",
38
39
  "@stencil/react-output-target": "1.6.5"
39
40
  },
40
41
  "repository": {