@muibook/components 19.5.1 → 19.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/dist/esm/agent/keywords/index.js +9 -1
- package/dist/esm/agent/prompts/index.js +5 -4
- package/dist/esm/components/mui-body/index.js +57 -14
- package/dist/esm/components/mui-form-message/index.js +21 -13
- package/dist/esm/components/mui-heading/index.js +46 -10
- package/dist/esm/components/mui-hint/index.js +2 -2
- package/dist/esm/components/mui-rule/index.js +8 -1
- package/dist/esm/components/mui-slat/slat/index.js +9 -1
- package/dist/esm/css/mui-brand.css +3 -1
- package/dist/esm/css/mui-tokens.css +3 -1
- package/dist/esm/custom-elements.json +780 -746
- package/dist/esm/dynamic-attrs.json +1 -1
- package/dist/esm/tokens/js/index.js +119 -118
- package/dist/types/components/mui-body/api.d.ts +9 -2
- package/dist/types/tokens/js/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"kind": "javascript-module",
|
|
111
|
-
"path": "src/components/mui-
|
|
111
|
+
"path": "src/components/mui-avatar/doc.ts",
|
|
112
112
|
"declarations": [
|
|
113
113
|
{
|
|
114
114
|
"kind": "variable",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"type": {
|
|
117
117
|
"text": "MuiDocs"
|
|
118
118
|
},
|
|
119
|
-
"default": "{
|
|
119
|
+
"default": "{ Avatar: { title: \"Avatar\", description: \"Avatar components are used to represent users or entities visually, often through images, initials, or icons.\", hero: [\"https://images.ctfassets.net/i5uwscj4pkk2/2Qj1aPRsHVZZs6eF8XO6XC/54dd3c04d5a0ac379050cfa6f45d9732/Avatar_-_Home_Image.png\"], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=1498-15366&t=2P2nhh7B70fl6xQ4-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/inputs-avatar--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-avatar/index.ts\"], website: [\"https://muibook.com/#/avatar\"], guides: [\"https://guides.muibook.com/avatar\"], usage: { list: [ \"Represent a user or entity visually in lists, chats, comments, or profiles.\", \"Display a profile photo, initials, or icon associated with a person or object.\", \"Use in compact UI elements where space is limited (e.g., tables, cards).\", \"Pair with user metadata (name, role, status) for context.\", \"Indicate presence, status, or selection in collaborative interfaces.\", \"Avatar can be slotted into Button for identity-led actions such as switching video platform profiles, opening an account menu, or accessing workspace controls.\", \"Use an avatar-only button when the avatar itself is the visible trigger for a profile dropdown, account settings drawer, workspace switcher, or compact dialog action.\", \"In global app headers, avatar-only buttons are a good fit for account settings, billing, support, or team context menus.\", \"When Avatar is the only content inside Button, let the avatar define the final size and treat Button as the interactive wrapper.\", ], }, accessibility: { designerList: [ \"Avatars should always include an accessible label via the label attribute to ensure screen readers can convey their purpose.\", \"When using images, ensure they are clear and appropriately sized for the avatar component.\", \"For avatars representing users, consider using initials or icons when images are not available to maintain visual consistency.\", ], engineerList: [ \"Avatars should always include an accessible label via the label attribute to ensure screen readers can convey their purpose.\", \"When using images, ensure they are clear and appropriately sized for the avatar component.\", \"For avatars representing users, consider using initials or icons when images are not available to maintain visual consistency.\", ], }, anatomy: { image: \"\", list: [ \"Image / Initials / Icon: The visible identity marker shown inside the avatar.\", \"Label: Accessible name announced to assistive technology.\", \"Status or Context (optional): Additional meaning can be conveyed through surrounding UI such as presence, role, or action context.\", ], }, variants: { items: [ { key: \"image\", title: \"Image\", description: \"Use when a profile or entity image is available and recognition matters.\", image: \"\", }, { key: \"initials\", title: \"Initials\", description: \"Use as the default fallback when no image is present but the entity has a clear name.\", image: \"\", }, { key: \"icon\", title: \"Icon\", description: \"Use for generic entities, products, or utility actions where a person-specific identity is not required.\", image: \"\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how Avatar fits into identity, communication, and account-oriented UI patterns.\", items: [ { key: \"account-menu\", name: \"Account Menu Trigger\", description: \"An avatar-only button used in a global app header to open account, billing, or support actions.\", image: \"\", }, { key: \"profile-switcher\", name: \"Profile Switcher\", description: \"A compact avatar trigger used to switch between people, channels, or workspace identities in a media or collaboration product.\", image: \"\", }, ], }, related: { items: [ { name: \"Button\", link: \"https://guides.muibook.com/button\", }, { name: \"Chip\", link: \"https://guides.muibook.com/chip\", }, { name: \"Slat\", link: \"https://guides.muibook.com/slat\", }, ], }, rules: [ { heading: \"Use the right identity source\", description: \"Choose the avatar content type based on confidence in the identity data and the importance of recognition.\", doContent: [ { description: \"Use a real image when recognition matters, initials when a name is available, and an icon for generic or product-level identities.\", image: \"\", }, ], dontContent: [ { description: \"Do not force decorative imagery or inconsistent fallback logic when the identity is unclear.\", image: \"\", }, ], }, ], behaviour: { list: [ \"Avatar is presentational by default and becomes interactive when wrapped by Button or another interactive parent.\", \"When used inside an avatar-only button, Avatar owns the visible size while Button owns interaction semantics, focus, and disabled behaviour.\", ], }, writing: { list: [ \"Provide a meaningful label so assistive technology can identify the person, entity, or action context represented by the avatar.\", ], }, }, }"
|
|
120
120
|
}
|
|
121
121
|
],
|
|
122
122
|
"exports": [
|
|
@@ -125,84 +125,174 @@
|
|
|
125
125
|
"name": "muiDocs",
|
|
126
126
|
"declaration": {
|
|
127
127
|
"name": "muiDocs",
|
|
128
|
-
"module": "src/components/mui-
|
|
128
|
+
"module": "src/components/mui-avatar/doc.ts"
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
]
|
|
132
132
|
},
|
|
133
133
|
{
|
|
134
134
|
"kind": "javascript-module",
|
|
135
|
-
"path": "src/components/mui-
|
|
135
|
+
"path": "src/components/mui-avatar/index.ts",
|
|
136
136
|
"declarations": [
|
|
137
137
|
{
|
|
138
138
|
"kind": "class",
|
|
139
|
-
"description": "
|
|
140
|
-
"name": "
|
|
139
|
+
"description": "Displays an image, initials, or slotted icon for a represented person or entity.",
|
|
140
|
+
"name": "MuiAvatar",
|
|
141
141
|
"attributes": [
|
|
142
142
|
{
|
|
143
|
-
"name": "
|
|
143
|
+
"name": "label",
|
|
144
144
|
"type": {
|
|
145
|
-
"text": "
|
|
145
|
+
"text": "string"
|
|
146
146
|
},
|
|
147
|
-
"
|
|
148
|
-
"description": "Feedback intent. `success` normalises to `positive`; `error` normalises to `attention`."
|
|
147
|
+
"description": "Accessible name and initials source when no image or slotted content is present."
|
|
149
148
|
},
|
|
150
149
|
{
|
|
151
|
-
"name": "
|
|
150
|
+
"name": "image",
|
|
152
151
|
"type": {
|
|
153
152
|
"text": "string"
|
|
154
153
|
},
|
|
155
|
-
"description": "
|
|
154
|
+
"description": "Image URL used when no slotted content is supplied."
|
|
156
155
|
},
|
|
157
156
|
{
|
|
158
|
-
"name": "
|
|
157
|
+
"name": "size",
|
|
159
158
|
"type": {
|
|
160
|
-
"text": "
|
|
159
|
+
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
161
160
|
},
|
|
162
|
-
"default": "
|
|
163
|
-
"description": "
|
|
161
|
+
"default": "medium",
|
|
162
|
+
"description": "Avatar dimensions. Defaults map `xx-small` to 24px and `x-small` to 32px."
|
|
164
163
|
},
|
|
165
164
|
{
|
|
166
|
-
"name": "
|
|
165
|
+
"name": "background",
|
|
167
166
|
"type": {
|
|
168
|
-
"text": "
|
|
167
|
+
"text": "string"
|
|
169
168
|
},
|
|
170
|
-
"default": "
|
|
171
|
-
"description": "
|
|
169
|
+
"default": "neutral",
|
|
170
|
+
"description": "Named semantic or profile color background."
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"name": "background-color",
|
|
174
|
+
"type": {
|
|
175
|
+
"text": "string"
|
|
176
|
+
},
|
|
177
|
+
"description": "Custom CSS color overriding the named background treatment."
|
|
172
178
|
}
|
|
173
179
|
],
|
|
174
180
|
"superclass": {
|
|
175
181
|
"name": "HTMLElement"
|
|
176
182
|
},
|
|
177
|
-
"tagName": "mui-
|
|
183
|
+
"tagName": "mui-avatar",
|
|
178
184
|
"customElement": true,
|
|
179
185
|
"slots": [
|
|
180
186
|
{
|
|
181
187
|
"name": "",
|
|
182
|
-
"description": "
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
"name": "action",
|
|
186
|
-
"description": "Optional `mui-button` or `mui-link` action aligned and sized for the alert."
|
|
188
|
+
"description": "Optional icon or custom visible avatar content."
|
|
187
189
|
}
|
|
188
190
|
],
|
|
189
191
|
"events": [],
|
|
190
192
|
"cssProperties": [
|
|
191
193
|
{
|
|
192
|
-
"name": "--
|
|
193
|
-
"description": "
|
|
194
|
+
"name": "--avatar-xx-small",
|
|
195
|
+
"description": "Dimension for `size=\"xx-small\"`; defaults to 24px."
|
|
194
196
|
},
|
|
195
197
|
{
|
|
196
|
-
"name": "--
|
|
197
|
-
"description": "
|
|
198
|
+
"name": "--avatar-x-small",
|
|
199
|
+
"description": "Dimension for `size=\"x-small\"`; defaults to 32px."
|
|
198
200
|
},
|
|
199
201
|
{
|
|
200
|
-
"name": "--
|
|
201
|
-
"description": "
|
|
202
|
+
"name": "--avatar-background-override",
|
|
203
|
+
"description": "Overrides the resolved avatar background color."
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
],
|
|
208
|
+
"exports": [
|
|
209
|
+
{
|
|
210
|
+
"kind": "custom-element-definition",
|
|
211
|
+
"name": "mui-avatar",
|
|
212
|
+
"declaration": {
|
|
213
|
+
"name": "MuiAvatar",
|
|
214
|
+
"module": "src/components/mui-avatar/index.ts"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"kind": "javascript-module",
|
|
221
|
+
"path": "src/components/mui-badge/doc.ts",
|
|
222
|
+
"declarations": [
|
|
223
|
+
{
|
|
224
|
+
"kind": "variable",
|
|
225
|
+
"name": "muiDocs",
|
|
226
|
+
"type": {
|
|
227
|
+
"text": "MuiDocs"
|
|
228
|
+
},
|
|
229
|
+
"default": "{ Badge: { title: \"Badge\", description: \"Badges are non-interactive and indicate counts or statuses.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/3uhL6lnJTEY4LtVyMA3og5/7844fa7e691b9f97e3c335e1a978e881/Badge_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-1108&t=FSv3FEahG8VQW1FZ-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/feedback-badge--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-badge/index.ts\"], website: [\"https://muibook.com/#/badge\"], guides: [\"https://guides.muibook.com/badge\"], usage: { list: [ \"Show the number of unread notifications – E.g. '4' unread messages\", \"Indicate the status of a user – E.g. Online, Busy, or Away\", \"Use size variants (xx-small, x-small, small, medium, large) to match surrounding component scale.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"default\", title: \"default\", description: \"Used for data that is visually in the foreground.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3Xgz2qoLs8NACel4fRr9iC/52699b5763f1efd4853a9ffb991b3ff3/badge-default.png\", }, { key: \"positive\", title: \"positive\", description: \"For positive or completed statuses.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/65RMIuUEUIzusbSAwqLQcI/63edb290041c708fc69d0d27fc49e25d/badge-positive.png\", }, { key: \"warning\", title: \"warning\", description: \"For urgent or important statuses.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5AFfOShVyTEKO1wgIe6rYv/e809c76ddabdfd9789adc31a26becf83/badge-warning.png\", }, { key: \"error\", title: \"error\", description: \"Represents an error, issue or critical state.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/E0jtn7WSTwYligMqSNl0k/c3c041e025c3725682ec12eb3ab98400/badge-error.png\", }, { key: \"overlay\", title: \"overlay\", description: \"For labels placed on media/image surfaces with stronger contrast.\", image: \"\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"outcome-based-roadmap\", name: \"Outcome-Based Roadmap\", description: \"Example of an Outcome-Based Roadmap page showing objectives organised into Upcoming, Doing, and Finished columns. Progress bars indicate the completion status of each task, providing a clear view of overall progress.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3w5htPtfEz7QMCH9alVcwf/de35725fb4542b891bd695b900195291/Outcomes-Progress-Composition.png\", }, { key: \"compliance-dashboard-table\", name: \"Compliance Dashboard Table\", description: \"This example shows a desktop view of a table used within an accounting compliance dashboard.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3vUKA5C5iJ3LvjLwf2WiO9/274ffe423dbe828244294f6809172ce1/table-composition-compliance-dashboard.png\", }, { key: \"carousel-showcase\", name: \"Carousel Showcase\", description: \"This example from the GuruSuite website demonstrates the carousel used to showcase two of the products on offer.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2TaRRm351HyujF9mT2w1wH/3958f69e939d20618751742130dc5f06/GuruSuite-Carousel-Composition.png\", }, { key: \"outcomes-roadmap-dashboard\", name: \"Outcomes Roadmap Dashboard\", description: \"Example of the responsive component in the Outcomes Roadmap Dashboard, demonstrating layout, title, and padding adjustments across breakpoints.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3FsXandRr1Z9BAKv33twxT/b0d0e4a8b6237bf7d38660111bceb8ab/responsive-composition.gif\", }, ], }, related: { items: [ { name: \"Button\", link: \"https://guides.muibook.com/button\", }, { name: \"Link\", link: \"https://guides.muibook.com/link\", }, { name: \"Tab Bar\", link: \"https://guides.muibook.com/tab-bar\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
230
|
+
}
|
|
231
|
+
],
|
|
232
|
+
"exports": [
|
|
233
|
+
{
|
|
234
|
+
"kind": "js",
|
|
235
|
+
"name": "muiDocs",
|
|
236
|
+
"declaration": {
|
|
237
|
+
"name": "muiDocs",
|
|
238
|
+
"module": "src/components/mui-badge/doc.ts"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"kind": "javascript-module",
|
|
245
|
+
"path": "src/components/mui-badge/index.ts",
|
|
246
|
+
"declarations": [
|
|
247
|
+
{
|
|
248
|
+
"kind": "class",
|
|
249
|
+
"description": "Displays compact status or metadata labels with semantic variants and size scaling.",
|
|
250
|
+
"name": "MuiBadge",
|
|
251
|
+
"attributes": [
|
|
252
|
+
{
|
|
253
|
+
"name": "variant",
|
|
254
|
+
"type": {
|
|
255
|
+
"text": "\"neutral\" | \"positive\" | \"warning\" | \"attention\" | \"overlay\""
|
|
256
|
+
},
|
|
257
|
+
"default": "neutral",
|
|
258
|
+
"description": "Sets the badge intent style."
|
|
202
259
|
},
|
|
203
260
|
{
|
|
204
|
-
"name": "
|
|
205
|
-
"
|
|
261
|
+
"name": "size",
|
|
262
|
+
"type": {
|
|
263
|
+
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
264
|
+
},
|
|
265
|
+
"default": "medium",
|
|
266
|
+
"description": "Controls the badge scale."
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"name": "usage",
|
|
270
|
+
"type": {
|
|
271
|
+
"text": "\"slat-end\""
|
|
272
|
+
},
|
|
273
|
+
"description": "Applies layout-specific styling for supported parent patterns."
|
|
274
|
+
}
|
|
275
|
+
],
|
|
276
|
+
"superclass": {
|
|
277
|
+
"name": "HTMLElement"
|
|
278
|
+
},
|
|
279
|
+
"tagName": "mui-badge",
|
|
280
|
+
"customElement": true,
|
|
281
|
+
"slots": [
|
|
282
|
+
{
|
|
283
|
+
"name": "",
|
|
284
|
+
"description": "Badge text content."
|
|
285
|
+
}
|
|
286
|
+
],
|
|
287
|
+
"events": [],
|
|
288
|
+
"cssProperties": [
|
|
289
|
+
{
|
|
290
|
+
"name": "--badge-radius",
|
|
291
|
+
"description": "Controls the badge corner radius."
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"name": "--badge-font-weight",
|
|
295
|
+
"description": "Controls the badge text weight."
|
|
206
296
|
}
|
|
207
297
|
]
|
|
208
298
|
}
|
|
@@ -210,10 +300,10 @@
|
|
|
210
300
|
"exports": [
|
|
211
301
|
{
|
|
212
302
|
"kind": "custom-element-definition",
|
|
213
|
-
"name": "mui-
|
|
303
|
+
"name": "mui-badge",
|
|
214
304
|
"declaration": {
|
|
215
|
-
"name": "
|
|
216
|
-
"module": "src/components/mui-
|
|
305
|
+
"name": "MuiBadge",
|
|
306
|
+
"module": "src/components/mui-badge/index.ts"
|
|
217
307
|
}
|
|
218
308
|
}
|
|
219
309
|
]
|
|
@@ -228,7 +318,7 @@
|
|
|
228
318
|
"type": {
|
|
229
319
|
"text": "MuiDocs"
|
|
230
320
|
},
|
|
231
|
-
"default": "{ Body: { title: \"Body\", description: \"Use the Body component for clear and readable paragraph text across the UI. It’s ideal for longer-form content such as descriptions, explanations, or supporting information. Variant styles are also available for status messages and other contextual needs.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/GGmtyOnGHBMGMrvkPTWSL/2c6ff12702d76c1393b2315b19728aa3/Body_-_Home_Image.png\", ], figma: [\"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-892&t=fSFYVey9aCoE5oQa-1\"], storybook: [\"https://stories.muibook.com/?path=/docs/content-body--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-body/index.ts\"], website: [\"https://muibook.com/#/button\"], guides: [\"https://guides.muibook.com/body\"], usage: { list: [ \"Use for supporting content or descriptions.\", \"Use states like Default, Success, Warning and Error to align with feedback or messaging contexts.\", \"Match the body size to the layout’s overall design and readability.\", \"Adjust the size by selecting x-small, small, medium or large.\", \"Use before/after slots to compose inline icons, badges, or helper UI with body text.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"default\", title: \"Default\", description: \"Standard body text with x-small, small, medium and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2NAalFsBAkeBz69hO093eb/b9390132c50df11749aaa47dafdb2b93/default.png\", }, { key: \"optional\", title: \"Optional\", description: \"Optional text is visually lighter, providing subtle contrast to Standard body text. It comes in four sizes—x-small, small, medium, and large—for tailored readability. Font weights of regular and bold are also available, giving flexibility for emphasis or hierarchy.\", image: \"\", }, { key: \"success\", title: \"Success\", description: \"Indicates positive feedback with the option of x-small, small, medium and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/8RChklU9yHSY7PTJH0JLD/c72f630006f2be4e7f1d850d7510c92f/success.png\", }, { key: \"warning\", title: \"Warning\", description: \"Highlights warning messages with the option of x-small, small, medium, and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2UJaVEXU2fbKPi3L7afjt/e82b06ef54e92cf2d6f6e984d8a27079/warning.png\", }, { key: \"error\", title: \"Error\", description: \"Highlights error messages with the option of x-small, small, medium, and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/egb4l4ubM0A6T44xAxDgz/5d94fa59f0069b689da537710650e22b/error.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"muibook-resource\", name: \"Muibook Resource\", description: \"The Muibook documentation site uses MUI components to compose its layout, including headings, text, lists, buttons, icons, and image components.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3LVvuYDZWRnMhxNy6GMLNd/c5074a05eacb2c22c50ea172b3567c48/Muibook-List-Composition.png\", }, { key: \"outcomes-roadmap-dashboard\", name: \"Outcomes Roadmap Dashboard\", description: \"Example of the responsive component in the Outcomes Roadmap Dashboard, demonstrating layout, title, and padding adjustments across breakpoints.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3FsXandRr1Z9BAKv33twxT/b0d0e4a8b6237bf7d38660111bceb8ab/responsive-composition.gif\", }, { key: \"outcome-based-roadmap\", name: \"Outcome-Based Roadmap\", description: \"Example of an Outcome-Based Roadmap page showing objectives organised into Upcoming, Doing, and Finished columns. Progress bars indicate the completion status of each task, providing a clear view of overall progress.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3w5htPtfEz7QMCH9alVcwf/de35725fb4542b891bd695b900195291/Outcomes-Progress-Composition.png\", }, ], }, related: { items: [ { name: \"Heading\", link: \"https://guides.muibook.com/heading\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
321
|
+
"default": "{ Body: { title: \"Body\", description: \"Use the Body component for clear and readable paragraph text across the UI. It’s ideal for longer-form content such as descriptions, explanations, or supporting information. Variant styles are also available for status messages and other contextual needs.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/GGmtyOnGHBMGMrvkPTWSL/2c6ff12702d76c1393b2315b19728aa3/Body_-_Home_Image.png\", ], figma: [\"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-892&t=fSFYVey9aCoE5oQa-1\"], storybook: [\"https://stories.muibook.com/?path=/docs/content-body--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-body/index.ts\"], website: [\"https://muibook.com/#/button\"], guides: [\"https://guides.muibook.com/body\"], usage: { list: [ \"Use for supporting content or descriptions.\", \"Use states like Default, Info, Success, Warning and Error to align with feedback or messaging contexts.\", \"Match the body size to the layout’s overall design and readability.\", \"Adjust the size by selecting x-small, small, medium or large.\", \"Use before/after slots to compose inline icons, badges, or helper UI with body text.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"default\", title: \"Default\", description: \"Standard body text with x-small, small, medium and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2NAalFsBAkeBz69hO093eb/b9390132c50df11749aaa47dafdb2b93/default.png\", }, { key: \"optional\", title: \"Optional\", description: \"Optional text is visually lighter, providing subtle contrast to Standard body text. It comes in four sizes—x-small, small, medium, and large—for tailored readability. Font weights of regular and bold are also available, giving flexibility for emphasis or hierarchy.\", image: \"\", }, { key: \"info\", title: \"Info\", description: \"Provides lightweight informational guidance in body text using a less impactful visual state. Pair with an info icon in the before slot when the copy needs inline context without the weight of a Message or Alert.\", image: \"\", }, { key: \"success\", title: \"Success\", description: \"Indicates positive feedback with the option of x-small, small, medium and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/8RChklU9yHSY7PTJH0JLD/c72f630006f2be4e7f1d850d7510c92f/success.png\", }, { key: \"warning\", title: \"Warning\", description: \"Highlights warning messages with the option of x-small, small, medium, and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2UJaVEXU2fbKPi3L7afjt/e82b06ef54e92cf2d6f6e984d8a27079/warning.png\", }, { key: \"error\", title: \"Error\", description: \"Highlights error messages with the option of x-small, small, medium, and large for tailored readability. In addition to the size, font weight of regular and bold is available.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/egb4l4ubM0A6T44xAxDgz/5d94fa59f0069b689da537710650e22b/error.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"muibook-resource\", name: \"Muibook Resource\", description: \"The Muibook documentation site uses MUI components to compose its layout, including headings, text, lists, buttons, icons, and image components.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3LVvuYDZWRnMhxNy6GMLNd/c5074a05eacb2c22c50ea172b3567c48/Muibook-List-Composition.png\", }, { key: \"outcomes-roadmap-dashboard\", name: \"Outcomes Roadmap Dashboard\", description: \"Example of the responsive component in the Outcomes Roadmap Dashboard, demonstrating layout, title, and padding adjustments across breakpoints.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3FsXandRr1Z9BAKv33twxT/b0d0e4a8b6237bf7d38660111bceb8ab/responsive-composition.gif\", }, { key: \"outcome-based-roadmap\", name: \"Outcome-Based Roadmap\", description: \"Example of an Outcome-Based Roadmap page showing objectives organised into Upcoming, Doing, and Finished columns. Progress bars indicate the completion status of each task, providing a clear view of overall progress.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3w5htPtfEz7QMCH9alVcwf/de35725fb4542b891bd695b900195291/Outcomes-Progress-Composition.png\", }, ], }, related: { items: [ { name: \"Heading\", link: \"https://guides.muibook.com/heading\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
232
322
|
}
|
|
233
323
|
],
|
|
234
324
|
"exports": [
|
|
@@ -270,10 +360,25 @@
|
|
|
270
360
|
{
|
|
271
361
|
"name": "variant",
|
|
272
362
|
"type": {
|
|
273
|
-
"text": "\"default\" | \"optional\" | \"success\" | \"warning\" | \"error\""
|
|
363
|
+
"text": "\"default\" | \"optional\" | \"info\" | \"success\" | \"warning\" | \"error\""
|
|
274
364
|
},
|
|
275
365
|
"default": "default",
|
|
276
366
|
"description": "Sets the semantic text color treatment."
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"name": "truncate",
|
|
370
|
+
"type": {
|
|
371
|
+
"text": "boolean"
|
|
372
|
+
},
|
|
373
|
+
"default": "false",
|
|
374
|
+
"description": "Clamps body text to a single line with ellipsis when the available width is constrained."
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"name": "clamp",
|
|
378
|
+
"type": {
|
|
379
|
+
"text": "number"
|
|
380
|
+
},
|
|
381
|
+
"description": "Limits body text to the provided number of lines. Ignored when truncate is present."
|
|
277
382
|
}
|
|
278
383
|
],
|
|
279
384
|
"superclass": {
|
|
@@ -446,7 +551,7 @@
|
|
|
446
551
|
},
|
|
447
552
|
{
|
|
448
553
|
"kind": "javascript-module",
|
|
449
|
-
"path": "src/components/mui-
|
|
554
|
+
"path": "src/components/mui-alert/doc.ts",
|
|
450
555
|
"declarations": [
|
|
451
556
|
{
|
|
452
557
|
"kind": "variable",
|
|
@@ -454,7 +559,7 @@
|
|
|
454
559
|
"type": {
|
|
455
560
|
"text": "MuiDocs"
|
|
456
561
|
},
|
|
457
|
-
"default": "{
|
|
562
|
+
"default": "{ Alert: { title: \"Alert\", description: \"Alerts surface meaningful system messages related to the users' current task or action.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/7GnGBCbpMF3wyjCDC06hX7/24739b86a907d15400fe8e9e240a9619/Alert_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-4444&t=ZA9uH4LK37tSuk6r-1\", ], guides: [\"https://guides.muibook.com/alert\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-alert/index.ts\"], storybook: [\"https://stories.muibook.com/?path=/docs/feedback-alert--docs\"], website: [\"https://muibook.com/#/alert\"], usage: { list: [ \"Success: Confirm completed actions such as form submissions, data saves, or task completion.\", \"Info: For sharing new features, updates, contextual tips, or non-urgent system statuses.\", \"Warning: Alert users to unsaved changes, deprecated features, or risky actions.\", \"Error: Alert users of form validation issues, system failures, or tasks that need attention.\", ], }, accessibility: { designerList: [ \"ARIA-live is built in, using POLITE + ASSERTIVE for screen readers.\", \"The role is set to ALERT for immediate screen reader feedback.\", ], engineerList: [ \"ARIA-live is built in, using POLITE + ASSERTIVE for screen readers.\", \"The role is set to ALERT for immediate screen reader feedback.\", ], }, anatomy: { list: [ \"Preset icon: Communicates the type of alert visually. E.g. info, success, warning, error.\", \"Preset title: Provides a clear, predefined heading that reflects the alert’s purpose.\", \"Customisable text: Allows for specific details or guidance relevant to the situation.\", ], image: \"https://images.ctfassets.net/i5uwscj4pkk2/17j3DxAFlne6rvMi6QUXqZ/aedab2c349c8f8b0a8414b41132cda51/Alert_-_Anatomy.png\", }, variants: { items: [ { key: \"success\", title: \"Success\", description: \"Indicates that an operation or action has been completed successfully. Use this variant for scenarios such as form submissions processed without errors, successful data updates or saves, and confirmations of completed tasks or actions. For accessibility, this variant uses an aria-live value of polite.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2EbJsP3GZ98WPOiF4PbGh2/bc3e020b37b73f949be745e4e26b6e5a/alert-success.png\", }, { key: \"info\", title: \"Info\", description: \"Provides general information or updates that are helpful but not critical. This variant is used for announcing new features or updates, offering contextual information or tips, and informing users about non-urgent system statuses. For accessibility, it uses an aria-live value of polite.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1SDh1JVNouysPHylu9lTUj/6793dd8aa854d08045c2159b450b762c/alert-info.png\", }, { key: \"warning\", title: \"Warning\", description: \"Alerts users to potential issues or situations that require caution. Common use cases include notifying about unsaved changes, indicating deprecated features or upcoming changes, and highlighting actions that may have unintended consequences. For accessibility, this variant uses an aria-live value of assertive.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2zympGRb3wlU5P36FsKWsL/dd9bde33646345e65d5bff505d512e22/alert-warning.png\", }, { key: \"error\", title: \"Error\", description: \"Indicates that an error has occurred, requiring user attention or action. This variant is typically used for form validation errors, system failures or exceptions, and failed operations or transactions. For accessibility, it uses an aria-live value of assertive.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/zOH2Xinum4ZjIv3qp6LJM/180a2306dd624b6bc2fa55c0ad81ea0e/alert-error.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"ai-playground-error-1\", name: \"AI Playground (Error)\", description: \"Demonstrates the Muiplay AI Playground showing a floating error positioned close to the field where a prompt is required to generate a task.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/40RfRPVAN9dvWO7UFuIiUC/52de3cffd69a5bcc2e457f8de03bb9cf/Play-Alert-Composition.png\", }, { key: \"ai-playground-error-2\", name: \"AI Playground (Error)\", description: \"Demonstrates the Muiplay AI Playground showing a floating error positioned close to the field where a prompt is required to generate a task.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/40RfRPVAN9dvWO7UFuIiUC/52de3cffd69a5bcc2e457f8de03bb9cf/Play-Alert-Composition.png\", }, ], }, related: { items: [ { name: \"Message\", link: \"https://guides.muibook.com/message\" }, { name: \"Link\", link: \"https://guides.muibook.com/link\" }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [ { description: \"\", image: \"\" }, { description: \"\", image: \"\" }, ], dontContent: [{ description: \"\" }, { description: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
458
563
|
}
|
|
459
564
|
],
|
|
460
565
|
"exports": [
|
|
@@ -463,82 +568,84 @@
|
|
|
463
568
|
"name": "muiDocs",
|
|
464
569
|
"declaration": {
|
|
465
570
|
"name": "muiDocs",
|
|
466
|
-
"module": "src/components/mui-
|
|
571
|
+
"module": "src/components/mui-alert/doc.ts"
|
|
467
572
|
}
|
|
468
573
|
}
|
|
469
574
|
]
|
|
470
575
|
},
|
|
471
576
|
{
|
|
472
577
|
"kind": "javascript-module",
|
|
473
|
-
"path": "src/components/mui-
|
|
578
|
+
"path": "src/components/mui-alert/index.ts",
|
|
474
579
|
"declarations": [
|
|
475
580
|
{
|
|
476
581
|
"kind": "class",
|
|
477
|
-
"description": "
|
|
478
|
-
"name": "
|
|
582
|
+
"description": "Surfaces task-related feedback with an intent icon, message content and optional action.",
|
|
583
|
+
"name": "MuiAlert",
|
|
479
584
|
"attributes": [
|
|
480
585
|
{
|
|
481
|
-
"name": "
|
|
586
|
+
"name": "variant",
|
|
482
587
|
"type": {
|
|
483
|
-
"text": "
|
|
588
|
+
"text": "\"positive\" | \"info\" | \"warning\" | \"attention\" | \"success\" | \"error\""
|
|
484
589
|
},
|
|
485
|
-
"
|
|
590
|
+
"default": "positive",
|
|
591
|
+
"description": "Feedback intent. `success` normalises to `positive`; `error` normalises to `attention`."
|
|
486
592
|
},
|
|
487
593
|
{
|
|
488
|
-
"name": "
|
|
594
|
+
"name": "label",
|
|
489
595
|
"type": {
|
|
490
596
|
"text": "string"
|
|
491
597
|
},
|
|
492
|
-
"description": "
|
|
493
|
-
},
|
|
494
|
-
{
|
|
495
|
-
"name": "size",
|
|
496
|
-
"type": {
|
|
497
|
-
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
498
|
-
},
|
|
499
|
-
"default": "medium",
|
|
500
|
-
"description": "Avatar dimensions. Defaults map `xx-small` to 24px and `x-small` to 32px."
|
|
598
|
+
"description": "Overrides the intent prefix label."
|
|
501
599
|
},
|
|
502
600
|
{
|
|
503
|
-
"name": "
|
|
601
|
+
"name": "hide-label",
|
|
504
602
|
"type": {
|
|
505
|
-
"text": "
|
|
603
|
+
"text": "boolean"
|
|
506
604
|
},
|
|
507
|
-
"default": "
|
|
508
|
-
"description": "
|
|
605
|
+
"default": "false",
|
|
606
|
+
"description": "Hides the visible intent prefix label."
|
|
509
607
|
},
|
|
510
608
|
{
|
|
511
|
-
"name": "
|
|
609
|
+
"name": "size",
|
|
512
610
|
"type": {
|
|
513
|
-
"text": "
|
|
611
|
+
"text": "\"small\" | \"medium\" | \"large\""
|
|
514
612
|
},
|
|
515
|
-
"
|
|
613
|
+
"default": "medium",
|
|
614
|
+
"description": "Alert density and coordinated icon/action size."
|
|
516
615
|
}
|
|
517
616
|
],
|
|
518
617
|
"superclass": {
|
|
519
618
|
"name": "HTMLElement"
|
|
520
619
|
},
|
|
521
|
-
"tagName": "mui-
|
|
620
|
+
"tagName": "mui-alert",
|
|
522
621
|
"customElement": true,
|
|
523
622
|
"slots": [
|
|
524
623
|
{
|
|
525
624
|
"name": "",
|
|
526
|
-
"description": "
|
|
625
|
+
"description": "Alert message content, including optional inline links."
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"name": "action",
|
|
629
|
+
"description": "Optional `mui-button` or `mui-link` action aligned and sized for the alert."
|
|
527
630
|
}
|
|
528
631
|
],
|
|
529
632
|
"events": [],
|
|
530
633
|
"cssProperties": [
|
|
531
634
|
{
|
|
532
|
-
"name": "--
|
|
533
|
-
"description": "
|
|
635
|
+
"name": "--alert-radius",
|
|
636
|
+
"description": "Alert surface corner radius."
|
|
534
637
|
},
|
|
535
638
|
{
|
|
536
|
-
"name": "--
|
|
537
|
-
"description": "
|
|
639
|
+
"name": "--alert-padding-small",
|
|
640
|
+
"description": "Surface padding for small alerts."
|
|
538
641
|
},
|
|
539
642
|
{
|
|
540
|
-
"name": "--
|
|
541
|
-
"description": "
|
|
643
|
+
"name": "--alert-padding-medium",
|
|
644
|
+
"description": "Surface padding for medium alerts."
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"name": "--alert-padding-large",
|
|
648
|
+
"description": "Surface padding for large alerts."
|
|
542
649
|
}
|
|
543
650
|
]
|
|
544
651
|
}
|
|
@@ -546,17 +653,17 @@
|
|
|
546
653
|
"exports": [
|
|
547
654
|
{
|
|
548
655
|
"kind": "custom-element-definition",
|
|
549
|
-
"name": "mui-
|
|
656
|
+
"name": "mui-alert",
|
|
550
657
|
"declaration": {
|
|
551
|
-
"name": "
|
|
552
|
-
"module": "src/components/mui-
|
|
658
|
+
"name": "MuiAlert",
|
|
659
|
+
"module": "src/components/mui-alert/index.ts"
|
|
553
660
|
}
|
|
554
661
|
}
|
|
555
662
|
]
|
|
556
663
|
},
|
|
557
664
|
{
|
|
558
665
|
"kind": "javascript-module",
|
|
559
|
-
"path": "src/components/mui-
|
|
666
|
+
"path": "src/components/mui-button/doc.ts",
|
|
560
667
|
"declarations": [
|
|
561
668
|
{
|
|
562
669
|
"kind": "variable",
|
|
@@ -564,99 +671,7 @@
|
|
|
564
671
|
"type": {
|
|
565
672
|
"text": "MuiDocs"
|
|
566
673
|
},
|
|
567
|
-
"default": "{ Badge: { title: \"Badge\", description: \"Badges are non-interactive and indicate counts or statuses.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/3uhL6lnJTEY4LtVyMA3og5/7844fa7e691b9f97e3c335e1a978e881/Badge_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-1108&t=FSv3FEahG8VQW1FZ-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/feedback-badge--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-badge/index.ts\"], website: [\"https://muibook.com/#/badge\"], guides: [\"https://guides.muibook.com/badge\"], usage: { list: [ \"Show the number of unread notifications – E.g. '4' unread messages\", \"Indicate the status of a user – E.g. Online, Busy, or Away\", \"Use size variants (xx-small, x-small, small, medium, large) to match surrounding component scale.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"default\", title: \"default\", description: \"Used for data that is visually in the foreground.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3Xgz2qoLs8NACel4fRr9iC/52699b5763f1efd4853a9ffb991b3ff3/badge-default.png\", }, { key: \"positive\", title: \"positive\", description: \"For positive or completed statuses.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/65RMIuUEUIzusbSAwqLQcI/63edb290041c708fc69d0d27fc49e25d/badge-positive.png\", }, { key: \"warning\", title: \"warning\", description: \"For urgent or important statuses.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5AFfOShVyTEKO1wgIe6rYv/e809c76ddabdfd9789adc31a26becf83/badge-warning.png\", }, { key: \"error\", title: \"error\", description: \"Represents an error, issue or critical state.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/E0jtn7WSTwYligMqSNl0k/c3c041e025c3725682ec12eb3ab98400/badge-error.png\", }, { key: \"overlay\", title: \"overlay\", description: \"For labels placed on media/image surfaces with stronger contrast.\", image: \"\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"outcome-based-roadmap\", name: \"Outcome-Based Roadmap\", description: \"Example of an Outcome-Based Roadmap page showing objectives organised into Upcoming, Doing, and Finished columns. Progress bars indicate the completion status of each task, providing a clear view of overall progress.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3w5htPtfEz7QMCH9alVcwf/de35725fb4542b891bd695b900195291/Outcomes-Progress-Composition.png\", }, { key: \"compliance-dashboard-table\", name: \"Compliance Dashboard Table\", description: \"This example shows a desktop view of a table used within an accounting compliance dashboard.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3vUKA5C5iJ3LvjLwf2WiO9/274ffe423dbe828244294f6809172ce1/table-composition-compliance-dashboard.png\", }, { key: \"carousel-showcase\", name: \"Carousel Showcase\", description: \"This example from the GuruSuite website demonstrates the carousel used to showcase two of the products on offer.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2TaRRm351HyujF9mT2w1wH/3958f69e939d20618751742130dc5f06/GuruSuite-Carousel-Composition.png\", }, { key: \"outcomes-roadmap-dashboard\", name: \"Outcomes Roadmap Dashboard\", description: \"Example of the responsive component in the Outcomes Roadmap Dashboard, demonstrating layout, title, and padding adjustments across breakpoints.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3FsXandRr1Z9BAKv33twxT/b0d0e4a8b6237bf7d38660111bceb8ab/responsive-composition.gif\", }, ], }, related: { items: [ { name: \"Button\", link: \"https://guides.muibook.com/button\", }, { name: \"Link\", link: \"https://guides.muibook.com/link\", }, { name: \"Tab Bar\", link: \"https://guides.muibook.com/tab-bar\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
568
|
-
}
|
|
569
|
-
],
|
|
570
|
-
"exports": [
|
|
571
|
-
{
|
|
572
|
-
"kind": "js",
|
|
573
|
-
"name": "muiDocs",
|
|
574
|
-
"declaration": {
|
|
575
|
-
"name": "muiDocs",
|
|
576
|
-
"module": "src/components/mui-badge/doc.ts"
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
]
|
|
580
|
-
},
|
|
581
|
-
{
|
|
582
|
-
"kind": "javascript-module",
|
|
583
|
-
"path": "src/components/mui-badge/index.ts",
|
|
584
|
-
"declarations": [
|
|
585
|
-
{
|
|
586
|
-
"kind": "class",
|
|
587
|
-
"description": "Displays compact status or metadata labels with semantic variants and size scaling.",
|
|
588
|
-
"name": "MuiBadge",
|
|
589
|
-
"attributes": [
|
|
590
|
-
{
|
|
591
|
-
"name": "variant",
|
|
592
|
-
"type": {
|
|
593
|
-
"text": "\"neutral\" | \"positive\" | \"warning\" | \"attention\" | \"overlay\""
|
|
594
|
-
},
|
|
595
|
-
"default": "neutral",
|
|
596
|
-
"description": "Sets the badge intent style."
|
|
597
|
-
},
|
|
598
|
-
{
|
|
599
|
-
"name": "size",
|
|
600
|
-
"type": {
|
|
601
|
-
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
602
|
-
},
|
|
603
|
-
"default": "medium",
|
|
604
|
-
"description": "Controls the badge scale."
|
|
605
|
-
},
|
|
606
|
-
{
|
|
607
|
-
"name": "usage",
|
|
608
|
-
"type": {
|
|
609
|
-
"text": "\"slat-end\""
|
|
610
|
-
},
|
|
611
|
-
"description": "Applies layout-specific styling for supported parent patterns."
|
|
612
|
-
}
|
|
613
|
-
],
|
|
614
|
-
"superclass": {
|
|
615
|
-
"name": "HTMLElement"
|
|
616
|
-
},
|
|
617
|
-
"tagName": "mui-badge",
|
|
618
|
-
"customElement": true,
|
|
619
|
-
"slots": [
|
|
620
|
-
{
|
|
621
|
-
"name": "",
|
|
622
|
-
"description": "Badge text content."
|
|
623
|
-
}
|
|
624
|
-
],
|
|
625
|
-
"events": [],
|
|
626
|
-
"cssProperties": [
|
|
627
|
-
{
|
|
628
|
-
"name": "--badge-radius",
|
|
629
|
-
"description": "Controls the badge corner radius."
|
|
630
|
-
},
|
|
631
|
-
{
|
|
632
|
-
"name": "--badge-font-weight",
|
|
633
|
-
"description": "Controls the badge text weight."
|
|
634
|
-
}
|
|
635
|
-
]
|
|
636
|
-
}
|
|
637
|
-
],
|
|
638
|
-
"exports": [
|
|
639
|
-
{
|
|
640
|
-
"kind": "custom-element-definition",
|
|
641
|
-
"name": "mui-badge",
|
|
642
|
-
"declaration": {
|
|
643
|
-
"name": "MuiBadge",
|
|
644
|
-
"module": "src/components/mui-badge/index.ts"
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
]
|
|
648
|
-
},
|
|
649
|
-
{
|
|
650
|
-
"kind": "javascript-module",
|
|
651
|
-
"path": "src/components/mui-button/doc.ts",
|
|
652
|
-
"declarations": [
|
|
653
|
-
{
|
|
654
|
-
"kind": "variable",
|
|
655
|
-
"name": "muiDocs",
|
|
656
|
-
"type": {
|
|
657
|
-
"text": "MuiDocs"
|
|
658
|
-
},
|
|
659
|
-
"default": "{ Button: { title: \"Button\", description: \"Buttons are essential UI elements that trigger actions when clicked or tapped. They should be easily recognisable, provide clear feedback, and be accessible to all users.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/20zrQqKqJ17evXhkPwlDhq/e7ce6604a49aef64f2c4056d16ea1d97/Button_-_Home_Image.png\", ], figma: [\"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-570&t=fSFYVey9aCoE5oQa-1\"], storybook: [\"https://stories.muibook.com/?path=/docs/actions-button--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-button/index.ts\"], website: [\"https://muibook.com/#/button\"], guides: [\"https://guides.muibook.com/button\"], usage: { list: [ \"Reserve buttons for core actions on a page.\", \"Avoid using too many buttons on a single page to prevent confusion.\", \"Use clear and concise label text on buttons.\", \"Ensure labels are action-oriented. E.g. 'Save'.\", \"Ensure sufficient contrast between button text and background.\", \"Buttons can include Avatar for profile, identity, and account-oriented actions.\", \"Use avatar-only buttons when the avatar itself is the visible trigger, such as opening an account menu, switching profiles on a video platform, or launching a compact settings drawer.\", \"When the button only contains mui-avatar, the button collapses to the avatar footprint while preserving interaction semantics, focus, and disabled behaviour.\", \"Avatar-only buttons work well with Dropdown, Drawer, and Dialog when you want the control to read as identity-first rather than as a standard text button.\", ], }, accessibility: { designerList: [ \"Never put tooltips on disabled buttons as Tooltips can't be reached on all devices or by some assitive technologies.\", \"Provide accessible labels for buttons.\", \"For icon-only buttons, ensure an aria-label is provided to describe the action, as screen readers cannot interpret icons alone.\", \"Ensure buttons are focusable via keyboard navigation.\", \"Use appropriate ARIA roles and properties.\", ], engineerList: [ \"Never put tooltips on disabled buttons as Tooltips can't be reached on all devices or by some assitive technologies.\", \"Provide accessible labels for buttons.\", \"For icon-only buttons, ensure an aria-label is provided to describe the action, as screen readers cannot interpret icons alone.\", \"Ensure buttons are focusable via keyboard navigation.\", \"Use appropriate ARIA roles and properties.\", ], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/2LUuCpBtbL794vr5DyhMCz/44b7a3b75d0418915ebcdbf43bf1214c/button-anatomy.png\", list: [ \"LABEL: Text describing the button action. Use action verbs or phrases to tell the user what will happen next, and follow the button label content guidelines.\", \"BEFORE: An optional area to include an icon before the label. Use an icon to add additional affordance where the icon has a clear and well-established meaning. Most buttons don't require an icon, so be consistent and deliberate when you do.\", \"AFTER: An optional area to include an icon after the label, often used for a chevron-down-arrow icon to indicate a dropdown menu or accordion experiences where the placement is on the far right of the button.\", \"ICON ONLY: Use when the action is easily understood and space is limited. For example: close, add, or menu toggle. Avoid for unfamiliar or complex actions.\", ], }, variants: { items: [ { key: \"primary\", title: \"Primary\", description: \"Used for the main action on a page. It should stand out visually and be used sparingly to avoid confusion. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7szaFYOxeEH9F6gl0NEGz0/9657b870cd37918ae15f30cfab8b3747/button-primary.png\", }, { key: \"primary-icon-only\", title: \"Primary: Icon-Only\", description: \"An icon only version of the primary button. Used for the main action on a page. Best when the icon meaning is immediately clear, such as submitting, navigating forward, or creating new items. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/uKSyCIeL7vmWxqVoxxkRD/6d12cec0aaad006d0245a1f6dea8e7ad/button-primary-icon.png\", }, { key: \"secondary\", title: \"Secondary\", description: \"Used for secondary actions that are not as critical as the primary action. It should be distinguishable but less prominent. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5MgDmdtcMDIIsHKlzMNpj1/42fbbce26a313f72c670ff91ff4fb500/button-secondary.png\", }, { key: \"secondary\", title: \"Secondary\", description: \"Used for secondary actions that are not as critical as the primary action. It should be distinguishable but less prominent. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5MgDmdtcMDIIsHKlzMNpj1/42fbbce26a313f72c670ff91ff4fb500/button-secondary.png\", }, { key: \"secondary-icon-only\", title: \"Secondary: Icon-only\", description: \"An icon only version of the secondary button. Used for secondary actions that support the main task. Best for actions like edit, copy, or open in a new window. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3ebS7TgW2aziGoqc59UZAQ/be7c2f7d7d06970b2ddfae9fed5562b3/button-secondary-icon.png\", }, { key: \"tertiary\", title: \"Tertiary\", description: \"Used for less important actions or actions that complement primary and secondary actions. They should be the least prominent. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/78O8tlBpDFb3rxooJkRGgs/27138560e395e947c8782feba06d3f6c/button-tertiary.png\", }, { key: \"tertiary-icon-only\", title: \"Tertiary: Icon-only\", description: \"An icon only version of the tertiary button. Designed for lightweight or supporting actions with minimal emphasis, such as info, settings, expand, open a menu, or close. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/50Nmp65TaWcwTixZhpLoUT/af5c8743d1482969667cf2a063428759/button-tertiary-icon.png\", }, { key: \"overlay\", title: \"Overlay\", description: \"Use on layered media or tinted surfaces where a subtle translucent action is needed. Keeps controls readable over imagery while staying visually lightweight.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5MgDmdtcMDIIsHKlzMNpj1/42fbbce26a313f72c670ff91ff4fb500/button-secondary.png\", }, { key: \"attention\", title: \"Attention\", description: \"Used for critical or potentially destructive actions, such as deleting an item or submitting sensitive information. It should stand out clearly to alert users and prompt deliberate interaction. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6XBCZnwgBw6zp2fjJQR7ko/70a3c7e8931b4fbf442dd997a57e1058/button-attention.png\", }, { key: \"attention-icon-only\", title: \"Attention: Icon-only\", description: \"An icon only version of the attention button. Used for critical or potentially destructive actions, such as delete, remove, or report. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1TDTCC0SZZJL3cBEmqjs8Q/29ba81f3f76fb4d15aaa93d25aec87d4/button-attention-icon.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"in-browser-design-guidelines\", name: \"In-browser Design Guidelines\", description: \"A promotional example showcasing the in-browser design guidelines feature available on the Muibook website.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5YR94S9N6P5No4lNQFBxZb/45360d599105d16309486d33ca0705f1/Button_-_Composition.png\", }, { key: \"onboarding-form\", name: \"Onboarding Form\", description: \"Demonstrates an onboarding form within a card, using logic to confirm terms acceptance. Components include Heading, Input Fields, Checkbox, and Button.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1NrgynTcdmVVKSYCsQwlOW/5fc4776c1860b498a59a2865b4e57ecb/Card-Onboarding-Composition.png\", }, ], }, related: { items: [ { name: \"Link\", link: \"https://guides.muibook.com/link\", }, { name: \"Icons\", link: \"https://guides.muibook.com/icons\", }, ], }, rules: [ { heading: \"Primary vs Secondary\", description: \"Primary buttons signify the main action on a page or view. Use only one per context to avoid confusion. Secondary buttons support the primary action and are used for supplementary or less critical choices.\", doContent: [ { description: \"Use one clear primary action, supported by a secondary button for an alternative or reversible choice.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5xunviJfjqUYYS5yWSfOqW/56b8cbaab4aeb86cb7585120c0ef911c/primary-actions-do.png\", }, ], dontContent: [ { description: \"Avoid giving multiple buttons equal visual weight, as this creates confusion about what to do next.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/64qD6QvbuqhFgHbj9IEOiD/f61a0250d0139abe4c8f6d9307ce5cad/primary-actions-do-not.png\", }, ], }, { heading: \"Primary and Tertiary\", description: \"Tertiary actions are low-priority, optional paths that support the experience without distracting from the primary or secondary actions. They are typically styled as text buttons and used for non-critical choices like “Skip” or “Learn more.”\", doContent: [ { description: \"The tertiary action offers an optional, less prominent path that doesn’t compete visually with the primary action.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3eFnCzhfq4d10CALfudUZU/de4b6a7d26964acae2245b73a158517d/tertiary-actions-do.png\", }, ], dontContent: [ { description: \"A tertiary action styled like a primary button creates visual confusion and implies equal importance, which undermines the intended hierarchy.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3K59awxzUKnnihZuDFyOpV/a8ba8a13d36bc63208a3079d0c4c86ac/tertiary-actions-do-not.png\", }, ], }, { heading: \"Pairing Buttons\", description: \"In circumstances where an icon-only button is paired with a button that includes both a label and an icon, use a medium icon for the icon-only button and an small icon for the labeled button. Follow a right-to-left layout, placing the primary action on the right.\", doContent: [ { description: \"Place the primary action on the right and use appropriate icon sizes: medium for icon-only, small for labeled buttons.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/34h9SltXeGjU2fRc5iM4PE/438f84d21e142c84bb98c1965a40b36b/button-groups-do.png\", }, ], dontContent: [ { description: \"Don’t place the primary action on the left or mismatch icon sizing for either button type.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5fwaA1NM6AAQMPbV2vwPMR/b0a491b6aca705f7493806fd13f99734/button-groups-do-not.png\", }, ], }, { heading: \"Table Button-Group\", description: \"You can group multiple actions in a table’s action cell, but be mindful not to overwhelm rows with too many buttons. Prioritize clarity by showing only the most relevant actions per row.\", doContent: [ { description: \"Use a secondary button for labeled actions paired with a tertiary icon-only button, and apply medium icons for icon-only buttons and small icons for labeled buttons.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7beVBzijhfRsyorthBC1fd/c7460f72456cdb1982b122df77dc9bf7/table-button-group-do.png\", }, ], dontContent: [ { description: \"Avoid using primary, tertiary, or attention variants for labeled buttons, as they can draw too much attention and disrupt the visual hierarchy.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7zoFP4Rl3InXCgP0tiDQg0/18ec719eb7a970da67bd12fea32c935b/table-button-group-do-not.png\", }, ], }, { heading: \"Button vs Link\", description: \"Buttons and links may look similar, but buttons are for triggering actions, while links are for navigating between pages or sections of your app or site.\", doContent: [ { description: \"Use a link when navigating to another page or view.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7xOE9DNKWgy1lZoT0FbMOW/cc13fbeeaa85b2507087645d925d7323/button-vs-link-do.png\", }, ], dontContent: [ { description: \"Don’t use a link to trigger tasks like submitting a form or saving data.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6tSAw6uBvg142Gzw7tenBc/4b8db682687b42f3c53fc32557cc4eee/button-vs-link-do-not.png\", }, ], }, { heading: \"Label Clarity\", description: \"\", doContent: [ { description: \"Use clear and concise labels for buttons: Ensure each button clearly indicates its action. E.g. 'Submit'.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3M9fgCF3JgFwDrooqXTvlf/92ad6b1c3faacebd8ea2884afadab24d/button-label-clarity-do.png\", }, ], dontContent: [ { description: \"Don't use ambiguous labels: Avoid using unclear or generic terms for buttons. E.g. 'Click here'.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1rXUNW1YiCVPJ2klPwL8WT/8137762316179653687bb1c1178ceb16/button-label-clarity-do-not.png\", }, ], }, { heading: \"Disabled Actions\", description: \"Avoid disabling call-to-action buttons to prevent form submission. Instead, consider using a combination of form validation, toasts, or alerts to inform users why they can’t proceed and how to resolve the issue.\", doContent: [ { description: \"Use form validation in combination with alerts to provide clear instructions on how to resolve the issue.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/41xe78AaqPHUxpd2RC6QoP/46b6f7217a8eb15bd928495d54a0728f/disabled-do.png\", }, ], dontContent: [ { description: \"Avoid disabling actions, as it prevents users from receiving feedback on why they can’t proceed.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6SiZPnnUlkMbNSJzxV8unt/7e6389d85eaac161d6cfd314190010f9/disabled-do-not.png\", }, ], }, { heading: \"Table Button: Icon-Only\", description: \"Use icon-only buttons in the end (far right) cell of a table row. When implementing tables in-browser, apply the correct action boolean and column auto-spacing to ensure the header and content align properly.\", doContent: [ { description: \"Use a tertiary icon-only button with a medium icon in the end table cell.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/EzbGECpviXXcjsmfftqEm/b21a44dec44b7243688fba26d2c9768c/table-button-do.png\", }, ], dontContent: [ { description: \"Don’t use other button variants or icon sizes in place of the designated icon-only approach.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/722XYLqqBwEJXE6qG0ZLDE/6e9a4d25fc5292688e62960090d92230/table-button-do-not.png\", }, ], }, { heading: \"Card, Dialog and Drawer Actions\", description: \"It is best practice to place actions in a footer for cards, dialogs, and drawers, providing a consistent location for users to find and interact with them.\", doContent: [ { description: \"Place actions in a footer within cards, dialogs, and drawers to ensure they are easily accessible and follow a consistent pattern.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/4nFRwg1AOL74fQXM6OQvnV/d9c1eed80b86919656fb3ab8005f7d71/panel-actions-do.png\", }, ], dontContent: [ { description: \"Avoid placing actions in unconventional or hard-to-find locations within cards, dialogs, or drawers, as this can make them difficult for users to locate and use effectively.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3caBEJQxfRasuxw62RQVbw/4e3620f4e62f2fa8b8f8aa504625776a/panel-actions-do-not.png\", }, ], }, { heading: \"Icon-Only Actions\", description: \"\", doContent: [ { description: \"Use a 'medium' size icon when using an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3syzrNBEXbBjp5hGEUvF4M/0471f4b16939d8ee54deaf48997ff455/action-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5V2TE85dY848jz1dP6Y0lC/b8e433c8abad5a4402ff1f86ddb8c848/action-icon-dont.png\", }, ], }, { heading: \"Text & Icon Actions\", description: \"Use icon-only buttons in the end (far right) cell of a table row. When implementing tables in-browser, apply the correct action boolean and column auto-spacing to ensure the header and content align properly.\", doContent: [ { description: \"Use the 'small' size icon within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2W1xs6NPj3jRrW6ZaVGRvZ/3a11566b68fffda85bf5f780c4d6a394/dropdown-bar-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6BgHzCgKqk44piisNH4tE6/c08d91a1cf5231a089844d20f6ab968c/dropdown-bar-icon-dont.png\", }, ], }, ], behaviour: { description: \"Buttons should provide visual feedback on hover and click. These states should be factored into the component and baked into the corresponding states in code.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3h2wNhGxd4f9AENDf3K7Qa/0ca6f8b224923e7fa9710735dc8f54e0/Button_-_Behaviour.png\", list: [ \"Default: Normal state.\", \"Hover: Changes when a user hovers over the button.\", \"Focus: Ensure buttons display a visible focus indicator when navigated to via keyboard.\", \"Disabled: Non-interactive, faded appearance.\", ], }, writing: { list: [ \"Keep button text short and action-oriented.\", \"Use sentence case for button text.\", \"Avoid using multiple lines of text on a button.\", ], }, }, }"
|
|
674
|
+
"default": "{ Button: { title: \"Button\", description: \"Buttons are essential UI elements that trigger actions when clicked or tapped. They should be easily recognisable, provide clear feedback, and be accessible to all users.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/20zrQqKqJ17evXhkPwlDhq/e7ce6604a49aef64f2c4056d16ea1d97/Button_-_Home_Image.png\", ], figma: [\"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-570&t=fSFYVey9aCoE5oQa-1\"], storybook: [\"https://stories.muibook.com/?path=/docs/actions-button--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-button/index.ts\"], website: [\"https://muibook.com/#/button\"], guides: [\"https://guides.muibook.com/button\"], usage: { list: [ \"Reserve buttons for core actions on a page.\", \"Avoid using too many buttons on a single page to prevent confusion.\", \"Use clear and concise label text on buttons.\", \"Ensure labels are action-oriented. E.g. 'Save'.\", \"Ensure sufficient contrast between button text and background.\", \"Buttons can include Avatar for profile, identity, and account-oriented actions.\", \"Use avatar-only buttons when the avatar itself is the visible trigger, such as opening an account menu, switching profiles on a video platform, or launching a compact settings drawer.\", \"When the button only contains mui-avatar, the button collapses to the avatar footprint while preserving interaction semantics, focus, and disabled behaviour.\", \"Avatar-only buttons work well with Dropdown, Drawer, and Dialog when you want the control to read as identity-first rather than as a standard text button.\", ], }, accessibility: { designerList: [ \"Never put tooltips on disabled buttons as Tooltips can't be reached on all devices or by some assitive technologies.\", \"Provide accessible labels for buttons.\", \"For icon-only buttons, ensure an aria-label is provided to describe the action, as screen readers cannot interpret icons alone.\", \"Ensure buttons are focusable via keyboard navigation.\", \"Use appropriate ARIA roles and properties.\", ], engineerList: [ \"Never put tooltips on disabled buttons as Tooltips can't be reached on all devices or by some assitive technologies.\", \"Provide accessible labels for buttons.\", \"For icon-only buttons, ensure an aria-label is provided to describe the action, as screen readers cannot interpret icons alone.\", \"Ensure buttons are focusable via keyboard navigation.\", \"Use appropriate ARIA roles and properties.\", ], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/2LUuCpBtbL794vr5DyhMCz/44b7a3b75d0418915ebcdbf43bf1214c/button-anatomy.png\", list: [ \"LABEL: Text describing the button action. Use action verbs or phrases to tell the user what will happen next, and follow the button label content guidelines.\", \"BEFORE: An optional area to include an icon before the label. Use an icon to add additional affordance where the icon has a clear and well-established meaning. Most buttons don't require an icon, so be consistent and deliberate when you do.\", \"AFTER: An optional area to include an icon after the label, often used for a chevron-down-arrow icon to indicate a dropdown menu or accordion experiences where the placement is on the far right of the button.\", \"ICON ONLY: Use when the action is easily understood and space is limited. For example: close, add, or menu toggle. Avoid for unfamiliar or complex actions.\", ], }, variants: { items: [ { key: \"primary\", title: \"Primary\", description: \"Used for the main action on a page. It should stand out visually and be used sparingly to avoid confusion. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7szaFYOxeEH9F6gl0NEGz0/9657b870cd37918ae15f30cfab8b3747/button-primary.png\", }, { key: \"primary-icon-only\", title: \"Primary: Icon-Only\", description: \"An icon only version of the primary button. Used for the main action on a page. Best when the icon meaning is immediately clear, such as submitting, navigating forward, or creating new items. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/uKSyCIeL7vmWxqVoxxkRD/6d12cec0aaad006d0245a1f6dea8e7ad/button-primary-icon.png\", }, { key: \"secondary\", title: \"Secondary\", description: \"Used for secondary actions that are not as critical as the primary action. It should be distinguishable but less prominent. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5MgDmdtcMDIIsHKlzMNpj1/42fbbce26a313f72c670ff91ff4fb500/button-secondary.png\", }, { key: \"secondary\", title: \"Secondary\", description: \"Used for secondary actions that are not as critical as the primary action. It should be distinguishable but less prominent. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5MgDmdtcMDIIsHKlzMNpj1/42fbbce26a313f72c670ff91ff4fb500/button-secondary.png\", }, { key: \"secondary-icon-only\", title: \"Secondary: Icon-only\", description: \"An icon only version of the secondary button. Used for secondary actions that support the main task. Best for actions like edit, copy, or open in a new window. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3ebS7TgW2aziGoqc59UZAQ/be7c2f7d7d06970b2ddfae9fed5562b3/button-secondary-icon.png\", }, { key: \"tertiary\", title: \"Tertiary\", description: \"Used for less important actions or actions that complement primary and secondary actions. They should be the least prominent. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/78O8tlBpDFb3rxooJkRGgs/27138560e395e947c8782feba06d3f6c/button-tertiary.png\", }, { key: \"tertiary-icon-only\", title: \"Tertiary: Icon-only\", description: \"An icon only version of the tertiary button. Designed for lightweight or supporting actions with minimal emphasis, such as info, settings, expand, open a menu, or close. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/50Nmp65TaWcwTixZhpLoUT/af5c8743d1482969667cf2a063428759/button-tertiary-icon.png\", }, { key: \"overlay\", title: \"Overlay\", description: \"Use on layered media or tinted surfaces where a subtle translucent action is needed. Keeps controls readable over imagery while staying visually lightweight.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5MgDmdtcMDIIsHKlzMNpj1/42fbbce26a313f72c670ff91ff4fb500/button-secondary.png\", }, { key: \"attention\", title: \"Attention\", description: \"Used for critical or potentially destructive actions, such as deleting an item or submitting sensitive information. It should stand out clearly to alert users and prompt deliberate interaction. When an icon is slotted into a button, it automatically inherits the button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6XBCZnwgBw6zp2fjJQR7ko/70a3c7e8931b4fbf442dd997a57e1058/button-attention.png\", }, { key: \"attention-icon-only\", title: \"Attention: Icon-only\", description: \"An icon only version of the attention button. Used for critical or potentially destructive actions, such as delete, remove, or report. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1TDTCC0SZZJL3cBEmqjs8Q/29ba81f3f76fb4d15aaa93d25aec87d4/button-attention-icon.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"in-browser-design-guidelines\", name: \"In-browser Design Guidelines\", description: \"A promotional example showcasing the in-browser design guidelines feature available on the Muibook website.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5YR94S9N6P5No4lNQFBxZb/45360d599105d16309486d33ca0705f1/Button_-_Composition.png\", }, { key: \"onboarding-form\", name: \"Onboarding Form\", description: \"Demonstrates an onboarding form within a card, using logic to confirm terms acceptance. Components include Heading, Input Fields, Checkbox, and Button.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1NrgynTcdmVVKSYCsQwlOW/5fc4776c1860b498a59a2865b4e57ecb/Card-Onboarding-Composition.png\", }, ], }, related: { items: [ { name: \"Link\", link: \"https://guides.muibook.com/link\", }, { name: \"Icons\", link: \"https://guides.muibook.com/icons\", }, ], }, rules: [ { heading: \"Primary vs Secondary\", description: \"Primary buttons signify the main action on a page or view. Use only one per context to avoid confusion. Secondary buttons support the primary action and are used for supplementary or less critical choices.\", doContent: [ { description: \"Use one clear primary action, supported by a secondary button for an alternative or reversible choice.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5xunviJfjqUYYS5yWSfOqW/56b8cbaab4aeb86cb7585120c0ef911c/primary-actions-do.png\", }, ], dontContent: [ { description: \"Avoid giving multiple buttons equal visual weight, as this creates confusion about what to do next.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/64qD6QvbuqhFgHbj9IEOiD/f61a0250d0139abe4c8f6d9307ce5cad/primary-actions-do-not.png\", }, ], }, { heading: \"Primary and Tertiary\", description: \"Tertiary actions are low-priority, optional paths that support the experience without distracting from the primary or secondary actions. They are typically styled as text buttons and used for non-critical choices like “Skip” or “Learn more.”\", doContent: [ { description: \"The tertiary action offers an optional, less prominent path that doesn’t compete visually with the primary action.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3eFnCzhfq4d10CALfudUZU/de4b6a7d26964acae2245b73a158517d/tertiary-actions-do.png\", }, ], dontContent: [ { description: \"A tertiary action styled like a primary button creates visual confusion and implies equal importance, which undermines the intended hierarchy.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3K59awxzUKnnihZuDFyOpV/a8ba8a13d36bc63208a3079d0c4c86ac/tertiary-actions-do-not.png\", }, ], }, { heading: \"Pairing Buttons\", description: \"In circumstances where an icon-only button is paired with a button that includes both a label and an icon, use a medium icon for the icon-only button and an small icon for the labeled button. Follow a right-to-left layout, placing the primary action on the right.\", doContent: [ { description: \"Place the primary action on the right and use appropriate icon sizes: medium for icon-only, small for labeled buttons.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/34h9SltXeGjU2fRc5iM4PE/438f84d21e142c84bb98c1965a40b36b/button-groups-do.png\", }, ], dontContent: [ { description: \"Don’t place the primary action on the left or mismatch icon sizing for either button type.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5fwaA1NM6AAQMPbV2vwPMR/b0a491b6aca705f7493806fd13f99734/button-groups-do-not.png\", }, ], }, { heading: \"Table Button-Group\", description: \"You can group multiple actions in a table’s action cell, but be mindful not to overwhelm rows with too many buttons. Prioritize clarity by showing only the most relevant actions per row.\", doContent: [ { description: \"Use a secondary button for labeled actions paired with a tertiary icon-only button, and apply medium icons for icon-only buttons and small icons for labeled buttons.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7beVBzijhfRsyorthBC1fd/c7460f72456cdb1982b122df77dc9bf7/table-button-group-do.png\", }, ], dontContent: [ { description: \"Avoid using primary, tertiary, or attention variants for labeled buttons, as they can draw too much attention and disrupt the visual hierarchy.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7zoFP4Rl3InXCgP0tiDQg0/18ec719eb7a970da67bd12fea32c935b/table-button-group-do-not.png\", }, ], }, { heading: \"Button vs Link\", description: \"Buttons and links may look similar, but buttons are for triggering actions, while links are for navigating between pages or sections of your app or site.\", doContent: [ { description: \"Use a link when navigating to another page or view.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7xOE9DNKWgy1lZoT0FbMOW/cc13fbeeaa85b2507087645d925d7323/button-vs-link-do.png\", }, ], dontContent: [ { description: \"Don’t use a link to trigger tasks like submitting a form or saving data.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6tSAw6uBvg142Gzw7tenBc/4b8db682687b42f3c53fc32557cc4eee/button-vs-link-do-not.png\", }, ], }, { heading: \"Label Clarity\", description: \"\", doContent: [ { description: \"Use clear and concise labels for buttons: Ensure each button clearly indicates its action. E.g. 'Submit'.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3M9fgCF3JgFwDrooqXTvlf/92ad6b1c3faacebd8ea2884afadab24d/button-label-clarity-do.png\", }, ], dontContent: [ { description: \"Don't use ambiguous labels: Avoid using unclear or generic terms for buttons. E.g. 'Click here'.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1rXUNW1YiCVPJ2klPwL8WT/8137762316179653687bb1c1178ceb16/button-label-clarity-do-not.png\", }, ], }, { heading: \"Disabled Actions\", description: \"Avoid disabling call-to-action buttons to prevent form submission. Instead, consider using a combination of form validation, toasts, or alerts to inform users why they can’t proceed and how to resolve the issue.\", doContent: [ { description: \"Use form validation in combination with alerts to provide clear instructions on how to resolve the issue.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/41xe78AaqPHUxpd2RC6QoP/46b6f7217a8eb15bd928495d54a0728f/disabled-do.png\", }, ], dontContent: [ { description: \"Avoid disabling actions, as it prevents users from receiving feedback on why they can’t proceed.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6SiZPnnUlkMbNSJzxV8unt/7e6389d85eaac161d6cfd314190010f9/disabled-do-not.png\", }, ], }, { heading: \"Table Button: Icon-Only\", description: \"Use icon-only buttons in the end (far right) cell of a table row. When implementing tables in-browser, apply the correct action boolean and column auto-spacing to ensure the header and content align properly.\", doContent: [ { description: \"Use a tertiary icon-only button with a medium icon in the end table cell.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/EzbGECpviXXcjsmfftqEm/b21a44dec44b7243688fba26d2c9768c/table-button-do.png\", }, ], dontContent: [ { description: \"Don’t use other button variants or icon sizes in place of the designated icon-only approach.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/722XYLqqBwEJXE6qG0ZLDE/6e9a4d25fc5292688e62960090d92230/table-button-do-not.png\", }, ], }, { heading: \"Card, Dialog and Drawer Actions\", description: \"It is best practice to place actions in a footer for cards, dialogs, and drawers, providing a consistent location for users to find and interact with them.\", doContent: [ { description: \"Place actions in a footer within cards, dialogs, and drawers to ensure they are easily accessible and follow a consistent pattern.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/4nFRwg1AOL74fQXM6OQvnV/d9c1eed80b86919656fb3ab8005f7d71/panel-actions-do.png\", }, ], dontContent: [ { description: \"Avoid placing actions in unconventional or hard-to-find locations within cards, dialogs, or drawers, as this can make them difficult for users to locate and use effectively.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3caBEJQxfRasuxw62RQVbw/4e3620f4e62f2fa8b8f8aa504625776a/panel-actions-do-not.png\", }, ], }, { heading: \"Icon-Only Actions\", description: \"\", doContent: [ { description: \"Use a 'medium' size icon when using an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3syzrNBEXbBjp5hGEUvF4M/0471f4b16939d8ee54deaf48997ff455/action-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5V2TE85dY848jz1dP6Y0lC/b8e433c8abad5a4402ff1f86ddb8c848/action-icon-dont.png\", }, ], }, { heading: \"Text & Icon Actions\", description: \"Use icon-only buttons in the end (far right) cell of a table row. When implementing tables in-browser, apply the correct action boolean and column auto-spacing to ensure the header and content align properly.\", doContent: [ { description: \"Use the 'small' size icon within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2W1xs6NPj3jRrW6ZaVGRvZ/3a11566b68fffda85bf5f780c4d6a394/dropdown-bar-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6BgHzCgKqk44piisNH4tE6/c08d91a1cf5231a089844d20f6ab968c/dropdown-bar-icon-dont.png\", }, ], }, ], behaviour: { description: \"Buttons should provide visual feedback on hover and click. These states should be factored into the component and baked into the corresponding states in code.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3h2wNhGxd4f9AENDf3K7Qa/0ca6f8b224923e7fa9710735dc8f54e0/Button_-_Behaviour.png\", list: [ \"Default: Normal state.\", \"Hover: Changes when a user hovers over the button.\", \"Focus: Ensure buttons display a visible focus indicator when navigated to via keyboard.\", \"Disabled: Non-interactive, faded appearance.\", ], }, writing: { list: [ \"Keep button text short and action-oriented.\", \"Use sentence case for button text.\", \"Avoid using multiple lines of text on a button.\", ], }, }, }"
|
|
660
675
|
}
|
|
661
676
|
],
|
|
662
677
|
"exports": [
|
|
@@ -1813,7 +1828,7 @@
|
|
|
1813
1828
|
"type": {
|
|
1814
1829
|
"text": "MuiDocs"
|
|
1815
1830
|
},
|
|
1816
|
-
"default": "{ Drawer: { title: \"Drawer\", description: \"A drawer view that prompts users to take a specific action or provide additional information without navigating away from the current context.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/1iLh5CQqFjulW1v1LqDuDd/5a429cd1616a087644a8460f4182ba35/Drawer_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=958-8626&t=sYltPCmy96M6DX5X-1\", ], guides: [\"https://guides.muibook.com/drawer\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-drawer/index.ts\"], storybook: [\"https://stories.muibook.com/?path=/docs/content-drawer--docs\"], website: [\"https://muibook.com/#/drawer\"], usage: { list: [ \"Used for navigation, settings and detailed tasks.\", \"Can be a temporary overlay Drawer that appears over content. E.g. Navigation\", \"Can be a persistent push Drawer until workflow complete. E.g. Tasks\", \"Task based Drawers are often positioned right of the viewport.\", ], }, accessibility: { designerList: [ \"Overlay and push drawers act like dialogs.\", \"Persistent drawers act like complementary content.\", \"Drawers have a clear title and description for screen readers.\", \"When open, focus is locked in the drawer and the rest of the app is inactive.\", \"On close, focus returns to the trigger.\", \"The close button is labeled 'Close drawer'.\", \"The footer hides when empty to reduce noise.\", \"Overlay and push drawers close with Escape or backdrop click.\", ], engineerList: [ \"Uses role='dialog' for overlay/push variants and role='complementary' for persistent layout variants.\", \"Supports aria-labelledby and aria-describedby for accessible titles and descriptions.\", \"The close button includes aria-label='Close drawer'.\", \"Footer slot is hidden when empty to reduce screen reader noise.\", \"When open, consumers must trap focus in the drawer and apply inert/aria-hidden to the background.\", \"Backdrop click and Escape close the drawer in overlay and push variants.\", \"Exposes 'mui-drawer-open' and 'mui-drawer-close' events for external state sync.\", ], }, anatomy: { list: [ \"Heading: Text that describes the purpose or contents of the drawer.\", \"Close: An icon or button that allows users to close the drawer.\", \"Body: Section to slot navigation links, settings, or other relevant information.\", \"Footer: Optional section for additional actions, such as 'Cancel' or 'Save'.\", ], image: \"https://images.ctfassets.net/i5uwscj4pkk2/7aOA4WtcFwev6f3tZy6VgX/83c0b087170d859406526e5d7ad66d6b/Drawer_-_Anatomy.png\", }, variants: { items: [ { key: \"\", title: \"\", description: \"\", image: \"\", }, ], }, related: { items: [ { name: \"Dialog\", link: \"https://guides.muibook.com/dialog\" }, { name: \"Button\", link: \"https://guides.muibook.com/button\" }, ], }, rules: [ { heading: \"Dismissing a Drawer\", description: \"\", doContent: [ { description: \"Dismiss the Drawer by clicking the cross icon, cancel button, esc key or the surrounding background.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/57NkU3oAQcirF5MGE13com/ad76c20d1895daf7d7c1e3467066e65a/drawer-dismiss-do.png\", }, ], dontContent: [ { description: \"Avoid hiding the close button or replacing the footer action with a close function.\" }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/18OP63gYKYYM22rkwWeR2B/b1f496968b693385afcfdae4fe54f1c2/drawer-dismiss-dont.png\", }, ], }, { heading: \"Push Drawer\", description: \"Ideal when both drawer and the main content need to be visible, such as for filters or tools that need to be accessed with the main view still present.\", doContent: [ { description: \"Ensure the drawer does not obscure crucial information when the user is working on a task.\" }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/5wsKf5Cnw9RNvyIUp2LQkc/5394a8450361acb0d100356688190301/drawer-push-drawer-do.png\", }, ], dontContent: [ { description: \"The drawer shouldn't cover key content or controls when the user is completing a task.\" }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/2DH7KR12spaSoBbTq4rzav/4f46f916a3918a2cf6b61995f984bc36/drawer-push-drawer-dont.png\", }, ], }, { heading: \"Overlay Drawer / Menu\", description: \"Overlay navigation drawers appear above the main content and are used to access app sections or menus. They block background interaction to keep the user focused on making a selection.\", doContent: [ { description: \"Ensure the user can close the drawer by clicking the background, using the close (X) button, or hitting the Escape key.\", }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/5VOY2WHXcUCqblWIqAg0di/718f85a9b69d5467179deb4ae7fa65db/drawer-overlay-do.png\", }, ], dontContent: [ { description: \"Don't use footer actions, such as “Save” or “Cancel,” to close the navigation drawer. These actions are reserved for task workflows.\", }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/5PpEeYZf4PslTKh42u81Uf/9e59e9a3f1bf533699b20ede7d289b75/drawer-overlay-dont.png\", }, ], }, ], compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"navigation-menu\", name: \"Navigation Menu\", description: \"Overlay Drawer used for navigating between major sections of the product. It appears as a temporary overlay and is dismissed easily when users make a selection or interact outside the drawer. Ideal for mobile or smaller viewports where persistent navigation isn’t suitable.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/56QeC3M4PhQVmlwVKwUqLl/1e3119e0d817813c88c1352408e53c64/drawer-composition-menu.png\", }, { key: \"create-roadmap-task\", name: \"Create Roadmap Task\", description: \"Overlay Drawer used for completing temporary, focused tasks such as editing a field or filling out a short form, where the surrounding content (background) is not needed for context. If the task depends on the main content, use a push or permanent drawer that sits alongside the view.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2FFW8tnnM6leJbd0LPyeKl/1ab79ffb7165d6fbd35b151bc69cad5a/drawer-composition-outcomes.png\", }, { key: \"invoice-details-task\", name: \"Invoice Details Task\", description: \"Overlay Drawer used for navigating between major sections of the product. It appears as a temporary overlay and is dismissed easily when users make a selection or interact outside the drawer. Ideal for mobile or smaller viewports where persistent navigation isn’t suitable.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/XXqWZOjNxUkK9Ou2FPTCB/5fd1db2b2315d0ae41ec543feac2a03c/drawer-composition-invoice.png\", }, { key: \"review-items-task\", name: \"Review Items Task\", description: \"Push Drawer used for completing persistent tasks such as editing a field or filling out a short form, where surrounding content remains visible for context. An entry action is required to open the drawer, but it can be hidden while the task is active to keep focus on the workflow.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/rHTSU9sPUdmwrmGETRLcC/fa444ff8d8a72a28e8f10537324bbca3/drawer-composition-smart-bills.png\", }, ], }, behaviour: { list: [ \"Animate the drawer smoothly to enhance user experience.\", \"Don't make the animation too slow or jarring\", \"Avoid animations that are too fast, slow, or abrupt.\", \"rawers often slide in from the right-side of the viewport.\", ], }, writing: { list: [ \"Keep drawer content simple and concise.\", \"Use clear labels for navigation items or actions.\", \"Avoid overcrowding the drawer with too much information.\", ], }, }, }"
|
|
1831
|
+
"default": "{ Drawer: { title: \"Drawer\", description: \"A drawer view that prompts users to take a specific action or provide additional information without navigating away from the current context.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/1iLh5CQqFjulW1v1LqDuDd/5a429cd1616a087644a8460f4182ba35/Drawer_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=958-8626&t=sYltPCmy96M6DX5X-1\", ], guides: [\"https://guides.muibook.com/drawer\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-drawer/index.ts\"], storybook: [\"https://stories.muibook.com/?path=/docs/content-drawer--docs\"], website: [\"https://muibook.com/#/drawer\"], usage: { list: [ \"Used for navigation, settings and detailed tasks.\", \"Can be a temporary overlay Drawer that appears over content. E.g. Navigation\", \"Can be a persistent push Drawer until workflow complete. E.g. Tasks\", \"Task based Drawers are often positioned right of the viewport.\", \"For push and persistent drawers, use a plain div as the direct slot='page' wrapper and compose layout components inside it.\", \"Avoid assigning slot='page' directly to Stack or other sized layout components because Drawer owns the page viewport sizing.\", ], }, accessibility: { designerList: [ \"Overlay and push drawers act like dialogs.\", \"Persistent drawers act like complementary content.\", \"Drawers have a clear title and description for screen readers.\", \"When open, focus is locked in the drawer and the rest of the app is inactive.\", \"On close, focus returns to the trigger.\", \"The close button is labeled 'Close drawer'.\", \"The footer hides when empty to reduce noise.\", \"Overlay and push drawers close with Escape or backdrop click.\", ], engineerList: [ \"Uses role='dialog' for overlay/push variants and role='complementary' for persistent layout variants.\", \"Supports aria-labelledby and aria-describedby for accessible titles and descriptions.\", \"The close button includes aria-label='Close drawer'.\", \"Footer slot is hidden when empty to reduce screen reader noise.\", \"When open, consumers must trap focus in the drawer and apply inert/aria-hidden to the background.\", \"Backdrop click and Escape close the drawer in overlay and push variants.\", \"Exposes 'mui-drawer-open' and 'mui-drawer-close' events for external state sync.\", ], }, anatomy: { list: [ \"Heading: Text that describes the purpose or contents of the drawer.\", \"Close: An icon or button that allows users to close the drawer.\", \"Body: Section to slot navigation links, settings, or other relevant information.\", \"Footer: Optional section for additional actions, such as 'Cancel' or 'Save'.\", \"Page: Plain div wrapper assigned to slot='page' for push and persistent layouts; place app layout content inside it.\", ], image: \"https://images.ctfassets.net/i5uwscj4pkk2/7aOA4WtcFwev6f3tZy6VgX/83c0b087170d859406526e5d7ad66d6b/Drawer_-_Anatomy.png\", }, variants: { items: [ { key: \"\", title: \"\", description: \"\", image: \"\", }, ], }, related: { items: [ { name: \"Dialog\", link: \"https://guides.muibook.com/dialog\" }, { name: \"Button\", link: \"https://guides.muibook.com/button\" }, ], }, rules: [ { heading: \"Dismissing a Drawer\", description: \"\", doContent: [ { description: \"Dismiss the Drawer by clicking the cross icon, cancel button, esc key or the surrounding background.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/57NkU3oAQcirF5MGE13com/ad76c20d1895daf7d7c1e3467066e65a/drawer-dismiss-do.png\", }, ], dontContent: [ { description: \"Avoid hiding the close button or replacing the footer action with a close function.\" }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/18OP63gYKYYM22rkwWeR2B/b1f496968b693385afcfdae4fe54f1c2/drawer-dismiss-dont.png\", }, ], }, { heading: \"Push Drawer\", description: \"Ideal when both drawer and the main content need to be visible, such as for filters or tools that need to be accessed with the main view still present.\", doContent: [ { description: \"Ensure the drawer does not obscure crucial information when the user is working on a task.\" }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/5wsKf5Cnw9RNvyIUp2LQkc/5394a8450361acb0d100356688190301/drawer-push-drawer-do.png\", }, ], dontContent: [ { description: \"The drawer shouldn't cover key content or controls when the user is completing a task.\" }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/2DH7KR12spaSoBbTq4rzav/4f46f916a3918a2cf6b61995f984bc36/drawer-push-drawer-dont.png\", }, ], }, { heading: \"Overlay Drawer / Menu\", description: \"Overlay navigation drawers appear above the main content and are used to access app sections or menus. They block background interaction to keep the user focused on making a selection.\", doContent: [ { description: \"Ensure the user can close the drawer by clicking the background, using the close (X) button, or hitting the Escape key.\", }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/5VOY2WHXcUCqblWIqAg0di/718f85a9b69d5467179deb4ae7fa65db/drawer-overlay-do.png\", }, ], dontContent: [ { description: \"Don't use footer actions, such as “Save” or “Cancel,” to close the navigation drawer. These actions are reserved for task workflows.\", }, { image: \"https://images.ctfassets.net/i5uwscj4pkk2/5PpEeYZf4PslTKh42u81Uf/9e59e9a3f1bf533699b20ede7d289b75/drawer-overlay-dont.png\", }, ], }, ], compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"navigation-menu\", name: \"Navigation Menu\", description: \"Overlay Drawer used for navigating between major sections of the product. It appears as a temporary overlay and is dismissed easily when users make a selection or interact outside the drawer. Ideal for mobile or smaller viewports where persistent navigation isn’t suitable.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/56QeC3M4PhQVmlwVKwUqLl/1e3119e0d817813c88c1352408e53c64/drawer-composition-menu.png\", }, { key: \"create-roadmap-task\", name: \"Create Roadmap Task\", description: \"Overlay Drawer used for completing temporary, focused tasks such as editing a field or filling out a short form, where the surrounding content (background) is not needed for context. If the task depends on the main content, use a push or permanent drawer that sits alongside the view.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2FFW8tnnM6leJbd0LPyeKl/1ab79ffb7165d6fbd35b151bc69cad5a/drawer-composition-outcomes.png\", }, { key: \"invoice-details-task\", name: \"Invoice Details Task\", description: \"Overlay Drawer used for navigating between major sections of the product. It appears as a temporary overlay and is dismissed easily when users make a selection or interact outside the drawer. Ideal for mobile or smaller viewports where persistent navigation isn’t suitable.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/XXqWZOjNxUkK9Ou2FPTCB/5fd1db2b2315d0ae41ec543feac2a03c/drawer-composition-invoice.png\", }, { key: \"review-items-task\", name: \"Review Items Task\", description: \"Push Drawer used for completing persistent tasks such as editing a field or filling out a short form, where surrounding content remains visible for context. An entry action is required to open the drawer, but it can be hidden while the task is active to keep focus on the workflow.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/rHTSU9sPUdmwrmGETRLcC/fa444ff8d8a72a28e8f10537324bbca3/drawer-composition-smart-bills.png\", }, ], }, behaviour: { list: [ \"Animate the drawer smoothly to enhance user experience.\", \"Don't make the animation too slow or jarring\", \"Avoid animations that are too fast, slow, or abrupt.\", \"rawers often slide in from the right-side of the viewport.\", ], }, writing: { list: [ \"Keep drawer content simple and concise.\", \"Use clear labels for navigation items or actions.\", \"Avoid overcrowding the drawer with too much information.\", ], }, }, }"
|
|
1817
1832
|
}
|
|
1818
1833
|
],
|
|
1819
1834
|
"exports": [
|
|
@@ -1952,7 +1967,7 @@
|
|
|
1952
1967
|
},
|
|
1953
1968
|
{
|
|
1954
1969
|
"name": "page",
|
|
1955
|
-
"description": "Page
|
|
1970
|
+
"description": "Page region displayed alongside `push` and `persistent` variants. Use a plain `div` as the direct slotted wrapper, then compose Stack or other layout components inside it."
|
|
1956
1971
|
}
|
|
1957
1972
|
],
|
|
1958
1973
|
"cssProperties": [
|
|
@@ -2461,7 +2476,7 @@
|
|
|
2461
2476
|
"type": {
|
|
2462
2477
|
"text": "MuiDocs"
|
|
2463
2478
|
},
|
|
2464
|
-
"default": "{ FormMessage: { title: \"Form Message\", description: \"Form Message provides supporting text below form controls for guidance, validation, and status messaging.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-form-message/index.ts\"], website: [\"https://muibook.com/#/form-message\"], guides: [\"https://guides.muibook.com/field\"], usage: { list: [ \"Use for supporting text below form controls.\", \"Use inside mui-field with slot='message' for consistent spacing and placement.\", \"When used in Form Group layouts, attach each Form Message to its specific Field using slot='message'.\", \"Form Message wraps Mui Body with form-oriented defaults.\", \"Form Message renders an info icon by default; provide slot='before' to replace it.\", \"Supporting copy is intentionally knocked back so inputs and selections stay visually primary.\", \"Slot icons in before/after using Mui Body slot behavior.\", \"Style state feedback through slotted icon color and text styling in usage context.\", \"Use size to match nearby body text (x-small, small, medium, large).\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"] }, anatomy: { image: \"\", list: [\"Optional leading slot\", \"Hint text\", \"Optional trailing slot\"] }, variants: { items: [{ key: \"\", title: \"\", description: \"\", image: \"\" }] }, compositions: { description: \"\", items: [] }, related: { items: [ { name: \"Field\", link: \"https://guides.muibook.com/field\" }, { name: \"Input\", link: \"https://guides.muibook.com/input\" }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"] }, writing: { list: [\"\"] }, }, }"
|
|
2479
|
+
"default": "{ FormMessage: { title: \"Form Message\", description: \"Form Message provides supporting text below form controls for guidance, validation, and status messaging.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-form-message/index.ts\"], website: [\"https://muibook.com/#/form-message\"], guides: [\"https://guides.muibook.com/field\"], usage: { list: [ \"Use for supporting text below form controls.\", \"Use inside mui-field with slot='message' for consistent spacing and placement.\", \"When used in Form Group layouts, attach each Form Message to its specific Field using slot='message'.\", \"Form Message wraps Mui Body with form-oriented defaults.\", \"Form Message renders an info icon by default; provide slot='before' to replace it.\", \"Use variant='info' for lighter informational guidance that should remain less visually impactful than warning, success, or error states.\", \"Supporting copy is intentionally knocked back so inputs and selections stay visually primary.\", \"Slot icons in before/after using Mui Body slot behavior.\", \"Style state feedback through slotted icon color and text styling in usage context.\", \"Use size to match nearby body text (x-small, small, medium, large).\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"] }, anatomy: { image: \"\", list: [\"Optional leading slot\", \"Hint text\", \"Optional trailing slot\"] }, variants: { items: [{ key: \"\", title: \"\", description: \"\", image: \"\" }] }, compositions: { description: \"\", items: [] }, related: { items: [ { name: \"Field\", link: \"https://guides.muibook.com/field\" }, { name: \"Input\", link: \"https://guides.muibook.com/input\" }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"] }, writing: { list: [\"\"] }, }, }"
|
|
2465
2480
|
}
|
|
2466
2481
|
],
|
|
2467
2482
|
"exports": [
|
|
@@ -2503,7 +2518,7 @@
|
|
|
2503
2518
|
{
|
|
2504
2519
|
"name": "variant",
|
|
2505
2520
|
"type": {
|
|
2506
|
-
"text": "\"optional\" | \"warning\" | \"success\" | \"error\""
|
|
2521
|
+
"text": "\"optional\" | \"info\" | \"warning\" | \"success\" | \"error\""
|
|
2507
2522
|
},
|
|
2508
2523
|
"default": "optional",
|
|
2509
2524
|
"description": "Sets the semantic message color and default icon treatment."
|
|
@@ -2683,74 +2698,6 @@
|
|
|
2683
2698
|
}
|
|
2684
2699
|
]
|
|
2685
2700
|
},
|
|
2686
|
-
{
|
|
2687
|
-
"kind": "javascript-module",
|
|
2688
|
-
"path": "src/components/mui-form-section-footer/doc.ts",
|
|
2689
|
-
"declarations": [
|
|
2690
|
-
{
|
|
2691
|
-
"kind": "variable",
|
|
2692
|
-
"name": "muiDocs",
|
|
2693
|
-
"type": {
|
|
2694
|
-
"text": "MuiDocs"
|
|
2695
|
-
},
|
|
2696
|
-
"default": "{ FormSectionFooter: { title: \"Form Section Footer\", description: \"Footer wrapper for Form Section actions and divider patterns.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-form-section-footer/index.ts\"], website: [\"https://muibook.com/#/form-section-footer\"], guides: [\"https://guides.muibook.com/form-section\"], usage: { list: [ \"Use in slot='footer' on mui-form-section for consistent footer spacing.\", \"Place mui-rule first when you need a visual separation before actions.\", \"Keep responsive action layouts inside the footer wrapper.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"Footer actions remain keyboard accessible based on slotted controls.\"], }, anatomy: { image: \"\", list: [\"Footer wrapper\", \"Optional divider (mui-rule)\", \"Action content\"], }, variants: { items: [{ key: \"\", title: \"\", description: \"\", image: \"\" }] }, compositions: { description: \"\", items: [] }, related: { items: [ { name: \"Form Section\", link: \"https://guides.muibook.com/form-section\" }, { name: \"Form Group\", link: \"https://guides.muibook.com/form-group\" }, ], }, rules: [{ heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }] }], behaviour: { list: [\"\"] }, writing: { list: [\"\"] }, }, }"
|
|
2697
|
-
}
|
|
2698
|
-
],
|
|
2699
|
-
"exports": [
|
|
2700
|
-
{
|
|
2701
|
-
"kind": "js",
|
|
2702
|
-
"name": "muiDocs",
|
|
2703
|
-
"declaration": {
|
|
2704
|
-
"name": "muiDocs",
|
|
2705
|
-
"module": "src/components/mui-form-section-footer/doc.ts"
|
|
2706
|
-
}
|
|
2707
|
-
}
|
|
2708
|
-
]
|
|
2709
|
-
},
|
|
2710
|
-
{
|
|
2711
|
-
"kind": "javascript-module",
|
|
2712
|
-
"path": "src/components/mui-form-section-footer/index.ts",
|
|
2713
|
-
"declarations": [
|
|
2714
|
-
{
|
|
2715
|
-
"kind": "class",
|
|
2716
|
-
"description": "Provides consistent spacing for actions and optional divider content in a form section footer.",
|
|
2717
|
-
"name": "MuiFormSectionFooter",
|
|
2718
|
-
"superclass": {
|
|
2719
|
-
"name": "HTMLElement"
|
|
2720
|
-
},
|
|
2721
|
-
"tagName": "mui-form-section-footer",
|
|
2722
|
-
"customElement": true,
|
|
2723
|
-
"attributes": [],
|
|
2724
|
-
"slots": [
|
|
2725
|
-
{
|
|
2726
|
-
"name": "",
|
|
2727
|
-
"description": "Footer actions and optional leading `mui-rule` divider."
|
|
2728
|
-
}
|
|
2729
|
-
],
|
|
2730
|
-
"events": [],
|
|
2731
|
-
"cssProperties": [
|
|
2732
|
-
{
|
|
2733
|
-
"name": "--form-section-footer-gap",
|
|
2734
|
-
"description": "Gap between footer children without a divider."
|
|
2735
|
-
},
|
|
2736
|
-
{
|
|
2737
|
-
"name": "--form-section-footer-gap-with-rule",
|
|
2738
|
-
"description": "Gap between footer children when a divider is present."
|
|
2739
|
-
}
|
|
2740
|
-
]
|
|
2741
|
-
}
|
|
2742
|
-
],
|
|
2743
|
-
"exports": [
|
|
2744
|
-
{
|
|
2745
|
-
"kind": "custom-element-definition",
|
|
2746
|
-
"name": "mui-form-section-footer",
|
|
2747
|
-
"declaration": {
|
|
2748
|
-
"name": "MuiFormSectionFooter",
|
|
2749
|
-
"module": "src/components/mui-form-section-footer/index.ts"
|
|
2750
|
-
}
|
|
2751
|
-
}
|
|
2752
|
-
]
|
|
2753
|
-
},
|
|
2754
2701
|
{
|
|
2755
2702
|
"kind": "javascript-module",
|
|
2756
2703
|
"path": "src/components/mui-grid/doc.ts",
|
|
@@ -3005,7 +2952,7 @@
|
|
|
3005
2952
|
},
|
|
3006
2953
|
{
|
|
3007
2954
|
"kind": "javascript-module",
|
|
3008
|
-
"path": "src/components/mui-
|
|
2955
|
+
"path": "src/components/mui-form-section-footer/doc.ts",
|
|
3009
2956
|
"declarations": [
|
|
3010
2957
|
{
|
|
3011
2958
|
"kind": "variable",
|
|
@@ -3013,7 +2960,7 @@
|
|
|
3013
2960
|
"type": {
|
|
3014
2961
|
"text": "MuiDocs"
|
|
3015
2962
|
},
|
|
3016
|
-
"default": "{
|
|
2963
|
+
"default": "{ FormSectionFooter: { title: \"Form Section Footer\", description: \"Footer wrapper for Form Section actions and divider patterns.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-form-section-footer/index.ts\"], website: [\"https://muibook.com/#/form-section-footer\"], guides: [\"https://guides.muibook.com/form-section\"], usage: { list: [ \"Use in slot='footer' on mui-form-section for consistent footer spacing.\", \"Place mui-rule first when you need a visual separation before actions.\", \"Keep responsive action layouts inside the footer wrapper.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"Footer actions remain keyboard accessible based on slotted controls.\"], }, anatomy: { image: \"\", list: [\"Footer wrapper\", \"Optional divider (mui-rule)\", \"Action content\"], }, variants: { items: [{ key: \"\", title: \"\", description: \"\", image: \"\" }] }, compositions: { description: \"\", items: [] }, related: { items: [ { name: \"Form Section\", link: \"https://guides.muibook.com/form-section\" }, { name: \"Form Group\", link: \"https://guides.muibook.com/form-group\" }, ], }, rules: [{ heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }] }], behaviour: { list: [\"\"] }, writing: { list: [\"\"] }, }, }"
|
|
3017
2964
|
}
|
|
3018
2965
|
],
|
|
3019
2966
|
"exports": [
|
|
@@ -3022,56 +2969,40 @@
|
|
|
3022
2969
|
"name": "muiDocs",
|
|
3023
2970
|
"declaration": {
|
|
3024
2971
|
"name": "muiDocs",
|
|
3025
|
-
"module": "src/components/mui-
|
|
2972
|
+
"module": "src/components/mui-form-section-footer/doc.ts"
|
|
3026
2973
|
}
|
|
3027
2974
|
}
|
|
3028
2975
|
]
|
|
3029
2976
|
},
|
|
3030
2977
|
{
|
|
3031
2978
|
"kind": "javascript-module",
|
|
3032
|
-
"path": "src/components/mui-
|
|
2979
|
+
"path": "src/components/mui-form-section-footer/index.ts",
|
|
3033
2980
|
"declarations": [
|
|
3034
2981
|
{
|
|
3035
2982
|
"kind": "class",
|
|
3036
|
-
"description": "
|
|
3037
|
-
"name": "
|
|
3038
|
-
"attributes": [
|
|
3039
|
-
{
|
|
3040
|
-
"name": "size",
|
|
3041
|
-
"type": {
|
|
3042
|
-
"text": "1 | 2 | 3 | 4 | 5 | 6"
|
|
3043
|
-
},
|
|
3044
|
-
"default": "1",
|
|
3045
|
-
"description": "Sets the visual heading size."
|
|
3046
|
-
},
|
|
3047
|
-
{
|
|
3048
|
-
"name": "level",
|
|
3049
|
-
"type": {
|
|
3050
|
-
"text": "1 | 2 | 3 | 4 | 5 | 6"
|
|
3051
|
-
},
|
|
3052
|
-
"description": "Sets the semantic heading level; defaults to the selected visual size."
|
|
3053
|
-
}
|
|
3054
|
-
],
|
|
2983
|
+
"description": "Provides consistent spacing for actions and optional divider content in a form section footer.",
|
|
2984
|
+
"name": "MuiFormSectionFooter",
|
|
3055
2985
|
"superclass": {
|
|
3056
2986
|
"name": "HTMLElement"
|
|
3057
2987
|
},
|
|
3058
|
-
"tagName": "mui-
|
|
2988
|
+
"tagName": "mui-form-section-footer",
|
|
3059
2989
|
"customElement": true,
|
|
2990
|
+
"attributes": [],
|
|
3060
2991
|
"slots": [
|
|
3061
2992
|
{
|
|
3062
2993
|
"name": "",
|
|
3063
|
-
"description": "
|
|
2994
|
+
"description": "Footer actions and optional leading `mui-rule` divider."
|
|
3064
2995
|
}
|
|
3065
2996
|
],
|
|
3066
2997
|
"events": [],
|
|
3067
2998
|
"cssProperties": [
|
|
3068
2999
|
{
|
|
3069
|
-
"name": "--
|
|
3070
|
-
"description": "
|
|
3000
|
+
"name": "--form-section-footer-gap",
|
|
3001
|
+
"description": "Gap between footer children without a divider."
|
|
3071
3002
|
},
|
|
3072
3003
|
{
|
|
3073
|
-
"name": "--
|
|
3074
|
-
"description": "
|
|
3004
|
+
"name": "--form-section-footer-gap-with-rule",
|
|
3005
|
+
"description": "Gap between footer children when a divider is present."
|
|
3075
3006
|
}
|
|
3076
3007
|
]
|
|
3077
3008
|
}
|
|
@@ -3079,10 +3010,10 @@
|
|
|
3079
3010
|
"exports": [
|
|
3080
3011
|
{
|
|
3081
3012
|
"kind": "custom-element-definition",
|
|
3082
|
-
"name": "mui-
|
|
3013
|
+
"name": "mui-form-section-footer",
|
|
3083
3014
|
"declaration": {
|
|
3084
|
-
"name": "
|
|
3085
|
-
"module": "src/components/mui-
|
|
3015
|
+
"name": "MuiFormSectionFooter",
|
|
3016
|
+
"module": "src/components/mui-form-section-footer/index.ts"
|
|
3086
3017
|
}
|
|
3087
3018
|
}
|
|
3088
3019
|
]
|
|
@@ -3097,7 +3028,7 @@
|
|
|
3097
3028
|
"type": {
|
|
3098
3029
|
"text": "MuiDocs"
|
|
3099
3030
|
},
|
|
3100
|
-
"default": "{ Hint: { title: \"Hint\", description: \"Hint provides a trigger + floating tooltip pattern for contextual help.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-hint/index.ts\"], website: [\"https://muibook.com/#/hint\"], guides: [\"https://guides.muibook.com/field\"], usage: { list: [ \"Use for short contextual help that appears on hover or focus.\", \"Slot the trigger UI into slot='trigger' (icon, badge, text, or custom content).\", \"Set placement to top, bottom, left, or right to control tooltip position.\", \"Delay is intentional by default: hint open is clamped to
|
|
3031
|
+
"default": "{ Hint: { title: \"Hint\", description: \"Hint provides a trigger + floating tooltip pattern for contextual help.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-hint/index.ts\"], website: [\"https://muibook.com/#/hint\"], guides: [\"https://guides.muibook.com/field\"], usage: { list: [ \"Use for short contextual help that appears on hover or focus.\", \"Slot the trigger UI into slot='trigger' (icon, badge, text, or custom content).\", \"Set placement to top, bottom, left, or right to control tooltip position.\", \"Delay is intentional by default: hint open is clamped to 250-2000ms (default 500ms) to prevent instant pop.\", \"Use delay and initial-delay to tune open timing when needed.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"] }, anatomy: { image: \"\", list: [\"Trigger slot\", \"Tooltip content\", \"Placement behavior\"] }, variants: { items: [{ key: \"\", title: \"\", description: \"\", image: \"\" }] }, compositions: { description: \"\", items: [] }, related: { items: [ { name: \"Body\", link: \"https://guides.muibook.com/body\" }, { name: \"Form Message\", link: \"https://guides.muibook.com/field\" }, ], }, rules: [{ heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }] }], behaviour: { list: [\"\"] }, writing: { list: [\"\"] }, }, }"
|
|
3101
3032
|
}
|
|
3102
3033
|
],
|
|
3103
3034
|
"exports": [
|
|
@@ -3141,16 +3072,16 @@
|
|
|
3141
3072
|
"type": {
|
|
3142
3073
|
"text": "number"
|
|
3143
3074
|
},
|
|
3144
|
-
"default": "
|
|
3145
|
-
"description": "Delay in milliseconds for subsequent openings, clamped between
|
|
3075
|
+
"default": "500",
|
|
3076
|
+
"description": "Delay in milliseconds for subsequent openings, clamped between 250 and 2000."
|
|
3146
3077
|
},
|
|
3147
3078
|
{
|
|
3148
3079
|
"name": "initial-delay",
|
|
3149
3080
|
"type": {
|
|
3150
3081
|
"text": "number"
|
|
3151
3082
|
},
|
|
3152
|
-
"default": "
|
|
3153
|
-
"description": "Delay in milliseconds for the first opening, clamped between
|
|
3083
|
+
"default": "500",
|
|
3084
|
+
"description": "Delay in milliseconds for the first opening, clamped between 250 and 2000."
|
|
3154
3085
|
},
|
|
3155
3086
|
{
|
|
3156
3087
|
"name": "size",
|
|
@@ -3198,7 +3129,7 @@
|
|
|
3198
3129
|
},
|
|
3199
3130
|
{
|
|
3200
3131
|
"kind": "javascript-module",
|
|
3201
|
-
"path": "src/components/mui-
|
|
3132
|
+
"path": "src/components/mui-heading/doc.ts",
|
|
3202
3133
|
"declarations": [
|
|
3203
3134
|
{
|
|
3204
3135
|
"kind": "variable",
|
|
@@ -3206,7 +3137,7 @@
|
|
|
3206
3137
|
"type": {
|
|
3207
3138
|
"text": "MuiDocs"
|
|
3208
3139
|
},
|
|
3209
|
-
"default": "{
|
|
3140
|
+
"default": "{ Heading: { title: \"Heading\", description: \"The Heading component includes six levels (H1–H6) for structured heading usage, supporting a range of hierarchies in text presentation.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/mGURbbhEBEMoMv5KlrbhD/46b2fdc16823b3750955a6bfd451e3ed/Heading_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-1120&t=fSFYVey9aCoE5oQa-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/content-heading--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-heading/index.ts\"], website: [\"https://muibook.com/#/heading\"], guides: [\"https://guides.muibook.com/heading\"], usage: { list: [ \"Blog/Info Pages: Follow a structured, descending order to create clear sections. E.g. H1 → H2 → H3.\", \"Rich Data or Workflows: Headings may be used out of strict order to maintain visual balance and usability. E.g. Skip an H3 if H4 better suits the layout.\", \"Use only one H1 per page to establish a clear primary title and improve accessibility.\", \"Use H2–H6 to structure content logically, maintaining a clear hierarchy.\", ], }, accessibility: { designerList: [ \"Use the level property (H1–H6) to maintain correct semantic structure.\", \"Follow a logical order — don’t skip heading levels.\", \"Helps screen readers understand and navigate the page hierarchy.\", ], engineerList: [ \"Use the level property (H1–H6) to maintain correct semantic structure.\", \"Follow a logical order — don’t skip heading levels.\", \"Helps screen readers understand and navigate the page hierarchy.\", ], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"heading-1\", title: \"Heading 1\", description: \"The primary heading is typically the page's main title. It plays a crucial role in accessibility and SEO, as screen readers and search engines rely on H1s to understand page structure.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/4qDOWEyMtO0U40Ot9aSKNb/a3ae2d059cb9caeb26c6c65e36df71b2/heading-1.png\", }, { key: \"heading-2\", title: \"Heading 2\", description: \"A secondary heading that introduces major sections within a page, following the H1.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/WXCjRrpLpqzGUhY8auOMv/66d0cd721db330f68547a16a63feec4f/heading-2.png\", }, { key: \"heading-3\", title: \"Heading 3\", description: \"A heading is used to structure content under H2, providing additional hierarchy.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/146ZPfxWf50ahUf35SAMWU/ffaacafbe9f905da81850a60d00e48d7/heading-3.png\", }, { key: \"heading-4\", title: \"Heading 4\", description: \"A heading for organising detailed content under H3, maintaining readability.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/53f9iMdJUV7DPsiZhPToiY/83141d25fb2de26bcb7c0e66a4fd14f6/heading-4.png\", }, { key: \"heading-5\", title: \"Heading 5\", description: \"A heading that introduces lower-level content, often for minor divisions within H4 sections.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1pocISFs6Ht66gXn4EHn59/f43d402c6cbe3dafbc06d35ef1097cad/heading-5.png\", }, { key: \"heading-6\", title: \"Heading 6\", description: \"The lowest level heading, used for minimal emphasis or supplementary labeling.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3CV5CHrrNrkeTkZDfhpRGA/29d6f9b6da53f4174f8c4d45aee01939/heading-6.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"muibook-resource\", name: \"Muibook Resource\", description: \"The Muibook documentation site uses MUI components to compose its layout, including headings, text, lists, buttons, icons, and image components.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3LVvuYDZWRnMhxNy6GMLNd/c5074a05eacb2c22c50ea172b3567c48/Muibook-List-Composition.png\", }, { key: \"guru-outcomes-roadmap\", name: \"Guru Outcomes - Roadmap\", description: \"The Loader component in action on the roadmap page, smoothly loading the UI while masking delays and improving perceived performance.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7Hebis0o1mlvvDZlQRZfzl/f0c06679ab417f2ee624b570226da77d/outcomes-roadmap.gif\", }, { key: \"guru-outcomes-dashboard\", name: \"Guru Outcomes - Dashboard\", description: \"Use the <mui-loader> component to mask slow network or initial data load times. Combine its features to create a seamless loading experience.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7fsKn4mqKGieVh2D1EdyuR/a9afa145001e13470054aa9d7004127d/outcomes-home.gif\", }, ], }, related: { items: [ { name: \"Body\", link: \"https://guides.muibook.com/body\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
3210
3141
|
}
|
|
3211
3142
|
],
|
|
3212
3143
|
"exports": [
|
|
@@ -3215,48 +3146,151 @@
|
|
|
3215
3146
|
"name": "muiDocs",
|
|
3216
3147
|
"declaration": {
|
|
3217
3148
|
"name": "muiDocs",
|
|
3218
|
-
"module": "src/components/mui-
|
|
3149
|
+
"module": "src/components/mui-heading/doc.ts"
|
|
3219
3150
|
}
|
|
3220
3151
|
}
|
|
3221
3152
|
]
|
|
3222
3153
|
},
|
|
3223
3154
|
{
|
|
3224
3155
|
"kind": "javascript-module",
|
|
3225
|
-
"path": "src/components/mui-
|
|
3156
|
+
"path": "src/components/mui-heading/index.ts",
|
|
3226
3157
|
"declarations": [
|
|
3227
3158
|
{
|
|
3228
3159
|
"kind": "class",
|
|
3229
|
-
"description": "
|
|
3230
|
-
"name": "
|
|
3160
|
+
"description": "Renders a semantic heading with an independently configurable visual size.",
|
|
3161
|
+
"name": "MuiHeading",
|
|
3231
3162
|
"attributes": [
|
|
3232
3163
|
{
|
|
3233
3164
|
"name": "size",
|
|
3234
3165
|
"type": {
|
|
3235
|
-
"text": "
|
|
3166
|
+
"text": "1 | 2 | 3 | 4 | 5 | 6"
|
|
3236
3167
|
},
|
|
3237
|
-
"default": "
|
|
3238
|
-
"description": "Sets the
|
|
3168
|
+
"default": "1",
|
|
3169
|
+
"description": "Sets the visual heading size."
|
|
3239
3170
|
},
|
|
3240
3171
|
{
|
|
3241
|
-
"name": "
|
|
3172
|
+
"name": "level",
|
|
3242
3173
|
"type": {
|
|
3243
|
-
"text": "
|
|
3174
|
+
"text": "1 | 2 | 3 | 4 | 5 | 6"
|
|
3244
3175
|
},
|
|
3245
|
-
"
|
|
3246
|
-
|
|
3176
|
+
"description": "Sets the semantic heading level; defaults to the selected visual size."
|
|
3177
|
+
},
|
|
3178
|
+
{
|
|
3179
|
+
"name": "truncate",
|
|
3180
|
+
"type": {
|
|
3181
|
+
"text": "boolean"
|
|
3182
|
+
},
|
|
3183
|
+
"default": "false",
|
|
3184
|
+
"description": "Clamps heading text to a single line with ellipsis when the available width is constrained."
|
|
3185
|
+
},
|
|
3186
|
+
{
|
|
3187
|
+
"name": "clamp",
|
|
3188
|
+
"type": {
|
|
3189
|
+
"text": "number"
|
|
3190
|
+
},
|
|
3191
|
+
"description": "Limits heading text to the provided number of lines. Ignored when truncate is present."
|
|
3247
3192
|
}
|
|
3248
3193
|
],
|
|
3249
3194
|
"superclass": {
|
|
3250
3195
|
"name": "HTMLElement"
|
|
3251
3196
|
},
|
|
3252
|
-
"tagName": "mui-
|
|
3197
|
+
"tagName": "mui-heading",
|
|
3253
3198
|
"customElement": true,
|
|
3254
|
-
"slots": [
|
|
3199
|
+
"slots": [
|
|
3200
|
+
{
|
|
3201
|
+
"name": "",
|
|
3202
|
+
"description": "Heading text content."
|
|
3203
|
+
}
|
|
3204
|
+
],
|
|
3255
3205
|
"events": [],
|
|
3256
3206
|
"cssProperties": [
|
|
3257
3207
|
{
|
|
3258
|
-
"name": "--
|
|
3259
|
-
"description": "
|
|
3208
|
+
"name": "--heading-font-weight",
|
|
3209
|
+
"description": "Font weight applied to heading text."
|
|
3210
|
+
},
|
|
3211
|
+
{
|
|
3212
|
+
"name": "--heading-text-color",
|
|
3213
|
+
"description": "Color applied to heading text."
|
|
3214
|
+
},
|
|
3215
|
+
{
|
|
3216
|
+
"name": "--heading-line-clamp",
|
|
3217
|
+
"description": "Resolved number of visible lines used by the clamp attribute."
|
|
3218
|
+
}
|
|
3219
|
+
]
|
|
3220
|
+
}
|
|
3221
|
+
],
|
|
3222
|
+
"exports": [
|
|
3223
|
+
{
|
|
3224
|
+
"kind": "custom-element-definition",
|
|
3225
|
+
"name": "mui-heading",
|
|
3226
|
+
"declaration": {
|
|
3227
|
+
"name": "MuiHeading",
|
|
3228
|
+
"module": "src/components/mui-heading/index.ts"
|
|
3229
|
+
}
|
|
3230
|
+
}
|
|
3231
|
+
]
|
|
3232
|
+
},
|
|
3233
|
+
{
|
|
3234
|
+
"kind": "javascript-module",
|
|
3235
|
+
"path": "src/components/mui-illustrations/doc.ts",
|
|
3236
|
+
"declarations": [
|
|
3237
|
+
{
|
|
3238
|
+
"kind": "variable",
|
|
3239
|
+
"name": "muiDocs",
|
|
3240
|
+
"type": {
|
|
3241
|
+
"text": "MuiDocs"
|
|
3242
|
+
},
|
|
3243
|
+
"default": "{ Illustrations: { title: \"Illustrations\", description: \"Large-format decorative visuals used to support empty states, onboarding moments, and explanatory content without competing with the primary interface.\", hero: [\"\"], figma: [\"\"], storybook: [\"\"], github: [\"https://github.com/michaeltrilford/muibook/tree/main/src/components/mui-illustrations\"], website: [\"https://muibook.com/#/illustrations\"], guides: [\"\"], usage: { list: [ \"Use illustrations to add tone and clarity to empty states, helper panels, and onboarding screens.\", \"Prefer one illustration per message area so the visual supports the content instead of competing with it.\", \"Use color='default' for light contexts and color='inverted' when the illustration needs to sit on dark surfaces.\", \"Use a custom CSS color only when the illustration needs to inherit a specific product accent.\", \"Keep illustration sizing consistent within the same product area.\", ], }, accessibility: { designerList: [\"\"], engineerList: [ \"Treat illustrations as decorative unless they communicate unique meaning that is not already present in adjacent text.\", ], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"trash\", title: \"Trash\", description: \"A single illustration export for destructive, discard, or empty-bin related moments.\", image: \"\", }, ], }, compositions: { description: \"Illustrations are typically paired with heading, body copy, and one primary action.\", items: [ { key: \"empty-state\", name: \"Empty State\", description: \"A compact empty-state composition using an illustration to anchor the message.\", image: \"\", }, ], }, related: { items: [ { name: \"Icons\", link: \"https://guides.muibook.com/icons\" }, { name: \"Message\", link: \"https://guides.muibook.com/message\" }, { name: \"Card\", link: \"https://guides.muibook.com/card\" }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
3244
|
+
}
|
|
3245
|
+
],
|
|
3246
|
+
"exports": [
|
|
3247
|
+
{
|
|
3248
|
+
"kind": "js",
|
|
3249
|
+
"name": "muiDocs",
|
|
3250
|
+
"declaration": {
|
|
3251
|
+
"name": "muiDocs",
|
|
3252
|
+
"module": "src/components/mui-illustrations/doc.ts"
|
|
3253
|
+
}
|
|
3254
|
+
}
|
|
3255
|
+
]
|
|
3256
|
+
},
|
|
3257
|
+
{
|
|
3258
|
+
"kind": "javascript-module",
|
|
3259
|
+
"path": "src/components/mui-illustrations/trash.ts",
|
|
3260
|
+
"declarations": [
|
|
3261
|
+
{
|
|
3262
|
+
"kind": "class",
|
|
3263
|
+
"description": "Representative API for Muibook illustration elements.",
|
|
3264
|
+
"name": "MuiIllustrationTrash",
|
|
3265
|
+
"attributes": [
|
|
3266
|
+
{
|
|
3267
|
+
"name": "size",
|
|
3268
|
+
"type": {
|
|
3269
|
+
"text": "\"small\" | \"medium\" | \"large\" | \"x-large\""
|
|
3270
|
+
},
|
|
3271
|
+
"default": "medium",
|
|
3272
|
+
"description": "Sets the illustration footprint."
|
|
3273
|
+
},
|
|
3274
|
+
{
|
|
3275
|
+
"name": "color",
|
|
3276
|
+
"type": {
|
|
3277
|
+
"text": "\"default\" | \"inverted\" | string"
|
|
3278
|
+
},
|
|
3279
|
+
"default": "default",
|
|
3280
|
+
"description": "Sets an illustration color preset or accepts any valid CSS color."
|
|
3281
|
+
}
|
|
3282
|
+
],
|
|
3283
|
+
"superclass": {
|
|
3284
|
+
"name": "HTMLElement"
|
|
3285
|
+
},
|
|
3286
|
+
"tagName": "mui-illustration-trash",
|
|
3287
|
+
"customElement": true,
|
|
3288
|
+
"slots": [],
|
|
3289
|
+
"events": [],
|
|
3290
|
+
"cssProperties": [
|
|
3291
|
+
{
|
|
3292
|
+
"name": "--illustration-main-color-default",
|
|
3293
|
+
"description": "Primary color used by default illustrations."
|
|
3260
3294
|
},
|
|
3261
3295
|
{
|
|
3262
3296
|
"name": "--illustration-main-color-inverted",
|
|
@@ -3276,6 +3310,138 @@
|
|
|
3276
3310
|
}
|
|
3277
3311
|
]
|
|
3278
3312
|
},
|
|
3313
|
+
{
|
|
3314
|
+
"kind": "javascript-module",
|
|
3315
|
+
"path": "src/components/mui-image/doc.ts",
|
|
3316
|
+
"declarations": [
|
|
3317
|
+
{
|
|
3318
|
+
"kind": "variable",
|
|
3319
|
+
"name": "muiDocs",
|
|
3320
|
+
"type": {
|
|
3321
|
+
"text": "MuiDocs"
|
|
3322
|
+
},
|
|
3323
|
+
"default": "{ Image: { title: \"Image\", description: \"Displays an image alongside an optional caption to provide context, explanation, or attribution. Useful for supporting content visually while maintaining clarity through descriptive labelling.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/14eozXMPlzipgAfqaIR2Py/4e211990a30b4a08549deccfd30c71a9/Image_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=948-4194&t=0ytskb8cxriEmdz2-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/content-image--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-image/index.ts\"], website: [\"\"], guides: [\"https://guides.muibook.com/image\"], usage: { list: [ \"Use to display images that require additional context or explanation.\", \"Use height + crop + fit=cover when you need fixed-height visual crops.\", \"Use max-height with aspect-ratio for responsive image frames that should not exceed a visual cap.\", \"Use focal-x/focal-y or position to keep important content in frame.\", \"Use zoom carefully to tighten framing without switching to background-image.\", \"Captions should clarify the relevance of the image, not repeat surrounding content.\", \"Ideal for diagrams, UI examples, or content requiring attribution.\", \"Ensure images are accessible with alt text and meaningful captions.\", ], }, accessibility: { designerList: [ \"Use meaningful alt text that describes the image’s purpose.\", \"Use alt=“” for decorative images that don’t convey information.\", \"Use the caption slot for extended context, especially for diagrams or UI patterns.\", ], engineerList: [ \"Use meaningful alt text that describes the image’s purpose.\", \"Use alt=“” for decorative images that don’t convey information.\", \"Use the caption slot for extended context, especially for diagrams or UI patterns.\", ], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/3BSbMl1cqUOB6oDmFLQjRx/193889c0f6d3da6178d51e5fff06b8ed/Image_-_Anatomy.png\", list: [\"Standard styling for a hero image.\", \"Optional caption for the image.\"], }, variants: { items: [ { key: \"\", title: \"\", description: \"\", image: \"\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"muibook-resource\", name: \"Muibook Resource\", description: \"The Muibook documentation site uses MUI components to compose its layout, including headings, text, lists, buttons, icons, and image components.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3LVvuYDZWRnMhxNy6GMLNd/c5074a05eacb2c22c50ea172b3567c48/Muibook-List-Composition.png\", }, ], }, related: { items: [ { name: \"\", link: \"\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
3324
|
+
}
|
|
3325
|
+
],
|
|
3326
|
+
"exports": [
|
|
3327
|
+
{
|
|
3328
|
+
"kind": "js",
|
|
3329
|
+
"name": "muiDocs",
|
|
3330
|
+
"declaration": {
|
|
3331
|
+
"name": "muiDocs",
|
|
3332
|
+
"module": "src/components/mui-image/doc.ts"
|
|
3333
|
+
}
|
|
3334
|
+
}
|
|
3335
|
+
]
|
|
3336
|
+
},
|
|
3337
|
+
{
|
|
3338
|
+
"kind": "javascript-module",
|
|
3339
|
+
"path": "src/components/mui-image/index.ts",
|
|
3340
|
+
"declarations": [
|
|
3341
|
+
{
|
|
3342
|
+
"kind": "class",
|
|
3343
|
+
"description": "Frames a slotted image with optional cropping, focal positioning and caption content.",
|
|
3344
|
+
"name": "MuiImage",
|
|
3345
|
+
"attributes": [
|
|
3346
|
+
{
|
|
3347
|
+
"name": "height",
|
|
3348
|
+
"type": {
|
|
3349
|
+
"text": "string"
|
|
3350
|
+
},
|
|
3351
|
+
"description": "Sets the rendered image container height using any valid CSS height value."
|
|
3352
|
+
},
|
|
3353
|
+
{
|
|
3354
|
+
"name": "fit",
|
|
3355
|
+
"type": {
|
|
3356
|
+
"text": "\"contain\" | \"cover\" | \"fill\" | \"none\" | \"scale-down\""
|
|
3357
|
+
},
|
|
3358
|
+
"default": "contain",
|
|
3359
|
+
"description": "Controls how the image fits its container."
|
|
3360
|
+
},
|
|
3361
|
+
{
|
|
3362
|
+
"name": "crop",
|
|
3363
|
+
"type": {
|
|
3364
|
+
"text": "boolean"
|
|
3365
|
+
},
|
|
3366
|
+
"default": "false",
|
|
3367
|
+
"description": "Enables cropped image presentation."
|
|
3368
|
+
},
|
|
3369
|
+
{
|
|
3370
|
+
"name": "position",
|
|
3371
|
+
"type": {
|
|
3372
|
+
"text": "string"
|
|
3373
|
+
},
|
|
3374
|
+
"default": "center center",
|
|
3375
|
+
"description": "Sets the object position when a focal position is not supplied."
|
|
3376
|
+
},
|
|
3377
|
+
{
|
|
3378
|
+
"name": "zoom",
|
|
3379
|
+
"type": {
|
|
3380
|
+
"text": "number"
|
|
3381
|
+
},
|
|
3382
|
+
"default": "1",
|
|
3383
|
+
"description": "Scales the image around its focal position."
|
|
3384
|
+
},
|
|
3385
|
+
{
|
|
3386
|
+
"name": "focal-x",
|
|
3387
|
+
"type": {
|
|
3388
|
+
"text": "string"
|
|
3389
|
+
},
|
|
3390
|
+
"description": "Sets the horizontal focal point used for cropped images."
|
|
3391
|
+
},
|
|
3392
|
+
{
|
|
3393
|
+
"name": "focal-y",
|
|
3394
|
+
"type": {
|
|
3395
|
+
"text": "string"
|
|
3396
|
+
},
|
|
3397
|
+
"description": "Sets the vertical focal point used for cropped images."
|
|
3398
|
+
},
|
|
3399
|
+
{
|
|
3400
|
+
"name": "radius",
|
|
3401
|
+
"type": {
|
|
3402
|
+
"text": "string"
|
|
3403
|
+
},
|
|
3404
|
+
"default": "var(--radius-300)",
|
|
3405
|
+
"description": "Sets the frame border radius."
|
|
3406
|
+
},
|
|
3407
|
+
{
|
|
3408
|
+
"name": "aspect-ratio",
|
|
3409
|
+
"type": {
|
|
3410
|
+
"text": "string"
|
|
3411
|
+
},
|
|
3412
|
+
"description": "Sets the media aspect ratio using any valid CSS aspect-ratio value."
|
|
3413
|
+
}
|
|
3414
|
+
],
|
|
3415
|
+
"superclass": {
|
|
3416
|
+
"name": "HTMLElement"
|
|
3417
|
+
},
|
|
3418
|
+
"tagName": "mui-image",
|
|
3419
|
+
"customElement": true,
|
|
3420
|
+
"slots": [
|
|
3421
|
+
{
|
|
3422
|
+
"name": "image",
|
|
3423
|
+
"description": "Image media, normally an `img` element."
|
|
3424
|
+
},
|
|
3425
|
+
{
|
|
3426
|
+
"name": "caption",
|
|
3427
|
+
"description": "Optional caption content, normally a `figcaption` element."
|
|
3428
|
+
}
|
|
3429
|
+
],
|
|
3430
|
+
"events": [],
|
|
3431
|
+
"cssProperties": []
|
|
3432
|
+
}
|
|
3433
|
+
],
|
|
3434
|
+
"exports": [
|
|
3435
|
+
{
|
|
3436
|
+
"kind": "custom-element-definition",
|
|
3437
|
+
"name": "mui-image",
|
|
3438
|
+
"declaration": {
|
|
3439
|
+
"name": "MuiImage",
|
|
3440
|
+
"module": "src/components/mui-image/index.ts"
|
|
3441
|
+
}
|
|
3442
|
+
}
|
|
3443
|
+
]
|
|
3444
|
+
},
|
|
3279
3445
|
{
|
|
3280
3446
|
"kind": "javascript-module",
|
|
3281
3447
|
"path": "src/components/mui-icons/accessibility.ts",
|
|
@@ -5000,7 +5166,7 @@
|
|
|
5000
5166
|
},
|
|
5001
5167
|
{
|
|
5002
5168
|
"kind": "javascript-module",
|
|
5003
|
-
"path": "src/components/mui-
|
|
5169
|
+
"path": "src/components/mui-link/doc.ts",
|
|
5004
5170
|
"declarations": [
|
|
5005
5171
|
{
|
|
5006
5172
|
"kind": "variable",
|
|
@@ -5008,7 +5174,7 @@
|
|
|
5008
5174
|
"type": {
|
|
5009
5175
|
"text": "MuiDocs"
|
|
5010
5176
|
},
|
|
5011
|
-
"default": "{ Image: { title: \"Image\", description: \"Displays an image alongside an optional caption to provide context, explanation, or attribution. Useful for supporting content visually while maintaining clarity through descriptive labelling.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/14eozXMPlzipgAfqaIR2Py/4e211990a30b4a08549deccfd30c71a9/Image_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=948-4194&t=0ytskb8cxriEmdz2-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/content-image--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-image/index.ts\"], website: [\"\"], guides: [\"https://guides.muibook.com/image\"], usage: { list: [ \"Use to display images that require additional context or explanation.\", \"Use height + crop + fit=cover when you need fixed-height visual crops.\", \"Use max-height with aspect-ratio for responsive image frames that should not exceed a visual cap.\", \"Use focal-x/focal-y or position to keep important content in frame.\", \"Use zoom carefully to tighten framing without switching to background-image.\", \"Captions should clarify the relevance of the image, not repeat surrounding content.\", \"Ideal for diagrams, UI examples, or content requiring attribution.\", \"Ensure images are accessible with alt text and meaningful captions.\", ], }, accessibility: { designerList: [ \"Use meaningful alt text that describes the image’s purpose.\", \"Use alt=“” for decorative images that don’t convey information.\", \"Use the caption slot for extended context, especially for diagrams or UI patterns.\", ], engineerList: [ \"Use meaningful alt text that describes the image’s purpose.\", \"Use alt=“” for decorative images that don’t convey information.\", \"Use the caption slot for extended context, especially for diagrams or UI patterns.\", ], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/3BSbMl1cqUOB6oDmFLQjRx/193889c0f6d3da6178d51e5fff06b8ed/Image_-_Anatomy.png\", list: [\"Standard styling for a hero image.\", \"Optional caption for the image.\"], }, variants: { items: [ { key: \"\", title: \"\", description: \"\", image: \"\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"muibook-resource\", name: \"Muibook Resource\", description: \"The Muibook documentation site uses MUI components to compose its layout, including headings, text, lists, buttons, icons, and image components.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3LVvuYDZWRnMhxNy6GMLNd/c5074a05eacb2c22c50ea172b3567c48/Muibook-List-Composition.png\", }, ], }, related: { items: [ { name: \"\", link: \"\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
5177
|
+
"default": "{ Link: { title: \"Link\", description: \"Links are used to navigate between pages or external content. They are visually distinct from surrounding text by using underlines — a familiar and accessible pattern that ensures clarity and consistency.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/7bK1593sNzW75ZoqBupCRj/0420d8ef12472208403efa48d2fe98d6/Link_-_Home_Image.png\", ], figma: [\"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-663&t=fSFYVey9aCoE5oQa-1\"], storybook: [\"https://stories.muibook.com/?path=/docs/actions-link--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-link/index.ts\"], website: [\"https://muibook.com/#/link\"], guides: [\"https://guides.muibook.com/link\"], usage: { list: [ \"Use links to navigate to related content or different pages.\", \"Use for navigation only — use buttons for actions like submitting forms or changing data.\", \"Keep link text concise and descriptive. Avoid vague labels like 'Click here.'\", \"Use full sentences or phrases that clearly describe the destination.\", \"Prefer inline links within body text unless a more prominent callout is needed.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/6Rbr0KRWAiNRuPsagpreV7/2adc3626aa45ddc95ddf7d0a508c7917/Link_-_Anatomy.png\", list: [ \"LABEL: Text describing the link / link button action. Use action verbs or phrases to tell the user what will happen next, and follow the link label content guidelines.\", \"BEFORE: An optional area to include an icon before the label. Use an icon to add additional affordance where the icon has a clear and well-established meaning. Most links don't require an icon, so be consistent and deliberate when you do.\", \"AFTER: An optional area to include an icon after the label, often used for a chevron-down-arrow icon to indicate a dropdown menu or accordion experiences where the placement is on the far right of the link.\", \"ICON ONLY: Use when the action is easily understood and space is limited.\", ], }, variants: { items: [ { key: \"size-large\", title: \"Size: Large\", description: \"Used when a link needs to stand out in layouts, such as hero sections or alongside large headings. If used inline, it should match the surrounding text size to maintain visual hierarchy and scale consistency. E.g. Use small size icon when it is paired with large sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/Tbxhps7s88CFzROYc0Lqs/3440df9aefca7cb9de3ce5015a3a4e82/Default_-_Large.png\", }, { key: \"size-medium\", title: \"Size: Medium (Default)\", description: \"The standard size for most link usage. Works well inline with body text or as standalone links within common page layouts. When used inline, it aligns with default body text for consistent reading flow. E.g. Use x-small size icon when it is paired with medium sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3NbinCPLEbtetN63xh18Sy/e0a0e9bbcd11a71faefc6ad1fc0e064d/Default_-_Medium.png\", }, { key: \"size-small\", title: \"Size: Small\", description: \"Ideal for dense interfaces or compact areas such as cards, side panels, or footnotes. When used inline, it should match the smaller text size to preserve a balanced visual rhythm. E.g. Use x-small size icon when it is paired with small sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/4uaoT2KHM6ux4X30BxwGYo/91137cc74414f2f32b869fae59f9625d/Default_-_Small.png\", }, { key: \"size-x-small\", title: \"Size: XSmall\", description: \"Used sparingly in tight spaces like toolbars, metadata, or inline legal text. Should align with surrounding text to avoid disrupting scale and hierarchy. E.g. Use x-small size icon when it is paired with x-small sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/27dAzNJ6Q5XHVKv5ROXq36/ace1f6540b5f363624730be001bf91ce/Default_-_XSmall.png\", }, { key: \"primary\", title: \"Primary\", description: \"A high emphasis link style used for key navigation or calls to action. Visually aligned with the primary button to ensure consistency across components. When an icon is slotted into a link, it automatically inherits the link button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7wDlLjYvZEOgP8bQ6mfOuY/51b39a09c73f93ee9291e1e053df308a/Primary.png\", }, { key: \"primary-icon-only\", title: \"Primary - IconOnly\", description: \"An icon only version of the primary link. Best used when the icon meaning is immediately clear, such as external links, arrows, or downloads. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5sEr4Bhu2mwobKt6yPO9T7/a248fc0fe630ddd7f837c256a9aac126/Primary_-_IconOnly.png\", }, { key: \"secondary\", title: \"Secondary\", description: \"An icon only version of the primary link. Best used when the icon meaning is immediately clear, such as external links, arrows, or downloads. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1y7LN0FWjqrAQim9y289YN/2a65b13be6f42399404fb5bb68014700/Secondary.png\", }, { key: \"secondary-icon-only\", title: \"Secondary - IconOnly\", description: \"An icon only version of the secondary link. Ideal for contextual actions placed beside content or inside user interface components. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/nWMRYy5KcAqFxnrRdBXJS/d02dc2a67ae81bca02b82645c998fb9b/Secondary_-_IconOnly.png\", }, { key: \"tertiary\", title: \"Tertiary\", description: \"A subtle and low emphasis style often used inline with body text or in subdued areas of the interface. Mirrors the styling of the tertiary button for visual harmony in dense content. When an icon is slotted into a link, it automatically inherits the link button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/ydUs1pJsUgg7JBX7xpIOW/8e8cd367963506e35f39a97a8f41d616/Tertiary.png\", }, { key: \"tertiary-icon-only\", title: \"Tertiary - IconOnly\", description: \"A minimal visual style with just an icon. Best for lightweight or background interactions in compact spaces. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/79wxg2B2u21x1qAKTsFOIM/d8c1665de85c90983bbe50d3762f2298/Tertiary_-_IconOnly.png\", }, { key: \"overlay\", title: \"Overlay\", description: \"Use on layered media or tinted surfaces where link actions need contrast without heavy visual weight. Works well for controls rendered over previews and imagery.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1y7LN0FWjqrAQim9y289YN/2a65b13be6f42399404fb5bb68014700/Secondary.png\", }, { key: \"attention\", title: \"Attention\", description: \"A visually distinct style intended to highlight urgency, important information, or warnings. Styled to match the attention button, typically used in upgrade prompts or legal notices. When an icon is slotted into a link, it automatically inherits the link button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6grNjw60gY1ShYuexn23oX/b1cd5e10f9a1f5b8e5e3df4bf4780a0a/Attention.png\", }, { key: \"attention-icon-only\", title: \"Attention - IconOnly\", description: \"An icon only variant that draws attention to critical actions or time sensitive content. Uses a small size icon.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5osepffgbQtuUmunLgCDPH/83490dc2ac0ef308a53e16e5b992efc5/Attention_-_IconOnly.png\", }, ], }, compositions: { description: \"\", items: [ { key: \"\", name: \"\", description: \"\", image: \"\", }, ], }, related: { items: [ { name: \"Button\", link: \"https://guides.muibook.com/button\", }, { name: \"Icons\", link: \"https://guides.muibook.com/icons\", }, ], }, rules: [ { heading: \"Link vs Button\", description: \"Links and Buttons may look similar, but links are for navigating between pages or sections of your app or site, while buttons are for triggering actions.\", doContent: [ { description: \"Use a link when navigating to another page or view.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7xOE9DNKWgy1lZoT0FbMOW/cc13fbeeaa85b2507087645d925d7323/button-vs-link-do.png\", }, ], dontContent: [ { description: \"Don’t use a link to trigger tasks like submitting a form or saving data.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6tSAw6uBvg142Gzw7tenBc/4b8db682687b42f3c53fc32557cc4eee/button-vs-link-do-not.png\", }, ], }, { heading: \"Text & Icon Actions\", description: \"\", doContent: [ { description: \"Use the 'small' size icon within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2W1xs6NPj3jRrW6ZaVGRvZ/3a11566b68fffda85bf5f780c4d6a394/dropdown-bar-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6BgHzCgKqk44piisNH4tE6/c08d91a1cf5231a089844d20f6ab968c/dropdown-bar-icon-dont.png\", }, ], }, { heading: \"Icon-Only Actions\", description: \"\", doContent: [ { description: \"Use a 'medium' size icon when using an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3syzrNBEXbBjp5hGEUvF4M/0471f4b16939d8ee54deaf48997ff455/action-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5V2TE85dY848jz1dP6Y0lC/b8e433c8abad5a4402ff1f86ddb8c848/action-icon-dont.png\", }, ], }, ], behaviour: { list: [\"\"], image: \"https://images.ctfassets.net/i5uwscj4pkk2/qS1BAkfK7TDpy9rq4cdF1/d2535f48b4d2711f9dba6d056f21e3ec/Link_-_Behaviour.png\", }, writing: { list: [\"\"], }, }, }"
|
|
5012
5178
|
}
|
|
5013
5179
|
],
|
|
5014
5180
|
"exports": [
|
|
@@ -5017,115 +5183,226 @@
|
|
|
5017
5183
|
"name": "muiDocs",
|
|
5018
5184
|
"declaration": {
|
|
5019
5185
|
"name": "muiDocs",
|
|
5020
|
-
"module": "src/components/mui-
|
|
5186
|
+
"module": "src/components/mui-link/doc.ts"
|
|
5021
5187
|
}
|
|
5022
5188
|
}
|
|
5023
5189
|
]
|
|
5024
5190
|
},
|
|
5025
5191
|
{
|
|
5026
5192
|
"kind": "javascript-module",
|
|
5027
|
-
"path": "src/components/mui-
|
|
5193
|
+
"path": "src/components/mui-link/index.ts",
|
|
5028
5194
|
"declarations": [
|
|
5029
5195
|
{
|
|
5030
5196
|
"kind": "class",
|
|
5031
|
-
"description": "
|
|
5032
|
-
"name": "
|
|
5197
|
+
"description": "Provides anchor navigation as an inline link or action-styled link with optional supporting content.",
|
|
5198
|
+
"name": "MuiLink",
|
|
5033
5199
|
"attributes": [
|
|
5034
5200
|
{
|
|
5035
|
-
"name": "
|
|
5201
|
+
"name": "target",
|
|
5036
5202
|
"type": {
|
|
5037
5203
|
"text": "string"
|
|
5038
5204
|
},
|
|
5039
|
-
"
|
|
5205
|
+
"default": "_self",
|
|
5206
|
+
"description": "Anchor browsing context, such as `_self` or `_blank`."
|
|
5040
5207
|
},
|
|
5041
5208
|
{
|
|
5042
|
-
"name": "
|
|
5209
|
+
"name": "href",
|
|
5043
5210
|
"type": {
|
|
5044
|
-
"text": "
|
|
5211
|
+
"text": "string"
|
|
5045
5212
|
},
|
|
5046
|
-
"default": "
|
|
5047
|
-
"description": "
|
|
5213
|
+
"default": "#",
|
|
5214
|
+
"description": "Navigation destination URL."
|
|
5048
5215
|
},
|
|
5049
5216
|
{
|
|
5050
|
-
"name": "
|
|
5217
|
+
"name": "variant",
|
|
5051
5218
|
"type": {
|
|
5052
|
-
"text": "
|
|
5219
|
+
"text": "\"default\" | \"primary\" | \"secondary\" | \"tertiary\" | \"overlay\" | \"attention\""
|
|
5053
5220
|
},
|
|
5054
|
-
"default": "
|
|
5055
|
-
"description": "
|
|
5221
|
+
"default": "default",
|
|
5222
|
+
"description": "Uses standard inline-link styling or an action-style treatment."
|
|
5056
5223
|
},
|
|
5057
5224
|
{
|
|
5058
|
-
"name": "
|
|
5225
|
+
"name": "disabled",
|
|
5059
5226
|
"type": {
|
|
5060
|
-
"text": "
|
|
5227
|
+
"text": "boolean"
|
|
5061
5228
|
},
|
|
5062
|
-
"default": "
|
|
5063
|
-
"description": "
|
|
5229
|
+
"default": "false",
|
|
5230
|
+
"description": "Disables navigation and exposes the anchor as aria-disabled."
|
|
5064
5231
|
},
|
|
5065
5232
|
{
|
|
5066
|
-
"name": "
|
|
5067
|
-
"type": {
|
|
5068
|
-
"text": "number"
|
|
5069
|
-
},
|
|
5070
|
-
"default": "1",
|
|
5071
|
-
"description": "Scales the image around its focal position."
|
|
5072
|
-
},
|
|
5073
|
-
{
|
|
5074
|
-
"name": "focal-x",
|
|
5233
|
+
"name": "weight",
|
|
5075
5234
|
"type": {
|
|
5076
|
-
"text": "
|
|
5235
|
+
"text": "\"regular\" | \"medium\" | \"bold\""
|
|
5077
5236
|
},
|
|
5078
|
-
"
|
|
5237
|
+
"default": "regular",
|
|
5238
|
+
"description": "Font weight of link content."
|
|
5079
5239
|
},
|
|
5080
5240
|
{
|
|
5081
|
-
"name": "
|
|
5241
|
+
"name": "size",
|
|
5082
5242
|
"type": {
|
|
5083
|
-
"text": "
|
|
5243
|
+
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
5084
5244
|
},
|
|
5085
|
-
"
|
|
5245
|
+
"default": "medium",
|
|
5246
|
+
"description": "Link scale; also controls automatic icon, avatar, and badge sizing."
|
|
5086
5247
|
},
|
|
5087
5248
|
{
|
|
5088
|
-
"name": "
|
|
5249
|
+
"name": "download",
|
|
5089
5250
|
"type": {
|
|
5090
|
-
"text": "string"
|
|
5251
|
+
"text": "string | boolean"
|
|
5091
5252
|
},
|
|
5092
|
-
"
|
|
5093
|
-
"description": "Sets the frame border radius."
|
|
5253
|
+
"description": "Downloads the linked resource; provide a value to set a download filename."
|
|
5094
5254
|
},
|
|
5095
5255
|
{
|
|
5096
|
-
"name": "
|
|
5256
|
+
"name": "usage",
|
|
5097
5257
|
"type": {
|
|
5098
|
-
"text": "
|
|
5258
|
+
"text": "\"input\""
|
|
5099
5259
|
},
|
|
5100
|
-
"description": "
|
|
5260
|
+
"description": "Uses field-compatible styling when the link is slotted before or after an input."
|
|
5101
5261
|
}
|
|
5102
5262
|
],
|
|
5103
5263
|
"superclass": {
|
|
5104
5264
|
"name": "HTMLElement"
|
|
5105
5265
|
},
|
|
5106
|
-
"tagName": "mui-
|
|
5266
|
+
"tagName": "mui-link",
|
|
5107
5267
|
"customElement": true,
|
|
5108
5268
|
"slots": [
|
|
5109
5269
|
{
|
|
5110
|
-
"name": "
|
|
5111
|
-
"description": "
|
|
5270
|
+
"name": "",
|
|
5271
|
+
"description": "Link label or a single icon for an icon-only link action."
|
|
5112
5272
|
},
|
|
5113
5273
|
{
|
|
5114
|
-
"name": "
|
|
5115
|
-
"description": "
|
|
5274
|
+
"name": "before",
|
|
5275
|
+
"description": "Leading icon, avatar, badge, or other supporting content."
|
|
5276
|
+
},
|
|
5277
|
+
{
|
|
5278
|
+
"name": "after",
|
|
5279
|
+
"description": "Trailing icon, avatar, badge, or other supporting content."
|
|
5116
5280
|
}
|
|
5117
5281
|
],
|
|
5118
5282
|
"events": [],
|
|
5119
|
-
"cssProperties": []
|
|
5283
|
+
"cssProperties": [],
|
|
5284
|
+
"cssParts": [
|
|
5285
|
+
{
|
|
5286
|
+
"name": "color"
|
|
5287
|
+
},
|
|
5288
|
+
{
|
|
5289
|
+
"name": "font-family"
|
|
5290
|
+
},
|
|
5291
|
+
{
|
|
5292
|
+
"name": "font-size"
|
|
5293
|
+
},
|
|
5294
|
+
{
|
|
5295
|
+
"name": "font-weight"
|
|
5296
|
+
},
|
|
5297
|
+
{
|
|
5298
|
+
"name": "letter-spacing"
|
|
5299
|
+
},
|
|
5300
|
+
{
|
|
5301
|
+
"name": "line-height"
|
|
5302
|
+
},
|
|
5303
|
+
{
|
|
5304
|
+
"name": "text-transform"
|
|
5305
|
+
},
|
|
5306
|
+
{
|
|
5307
|
+
"name": "text-decoration"
|
|
5308
|
+
},
|
|
5309
|
+
{
|
|
5310
|
+
"name": "text-align"
|
|
5311
|
+
},
|
|
5312
|
+
{
|
|
5313
|
+
"name": "padding"
|
|
5314
|
+
},
|
|
5315
|
+
{
|
|
5316
|
+
"name": "margin"
|
|
5317
|
+
},
|
|
5318
|
+
{
|
|
5319
|
+
"name": "gap"
|
|
5320
|
+
},
|
|
5321
|
+
{
|
|
5322
|
+
"name": "width"
|
|
5323
|
+
},
|
|
5324
|
+
{
|
|
5325
|
+
"name": "height"
|
|
5326
|
+
},
|
|
5327
|
+
{
|
|
5328
|
+
"name": "box-sizing"
|
|
5329
|
+
},
|
|
5330
|
+
{
|
|
5331
|
+
"name": "display"
|
|
5332
|
+
},
|
|
5333
|
+
{
|
|
5334
|
+
"name": "flex"
|
|
5335
|
+
},
|
|
5336
|
+
{
|
|
5337
|
+
"name": "flex-direction"
|
|
5338
|
+
},
|
|
5339
|
+
{
|
|
5340
|
+
"name": "flex-wrap"
|
|
5341
|
+
},
|
|
5342
|
+
{
|
|
5343
|
+
"name": "justify-content"
|
|
5344
|
+
},
|
|
5345
|
+
{
|
|
5346
|
+
"name": "align-items"
|
|
5347
|
+
},
|
|
5348
|
+
{
|
|
5349
|
+
"name": "align-content"
|
|
5350
|
+
},
|
|
5351
|
+
{
|
|
5352
|
+
"name": "align-self"
|
|
5353
|
+
},
|
|
5354
|
+
{
|
|
5355
|
+
"name": "grid-template-columns"
|
|
5356
|
+
},
|
|
5357
|
+
{
|
|
5358
|
+
"name": "grid-template-rows"
|
|
5359
|
+
},
|
|
5360
|
+
{
|
|
5361
|
+
"name": "grid-column"
|
|
5362
|
+
},
|
|
5363
|
+
{
|
|
5364
|
+
"name": "grid-row"
|
|
5365
|
+
},
|
|
5366
|
+
{
|
|
5367
|
+
"name": "place-items"
|
|
5368
|
+
},
|
|
5369
|
+
{
|
|
5370
|
+
"name": "place-content"
|
|
5371
|
+
},
|
|
5372
|
+
{
|
|
5373
|
+
"name": "vertical-align"
|
|
5374
|
+
},
|
|
5375
|
+
{
|
|
5376
|
+
"name": "background"
|
|
5377
|
+
},
|
|
5378
|
+
{
|
|
5379
|
+
"name": "border"
|
|
5380
|
+
},
|
|
5381
|
+
{
|
|
5382
|
+
"name": "border-radius"
|
|
5383
|
+
},
|
|
5384
|
+
{
|
|
5385
|
+
"name": "box-shadow"
|
|
5386
|
+
},
|
|
5387
|
+
{
|
|
5388
|
+
"name": "opacity"
|
|
5389
|
+
},
|
|
5390
|
+
{
|
|
5391
|
+
"name": "transition"
|
|
5392
|
+
},
|
|
5393
|
+
{
|
|
5394
|
+
"name": "outline"
|
|
5395
|
+
}
|
|
5396
|
+
]
|
|
5120
5397
|
}
|
|
5121
5398
|
],
|
|
5122
5399
|
"exports": [
|
|
5123
5400
|
{
|
|
5124
5401
|
"kind": "custom-element-definition",
|
|
5125
|
-
"name": "mui-
|
|
5402
|
+
"name": "mui-link",
|
|
5126
5403
|
"declaration": {
|
|
5127
|
-
"name": "
|
|
5128
|
-
"module": "src/components/mui-
|
|
5404
|
+
"name": "MuiLink",
|
|
5405
|
+
"module": "src/components/mui-link/index.ts"
|
|
5129
5406
|
}
|
|
5130
5407
|
}
|
|
5131
5408
|
]
|
|
@@ -5271,300 +5548,57 @@
|
|
|
5271
5548
|
"description": "Input and slotted affordance size scale."
|
|
5272
5549
|
},
|
|
5273
5550
|
{
|
|
5274
|
-
"name": "slot-layout",
|
|
5275
|
-
"type": {
|
|
5276
|
-
"text": "\"inline\" | \"stack-mobile\""
|
|
5277
|
-
},
|
|
5278
|
-
"default": "inline",
|
|
5279
|
-
"description": "Arranges external before and after slots inline or stacked around the input."
|
|
5280
|
-
}
|
|
5281
|
-
],
|
|
5282
|
-
"superclass": {
|
|
5283
|
-
"name": "HTMLElement"
|
|
5284
|
-
},
|
|
5285
|
-
"tagName": "mui-input",
|
|
5286
|
-
"customElement": true,
|
|
5287
|
-
"slots": [
|
|
5288
|
-
{
|
|
5289
|
-
"name": "before",
|
|
5290
|
-
"description": "Flush leading control, such as `mui-addon`, `mui-select`, `mui-button` or `mui-chip`."
|
|
5291
|
-
},
|
|
5292
|
-
{
|
|
5293
|
-
"name": "after",
|
|
5294
|
-
"description": "Flush trailing control, such as `mui-addon`, `mui-select`, `mui-button` or `mui-chip`."
|
|
5295
|
-
},
|
|
5296
|
-
{
|
|
5297
|
-
"name": "inside-before",
|
|
5298
|
-
"description": "Leading content displayed inside the input edge, such as an icon or badge."
|
|
5299
|
-
},
|
|
5300
|
-
{
|
|
5301
|
-
"name": "inside-after",
|
|
5302
|
-
"description": "Trailing content displayed inside the input edge, such as an icon or badge."
|
|
5303
|
-
},
|
|
5304
|
-
{
|
|
5305
|
-
"name": "hint",
|
|
5306
|
-
"description": "Contextual hint content displayed inside the trailing input affordance area."
|
|
5307
|
-
}
|
|
5308
|
-
],
|
|
5309
|
-
"cssProperties": [
|
|
5310
|
-
{
|
|
5311
|
-
"name": "--input-before-slot-max-width",
|
|
5312
|
-
"description": "Maximum width for leading external slot content."
|
|
5313
|
-
},
|
|
5314
|
-
{
|
|
5315
|
-
"name": "--input-after-slot-max-width",
|
|
5316
|
-
"description": "Maximum width for trailing external slot content."
|
|
5317
|
-
},
|
|
5318
|
-
{
|
|
5319
|
-
"name": "--input-slot-wrap",
|
|
5320
|
-
"description": "Wrapping behaviour for external slot content."
|
|
5321
|
-
},
|
|
5322
|
-
{
|
|
5323
|
-
"name": "--input-slot-overflow-x",
|
|
5324
|
-
"description": "Horizontal overflow behaviour for external slot content."
|
|
5325
|
-
}
|
|
5326
|
-
]
|
|
5327
|
-
}
|
|
5328
|
-
],
|
|
5329
|
-
"exports": [
|
|
5330
|
-
{
|
|
5331
|
-
"kind": "custom-element-definition",
|
|
5332
|
-
"name": "mui-input",
|
|
5333
|
-
"declaration": {
|
|
5334
|
-
"name": "MuiInput",
|
|
5335
|
-
"module": "src/components/mui-input/index.ts"
|
|
5336
|
-
}
|
|
5337
|
-
}
|
|
5338
|
-
]
|
|
5339
|
-
},
|
|
5340
|
-
{
|
|
5341
|
-
"kind": "javascript-module",
|
|
5342
|
-
"path": "src/components/mui-link/doc.ts",
|
|
5343
|
-
"declarations": [
|
|
5344
|
-
{
|
|
5345
|
-
"kind": "variable",
|
|
5346
|
-
"name": "muiDocs",
|
|
5347
|
-
"type": {
|
|
5348
|
-
"text": "MuiDocs"
|
|
5349
|
-
},
|
|
5350
|
-
"default": "{ Link: { title: \"Link\", description: \"Links are used to navigate between pages or external content. They are visually distinct from surrounding text by using underlines — a familiar and accessible pattern that ensures clarity and consistency.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/7bK1593sNzW75ZoqBupCRj/0420d8ef12472208403efa48d2fe98d6/Link_-_Home_Image.png\", ], figma: [\"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=3-663&t=fSFYVey9aCoE5oQa-1\"], storybook: [\"https://stories.muibook.com/?path=/docs/actions-link--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-link/index.ts\"], website: [\"https://muibook.com/#/link\"], guides: [\"https://guides.muibook.com/link\"], usage: { list: [ \"Use links to navigate to related content or different pages.\", \"Use for navigation only — use buttons for actions like submitting forms or changing data.\", \"Keep link text concise and descriptive. Avoid vague labels like 'Click here.'\", \"Use full sentences or phrases that clearly describe the destination.\", \"Prefer inline links within body text unless a more prominent callout is needed.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/6Rbr0KRWAiNRuPsagpreV7/2adc3626aa45ddc95ddf7d0a508c7917/Link_-_Anatomy.png\", list: [ \"LABEL: Text describing the link / link button action. Use action verbs or phrases to tell the user what will happen next, and follow the link label content guidelines.\", \"BEFORE: An optional area to include an icon before the label. Use an icon to add additional affordance where the icon has a clear and well-established meaning. Most links don't require an icon, so be consistent and deliberate when you do.\", \"AFTER: An optional area to include an icon after the label, often used for a chevron-down-arrow icon to indicate a dropdown menu or accordion experiences where the placement is on the far right of the link.\", \"ICON ONLY: Use when the action is easily understood and space is limited.\", ], }, variants: { items: [ { key: \"size-large\", title: \"Size: Large\", description: \"Used when a link needs to stand out in layouts, such as hero sections or alongside large headings. If used inline, it should match the surrounding text size to maintain visual hierarchy and scale consistency. E.g. Use small size icon when it is paired with large sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/Tbxhps7s88CFzROYc0Lqs/3440df9aefca7cb9de3ce5015a3a4e82/Default_-_Large.png\", }, { key: \"size-medium\", title: \"Size: Medium (Default)\", description: \"The standard size for most link usage. Works well inline with body text or as standalone links within common page layouts. When used inline, it aligns with default body text for consistent reading flow. E.g. Use x-small size icon when it is paired with medium sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3NbinCPLEbtetN63xh18Sy/e0a0e9bbcd11a71faefc6ad1fc0e064d/Default_-_Medium.png\", }, { key: \"size-small\", title: \"Size: Small\", description: \"Ideal for dense interfaces or compact areas such as cards, side panels, or footnotes. When used inline, it should match the smaller text size to preserve a balanced visual rhythm. E.g. Use x-small size icon when it is paired with small sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/4uaoT2KHM6ux4X30BxwGYo/91137cc74414f2f32b869fae59f9625d/Default_-_Small.png\", }, { key: \"size-x-small\", title: \"Size: XSmall\", description: \"Used sparingly in tight spaces like toolbars, metadata, or inline legal text. Should align with surrounding text to avoid disrupting scale and hierarchy. E.g. Use x-small size icon when it is paired with x-small sized link.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/27dAzNJ6Q5XHVKv5ROXq36/ace1f6540b5f363624730be001bf91ce/Default_-_XSmall.png\", }, { key: \"primary\", title: \"Primary\", description: \"A high emphasis link style used for key navigation or calls to action. Visually aligned with the primary button to ensure consistency across components. When an icon is slotted into a link, it automatically inherits the link button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7wDlLjYvZEOgP8bQ6mfOuY/51b39a09c73f93ee9291e1e053df308a/Primary.png\", }, { key: \"primary-icon-only\", title: \"Primary - IconOnly\", description: \"An icon only version of the primary link. Best used when the icon meaning is immediately clear, such as external links, arrows, or downloads. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5sEr4Bhu2mwobKt6yPO9T7/a248fc0fe630ddd7f837c256a9aac126/Primary_-_IconOnly.png\", }, { key: \"secondary\", title: \"Secondary\", description: \"An icon only version of the primary link. Best used when the icon meaning is immediately clear, such as external links, arrows, or downloads. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1y7LN0FWjqrAQim9y289YN/2a65b13be6f42399404fb5bb68014700/Secondary.png\", }, { key: \"secondary-icon-only\", title: \"Secondary - IconOnly\", description: \"An icon only version of the secondary link. Ideal for contextual actions placed beside content or inside user interface components. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/nWMRYy5KcAqFxnrRdBXJS/d02dc2a67ae81bca02b82645c998fb9b/Secondary_-_IconOnly.png\", }, { key: \"tertiary\", title: \"Tertiary\", description: \"A subtle and low emphasis style often used inline with body text or in subdued areas of the interface. Mirrors the styling of the tertiary button for visual harmony in dense content. When an icon is slotted into a link, it automatically inherits the link button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/ydUs1pJsUgg7JBX7xpIOW/8e8cd367963506e35f39a97a8f41d616/Tertiary.png\", }, { key: \"tertiary-icon-only\", title: \"Tertiary - IconOnly\", description: \"A minimal visual style with just an icon. Best for lightweight or background interactions in compact spaces. Uses a small size icon when pairing with other buttons, or medium size icon for standalone actions.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/79wxg2B2u21x1qAKTsFOIM/d8c1665de85c90983bbe50d3762f2298/Tertiary_-_IconOnly.png\", }, { key: \"overlay\", title: \"Overlay\", description: \"Use on layered media or tinted surfaces where link actions need contrast without heavy visual weight. Works well for controls rendered over previews and imagery.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1y7LN0FWjqrAQim9y289YN/2a65b13be6f42399404fb5bb68014700/Secondary.png\", }, { key: \"attention\", title: \"Attention\", description: \"A visually distinct style intended to highlight urgency, important information, or warnings. Styled to match the attention button, typically used in upgrade prompts or legal notices. When an icon is slotted into a link, it automatically inherits the link button’s default icon size. If you need a different look or emphasis, you can override the size as required.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6grNjw60gY1ShYuexn23oX/b1cd5e10f9a1f5b8e5e3df4bf4780a0a/Attention.png\", }, { key: \"attention-icon-only\", title: \"Attention - IconOnly\", description: \"An icon only variant that draws attention to critical actions or time sensitive content. Uses a small size icon.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5osepffgbQtuUmunLgCDPH/83490dc2ac0ef308a53e16e5b992efc5/Attention_-_IconOnly.png\", }, ], }, compositions: { description: \"\", items: [ { key: \"\", name: \"\", description: \"\", image: \"\", }, ], }, related: { items: [ { name: \"Button\", link: \"https://guides.muibook.com/button\", }, { name: \"Icons\", link: \"https://guides.muibook.com/icons\", }, ], }, rules: [ { heading: \"Link vs Button\", description: \"Links and Buttons may look similar, but links are for navigating between pages or sections of your app or site, while buttons are for triggering actions.\", doContent: [ { description: \"Use a link when navigating to another page or view.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/7xOE9DNKWgy1lZoT0FbMOW/cc13fbeeaa85b2507087645d925d7323/button-vs-link-do.png\", }, ], dontContent: [ { description: \"Don’t use a link to trigger tasks like submitting a form or saving data.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6tSAw6uBvg142Gzw7tenBc/4b8db682687b42f3c53fc32557cc4eee/button-vs-link-do-not.png\", }, ], }, { heading: \"Text & Icon Actions\", description: \"\", doContent: [ { description: \"Use the 'small' size icon within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2W1xs6NPj3jRrW6ZaVGRvZ/3a11566b68fffda85bf5f780c4d6a394/dropdown-bar-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within a medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/6BgHzCgKqk44piisNH4tE6/c08d91a1cf5231a089844d20f6ab968c/dropdown-bar-icon-dont.png\", }, ], }, { heading: \"Icon-Only Actions\", description: \"\", doContent: [ { description: \"Use a 'medium' size icon when using an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3syzrNBEXbBjp5hGEUvF4M/0471f4b16939d8ee54deaf48997ff455/action-icon-do.png\", }, ], dontContent: [ { description: \"Avoid 'x-small', 'medium' or 'large' size icons within an icon-only medium sized action\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5V2TE85dY848jz1dP6Y0lC/b8e433c8abad5a4402ff1f86ddb8c848/action-icon-dont.png\", }, ], }, ], behaviour: { list: [\"\"], image: \"https://images.ctfassets.net/i5uwscj4pkk2/qS1BAkfK7TDpy9rq4cdF1/d2535f48b4d2711f9dba6d056f21e3ec/Link_-_Behaviour.png\", }, writing: { list: [\"\"], }, }, }"
|
|
5351
|
-
}
|
|
5352
|
-
],
|
|
5353
|
-
"exports": [
|
|
5354
|
-
{
|
|
5355
|
-
"kind": "js",
|
|
5356
|
-
"name": "muiDocs",
|
|
5357
|
-
"declaration": {
|
|
5358
|
-
"name": "muiDocs",
|
|
5359
|
-
"module": "src/components/mui-link/doc.ts"
|
|
5360
|
-
}
|
|
5361
|
-
}
|
|
5362
|
-
]
|
|
5363
|
-
},
|
|
5364
|
-
{
|
|
5365
|
-
"kind": "javascript-module",
|
|
5366
|
-
"path": "src/components/mui-link/index.ts",
|
|
5367
|
-
"declarations": [
|
|
5368
|
-
{
|
|
5369
|
-
"kind": "class",
|
|
5370
|
-
"description": "Provides anchor navigation as an inline link or action-styled link with optional supporting content.",
|
|
5371
|
-
"name": "MuiLink",
|
|
5372
|
-
"attributes": [
|
|
5373
|
-
{
|
|
5374
|
-
"name": "target",
|
|
5375
|
-
"type": {
|
|
5376
|
-
"text": "string"
|
|
5377
|
-
},
|
|
5378
|
-
"default": "_self",
|
|
5379
|
-
"description": "Anchor browsing context, such as `_self` or `_blank`."
|
|
5380
|
-
},
|
|
5381
|
-
{
|
|
5382
|
-
"name": "href",
|
|
5383
|
-
"type": {
|
|
5384
|
-
"text": "string"
|
|
5385
|
-
},
|
|
5386
|
-
"default": "#",
|
|
5387
|
-
"description": "Navigation destination URL."
|
|
5388
|
-
},
|
|
5389
|
-
{
|
|
5390
|
-
"name": "variant",
|
|
5391
|
-
"type": {
|
|
5392
|
-
"text": "\"default\" | \"primary\" | \"secondary\" | \"tertiary\" | \"overlay\" | \"attention\""
|
|
5393
|
-
},
|
|
5394
|
-
"default": "default",
|
|
5395
|
-
"description": "Uses standard inline-link styling or an action-style treatment."
|
|
5396
|
-
},
|
|
5397
|
-
{
|
|
5398
|
-
"name": "disabled",
|
|
5399
|
-
"type": {
|
|
5400
|
-
"text": "boolean"
|
|
5401
|
-
},
|
|
5402
|
-
"default": "false",
|
|
5403
|
-
"description": "Disables navigation and exposes the anchor as aria-disabled."
|
|
5404
|
-
},
|
|
5405
|
-
{
|
|
5406
|
-
"name": "weight",
|
|
5407
|
-
"type": {
|
|
5408
|
-
"text": "\"regular\" | \"medium\" | \"bold\""
|
|
5409
|
-
},
|
|
5410
|
-
"default": "regular",
|
|
5411
|
-
"description": "Font weight of link content."
|
|
5412
|
-
},
|
|
5413
|
-
{
|
|
5414
|
-
"name": "size",
|
|
5415
|
-
"type": {
|
|
5416
|
-
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
5417
|
-
},
|
|
5418
|
-
"default": "medium",
|
|
5419
|
-
"description": "Link scale; also controls automatic icon, avatar, and badge sizing."
|
|
5420
|
-
},
|
|
5421
|
-
{
|
|
5422
|
-
"name": "download",
|
|
5423
|
-
"type": {
|
|
5424
|
-
"text": "string | boolean"
|
|
5425
|
-
},
|
|
5426
|
-
"description": "Downloads the linked resource; provide a value to set a download filename."
|
|
5427
|
-
},
|
|
5428
|
-
{
|
|
5429
|
-
"name": "usage",
|
|
5430
|
-
"type": {
|
|
5431
|
-
"text": "\"input\""
|
|
5432
|
-
},
|
|
5433
|
-
"description": "Uses field-compatible styling when the link is slotted before or after an input."
|
|
5434
|
-
}
|
|
5435
|
-
],
|
|
5436
|
-
"superclass": {
|
|
5437
|
-
"name": "HTMLElement"
|
|
5438
|
-
},
|
|
5439
|
-
"tagName": "mui-link",
|
|
5440
|
-
"customElement": true,
|
|
5441
|
-
"slots": [
|
|
5442
|
-
{
|
|
5443
|
-
"name": "",
|
|
5444
|
-
"description": "Link label or a single icon for an icon-only link action."
|
|
5445
|
-
},
|
|
5446
|
-
{
|
|
5447
|
-
"name": "before",
|
|
5448
|
-
"description": "Leading icon, avatar, badge, or other supporting content."
|
|
5449
|
-
},
|
|
5450
|
-
{
|
|
5451
|
-
"name": "after",
|
|
5452
|
-
"description": "Trailing icon, avatar, badge, or other supporting content."
|
|
5453
|
-
}
|
|
5454
|
-
],
|
|
5455
|
-
"events": [],
|
|
5456
|
-
"cssProperties": [],
|
|
5457
|
-
"cssParts": [
|
|
5458
|
-
{
|
|
5459
|
-
"name": "color"
|
|
5460
|
-
},
|
|
5461
|
-
{
|
|
5462
|
-
"name": "font-family"
|
|
5463
|
-
},
|
|
5464
|
-
{
|
|
5465
|
-
"name": "font-size"
|
|
5466
|
-
},
|
|
5467
|
-
{
|
|
5468
|
-
"name": "font-weight"
|
|
5469
|
-
},
|
|
5470
|
-
{
|
|
5471
|
-
"name": "letter-spacing"
|
|
5472
|
-
},
|
|
5473
|
-
{
|
|
5474
|
-
"name": "line-height"
|
|
5475
|
-
},
|
|
5476
|
-
{
|
|
5477
|
-
"name": "text-transform"
|
|
5478
|
-
},
|
|
5479
|
-
{
|
|
5480
|
-
"name": "text-decoration"
|
|
5481
|
-
},
|
|
5482
|
-
{
|
|
5483
|
-
"name": "text-align"
|
|
5484
|
-
},
|
|
5485
|
-
{
|
|
5486
|
-
"name": "padding"
|
|
5487
|
-
},
|
|
5488
|
-
{
|
|
5489
|
-
"name": "margin"
|
|
5490
|
-
},
|
|
5491
|
-
{
|
|
5492
|
-
"name": "gap"
|
|
5493
|
-
},
|
|
5494
|
-
{
|
|
5495
|
-
"name": "width"
|
|
5496
|
-
},
|
|
5497
|
-
{
|
|
5498
|
-
"name": "height"
|
|
5499
|
-
},
|
|
5500
|
-
{
|
|
5501
|
-
"name": "box-sizing"
|
|
5502
|
-
},
|
|
5503
|
-
{
|
|
5504
|
-
"name": "display"
|
|
5505
|
-
},
|
|
5506
|
-
{
|
|
5507
|
-
"name": "flex"
|
|
5508
|
-
},
|
|
5509
|
-
{
|
|
5510
|
-
"name": "flex-direction"
|
|
5511
|
-
},
|
|
5512
|
-
{
|
|
5513
|
-
"name": "flex-wrap"
|
|
5514
|
-
},
|
|
5515
|
-
{
|
|
5516
|
-
"name": "justify-content"
|
|
5517
|
-
},
|
|
5518
|
-
{
|
|
5519
|
-
"name": "align-items"
|
|
5520
|
-
},
|
|
5521
|
-
{
|
|
5522
|
-
"name": "align-content"
|
|
5523
|
-
},
|
|
5524
|
-
{
|
|
5525
|
-
"name": "align-self"
|
|
5526
|
-
},
|
|
5527
|
-
{
|
|
5528
|
-
"name": "grid-template-columns"
|
|
5529
|
-
},
|
|
5530
|
-
{
|
|
5531
|
-
"name": "grid-template-rows"
|
|
5532
|
-
},
|
|
5533
|
-
{
|
|
5534
|
-
"name": "grid-column"
|
|
5535
|
-
},
|
|
5536
|
-
{
|
|
5537
|
-
"name": "grid-row"
|
|
5538
|
-
},
|
|
5539
|
-
{
|
|
5540
|
-
"name": "place-items"
|
|
5541
|
-
},
|
|
5542
|
-
{
|
|
5543
|
-
"name": "place-content"
|
|
5544
|
-
},
|
|
5551
|
+
"name": "slot-layout",
|
|
5552
|
+
"type": {
|
|
5553
|
+
"text": "\"inline\" | \"stack-mobile\""
|
|
5554
|
+
},
|
|
5555
|
+
"default": "inline",
|
|
5556
|
+
"description": "Arranges external before and after slots inline or stacked around the input."
|
|
5557
|
+
}
|
|
5558
|
+
],
|
|
5559
|
+
"superclass": {
|
|
5560
|
+
"name": "HTMLElement"
|
|
5561
|
+
},
|
|
5562
|
+
"tagName": "mui-input",
|
|
5563
|
+
"customElement": true,
|
|
5564
|
+
"slots": [
|
|
5545
5565
|
{
|
|
5546
|
-
"name": "
|
|
5566
|
+
"name": "before",
|
|
5567
|
+
"description": "Flush leading control, such as `mui-addon`, `mui-select`, `mui-button` or `mui-chip`."
|
|
5547
5568
|
},
|
|
5548
5569
|
{
|
|
5549
|
-
"name": "
|
|
5570
|
+
"name": "after",
|
|
5571
|
+
"description": "Flush trailing control, such as `mui-addon`, `mui-select`, `mui-button` or `mui-chip`."
|
|
5550
5572
|
},
|
|
5551
5573
|
{
|
|
5552
|
-
"name": "
|
|
5574
|
+
"name": "inside-before",
|
|
5575
|
+
"description": "Leading content displayed inside the input edge, such as an icon or badge."
|
|
5553
5576
|
},
|
|
5554
5577
|
{
|
|
5555
|
-
"name": "
|
|
5578
|
+
"name": "inside-after",
|
|
5579
|
+
"description": "Trailing content displayed inside the input edge, such as an icon or badge."
|
|
5556
5580
|
},
|
|
5557
5581
|
{
|
|
5558
|
-
"name": "
|
|
5582
|
+
"name": "hint",
|
|
5583
|
+
"description": "Contextual hint content displayed inside the trailing input affordance area."
|
|
5584
|
+
}
|
|
5585
|
+
],
|
|
5586
|
+
"cssProperties": [
|
|
5587
|
+
{
|
|
5588
|
+
"name": "--input-before-slot-max-width",
|
|
5589
|
+
"description": "Maximum width for leading external slot content."
|
|
5559
5590
|
},
|
|
5560
5591
|
{
|
|
5561
|
-
"name": "
|
|
5592
|
+
"name": "--input-after-slot-max-width",
|
|
5593
|
+
"description": "Maximum width for trailing external slot content."
|
|
5562
5594
|
},
|
|
5563
5595
|
{
|
|
5564
|
-
"name": "
|
|
5596
|
+
"name": "--input-slot-wrap",
|
|
5597
|
+
"description": "Wrapping behaviour for external slot content."
|
|
5565
5598
|
},
|
|
5566
5599
|
{
|
|
5567
|
-
"name": "
|
|
5600
|
+
"name": "--input-slot-overflow-x",
|
|
5601
|
+
"description": "Horizontal overflow behaviour for external slot content."
|
|
5568
5602
|
}
|
|
5569
5603
|
]
|
|
5570
5604
|
}
|
|
@@ -5572,10 +5606,10 @@
|
|
|
5572
5606
|
"exports": [
|
|
5573
5607
|
{
|
|
5574
5608
|
"kind": "custom-element-definition",
|
|
5575
|
-
"name": "mui-
|
|
5609
|
+
"name": "mui-input",
|
|
5576
5610
|
"declaration": {
|
|
5577
|
-
"name": "
|
|
5578
|
-
"module": "src/components/mui-
|
|
5611
|
+
"name": "MuiInput",
|
|
5612
|
+
"module": "src/components/mui-input/index.ts"
|
|
5579
5613
|
}
|
|
5580
5614
|
}
|
|
5581
5615
|
]
|
|
@@ -5827,7 +5861,7 @@
|
|
|
5827
5861
|
"type": {
|
|
5828
5862
|
"text": "MuiDocs"
|
|
5829
5863
|
},
|
|
5830
|
-
"default": "{ Message: { title: \"Message\", description: \"
|
|
5864
|
+
"default": "{ Message: { title: \"Message\", description: \"Message is a persistent page-level notification for durable status, guidance, or system context that needs more weight than inline body copy. It should include a clear heading and slotted supporting body content, and should not be used as a styled paragraph, field helper, or routine inline callout.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/01OU9JbOlDZGvbpkq2ismi/b0410cb8002858ded88987d9556daa04/Message_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=9-1053&t=ZA9uH4LK37tSuk6r-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/feedback-message--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-message/index.ts\"], website: [\"https://muibook.com/#/message\"], guides: [\"https://guides.muibook.com/message\"], usage: { list: [ \"Use Message for persistent page-level or section-level notices that apply to the surrounding workflow.\", \"Always provide a specific heading and place the supporting copy in the default slot using Body, List, Link, or other content components.\", \"Do not use Message as a styled text block, generic inline note, or mid-content emphasis treatment.\", \"For form guidance, validation, or field status, use Form Message inside Field with slot='message'.\", \"For lightweight inline context, use Body size='small' with an info icon in slot='before'.\", \"Reserve positive, warning, and attention variants for meaningful page-level status or severity; avoid using them for routine explanatory copy.\", ], }, accessibility: { designerList: [ \"ARIA-live is built in, using POLITE + ASSERTIVE for screen readers.\", \"Neutral, Postive, Info support the role of STATUS for screen reader feedback.\", \"Warning, Attention support the role of ALERT for screen reader feedback.\", ], engineerList: [ \"ARIA-live is built in, using POLITE + ASSERTIVE for screen readers.\", \"Neutral, Postive, Info support the role of STATUS for screen reader feedback.\", \"Warning, Attention support the role of ALERT for screen reader feedback.\", ], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/6S1MOtZZKP2bxYuIUNScSC/993a910363fbfbba29a3de384ecb182a/Message_-_Anatomy.png\", list: [ \"Preset icon: Communicates the type of message visually. E.g. neutral, positive, info, warning, attention.\", \"Heading: Summarises the page-level notice. Keep this short and do not place the full message body here.\", \"Default slot: Contains the supporting body content, such as Body, List, Link, or related message actions.\", ], }, variants: { items: [ { key: \"plain\", title: \"Plain\", description: \"A subtle, transparent style for passive page-level notices on vibrant backgrounds. Use sparingly for durable non-critical information, not inline helper copy. This variant sets aria-live='polite' and role='status' for accessibility.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/21KWc3TZOJPqZ2BtZ3ngrY/3cbf4aa6df3a72f195eebaa8fe8ecfde/message-plain.png\", }, { key: \"neutral\", title: \"Neutral\", description: \"The Neutral state offers a calm, balanced tone for non-critical persistent notices. Use it for page-level information such as background status or workflow guidance. This variant uses aria-live='polite' and role='status' for accessibility.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2VF8KPxaXCm6P4dlpsAnXs/5a2011d1a63a900dcdd6669ec5c097e9/message-neutral.png\", }, { key: \"positive\", title: \"Positive\", description: \"The Positive state conveys durable success or completion status at page level. Avoid using it for small inline confirmations where Body or Form Message would be lighter. This variant uses aria-live='polite' and role='status' for accessibility.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/2HOuPOpHOuMGuVUoPAs5MI/ff1e156bc8f31e580972289fcc7bf3d7/message-positive.png\", }, { key: \"info\", title: \"Info\", description: \"The Info state supports page-level system information, feature changes, or workflow context. For inline notes, use Body with an info icon instead. This variant uses aria-live='polite' and role='status' for accessibility.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1x63W880Trpx0GYiYQJhCt/72c09a93d6ec34a18bc15310927fe9ef/message-info.png\", }, { key: \"warning\", title: \"Warning\", description: \"The Warning state alerts users to page-level issues that may require attention, such as unsaved changes, consequences, limitations, or expirations. Use Form Message for field-specific warnings. This variant uses aria-live='assertive' and role='alert' for accessibility.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/50V1Ap7vVxPUWRbbKh0kx5/2fe4c203befa779087c8b23984d951b7/message-warning.png\", }, { key: \"attention\", title: \"Attention\", description: \"The Attention state demands immediate focus for critical page-level issues, such as system errors, security problems, or time-sensitive interruptions. Do not use it for ordinary content emphasis. This variant uses aria-live='assertive' and role='alert' for accessibility.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5GXIEuluNJBlg8h4hDCfWH/ddeec560354ab06af73bf5c5d8749c12/message-attention.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"plain-message\", name: \"Plain message\", description: \"This example uses the Plain variant, suitable for both white and colored backgrounds. It’s ideal for presenting information passively, without demanding user attention. In this case, it’s used to deliver accessibility notes.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3akJJDd28DOIhQrYq6g4y2/456c02f32dc9c40d84d92371b7ddbead/message-composition-neutral.png\", }, { key: \"info-message\", name: \"Info message\", description: \"Use a page-level Info message to remind users to log in to the provided tools, ensuring the MUI Guidelines are shown instead of the default guidelines.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1ySFimf3eEleYLPKomWuem/34772aed4257db976f2ca8cb633d3d5b/message-composition-info.png\", }, ], }, related: { items: [ { name: \"Alert\", link: \"https://guides.muibook.com/alert\", }, { name: \"Form Message\", link: \"https://guides.muibook.com/field\", }, { name: \"Body\", link: \"https://guides.muibook.com/body\", }, ], }, rules: [ { heading: \"Use as a page-level notification\", description: \"Message should feel like a heavier persistent notice, not a general-purpose text style.\", doContent: [ { description: \"Use a concise heading with slotted Body, List, or Link content for supporting detail.\", image: \"\", }, ], dontContent: [ { description: \"Do not use Message for inline guidance, form helper text, or routine status copy; use Form Message or Body instead.\", image: \"\", }, ], }, ], behaviour: { list: [ \"Message is persistent and integrated into the page layout.\", \"Neutral, Positive, and Info use role='status' with polite live-region behaviour.\", \"Warning and Attention use role='alert' with assertive live-region behaviour.\", ], }, writing: { list: [ \"Write the heading as the short status or notice title.\", \"Write the body as the supporting context, impact, or next action.\", \"Keep inline helper copy out of Message; use lighter text treatments for routine guidance.\", ], }, }, }"
|
|
5831
5865
|
}
|
|
5832
5866
|
],
|
|
5833
5867
|
"exports": [
|
|
@@ -5847,7 +5881,7 @@
|
|
|
5847
5881
|
"declarations": [
|
|
5848
5882
|
{
|
|
5849
5883
|
"kind": "class",
|
|
5850
|
-
"description": "Presents
|
|
5884
|
+
"description": "Presents a persistent page-level notification with an intent icon, heading, and slotted supporting body content. Use Form Message for form guidance and Body with an info icon for lightweight inline notes.",
|
|
5851
5885
|
"name": "MuiMessage",
|
|
5852
5886
|
"attributes": [
|
|
5853
5887
|
{
|
|
@@ -5856,7 +5890,7 @@
|
|
|
5856
5890
|
"text": "\"neutral\" | \"positive\" | \"info\" | \"warning\" | \"attention\""
|
|
5857
5891
|
},
|
|
5858
5892
|
"default": "neutral",
|
|
5859
|
-
"description": "Sets the
|
|
5893
|
+
"description": "Sets the page-level intent style and default icon. Reserve positive, warning, and attention for meaningful status or severity, not routine inline emphasis."
|
|
5860
5894
|
},
|
|
5861
5895
|
{
|
|
5862
5896
|
"name": "heading",
|
|
@@ -5864,7 +5898,7 @@
|
|
|
5864
5898
|
"text": "string"
|
|
5865
5899
|
},
|
|
5866
5900
|
"default": "Heading...",
|
|
5867
|
-
"description": "Sets the message
|
|
5901
|
+
"description": "Sets the concise message title. Do not put full body copy here; supporting content belongs in the default slot."
|
|
5868
5902
|
},
|
|
5869
5903
|
{
|
|
5870
5904
|
"name": "icon",
|
|
@@ -5890,7 +5924,7 @@
|
|
|
5890
5924
|
"slots": [
|
|
5891
5925
|
{
|
|
5892
5926
|
"name": "",
|
|
5893
|
-
"description": "
|
|
5927
|
+
"description": "Required supporting content below the heading. Use `mui-body`, `mui-list`, `mui-link`, or related content; avoid leaving the slot empty."
|
|
5894
5928
|
}
|
|
5895
5929
|
],
|
|
5896
5930
|
"events": [],
|
|
@@ -7426,7 +7460,7 @@
|
|
|
7426
7460
|
"type": {
|
|
7427
7461
|
"text": "MuiDocs"
|
|
7428
7462
|
},
|
|
7429
|
-
"default": "{ Rule: { title: \"Rule\", description: \"A styling rule that visually separates or divides page elements.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/1MLQoDYuXhKOBDZQRZtBH7/6cd51d6b04fb62f1e04b0383c38d4cce/Rule_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=1059-12617&t=BwezUSymTClm00wJ-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/layout-rule--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-rule/index.ts\"], website: [\"https://muibook.com/#/rule\"], guides: [\"https://guides.muibook.com/rule\"], usage: { list: [ \"Use horizontal rules to separate sections or create visual breaks in flows.\", \"Use vertical rules to divide elements within a row or dense layout.\", \"Align with spacing and layout conventions to maintain visual rhythm.\", \"Avoid using as decoration—rules should support clarity and structure.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"\", title: \"\", description: \"\", image: \"\", }, ], }, compositions: { description: \"\", items: [ { key: \"\", name: \"\", description: \"\", image: \"\", }, ], }, related: { items: [ { name: \"\", link: \"\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
7463
|
+
"default": "{ Rule: { title: \"Rule\", description: \"A styling rule that visually separates or divides page elements.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/1MLQoDYuXhKOBDZQRZtBH7/6cd51d6b04fb62f1e04b0383c38d4cce/Rule_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=1059-12617&t=BwezUSymTClm00wJ-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/layout-rule--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-rule/index.ts\"], website: [\"https://muibook.com/#/rule\"], guides: [\"https://guides.muibook.com/rule\"], usage: { list: [ \"Use horizontal rules to separate sections or create visual breaks in flows.\", \"Use vertical rules to divide elements within a row or dense layout.\", \"Use weight='thin' or weight='thick' for common divider thicknesses.\", \"Use custom CSS values for weight when a composition needs a specific thickness.\", \"Align with spacing and layout conventions to maintain visual rhythm.\", \"Avoid using as decoration—rules should support clarity and structure.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { items: [ { key: \"\", title: \"\", description: \"\", image: \"\", }, ], }, compositions: { description: \"\", items: [ { key: \"\", name: \"\", description: \"\", image: \"\", }, ], }, related: { items: [ { name: \"\", link: \"\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
7430
7464
|
}
|
|
7431
7465
|
],
|
|
7432
7466
|
"exports": [
|
|
@@ -7460,10 +7494,10 @@
|
|
|
7460
7494
|
{
|
|
7461
7495
|
"name": "weight",
|
|
7462
7496
|
"type": {
|
|
7463
|
-
"text": "string"
|
|
7497
|
+
"text": "\"thin\" | \"thick\" | string"
|
|
7464
7498
|
},
|
|
7465
|
-
"default": "
|
|
7466
|
-
"description": "Sets divider thickness
|
|
7499
|
+
"default": "thin",
|
|
7500
|
+
"description": "Sets divider thickness. Use `thin`, `thick`, or any valid CSS size value."
|
|
7467
7501
|
},
|
|
7468
7502
|
{
|
|
7469
7503
|
"name": "direction",
|
|
@@ -7943,7 +7977,7 @@
|
|
|
7943
7977
|
"type": {
|
|
7944
7978
|
"text": "MuiDocs"
|
|
7945
7979
|
},
|
|
7946
|
-
"default": "{ Slat: { title: \"Slat\", description: \"Used to display structured data in a stacked format, typically on smaller viewports or within narrow-width layouts. Slats offer flexibility to surface key content and support custom layouts, stacking, or expansion of additional details.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/2SHOSwTkf7V7Ql4OaobtMg/2cacf5103d02e00f67748578213f4433/Slat_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=957-8535&t=0ytskb8cxriEmdz2-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/content-slat--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-slat/index.ts\"], website: [\"https://muibook.com/#/slat\"], guides: [\"https://guides.muibook.com/slat\"], usage: { list: [ \"Suitable for displaying data in narrow-width containers, such as side panels\", \"Use as a responsive alternative to tables on mobile or narrow viewports\", \"Ideal for presenting structured data in a compact, scannable format\", \"Supports stacking labels and values for easier readability\", \"Can include expandable sections to reveal more content on demand\", \"Use with SlatGroup when rows need to be presented as a related set, such as wallet activity, settings lists, grouped account records, or transaction histories.\", ], }, accessibility: { designerList: [\"mui-slat uses role='row'\", \"slotted children inherit role='cell'\"], engineerList: [\"mui-slat uses role='row'\", \"slotted children inherit role='cell'\"], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/0OzwVoT0EyK1sR1ufn3Vw/3cbee51beec1240ebeaaad485bff5970/Slat_-_Anatomy.png\", list: [ \"Header (Start): Slot for the header of slat items.\", \"Header (End): Optional area for secondary information.\", \"Row (Start): Primary content slot in a slat layout.\", \"Row (End): Secondary content slot in a slat layout.\", \"Accessory: Use for an icon or other suitable elements within the limited space available.\", \"Action: Enables the slat to become a clickable action.\", ], }, variants: { items: [ { key: \"default\", title: \"Default\", description: \"Use for structured row content where information is primarily read rather than clicked.\", image: \"\", }, { key: \"header\", title: \"Header\", description: \"Use for section headers or grouped row labels where the slat introduces the items that follow.\", image: \"\", }, { key: \"action\", title: \"Action\", description: \"Use when the whole slat acts as the trigger, such as opening details, drilling into settings, or selecting a transaction.\", image: \"\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"smart-card\", name: \"Smart Card\", description: \"The Smart Card composition uses slats to present structured information in a compact format. Slats help organise details such as titles, descriptions, and supporting actions, making the card easy to scan and interact with.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/74knMtil1vp9nHPPWXM1kr/54f8d978b0a82bca2c126e8ab800826f/SmartCard_-_Card_Composition.png\", }, { key: \"account-activity\", name: \"Account Activity\", description: \"In Account Activity, slats are used to display a list of recent actions. Each slat provides a clear breakdown of primary details with optional secondary information, ensuring activity is both easy to read and consistent across the interface.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5GVrfo3fcsVnX7yduux6kE/978c2c6635bf19ee7e67ccd26744ad33/Slat_-_Account_Composition.png\", }, ], }, related: { items: [ { name: \"Slat Group\", link: \"https://guides.muibook.com/slat\", }, { name: \"Icons\", link: \"https://guides.muibook.com/icons\", }, ], }, rules: [ { heading: \"Choose the right slat variant\", description: \"Use the slat variant that matches the row’s job so grouped lists stay clear and predictable.\", doContent: [ { description: \"Use a header slat to introduce a grouped set, a default slat for readable content, and an action slat when the whole row should be interactive.\", image: \"\", }, ], dontContent: [ { description: \"Avoid making every slat interactive if the rows are only there to present information.\", image: \"\", }, ], }, ], behaviour: { list: [ \"Use the default variant when the slat is primarily informational, and use the action variant when the entire row should be interactive.\", \"Header slats work well as structural labels before a grouped run of related slats.\", ], }, writing: { list: [ \"Keep primary row content concise and scannable so labels, values, and actions remain easy to parse at a glance.\", ], }, }, SlatGroup: { title: \"Slat Group\", description: \"Slat Group arranges multiple slats into a related set so they can be presented as one grouped list or feed.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com/?path=/docs/content-slat--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-slat/index.ts\"], website: [\"https://muibook.com/#/slat\"], guides: [\"https://guides.muibook.com/slat\"], usage: { list: [ \"Use to group related slats into one compact list or section.\", \"Works well for wallet and account activity feeds where a header slat is followed by action or detail slats.\", \"A strong pattern is a header slat followed by grouped item slats for balances, recent activity, account options, or grouped settings.\", \"Use inside Card when grouped rows need a shared container or section framing.\", \"Pair with Rule between header and item sets when additional separation is needed.\", \"Use Slat for the individual row content and SlatGroup for the grouped structure.\", ], }, accessibility: { designerList: [\"Maintain a consistent row order so grouped content is easy to scan.\"], engineerList: [\"Use SlatGroup as structural grouping; individual mui-slat rows continue to own their row/cell semantics.\"], }, anatomy: { image: \"\", list: [\"Grouped slat container\", \"Optional header slat\", \"Related slat items\"], }, variants: { items: [ { key: \"default\", title: \"Default\", description: \"A grouped collection of related slats.\", image: \"\", }, ], }, compositions: { description: \"Showcases grouped slat patterns in real-world structures.\", items: [ { key: \"wallet-activity\", name: \"Wallet Activity\", description: \"A header slat followed by grouped activity rows, useful for transactions, balances, and recent account events.\", image: \"\", }, ], }, related: { items: [ { name: \"Slat\", link: \"https://guides.muibook.com/slat\", }, { name: \"Rule\", link: \"https://guides.muibook.com/rule\", }, { name: \"Card\", link: \"https://guides.muibook.com/card\", }, ], }, rules: [ { heading: \"Group meaningfully\", description: \"Use SlatGroup when multiple slats belong to the same topic, task, or account context and should be read together.\", doContent: [ { description: \"Group related rows such as a wallet summary, account activity, or a list of linked settings under one clear header or section label.\", image: \"\", }, ], dontContent: [ { description: \"Avoid using SlatGroup as a generic spacing wrapper when the rows do not share a clear relationship.\", image: \"\", }, ], }, ], behaviour: { list: [ \"SlatGroup provides structure for a related set while each slat continues to handle its own content and interaction behaviour.\", ], }, writing: { list: [ \"Use concise section labels so grouped rows are easy to scan and the relationship between items is obvious.\", ], }, }, }"
|
|
7980
|
+
"default": "{ Slat: { title: \"Slat\", description: \"Used to display structured data in a stacked format, typically on smaller viewports or within narrow-width layouts. Slats offer flexibility to surface key content and support custom layouts, stacking, or expansion of additional details.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/2SHOSwTkf7V7Ql4OaobtMg/2cacf5103d02e00f67748578213f4433/Slat_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=957-8535&t=0ytskb8cxriEmdz2-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/content-slat--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-slat/index.ts\"], website: [\"https://muibook.com/#/slat\"], guides: [\"https://guides.muibook.com/slat\"], usage: { list: [ \"Suitable for displaying data in narrow-width containers, such as side panels\", \"Use as a responsive alternative to tables on mobile or narrow viewports\", \"Ideal for presenting structured data in a compact, scannable format\", \"Supports stacking labels and values for easier readability\", \"Can include expandable sections to reveal more content on demand\", \"Use col and space to tune slat columns and spacing, including action slats.\", \"Use with SlatGroup when rows need to be presented as a related set, such as wallet activity, settings lists, grouped account records, or transaction histories.\", ], }, accessibility: { designerList: [\"mui-slat uses role='row'\", \"slotted children inherit role='cell'\"], engineerList: [\"mui-slat uses role='row'\", \"slotted children inherit role='cell'\"], }, anatomy: { image: \"https://images.ctfassets.net/i5uwscj4pkk2/0OzwVoT0EyK1sR1ufn3Vw/3cbee51beec1240ebeaaad485bff5970/Slat_-_Anatomy.png\", list: [ \"Header (Start): Slot for the header of slat items.\", \"Header (End): Optional area for secondary information.\", \"Row (Start): Primary content slot in a slat layout.\", \"Row (End): Secondary content slot in a slat layout.\", \"Accessory: Use for an icon or other suitable elements within the limited space available.\", \"Action: Enables the slat to become a clickable action.\", ], }, variants: { items: [ { key: \"default\", title: \"Default\", description: \"Use for structured row content where information is primarily read rather than clicked.\", image: \"\", }, { key: \"header\", title: \"Header\", description: \"Use for section headers or grouped row labels where the slat introduces the items that follow.\", image: \"\", }, { key: \"action\", title: \"Action\", description: \"Use when the whole slat acts as the trigger, such as opening details, drilling into settings, or selecting a transaction.\", image: \"\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"smart-card\", name: \"Smart Card\", description: \"The Smart Card composition uses slats to present structured information in a compact format. Slats help organise details such as titles, descriptions, and supporting actions, making the card easy to scan and interact with.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/74knMtil1vp9nHPPWXM1kr/54f8d978b0a82bca2c126e8ab800826f/SmartCard_-_Card_Composition.png\", }, { key: \"account-activity\", name: \"Account Activity\", description: \"In Account Activity, slats are used to display a list of recent actions. Each slat provides a clear breakdown of primary details with optional secondary information, ensuring activity is both easy to read and consistent across the interface.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5GVrfo3fcsVnX7yduux6kE/978c2c6635bf19ee7e67ccd26744ad33/Slat_-_Account_Composition.png\", }, ], }, related: { items: [ { name: \"Slat Group\", link: \"https://guides.muibook.com/slat\", }, { name: \"Icons\", link: \"https://guides.muibook.com/icons\", }, ], }, rules: [ { heading: \"Choose the right slat variant\", description: \"Use the slat variant that matches the row’s job so grouped lists stay clear and predictable.\", doContent: [ { description: \"Use a header slat to introduce a grouped set, a default slat for readable content, and an action slat when the whole row should be interactive.\", image: \"\", }, ], dontContent: [ { description: \"Avoid making every slat interactive if the rows are only there to present information.\", image: \"\", }, ], }, ], behaviour: { list: [ \"Use the default variant when the slat is primarily informational, and use the action variant when the entire row should be interactive.\", \"Header slats work well as structural labels before a grouped run of related slats.\", ], }, writing: { list: [ \"Keep primary row content concise and scannable so labels, values, and actions remain easy to parse at a glance.\", ], }, }, SlatGroup: { title: \"Slat Group\", description: \"Slat Group arranges multiple slats into a related set so they can be presented as one grouped list or feed.\", hero: [\"\"], figma: [\"\"], storybook: [\"https://stories.muibook.com/?path=/docs/content-slat--docs\"], github: [\"https://github.com/michaeltrilford/muibook/blob/main/src/components/mui-slat/index.ts\"], website: [\"https://muibook.com/#/slat\"], guides: [\"https://guides.muibook.com/slat\"], usage: { list: [ \"Use to group related slats into one compact list or section.\", \"Works well for wallet and account activity feeds where a header slat is followed by action or detail slats.\", \"A strong pattern is a header slat followed by grouped item slats for balances, recent activity, account options, or grouped settings.\", \"Use inside Card when grouped rows need a shared container or section framing.\", \"Pair with Rule between header and item sets when additional separation is needed.\", \"Use Slat for the individual row content and SlatGroup for the grouped structure.\", ], }, accessibility: { designerList: [\"Maintain a consistent row order so grouped content is easy to scan.\"], engineerList: [\"Use SlatGroup as structural grouping; individual mui-slat rows continue to own their row/cell semantics.\"], }, anatomy: { image: \"\", list: [\"Grouped slat container\", \"Optional header slat\", \"Related slat items\"], }, variants: { items: [ { key: \"default\", title: \"Default\", description: \"A grouped collection of related slats.\", image: \"\", }, ], }, compositions: { description: \"Showcases grouped slat patterns in real-world structures.\", items: [ { key: \"wallet-activity\", name: \"Wallet Activity\", description: \"A header slat followed by grouped activity rows, useful for transactions, balances, and recent account events.\", image: \"\", }, ], }, related: { items: [ { name: \"Slat\", link: \"https://guides.muibook.com/slat\", }, { name: \"Rule\", link: \"https://guides.muibook.com/rule\", }, { name: \"Card\", link: \"https://guides.muibook.com/card\", }, ], }, rules: [ { heading: \"Group meaningfully\", description: \"Use SlatGroup when multiple slats belong to the same topic, task, or account context and should be read together.\", doContent: [ { description: \"Group related rows such as a wallet summary, account activity, or a list of linked settings under one clear header or section label.\", image: \"\", }, ], dontContent: [ { description: \"Avoid using SlatGroup as a generic spacing wrapper when the rows do not share a clear relationship.\", image: \"\", }, ], }, ], behaviour: { list: [ \"SlatGroup provides structure for a related set while each slat continues to handle its own content and interaction behaviour.\", ], }, writing: { list: [ \"Use concise section labels so grouped rows are easy to scan and the relationship between items is obvious.\", ], }, }, }"
|
|
7947
7981
|
}
|
|
7948
7982
|
],
|
|
7949
7983
|
"exports": [
|
|
@@ -8423,7 +8457,7 @@
|
|
|
8423
8457
|
"type": {
|
|
8424
8458
|
"text": "MuiDocs"
|
|
8425
8459
|
},
|
|
8426
|
-
"default": "{ Stack: { title: \"Stack\", description: \"A layout helper component that arranges its children in a horizontal or vertical flow with consistent spacing.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/37Cyk0jaIIKA8EBj2bp1ep/95d5adc24bccb051c355865d9e14bfa3/Stack_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=1059-12708&t=BwezUSymTClm00wJ-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/layout-stack--docs\"], github: [\"https://github.com/michaeltrilford/muibook/tree/main/src/components/mui-stack\"], website: [\"https://muibook.com/#/stack\"], guides: [\"https://guides.muibook.com/stack\"], usage: { list: [ \"Use to organise content or components in a single, consistent direction.\", \"Ideal for managing spacing without manual margin or padding adjustments.\", \"Supports responsive layouts by changing direction or spacing at breakpoints.\", \"Recognise it as a developer layout tool rather than a design asset.\", \"Use the space design token to maintain consistent gap spacing.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { description: \"While not a Figma component (designers should use auto-layout), it’s useful for designers to understand this pattern as engineers commonly use it to control layout and spacing.\", items: [ { key: \"horizontal\", title: \"Horizontal\", description: \"A layout component that arranges its children in a horizontal flow\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5tHpmQRhIWn0ACqjb1jNBu/d99ca0d9ada0af45cd0f1c2aaa7c995d/stack-horizontal.png\", }, { key: \"vertical\", title: \"Vertical\", description: \"A layout component that arranges its children in a vertical flow\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1w2YeWwXerMc2YGqfGm6KJ/898f3ef195e01f775ae880e0968dbaa6/stack-vertical.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"outcomes-roadmap-dashboard\", name: \"Outcomes Roadmap Dashboard\", description: \"Example of the responsive component in the Outcomes Roadmap Dashboard, demonstrating layout, title, and padding adjustments across breakpoints.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3FsXandRr1Z9BAKv33twxT/b0d0e4a8b6237bf7d38660111bceb8ab/responsive-composition.gif\", }, { key: \"outcomes-roadmap-roadmap\", name: \"Outcome-Based Roadmap\", description: \"Example of an Outcome-Based Roadmap page showing objectives organised into Upcoming, Doing, and Finished columns. Progress bars indicate the completion status of each task, providing a clear view of overall progress.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3w5htPtfEz7QMCH9alVcwf/de35725fb4542b891bd695b900195291/Outcomes-Progress-Composition.png\", }, { key: \"smart-card\", name: \"Smart Card\", description: \"The Smart Card composition uses slats to present structured information in a compact format. Slats help organise details such as titles, descriptions, and supporting actions, making the card easy to scan and interact with.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/74knMtil1vp9nHPPWXM1kr/54f8d978b0a82bca2c126e8ab800826f/SmartCard_-_Card_Composition.png\", }, ], }, related: { items: [ { name: \"Grid\", link: \"https://guides.muibook.com/grid\", }, { name: \"Responsive\", link: \"https://guides.muibook.com/responsive\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
8460
|
+
"default": "{ Stack: { title: \"Stack\", description: \"A layout helper component that arranges its children in a horizontal or vertical flow with consistent spacing.\", hero: [ \"https://images.ctfassets.net/i5uwscj4pkk2/37Cyk0jaIIKA8EBj2bp1ep/95d5adc24bccb051c355865d9e14bfa3/Stack_-_Home_Image.png\", ], figma: [ \"https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=1059-12708&t=BwezUSymTClm00wJ-1\", ], storybook: [\"https://stories.muibook.com/?path=/docs/layout-stack--docs\"], github: [\"https://github.com/michaeltrilford/muibook/tree/main/src/components/mui-stack\"], website: [\"https://muibook.com/#/stack\"], guides: [\"https://guides.muibook.com/stack\"], usage: { list: [ \"Use to organise content or components in a single, consistent direction.\", \"Ideal for managing spacing without manual margin or padding adjustments.\", \"Supports responsive layouts by changing direction or spacing at breakpoints.\", \"Recognise it as a developer layout tool rather than a design asset.\", \"Use the space design token to maintain consistent gap spacing.\", \"Use viewport on a top-level stack that owns the viewport-height region.\", \"Use fill only when the parent provides a clearly bounded width and height.\", \"For nested layouts that share height with headers, drawers, or sibling regions, define the page layout explicitly rather than relying on viewport or fill.\", ], }, accessibility: { designerList: [\"\"], engineerList: [\"\"], }, anatomy: { image: \"\", list: [\"\"], }, variants: { description: \"While not a Figma component (designers should use auto-layout), it’s useful for designers to understand this pattern as engineers commonly use it to control layout and spacing.\", items: [ { key: \"horizontal\", title: \"Horizontal\", description: \"A layout component that arranges its children in a horizontal flow\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/5tHpmQRhIWn0ACqjb1jNBu/d99ca0d9ada0af45cd0f1c2aaa7c995d/stack-horizontal.png\", }, { key: \"vertical\", title: \"Vertical\", description: \"A layout component that arranges its children in a vertical flow\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/1w2YeWwXerMc2YGqfGm6KJ/898f3ef195e01f775ae880e0968dbaa6/stack-vertical.png\", }, ], }, compositions: { description: \"Showcases actual use cases, demonstrating how the component fits into real-world UI scenarios.\", items: [ { key: \"outcomes-roadmap-dashboard\", name: \"Outcomes Roadmap Dashboard\", description: \"Example of the responsive component in the Outcomes Roadmap Dashboard, demonstrating layout, title, and padding adjustments across breakpoints.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3FsXandRr1Z9BAKv33twxT/b0d0e4a8b6237bf7d38660111bceb8ab/responsive-composition.gif\", }, { key: \"outcomes-roadmap-roadmap\", name: \"Outcome-Based Roadmap\", description: \"Example of an Outcome-Based Roadmap page showing objectives organised into Upcoming, Doing, and Finished columns. Progress bars indicate the completion status of each task, providing a clear view of overall progress.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/3w5htPtfEz7QMCH9alVcwf/de35725fb4542b891bd695b900195291/Outcomes-Progress-Composition.png\", }, { key: \"smart-card\", name: \"Smart Card\", description: \"The Smart Card composition uses slats to present structured information in a compact format. Slats help organise details such as titles, descriptions, and supporting actions, making the card easy to scan and interact with.\", image: \"https://images.ctfassets.net/i5uwscj4pkk2/74knMtil1vp9nHPPWXM1kr/54f8d978b0a82bca2c126e8ab800826f/SmartCard_-_Card_Composition.png\", }, ], }, related: { items: [ { name: \"Grid\", link: \"https://guides.muibook.com/grid\", }, { name: \"Responsive\", link: \"https://guides.muibook.com/responsive\", }, ], }, rules: [ { heading: \"\", description: \"\", doContent: [{ description: \"\", image: \"\" }], dontContent: [{ description: \"\", image: \"\" }], }, ], behaviour: { list: [\"\"], }, writing: { list: [\"\"], }, }, }"
|
|
8427
8461
|
}
|
|
8428
8462
|
],
|
|
8429
8463
|
"exports": [
|
|
@@ -9022,96 +9056,96 @@
|
|
|
9022
9056
|
},
|
|
9023
9057
|
{
|
|
9024
9058
|
"kind": "javascript-module",
|
|
9025
|
-
"path": "src/components/mui-card/
|
|
9059
|
+
"path": "src/components/mui-card/body/index.ts",
|
|
9026
9060
|
"declarations": [
|
|
9027
9061
|
{
|
|
9028
9062
|
"kind": "class",
|
|
9029
|
-
"description": "
|
|
9030
|
-
"name": "
|
|
9063
|
+
"description": "Displays the main content area of a card and adapts spacing for known layout components.",
|
|
9064
|
+
"name": "MuiCardBody",
|
|
9031
9065
|
"attributes": [
|
|
9032
9066
|
{
|
|
9033
|
-
"name": "
|
|
9034
|
-
},
|
|
9035
|
-
{
|
|
9036
|
-
"name": "borderless",
|
|
9067
|
+
"name": "condensed",
|
|
9037
9068
|
"type": {
|
|
9038
9069
|
"text": "boolean"
|
|
9039
9070
|
},
|
|
9040
9071
|
"default": "false",
|
|
9041
|
-
"description": "Removes the
|
|
9072
|
+
"description": "Removes the default body padding."
|
|
9042
9073
|
}
|
|
9043
9074
|
],
|
|
9044
9075
|
"superclass": {
|
|
9045
9076
|
"name": "HTMLElement"
|
|
9046
9077
|
},
|
|
9047
|
-
"tagName": "mui-card",
|
|
9078
|
+
"tagName": "mui-card-body",
|
|
9048
9079
|
"customElement": true,
|
|
9049
9080
|
"slots": [
|
|
9050
9081
|
{
|
|
9051
9082
|
"name": "",
|
|
9052
|
-
"description": "
|
|
9083
|
+
"description": "Main card content, including layouts such as tables, slats, and accordions."
|
|
9053
9084
|
}
|
|
9054
9085
|
],
|
|
9055
9086
|
"events": [],
|
|
9056
|
-
"cssProperties": [
|
|
9057
|
-
{
|
|
9058
|
-
"name": "--card-radius",
|
|
9059
|
-
"description": "Corner radius applied to the card surface."
|
|
9060
|
-
}
|
|
9061
|
-
]
|
|
9087
|
+
"cssProperties": []
|
|
9062
9088
|
}
|
|
9063
9089
|
],
|
|
9064
9090
|
"exports": [
|
|
9065
9091
|
{
|
|
9066
9092
|
"kind": "custom-element-definition",
|
|
9067
|
-
"name": "mui-card",
|
|
9093
|
+
"name": "mui-card-body",
|
|
9068
9094
|
"declaration": {
|
|
9069
|
-
"name": "
|
|
9070
|
-
"module": "src/components/mui-card/
|
|
9095
|
+
"name": "MuiCardBody",
|
|
9096
|
+
"module": "src/components/mui-card/body/index.ts"
|
|
9071
9097
|
}
|
|
9072
9098
|
}
|
|
9073
9099
|
]
|
|
9074
9100
|
},
|
|
9075
9101
|
{
|
|
9076
9102
|
"kind": "javascript-module",
|
|
9077
|
-
"path": "src/components/mui-card/
|
|
9103
|
+
"path": "src/components/mui-card/card/index.ts",
|
|
9078
9104
|
"declarations": [
|
|
9079
9105
|
{
|
|
9080
9106
|
"kind": "class",
|
|
9081
|
-
"description": "
|
|
9082
|
-
"name": "
|
|
9107
|
+
"description": "Frames related content in a bordered surface and coordinates spacing with its slotted card sections.",
|
|
9108
|
+
"name": "MuiCard",
|
|
9083
9109
|
"attributes": [
|
|
9084
9110
|
{
|
|
9085
|
-
"name": "
|
|
9111
|
+
"name": "footer"
|
|
9112
|
+
},
|
|
9113
|
+
{
|
|
9114
|
+
"name": "borderless",
|
|
9086
9115
|
"type": {
|
|
9087
9116
|
"text": "boolean"
|
|
9088
9117
|
},
|
|
9089
9118
|
"default": "false",
|
|
9090
|
-
"description": "Removes the
|
|
9119
|
+
"description": "Removes the card border."
|
|
9091
9120
|
}
|
|
9092
9121
|
],
|
|
9093
9122
|
"superclass": {
|
|
9094
9123
|
"name": "HTMLElement"
|
|
9095
9124
|
},
|
|
9096
|
-
"tagName": "mui-card
|
|
9125
|
+
"tagName": "mui-card",
|
|
9097
9126
|
"customElement": true,
|
|
9098
9127
|
"slots": [
|
|
9099
9128
|
{
|
|
9100
9129
|
"name": "",
|
|
9101
|
-
"description": "
|
|
9130
|
+
"description": "Related `mui-card-header`, `mui-card-body`, and `mui-card-footer` sections."
|
|
9102
9131
|
}
|
|
9103
9132
|
],
|
|
9104
9133
|
"events": [],
|
|
9105
|
-
"cssProperties": [
|
|
9134
|
+
"cssProperties": [
|
|
9135
|
+
{
|
|
9136
|
+
"name": "--card-radius",
|
|
9137
|
+
"description": "Corner radius applied to the card surface."
|
|
9138
|
+
}
|
|
9139
|
+
]
|
|
9106
9140
|
}
|
|
9107
9141
|
],
|
|
9108
9142
|
"exports": [
|
|
9109
9143
|
{
|
|
9110
9144
|
"kind": "custom-element-definition",
|
|
9111
|
-
"name": "mui-card
|
|
9145
|
+
"name": "mui-card",
|
|
9112
9146
|
"declaration": {
|
|
9113
|
-
"name": "
|
|
9114
|
-
"module": "src/components/mui-card/
|
|
9147
|
+
"name": "MuiCard",
|
|
9148
|
+
"module": "src/components/mui-card/card/index.ts"
|
|
9115
9149
|
}
|
|
9116
9150
|
}
|
|
9117
9151
|
]
|
|
@@ -9466,8 +9500,8 @@
|
|
|
9466
9500
|
"type": {
|
|
9467
9501
|
"text": "string"
|
|
9468
9502
|
},
|
|
9469
|
-
"default": "1fr 1fr",
|
|
9470
|
-
"description": "Sets grid columns using any valid `grid-template-columns` value."
|
|
9503
|
+
"default": "1fr 1fr; action: minmax(0, 1fr) auto",
|
|
9504
|
+
"description": "Sets grid columns using any valid `grid-template-columns` value. Action slats default to `minmax(0, 1fr) auto` so trailing content stays aligned to the end."
|
|
9471
9505
|
},
|
|
9472
9506
|
{
|
|
9473
9507
|
"name": "space",
|
|
@@ -9475,7 +9509,7 @@
|
|
|
9475
9509
|
"text": "string"
|
|
9476
9510
|
},
|
|
9477
9511
|
"default": "var(--space-500)",
|
|
9478
|
-
"description": "Sets spacing between slat columns using any valid CSS gap value or token."
|
|
9512
|
+
"description": "Sets spacing between slat columns using any valid CSS gap value or token, including action slats."
|
|
9479
9513
|
},
|
|
9480
9514
|
{
|
|
9481
9515
|
"name": "radius",
|
|
@@ -9593,7 +9627,7 @@
|
|
|
9593
9627
|
"text": "boolean"
|
|
9594
9628
|
},
|
|
9595
9629
|
"default": "false",
|
|
9596
|
-
"description": "Sets stack height to `100dvh
|
|
9630
|
+
"description": "Sets stack height to `100dvh`. Intended for a top-level stack that owns the viewport-height region."
|
|
9597
9631
|
},
|
|
9598
9632
|
{
|
|
9599
9633
|
"name": "fill",
|
|
@@ -9601,7 +9635,7 @@
|
|
|
9601
9635
|
"text": "boolean"
|
|
9602
9636
|
},
|
|
9603
9637
|
"default": "false",
|
|
9604
|
-
"description": "Sets
|
|
9638
|
+
"description": "Sets width and height to `100%` when the parent supplies a clearly bounded layout region."
|
|
9605
9639
|
}
|
|
9606
9640
|
],
|
|
9607
9641
|
"superclass": {
|
|
@@ -9813,7 +9847,7 @@
|
|
|
9813
9847
|
"text": "boolean"
|
|
9814
9848
|
},
|
|
9815
9849
|
"default": "false",
|
|
9816
|
-
"description": "Sets stack height to `100dvh
|
|
9850
|
+
"description": "Sets stack height to `100dvh`. Intended for a top-level stack that owns the viewport-height region."
|
|
9817
9851
|
},
|
|
9818
9852
|
{
|
|
9819
9853
|
"name": "fill",
|
|
@@ -9821,7 +9855,7 @@
|
|
|
9821
9855
|
"text": "boolean"
|
|
9822
9856
|
},
|
|
9823
9857
|
"default": "false",
|
|
9824
|
-
"description": "Sets
|
|
9858
|
+
"description": "Sets width and height to `100%` when the parent supplies a clearly bounded layout region."
|
|
9825
9859
|
}
|
|
9826
9860
|
],
|
|
9827
9861
|
"superclass": {
|
|
@@ -10128,66 +10162,6 @@
|
|
|
10128
10162
|
}
|
|
10129
10163
|
]
|
|
10130
10164
|
},
|
|
10131
|
-
{
|
|
10132
|
-
"kind": "javascript-module",
|
|
10133
|
-
"path": "src/components/mui-table/row/index.ts",
|
|
10134
|
-
"declarations": [
|
|
10135
|
-
{
|
|
10136
|
-
"kind": "class",
|
|
10137
|
-
"description": "Arranges table cells in a configurable column grid.",
|
|
10138
|
-
"name": "MuiRow",
|
|
10139
|
-
"attributes": [
|
|
10140
|
-
{
|
|
10141
|
-
"name": "columns",
|
|
10142
|
-
"type": {
|
|
10143
|
-
"text": "string"
|
|
10144
|
-
},
|
|
10145
|
-
"description": "Sets column sizing using any valid `grid-template-columns` value."
|
|
10146
|
-
},
|
|
10147
|
-
{
|
|
10148
|
-
"name": "size",
|
|
10149
|
-
"type": {
|
|
10150
|
-
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
10151
|
-
},
|
|
10152
|
-
"default": "medium",
|
|
10153
|
-
"description": "Sets row cell typography and action-column sizing."
|
|
10154
|
-
}
|
|
10155
|
-
],
|
|
10156
|
-
"superclass": {
|
|
10157
|
-
"name": "HTMLElement"
|
|
10158
|
-
},
|
|
10159
|
-
"tagName": "mui-row",
|
|
10160
|
-
"customElement": true,
|
|
10161
|
-
"slots": [
|
|
10162
|
-
{
|
|
10163
|
-
"name": "",
|
|
10164
|
-
"description": "Related `mui-cell` children."
|
|
10165
|
-
}
|
|
10166
|
-
],
|
|
10167
|
-
"events": [],
|
|
10168
|
-
"cssProperties": [
|
|
10169
|
-
{
|
|
10170
|
-
"name": "--row-action-size",
|
|
10171
|
-
"description": "Resolved square action-cell size for the current row."
|
|
10172
|
-
},
|
|
10173
|
-
{
|
|
10174
|
-
"name": "--row-min-height",
|
|
10175
|
-
"description": "Minimum row height."
|
|
10176
|
-
}
|
|
10177
|
-
]
|
|
10178
|
-
}
|
|
10179
|
-
],
|
|
10180
|
-
"exports": [
|
|
10181
|
-
{
|
|
10182
|
-
"kind": "custom-element-definition",
|
|
10183
|
-
"name": "mui-row",
|
|
10184
|
-
"declaration": {
|
|
10185
|
-
"name": "MuiRow",
|
|
10186
|
-
"module": "src/components/mui-table/row/index.ts"
|
|
10187
|
-
}
|
|
10188
|
-
}
|
|
10189
|
-
]
|
|
10190
|
-
},
|
|
10191
10165
|
{
|
|
10192
10166
|
"kind": "javascript-module",
|
|
10193
10167
|
"path": "src/components/mui-table/cell/index.ts",
|
|
@@ -10250,35 +10224,60 @@
|
|
|
10250
10224
|
},
|
|
10251
10225
|
{
|
|
10252
10226
|
"kind": "javascript-module",
|
|
10253
|
-
"path": "src/components/mui-table/
|
|
10227
|
+
"path": "src/components/mui-table/row/index.ts",
|
|
10254
10228
|
"declarations": [
|
|
10255
10229
|
{
|
|
10256
10230
|
"kind": "class",
|
|
10257
|
-
"description": "
|
|
10258
|
-
"name": "
|
|
10231
|
+
"description": "Arranges table cells in a configurable column grid.",
|
|
10232
|
+
"name": "MuiRow",
|
|
10233
|
+
"attributes": [
|
|
10234
|
+
{
|
|
10235
|
+
"name": "columns",
|
|
10236
|
+
"type": {
|
|
10237
|
+
"text": "string"
|
|
10238
|
+
},
|
|
10239
|
+
"description": "Sets column sizing using any valid `grid-template-columns` value."
|
|
10240
|
+
},
|
|
10241
|
+
{
|
|
10242
|
+
"name": "size",
|
|
10243
|
+
"type": {
|
|
10244
|
+
"text": "\"xx-small\" | \"x-small\" | \"small\" | \"medium\" | \"large\""
|
|
10245
|
+
},
|
|
10246
|
+
"default": "medium",
|
|
10247
|
+
"description": "Sets row cell typography and action-column sizing."
|
|
10248
|
+
}
|
|
10249
|
+
],
|
|
10259
10250
|
"superclass": {
|
|
10260
10251
|
"name": "HTMLElement"
|
|
10261
10252
|
},
|
|
10262
|
-
"tagName": "mui-
|
|
10253
|
+
"tagName": "mui-row",
|
|
10263
10254
|
"customElement": true,
|
|
10264
|
-
"attributes": [],
|
|
10265
10255
|
"slots": [
|
|
10266
10256
|
{
|
|
10267
10257
|
"name": "",
|
|
10268
|
-
"description": "Related `mui-
|
|
10258
|
+
"description": "Related `mui-cell` children."
|
|
10269
10259
|
}
|
|
10270
10260
|
],
|
|
10271
10261
|
"events": [],
|
|
10272
|
-
"cssProperties": [
|
|
10262
|
+
"cssProperties": [
|
|
10263
|
+
{
|
|
10264
|
+
"name": "--row-action-size",
|
|
10265
|
+
"description": "Resolved square action-cell size for the current row."
|
|
10266
|
+
},
|
|
10267
|
+
{
|
|
10268
|
+
"name": "--row-min-height",
|
|
10269
|
+
"description": "Minimum row height."
|
|
10270
|
+
}
|
|
10271
|
+
]
|
|
10273
10272
|
}
|
|
10274
10273
|
],
|
|
10275
10274
|
"exports": [
|
|
10276
10275
|
{
|
|
10277
10276
|
"kind": "custom-element-definition",
|
|
10278
|
-
"name": "mui-
|
|
10277
|
+
"name": "mui-row",
|
|
10279
10278
|
"declaration": {
|
|
10280
|
-
"name": "
|
|
10281
|
-
"module": "src/components/mui-table/
|
|
10279
|
+
"name": "MuiRow",
|
|
10280
|
+
"module": "src/components/mui-table/row/index.ts"
|
|
10282
10281
|
}
|
|
10283
10282
|
}
|
|
10284
10283
|
]
|
|
@@ -10327,6 +10326,41 @@
|
|
|
10327
10326
|
}
|
|
10328
10327
|
]
|
|
10329
10328
|
},
|
|
10329
|
+
{
|
|
10330
|
+
"kind": "javascript-module",
|
|
10331
|
+
"path": "src/components/mui-table/table/index.ts",
|
|
10332
|
+
"declarations": [
|
|
10333
|
+
{
|
|
10334
|
+
"kind": "class",
|
|
10335
|
+
"description": "Groups row collections into an accessible table layout.",
|
|
10336
|
+
"name": "MuiTable",
|
|
10337
|
+
"superclass": {
|
|
10338
|
+
"name": "HTMLElement"
|
|
10339
|
+
},
|
|
10340
|
+
"tagName": "mui-table",
|
|
10341
|
+
"customElement": true,
|
|
10342
|
+
"attributes": [],
|
|
10343
|
+
"slots": [
|
|
10344
|
+
{
|
|
10345
|
+
"name": "",
|
|
10346
|
+
"description": "Related `mui-row-group` children."
|
|
10347
|
+
}
|
|
10348
|
+
],
|
|
10349
|
+
"events": [],
|
|
10350
|
+
"cssProperties": []
|
|
10351
|
+
}
|
|
10352
|
+
],
|
|
10353
|
+
"exports": [
|
|
10354
|
+
{
|
|
10355
|
+
"kind": "custom-element-definition",
|
|
10356
|
+
"name": "mui-table",
|
|
10357
|
+
"declaration": {
|
|
10358
|
+
"name": "MuiTable",
|
|
10359
|
+
"module": "src/components/mui-table/table/index.ts"
|
|
10360
|
+
}
|
|
10361
|
+
}
|
|
10362
|
+
]
|
|
10363
|
+
},
|
|
10330
10364
|
{
|
|
10331
10365
|
"kind": "javascript-module",
|
|
10332
10366
|
"path": "src/components/mui-tabs/controller/index.ts",
|