@duro-app/cli 5.20.0 → 5.22.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/package.json +5 -5
- package/registry.json +109 -19
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duro-app/cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.22.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Machine-queryable docs for the Duro design system: components, props, recipes, tokens and rules as CLI output, JSON, or an MCP server.",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"@modelcontextprotocol/sdk": ">=1.0.0",
|
|
49
|
-
"@duro-app/ui": "^5.
|
|
49
|
+
"@duro-app/ui": "^5.22.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependenciesMeta": {
|
|
52
52
|
"@duro-app/ui": {
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"@types/node": "^24.0.0",
|
|
62
62
|
"ts-morph": "^26.0.0",
|
|
63
63
|
"typescript": "^5.7.0",
|
|
64
|
-
"@duro-app/eslint-plugin": "^5.
|
|
65
|
-
"@duro-app/ui": "^5.
|
|
66
|
-
"@duro-app/tokens": "^5.
|
|
64
|
+
"@duro-app/eslint-plugin": "^5.22.0",
|
|
65
|
+
"@duro-app/ui": "^5.22.0",
|
|
66
|
+
"@duro-app/tokens": "^5.22.0"
|
|
67
67
|
},
|
|
68
68
|
"scripts": {
|
|
69
69
|
"registry": "node scripts/build-registry.mjs",
|
package/registry.json
CHANGED
|
@@ -1182,7 +1182,7 @@
|
|
|
1182
1182
|
"importPath": "@duro-app/ui",
|
|
1183
1183
|
"kind": "component",
|
|
1184
1184
|
"meta": {
|
|
1185
|
-
"description": "A block of code with a copy button: a pre that scrolls sideways when a line is long, and a Button that copies its text, shows the copied label for copiedDuration ms and announces it through a polite LiveRegion. Labels come from props.",
|
|
1185
|
+
"description": "A block of code with a copy button: a pre that scrolls sideways when a line is long, and a Button that copies its text, shows the copied label for copiedDuration ms and announces it through a polite LiveRegion. Labels come from props. With language=\"diff\", added, removed and hunk lines are coloured from tokens. On native the text is selectable and scrolls sideways; there is no copy button.",
|
|
1186
1186
|
"example": "<CodeBlock copyLabel=\"Copy\" copiedLabel=\"Copied\">\n <code>pnpm add @duro-app/ui</code>\n</CodeBlock>",
|
|
1187
1187
|
"relatedTo": [
|
|
1188
1188
|
{
|
|
@@ -1206,7 +1206,7 @@
|
|
|
1206
1206
|
]
|
|
1207
1207
|
},
|
|
1208
1208
|
"name": "CodeBlock",
|
|
1209
|
-
"native":
|
|
1209
|
+
"native": true,
|
|
1210
1210
|
"props": [
|
|
1211
1211
|
{
|
|
1212
1212
|
"description": "The code: text, or the `<code>` element a Markdown renderer produced (highlighted spans included). What is copied is its text content.",
|
|
@@ -1214,6 +1214,12 @@
|
|
|
1214
1214
|
"required": true,
|
|
1215
1215
|
"type": "ReactNode"
|
|
1216
1216
|
},
|
|
1217
|
+
{
|
|
1218
|
+
"description": "The code's language (\"diff\", \"ts\"), exposed as `data-language` on the `pre`. `\"diff\"` also gives each added (`+`), removed (`-`) and hunk (`@@`) line its own colour; what is copied stays the raw text. Diff rendering works on the text content, so highlighted spans inside `children` are flattened to plain text. The language is a data attribute only: it is not announced to assistive technology.",
|
|
1219
|
+
"name": "language",
|
|
1220
|
+
"required": false,
|
|
1221
|
+
"type": "string"
|
|
1222
|
+
},
|
|
1217
1223
|
{
|
|
1218
1224
|
"description": "The copy button's label (\"Copy\"), from your text catalog.",
|
|
1219
1225
|
"name": "copyLabel",
|
|
@@ -1378,13 +1384,25 @@
|
|
|
1378
1384
|
"description": "Initial preference (uncontrolled). Default `'system'`. For SSR with no hydration flash, pass the value you persisted server-side (e.g. a cookie).",
|
|
1379
1385
|
"name": "defaultPreference",
|
|
1380
1386
|
"required": false,
|
|
1381
|
-
"type": "ColorModePreference"
|
|
1387
|
+
"type": "ColorModePreference",
|
|
1388
|
+
"union": [
|
|
1389
|
+
"system",
|
|
1390
|
+
"dark",
|
|
1391
|
+
"light",
|
|
1392
|
+
"high-contrast"
|
|
1393
|
+
]
|
|
1382
1394
|
},
|
|
1383
1395
|
{
|
|
1384
1396
|
"description": "Controlled preference — when set, the provider does not own the state.",
|
|
1385
1397
|
"name": "preference",
|
|
1386
1398
|
"required": false,
|
|
1387
|
-
"type": "ColorModePreference"
|
|
1399
|
+
"type": "ColorModePreference",
|
|
1400
|
+
"union": [
|
|
1401
|
+
"system",
|
|
1402
|
+
"dark",
|
|
1403
|
+
"light",
|
|
1404
|
+
"high-contrast"
|
|
1405
|
+
]
|
|
1388
1406
|
},
|
|
1389
1407
|
{
|
|
1390
1408
|
"description": "Fired whenever the preference changes (controlled or not).",
|
|
@@ -3307,8 +3325,8 @@
|
|
|
3307
3325
|
"importPath": "@duro-app/ui",
|
|
3308
3326
|
"kind": "component",
|
|
3309
3327
|
"meta": {
|
|
3310
|
-
"description": "Semantic heading element (h1-h6) with typography presets. Always use the correct level for document hierarchy.
|
|
3311
|
-
"example": "<Stack gap=\"md\">\n <Heading level={1}>Page Title</Heading>\n <Heading level={2}
|
|
3328
|
+
"description": "Semantic heading element (h1-h6) with typography presets. Always use the correct level for document hierarchy. The look is `variant` (heading, display, overline) and its size is `size` (sm, md, lg, xl), both independent of the semantic level. The old combined variants (headingSm, displayLg, …) still work and are deprecated.",
|
|
3329
|
+
"example": "<Stack gap=\"md\">\n <Heading level={1}>Page Title</Heading>\n <Heading level={2} size=\"md\">Section</Heading>\n <Heading level={1} variant=\"display\" size=\"lg\">Hero</Heading>\n <Heading level={3} variant=\"overline\" color=\"muted\">Group</Heading>\n <Heading level={2} variant=\"overline\" size=\"lg\">Large group</Heading>\n</Stack>",
|
|
3312
3330
|
"relatedTo": [
|
|
3313
3331
|
{
|
|
3314
3332
|
"component": "Text",
|
|
@@ -3324,7 +3342,8 @@
|
|
|
3324
3342
|
"whenToUse": [
|
|
3325
3343
|
"Page titles (level 1)",
|
|
3326
3344
|
"Section headers (level 2-3)",
|
|
3327
|
-
"Card or panel titles (level 3-4)"
|
|
3345
|
+
"Card or panel titles (level 3-4)",
|
|
3346
|
+
"Group titles over a list of rows or a form section (level 3-4, variant=\"overline\", any size)"
|
|
3328
3347
|
]
|
|
3329
3348
|
},
|
|
3330
3349
|
"name": "Heading",
|
|
@@ -3336,10 +3355,14 @@
|
|
|
3336
3355
|
"type": "1 | 2 | 3 | 4 | 5 | 6"
|
|
3337
3356
|
},
|
|
3338
3357
|
{
|
|
3358
|
+
"description": "The look: `heading` (default), `display` (fluid hero titles), `overline` (small uppercase group titles).",
|
|
3339
3359
|
"name": "variant",
|
|
3340
3360
|
"required": false,
|
|
3341
3361
|
"type": "HeadingVariant",
|
|
3342
3362
|
"union": [
|
|
3363
|
+
"heading",
|
|
3364
|
+
"display",
|
|
3365
|
+
"overline",
|
|
3343
3366
|
"displayLg",
|
|
3344
3367
|
"displayMd",
|
|
3345
3368
|
"displaySm",
|
|
@@ -3349,6 +3372,18 @@
|
|
|
3349
3372
|
"headingSm"
|
|
3350
3373
|
]
|
|
3351
3374
|
},
|
|
3375
|
+
{
|
|
3376
|
+
"description": "The size within the look. Default: the level's size for `heading`, `md` for `display`, `sm` for `overline`; `display` and `overline` stop at `lg`.",
|
|
3377
|
+
"name": "size",
|
|
3378
|
+
"required": false,
|
|
3379
|
+
"type": "HeadingSize",
|
|
3380
|
+
"union": [
|
|
3381
|
+
"sm",
|
|
3382
|
+
"md",
|
|
3383
|
+
"lg",
|
|
3384
|
+
"xl"
|
|
3385
|
+
]
|
|
3386
|
+
},
|
|
3352
3387
|
{
|
|
3353
3388
|
"default": "'default'",
|
|
3354
3389
|
"name": "color",
|
|
@@ -5209,7 +5244,7 @@
|
|
|
5209
5244
|
"importPath": "@duro-app/ui",
|
|
5210
5245
|
"kind": "component",
|
|
5211
5246
|
"meta": {
|
|
5212
|
-
"description": "The container for HTML Duro does not author — rendered Markdown, CMS output: headings, paragraphs, lists, tables, blockquotes, inline code, links and images are styled from tokens by descendant rules scoped to it (plain CSS in dist/index.css, :where() and its own cascade layer). Duro components inside it keep their styles, and an app's own CSS wins over every Prose rule.
|
|
5247
|
+
"description": "The container for HTML Duro does not author — rendered Markdown, CMS output: headings, paragraphs, lists, tables, blockquotes, inline code, links and images are styled from tokens by descendant rules scoped to it (plain CSS in dist/index.css, :where() and its own cascade layer). Duro components inside it keep their styles, and an app's own CSS wins over every Prose rule. On native it is a reading-width column with a token gap; the renderer maps Markdown to Duro primitives.",
|
|
5213
5248
|
"example": "<Prose>\n <ReactMarkdown components={{pre: ({children}) => <CodeBlock copyLabel=\"Copy\" copiedLabel=\"Copied\">{children}</CodeBlock>}}>\n {body}\n </ReactMarkdown>\n</Prose>",
|
|
5214
5249
|
"relatedTo": [
|
|
5215
5250
|
{
|
|
@@ -5233,7 +5268,7 @@
|
|
|
5233
5268
|
]
|
|
5234
5269
|
},
|
|
5235
5270
|
"name": "Prose",
|
|
5236
|
-
"native":
|
|
5271
|
+
"native": true,
|
|
5237
5272
|
"props": [
|
|
5238
5273
|
{
|
|
5239
5274
|
"description": "HTML Duro does not author: the output of a Markdown renderer.",
|
|
@@ -5909,7 +5944,7 @@
|
|
|
5909
5944
|
"Pane"
|
|
5910
5945
|
]
|
|
5911
5946
|
},
|
|
5912
|
-
"description": "Two panes side by side with a resizable separator: the first Pane is sized by the Handle (pointer drag, arrow keys, Shift for larger steps, Home and End), the second takes the rest. Min, max and starting widths are size tokens. Below collapseBelow, measured on its own width, the panes stack in one column and the handle goes; on native they always stack. The Handle is a hairline that thickens to the accent on hover, keyboard focus or drag.",
|
|
5947
|
+
"description": "Two panes side by side with a resizable separator: the first Pane is sized by the Handle (pointer drag, arrow keys, Shift for larger steps, Home and End), the second takes the rest. Min, max and starting widths are size tokens. Below collapseBelow, measured on its own width, the panes stack in one column and the handle goes; on native they always stack. A controlled collapsed prop shrinks the first pane to a strip (the iconButton size) that shows collapsedContent, removes the Handle, and keeps the first pane’s own children mounted but inert and hidden (state kept, no tab stops, out of the accessibility tree); the prior width returns when it turns false. Native ignores both. The Handle is a hairline that thickens to the accent on hover, keyboard focus or drag.",
|
|
5913
5948
|
"example": "<SplitPane.Root aria-label=\"Resize the session list\" minSize=\"sidebarW\" maxSize=\"panelLg\">\n <SplitPane.Pane>\n <List.Root aria-label=\"Sessions\">…</List.Root>\n </SplitPane.Pane>\n <SplitPane.Handle />\n <SplitPane.Pane>\n <Panel.Root>…</Panel.Root>\n </SplitPane.Pane>\n</SplitPane.Root>",
|
|
5914
5949
|
"relatedTo": [
|
|
5915
5950
|
{
|
|
@@ -6007,6 +6042,19 @@
|
|
|
6007
6042
|
"xl"
|
|
6008
6043
|
]
|
|
6009
6044
|
},
|
|
6045
|
+
{
|
|
6046
|
+
"default": "false",
|
|
6047
|
+
"description": "Controlled: shrink the primary pane to a strip (the `iconButton` size), show `collapsedContent` in it and remove the handle. The pane's own children stay mounted (their state is kept) but are inert and hidden. When it turns false the pane returns to its prior width. Ignored when stacked.",
|
|
6048
|
+
"name": "collapsed",
|
|
6049
|
+
"required": false,
|
|
6050
|
+
"type": "boolean"
|
|
6051
|
+
},
|
|
6052
|
+
{
|
|
6053
|
+
"description": "What the strip shows while `collapsed` (an expand button, icons).",
|
|
6054
|
+
"name": "collapsedContent",
|
|
6055
|
+
"required": false,
|
|
6056
|
+
"type": "ReactNode"
|
|
6057
|
+
},
|
|
6010
6058
|
{
|
|
6011
6059
|
"description": "The handle's accessible name (\"Resize list\").",
|
|
6012
6060
|
"name": "aria-label",
|
|
@@ -7250,13 +7298,13 @@
|
|
|
7250
7298
|
}
|
|
7251
7299
|
],
|
|
7252
7300
|
"whenNotToUse": [
|
|
7253
|
-
"Page or
|
|
7301
|
+
"Page, section or group titles — use Heading, even in overline style (variant=\"overline\")",
|
|
7254
7302
|
"Form field labels — use Field.Label (auto-binds to form)"
|
|
7255
7303
|
],
|
|
7256
7304
|
"whenToUse": [
|
|
7257
7305
|
"Body text (paragraphs, descriptions)",
|
|
7258
7306
|
"UI labels and metadata",
|
|
7259
|
-
"Captions, code snippets,
|
|
7307
|
+
"Captions, code snippets, and overline eyebrows above a Heading"
|
|
7260
7308
|
]
|
|
7261
7309
|
},
|
|
7262
7310
|
"name": "Text",
|
|
@@ -7460,7 +7508,7 @@
|
|
|
7460
7508
|
"importPath": "@duro-app/ui",
|
|
7461
7509
|
"kind": "component",
|
|
7462
7510
|
"meta": {
|
|
7463
|
-
"description": "Multi-line text input with automatic Field/Form integration. Same Field binding behavior as Input.",
|
|
7511
|
+
"description": "Multi-line text input with automatic Field/Form integration. Same Field binding behavior as Input. autoGrow makes the height follow the content from rows up to maxRows, then it scrolls (CSS field-sizing, with a scrollHeight fallback; native grows with the content and caps at maxRows). The anchor props of Listbox.getAnchorProps() (role combobox, aria-controls, aria-expanded, aria-activedescendant) are forwarded as ARIA attributes on web and as the matching accessibility props on native, so a Listbox can be anchored to it while the editor keeps focus.",
|
|
7464
7512
|
"example": "<Field.Root name=\"message\">\n <Field.Label>Message</Field.Label>\n <Textarea placeholder=\"Tell us what you think...\" rows={4} />\n <Field.Description>At least 10 characters</Field.Description>\n <Field.Error />\n</Field.Root>",
|
|
7465
7513
|
"relatedTo": [
|
|
7466
7514
|
{
|
|
@@ -7478,12 +7526,26 @@
|
|
|
7478
7526
|
"Single-line input — use Input"
|
|
7479
7527
|
],
|
|
7480
7528
|
"whenToUse": [
|
|
7481
|
-
"Multi-line text entry (comments, messages, descriptions)"
|
|
7529
|
+
"Multi-line text entry (comments, messages, descriptions)",
|
|
7530
|
+
"A composer that grows with its text (autoGrow, maxRows)",
|
|
7531
|
+
"An editor a Listbox is anchored to for mentions or slash commands (spread Listbox.getAnchorProps())"
|
|
7482
7532
|
]
|
|
7483
7533
|
},
|
|
7484
7534
|
"name": "Textarea",
|
|
7485
7535
|
"native": true,
|
|
7486
7536
|
"props": [
|
|
7537
|
+
{
|
|
7538
|
+
"description": "The height follows the content, from `rows` up to `maxRows`, then it scrolls.",
|
|
7539
|
+
"name": "autoGrow",
|
|
7540
|
+
"required": false,
|
|
7541
|
+
"type": "true | false"
|
|
7542
|
+
},
|
|
7543
|
+
{
|
|
7544
|
+
"description": "The most rows the field shows before it scrolls. Default: no limit",
|
|
7545
|
+
"name": "maxRows",
|
|
7546
|
+
"required": false,
|
|
7547
|
+
"type": "number"
|
|
7548
|
+
},
|
|
7487
7549
|
{
|
|
7488
7550
|
"default": "'default'",
|
|
7489
7551
|
"name": "variant",
|
|
@@ -8130,7 +8192,7 @@
|
|
|
8130
8192
|
"aria-label"
|
|
8131
8193
|
]
|
|
8132
8194
|
},
|
|
8133
|
-
"description": "A row of controls with one tab stop (the WAI-ARIA toolbar pattern): Tab enters at the last focused control, Left/Right move across every control inside — through attached ButtonGroups too — and Home/End jump to the ends. A Select or Menu trigger keeps its own keys, and a control whose popup is open keeps Left/Right.",
|
|
8195
|
+
"description": "A row of controls with one tab stop (the WAI-ARIA toolbar pattern): Tab enters at the last focused control, Left/Right move across every control inside — through attached ButtonGroups too — and Home/End jump to the ends. A Select or Menu trigger keeps its own keys, and a control whose popup is open keeps Left/Right. On native it is the same row of controls without the roving tab stop and arrow keys.",
|
|
8134
8196
|
"example": "<Toolbar aria-label=\"Formatting\">\n <ButtonGroup attached aria-label=\"Text style\">\n <Toggle aria-label=\"Bold\" pressed={bold} onPressedChange={setBold}>B</Toggle>\n <Toggle aria-label=\"Italic\" pressed={italic} onPressedChange={setItalic}>I</Toggle>\n </ButtonGroup>\n <Menu.Root>\n <Menu.Trigger>Insert</Menu.Trigger>\n <Menu.Popup>…</Menu.Popup>\n </Menu.Root>\n</Toolbar>",
|
|
8135
8197
|
"relatedTo": [
|
|
8136
8198
|
{
|
|
@@ -8160,7 +8222,7 @@
|
|
|
8160
8222
|
]
|
|
8161
8223
|
},
|
|
8162
8224
|
"name": "Toolbar",
|
|
8163
|
-
"native":
|
|
8225
|
+
"native": true,
|
|
8164
8226
|
"props": [
|
|
8165
8227
|
{
|
|
8166
8228
|
"description": "Names the toolbar (\"Formatting\"). Required: a toolbar is a landmark-like widget.",
|
|
@@ -8423,7 +8485,7 @@
|
|
|
8423
8485
|
"optional": [],
|
|
8424
8486
|
"required": []
|
|
8425
8487
|
},
|
|
8426
|
-
"description": "A windowed list on @tanstack/react-virtual: only the rows in view (plus overscan) are mounted, and rows are measured so they may differ in height. role=\"list\" with listitem rows carrying aria-setsize and aria-posinset. anchor=\"end\" opens at the last item and stays pinned to the bottom while new items arrive and the reader is at the bottom (a transcript, a log). It fills its parent, or stops at maxHeight.
|
|
8488
|
+
"description": "A windowed list on @tanstack/react-virtual: only the rows in view (plus overscan) are mounted, and rows are measured so they may differ in height. role=\"list\" with listitem rows carrying aria-setsize and aria-posinset. anchor=\"end\" opens at the last item and stays pinned to the bottom while new items arrive and the reader is at the bottom (a transcript, a log). It fills its parent, or stops at maxHeight. onStartReached fires once each time the reader scrolls to the start (load older history), and prepending items keeps the first visible row in place. On native it is a FlatList with the same props (role list; rows carry no listitem role, which React Native lacks) (maintainVisibleContentPosition for prepend).",
|
|
8427
8489
|
"example": "<VirtualList\n aria-label=\"Transcript\"\n items={messages}\n getKey={(m) => m.id}\n estimateSize=\"controlLg\"\n anchor=\"end\"\n renderItem={(m) => <Text>{m.text}</Text>}\n/>",
|
|
8428
8490
|
"relatedTo": [
|
|
8429
8491
|
{
|
|
@@ -8444,11 +8506,12 @@
|
|
|
8444
8506
|
],
|
|
8445
8507
|
"whenToUse": [
|
|
8446
8508
|
"Hundreds to tens of thousands of rows: sessions, a chat transcript, log lines",
|
|
8447
|
-
"A list that grows at the bottom while the reader follows it (anchor=\"end\")"
|
|
8509
|
+
"A list that grows at the bottom while the reader follows it (anchor=\"end\")",
|
|
8510
|
+
"A transcript that pages older history in at the top (onStartReached, then prepend items)"
|
|
8448
8511
|
]
|
|
8449
8512
|
},
|
|
8450
8513
|
"name": "VirtualList",
|
|
8451
|
-
"native":
|
|
8514
|
+
"native": true,
|
|
8452
8515
|
"props": [
|
|
8453
8516
|
{
|
|
8454
8517
|
"name": "items",
|
|
@@ -8486,6 +8549,12 @@
|
|
|
8486
8549
|
"required": false,
|
|
8487
8550
|
"type": "'start' | 'end'"
|
|
8488
8551
|
},
|
|
8552
|
+
{
|
|
8553
|
+
"description": "Called once each time the reader scrolls to within 44px (touchTarget) of the start (load older history). It fires again only after they move away. A list too short to scroll calls it once for each new first item or length, until it fills. Prepending items keeps the first visible row where it was on screen.",
|
|
8554
|
+
"name": "onStartReached",
|
|
8555
|
+
"required": false,
|
|
8556
|
+
"type": "() => void"
|
|
8557
|
+
},
|
|
8489
8558
|
{
|
|
8490
8559
|
"description": "Cap the list's height; without it, it fills its parent.",
|
|
8491
8560
|
"name": "maxHeight",
|
|
@@ -10793,6 +10862,12 @@
|
|
|
10793
10862
|
{
|
|
10794
10863
|
"key": "overline"
|
|
10795
10864
|
},
|
|
10865
|
+
{
|
|
10866
|
+
"key": "overlineMd"
|
|
10867
|
+
},
|
|
10868
|
+
{
|
|
10869
|
+
"key": "overlineLg"
|
|
10870
|
+
},
|
|
10796
10871
|
{
|
|
10797
10872
|
"key": "headingSm"
|
|
10798
10873
|
},
|
|
@@ -10938,6 +11013,12 @@
|
|
|
10938
11013
|
"filled",
|
|
10939
11014
|
"interactive"
|
|
10940
11015
|
],
|
|
11016
|
+
"ColorModePreference": [
|
|
11017
|
+
"system",
|
|
11018
|
+
"dark",
|
|
11019
|
+
"light",
|
|
11020
|
+
"high-contrast"
|
|
11021
|
+
],
|
|
10941
11022
|
"ContainerSize": [
|
|
10942
11023
|
"compact",
|
|
10943
11024
|
"default",
|
|
@@ -10990,7 +11071,16 @@
|
|
|
10990
11071
|
"split-wide",
|
|
10991
11072
|
"content-aside"
|
|
10992
11073
|
],
|
|
11074
|
+
"HeadingSize": [
|
|
11075
|
+
"sm",
|
|
11076
|
+
"md",
|
|
11077
|
+
"lg",
|
|
11078
|
+
"xl"
|
|
11079
|
+
],
|
|
10993
11080
|
"HeadingVariant": [
|
|
11081
|
+
"heading",
|
|
11082
|
+
"display",
|
|
11083
|
+
"overline",
|
|
10994
11084
|
"displayLg",
|
|
10995
11085
|
"displayMd",
|
|
10996
11086
|
"displaySm",
|