@actioneer/ads-mcp 1.0.7 → 1.0.9
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/manifest.json +1660 -113
- package/package.json +1 -1
- package/src/tools.mjs +2 -2
package/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actioneer/ads",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"importPath": "@actioneer/ads",
|
|
5
5
|
"styleImport": "@import \"@actioneer/ads/styles.css\";",
|
|
6
6
|
"families": [
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"Chat"
|
|
17
17
|
],
|
|
18
18
|
"counts": {
|
|
19
|
-
"total":
|
|
20
|
-
"component":
|
|
21
|
-
"type":
|
|
19
|
+
"total": 751,
|
|
20
|
+
"component": 325,
|
|
21
|
+
"type": 318,
|
|
22
22
|
"hook": 10,
|
|
23
23
|
"util": 98
|
|
24
24
|
},
|
|
@@ -557,7 +557,7 @@
|
|
|
557
557
|
"utilities": [
|
|
558
558
|
"ring-ring"
|
|
559
559
|
],
|
|
560
|
-
"description": "Focus ring and scrim, both translucent
|
|
560
|
+
"description": "Focus ring and scrim, both translucent neutral ink."
|
|
561
561
|
},
|
|
562
562
|
{
|
|
563
563
|
"name": "--color-overlay",
|
|
@@ -567,7 +567,7 @@
|
|
|
567
567
|
"text-overlay",
|
|
568
568
|
"border-overlay"
|
|
569
569
|
],
|
|
570
|
-
"description": "Focus ring and scrim, both translucent
|
|
570
|
+
"description": "Focus ring and scrim, both translucent neutral ink."
|
|
571
571
|
}
|
|
572
572
|
],
|
|
573
573
|
"exports": [
|
|
@@ -776,6 +776,7 @@
|
|
|
776
776
|
"topLabel",
|
|
777
777
|
"bottomLabel",
|
|
778
778
|
"downloadName",
|
|
779
|
+
"look",
|
|
779
780
|
"className"
|
|
780
781
|
]
|
|
781
782
|
},
|
|
@@ -819,10 +820,10 @@
|
|
|
819
820
|
],
|
|
820
821
|
"default": "md",
|
|
821
822
|
"options": {
|
|
822
|
-
"xs": "
|
|
823
|
-
"sm": "
|
|
824
|
-
"md": "
|
|
825
|
-
"lg": "
|
|
823
|
+
"xs": "Deprecated alias — renders identically to md (32px). Use md.",
|
|
824
|
+
"sm": "Deprecated alias — renders identically to md (32px). Use md.",
|
|
825
|
+
"md": "The default 32px button for nearly every action, form, toolbar and table row.",
|
|
826
|
+
"lg": "The 48px button (20px inline padding, 8px radius) for a standalone high-emphasis CTA such as a full-screen step or empty state.",
|
|
826
827
|
"icon": "Default square icon-only button; always pair with aria-label since there's no visible text.",
|
|
827
828
|
"icon-sm": "Compact square icon-only button for toolbars and dense rows.",
|
|
828
829
|
"icon-xs": "Smallest square icon-only button, for the tightest inline contexts."
|
|
@@ -830,6 +831,7 @@
|
|
|
830
831
|
}
|
|
831
832
|
},
|
|
832
833
|
"props": [
|
|
834
|
+
"size",
|
|
833
835
|
"isLoading",
|
|
834
836
|
"startContent",
|
|
835
837
|
"endContent",
|
|
@@ -920,6 +922,12 @@
|
|
|
920
922
|
"module": "file-dropzone",
|
|
921
923
|
"showcaseUrl": "https://ads.actioneer.dev/#/review/file-dropzone",
|
|
922
924
|
"variants": {
|
|
925
|
+
"hasFiles": {
|
|
926
|
+
"values": [
|
|
927
|
+
"true",
|
|
928
|
+
"false"
|
|
929
|
+
]
|
|
930
|
+
},
|
|
923
931
|
"isDragging": {
|
|
924
932
|
"values": [
|
|
925
933
|
"true",
|
|
@@ -1172,6 +1180,13 @@
|
|
|
1172
1180
|
"className"
|
|
1173
1181
|
]
|
|
1174
1182
|
},
|
|
1183
|
+
{
|
|
1184
|
+
"name": "AudioWaveformLook",
|
|
1185
|
+
"family": "Foundations",
|
|
1186
|
+
"kind": "type",
|
|
1187
|
+
"importPath": "@actioneer/ads",
|
|
1188
|
+
"module": "audio-waveform"
|
|
1189
|
+
},
|
|
1175
1190
|
{
|
|
1176
1191
|
"name": "AudioWaveformProps",
|
|
1177
1192
|
"family": "Foundations",
|
|
@@ -1186,6 +1201,13 @@
|
|
|
1186
1201
|
"importPath": "@actioneer/ads",
|
|
1187
1202
|
"module": "button"
|
|
1188
1203
|
},
|
|
1204
|
+
{
|
|
1205
|
+
"name": "ButtonSize",
|
|
1206
|
+
"family": "Foundations",
|
|
1207
|
+
"kind": "type",
|
|
1208
|
+
"importPath": "@actioneer/ads",
|
|
1209
|
+
"module": "button"
|
|
1210
|
+
},
|
|
1189
1211
|
{
|
|
1190
1212
|
"name": "CodeBlockProps",
|
|
1191
1213
|
"family": "Foundations",
|
|
@@ -1450,6 +1472,25 @@
|
|
|
1450
1472
|
"className"
|
|
1451
1473
|
]
|
|
1452
1474
|
},
|
|
1475
|
+
{
|
|
1476
|
+
"name": "Filters",
|
|
1477
|
+
"family": "Form controls",
|
|
1478
|
+
"kind": "component",
|
|
1479
|
+
"importPath": "@actioneer/ads",
|
|
1480
|
+
"module": "filters",
|
|
1481
|
+
"showcaseUrl": "https://ads.actioneer.dev/#/filters",
|
|
1482
|
+
"props": [
|
|
1483
|
+
"groups",
|
|
1484
|
+
"onChange",
|
|
1485
|
+
"onClearAll",
|
|
1486
|
+
"title",
|
|
1487
|
+
"triggerLabel",
|
|
1488
|
+
"align",
|
|
1489
|
+
"open",
|
|
1490
|
+
"defaultOpen",
|
|
1491
|
+
"onOpenChange"
|
|
1492
|
+
]
|
|
1493
|
+
},
|
|
1453
1494
|
{
|
|
1454
1495
|
"name": "Input",
|
|
1455
1496
|
"family": "Form controls",
|
|
@@ -1711,6 +1752,27 @@
|
|
|
1711
1752
|
"importPath": "@actioneer/ads",
|
|
1712
1753
|
"module": "select"
|
|
1713
1754
|
},
|
|
1755
|
+
{
|
|
1756
|
+
"name": "FilterGroup",
|
|
1757
|
+
"family": "Form controls",
|
|
1758
|
+
"kind": "type",
|
|
1759
|
+
"importPath": "@actioneer/ads",
|
|
1760
|
+
"module": "filters"
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
"name": "FilterOption",
|
|
1764
|
+
"family": "Form controls",
|
|
1765
|
+
"kind": "type",
|
|
1766
|
+
"importPath": "@actioneer/ads",
|
|
1767
|
+
"module": "filters"
|
|
1768
|
+
},
|
|
1769
|
+
{
|
|
1770
|
+
"name": "FiltersProps",
|
|
1771
|
+
"family": "Form controls",
|
|
1772
|
+
"kind": "type",
|
|
1773
|
+
"importPath": "@actioneer/ads",
|
|
1774
|
+
"module": "filters"
|
|
1775
|
+
},
|
|
1714
1776
|
{
|
|
1715
1777
|
"name": "InputFieldProps",
|
|
1716
1778
|
"family": "Form controls",
|
|
@@ -2104,6 +2166,13 @@
|
|
|
2104
2166
|
"top"
|
|
2105
2167
|
],
|
|
2106
2168
|
"default": "center"
|
|
2169
|
+
},
|
|
2170
|
+
"height": {
|
|
2171
|
+
"values": [
|
|
2172
|
+
"content",
|
|
2173
|
+
"fixed"
|
|
2174
|
+
],
|
|
2175
|
+
"default": "content"
|
|
2107
2176
|
}
|
|
2108
2177
|
},
|
|
2109
2178
|
"props": [
|
|
@@ -2146,6 +2215,13 @@
|
|
|
2146
2215
|
"top"
|
|
2147
2216
|
],
|
|
2148
2217
|
"default": "center"
|
|
2218
|
+
},
|
|
2219
|
+
"height": {
|
|
2220
|
+
"values": [
|
|
2221
|
+
"content",
|
|
2222
|
+
"fixed"
|
|
2223
|
+
],
|
|
2224
|
+
"default": "content"
|
|
2149
2225
|
}
|
|
2150
2226
|
},
|
|
2151
2227
|
"props": [
|
|
@@ -2176,6 +2252,13 @@
|
|
|
2176
2252
|
"top"
|
|
2177
2253
|
],
|
|
2178
2254
|
"default": "center"
|
|
2255
|
+
},
|
|
2256
|
+
"height": {
|
|
2257
|
+
"values": [
|
|
2258
|
+
"content",
|
|
2259
|
+
"fixed"
|
|
2260
|
+
],
|
|
2261
|
+
"default": "content"
|
|
2179
2262
|
}
|
|
2180
2263
|
}
|
|
2181
2264
|
},
|
|
@@ -2203,6 +2286,13 @@
|
|
|
2203
2286
|
"top"
|
|
2204
2287
|
],
|
|
2205
2288
|
"default": "center"
|
|
2289
|
+
},
|
|
2290
|
+
"height": {
|
|
2291
|
+
"values": [
|
|
2292
|
+
"content",
|
|
2293
|
+
"fixed"
|
|
2294
|
+
],
|
|
2295
|
+
"default": "content"
|
|
2206
2296
|
}
|
|
2207
2297
|
}
|
|
2208
2298
|
},
|
|
@@ -2263,6 +2353,13 @@
|
|
|
2263
2353
|
"top"
|
|
2264
2354
|
],
|
|
2265
2355
|
"default": "center"
|
|
2356
|
+
},
|
|
2357
|
+
"height": {
|
|
2358
|
+
"values": [
|
|
2359
|
+
"content",
|
|
2360
|
+
"fixed"
|
|
2361
|
+
],
|
|
2362
|
+
"default": "content"
|
|
2266
2363
|
}
|
|
2267
2364
|
}
|
|
2268
2365
|
},
|
|
@@ -2290,6 +2387,13 @@
|
|
|
2290
2387
|
"top"
|
|
2291
2388
|
],
|
|
2292
2389
|
"default": "center"
|
|
2390
|
+
},
|
|
2391
|
+
"height": {
|
|
2392
|
+
"values": [
|
|
2393
|
+
"content",
|
|
2394
|
+
"fixed"
|
|
2395
|
+
],
|
|
2396
|
+
"default": "content"
|
|
2293
2397
|
}
|
|
2294
2398
|
}
|
|
2295
2399
|
},
|
|
@@ -2317,6 +2421,13 @@
|
|
|
2317
2421
|
"top"
|
|
2318
2422
|
],
|
|
2319
2423
|
"default": "center"
|
|
2424
|
+
},
|
|
2425
|
+
"height": {
|
|
2426
|
+
"values": [
|
|
2427
|
+
"content",
|
|
2428
|
+
"fixed"
|
|
2429
|
+
],
|
|
2430
|
+
"default": "content"
|
|
2320
2431
|
}
|
|
2321
2432
|
}
|
|
2322
2433
|
},
|
|
@@ -2344,6 +2455,13 @@
|
|
|
2344
2455
|
"top"
|
|
2345
2456
|
],
|
|
2346
2457
|
"default": "center"
|
|
2458
|
+
},
|
|
2459
|
+
"height": {
|
|
2460
|
+
"values": [
|
|
2461
|
+
"content",
|
|
2462
|
+
"fixed"
|
|
2463
|
+
],
|
|
2464
|
+
"default": "content"
|
|
2347
2465
|
}
|
|
2348
2466
|
}
|
|
2349
2467
|
},
|
|
@@ -2357,7 +2475,9 @@
|
|
|
2357
2475
|
"showcaseUrl": "https://ads.actioneer.dev/#/popover",
|
|
2358
2476
|
"props": [
|
|
2359
2477
|
"children",
|
|
2360
|
-
"defaultOpen"
|
|
2478
|
+
"defaultOpen",
|
|
2479
|
+
"open",
|
|
2480
|
+
"onOpenChange"
|
|
2361
2481
|
]
|
|
2362
2482
|
},
|
|
2363
2483
|
{
|
|
@@ -2895,7 +3015,8 @@
|
|
|
2895
3015
|
"variant": {
|
|
2896
3016
|
"values": [
|
|
2897
3017
|
"solid",
|
|
2898
|
-
"outline"
|
|
3018
|
+
"outline",
|
|
3019
|
+
"plain"
|
|
2899
3020
|
],
|
|
2900
3021
|
"default": "solid",
|
|
2901
3022
|
"options": {
|
|
@@ -3715,7 +3836,8 @@
|
|
|
3715
3836
|
"defaultExpanded",
|
|
3716
3837
|
"onExpandedChange",
|
|
3717
3838
|
"disclosureLabel",
|
|
3718
|
-
"isInteractive"
|
|
3839
|
+
"isInteractive",
|
|
3840
|
+
"isActive"
|
|
3719
3841
|
]
|
|
3720
3842
|
},
|
|
3721
3843
|
{
|
|
@@ -4168,6 +4290,13 @@
|
|
|
4168
4290
|
"importPath": "@actioneer/ads",
|
|
4169
4291
|
"module": "chart"
|
|
4170
4292
|
},
|
|
4293
|
+
{
|
|
4294
|
+
"name": "ChartLegendPlacement",
|
|
4295
|
+
"family": "Data display",
|
|
4296
|
+
"kind": "type",
|
|
4297
|
+
"importPath": "@actioneer/ads",
|
|
4298
|
+
"module": "chart"
|
|
4299
|
+
},
|
|
4171
4300
|
{
|
|
4172
4301
|
"name": "ChartTickFormatter",
|
|
4173
4302
|
"family": "Data display",
|
|
@@ -5146,7 +5275,7 @@
|
|
|
5146
5275
|
],
|
|
5147
5276
|
"default": "default",
|
|
5148
5277
|
"options": {
|
|
5149
|
-
"default": "Neutral heads-up with a
|
|
5278
|
+
"default": "Neutral heads-up with a neutral icon and no urgency signaled.",
|
|
5150
5279
|
"success": "Grass green confirms a completed or positive outcome.",
|
|
5151
5280
|
"warning": "Flags a non-blocking risk or upcoming issue (e.g. scheduled maintenance), amber accent.",
|
|
5152
5281
|
"danger": "Signals a failure or blocking problem (e.g. connection error) needing attention, red accent.",
|
|
@@ -5675,6 +5804,19 @@
|
|
|
5675
5804
|
"module": "sidebar",
|
|
5676
5805
|
"showcaseUrl": "https://ads.actioneer.dev/#/sidebar"
|
|
5677
5806
|
},
|
|
5807
|
+
{
|
|
5808
|
+
"name": "SidebarWorkspace",
|
|
5809
|
+
"family": "Navigation",
|
|
5810
|
+
"kind": "component",
|
|
5811
|
+
"importPath": "@actioneer/ads",
|
|
5812
|
+
"module": "sidebar",
|
|
5813
|
+
"showcaseUrl": "https://ads.actioneer.dev/#/sidebar",
|
|
5814
|
+
"props": [
|
|
5815
|
+
"name",
|
|
5816
|
+
"logoSrc",
|
|
5817
|
+
"showName"
|
|
5818
|
+
]
|
|
5819
|
+
},
|
|
5678
5820
|
{
|
|
5679
5821
|
"name": "BodyPageHeaderProps",
|
|
5680
5822
|
"family": "Navigation",
|
|
@@ -5773,6 +5915,13 @@
|
|
|
5773
5915
|
"importPath": "@actioneer/ads",
|
|
5774
5916
|
"module": "sidebar"
|
|
5775
5917
|
},
|
|
5918
|
+
{
|
|
5919
|
+
"name": "SidebarWorkspaceProps",
|
|
5920
|
+
"family": "Navigation",
|
|
5921
|
+
"kind": "type",
|
|
5922
|
+
"importPath": "@actioneer/ads",
|
|
5923
|
+
"module": "sidebar"
|
|
5924
|
+
},
|
|
5776
5925
|
{
|
|
5777
5926
|
"name": "useSidebar",
|
|
5778
5927
|
"family": "Navigation",
|
|
@@ -8437,32 +8586,12 @@
|
|
|
8437
8586
|
"value": "none"
|
|
8438
8587
|
},
|
|
8439
8588
|
{
|
|
8440
|
-
"name": "
|
|
8441
|
-
"value": "0 1px 0 0 rgb(32 32 32 / 0.
|
|
8589
|
+
"name": "float",
|
|
8590
|
+
"value": "0 0 0 1px rgb(32 32 32 / 0.04), 0 2px 4px rgb(32 32 32 / 0.04), 0 8px 20px -4px rgb(32 32 32 / 0.10)"
|
|
8442
8591
|
},
|
|
8443
8592
|
{
|
|
8444
|
-
"name": "
|
|
8445
|
-
"value": "0
|
|
8446
|
-
},
|
|
8447
|
-
{
|
|
8448
|
-
"name": "300",
|
|
8449
|
-
"value": "0 4px 6px -2px rgb(32 32 32 / 0.2)"
|
|
8450
|
-
},
|
|
8451
|
-
{
|
|
8452
|
-
"name": "400",
|
|
8453
|
-
"value": "0 8px 16px -4px rgb(32 32 32 / 0.22)"
|
|
8454
|
-
},
|
|
8455
|
-
{
|
|
8456
|
-
"name": "500",
|
|
8457
|
-
"value": "0 12px 20px -8px rgb(32 32 32 / 0.24)"
|
|
8458
|
-
},
|
|
8459
|
-
{
|
|
8460
|
-
"name": "600",
|
|
8461
|
-
"value": "0 20px 20px -8px rgb(32 32 32 / 0.28)"
|
|
8462
|
-
},
|
|
8463
|
-
{
|
|
8464
|
-
"name": "elevation",
|
|
8465
|
-
"value": "none"
|
|
8593
|
+
"name": "overlay",
|
|
8594
|
+
"value": "0 0 0 1px rgb(32 32 32 / 0.04), 0 4px 8px rgb(32 32 32 / 0.04), 0 16px 36px -8px rgb(32 32 32 / 0.14)"
|
|
8466
8595
|
},
|
|
8467
8596
|
{
|
|
8468
8597
|
"name": "table-smudge-left",
|
|
@@ -8568,18 +8697,17 @@
|
|
|
8568
8697
|
{
|
|
8569
8698
|
"id": "elevation-is-actionability",
|
|
8570
8699
|
"number": 2,
|
|
8571
|
-
"title": "
|
|
8572
|
-
"rule": "
|
|
8700
|
+
"title": "Five shadows, floating layers only",
|
|
8701
|
+
"rule": "ADS has five shadow tokens: shadow-0 (flat, the default), shadow-float, shadow-overlay, and the two table scroll-hint smudges. Only a layer that floats above the page may carry float or overlay; everything in the page is flat.",
|
|
8573
8702
|
"do": [
|
|
8574
|
-
"Keep
|
|
8575
|
-
"
|
|
8576
|
-
"
|
|
8703
|
+
"Keep cards, panels, chips, buttons, tabs, fields, thumbs, and other in-page surfaces at shadow-0; separate them with fill, border, or spacing.",
|
|
8704
|
+
"Use shadow-float for floating layers that sit over content: toasts, toolbars, the chat composer dock, and any menu or popover that needs lift beyond its border.",
|
|
8705
|
+
"Use shadow-overlay for modals, dialogs, and overlay drawers, so a dialog always reads above a menu."
|
|
8577
8706
|
],
|
|
8578
8707
|
"dont": [
|
|
8579
|
-
"
|
|
8580
|
-
"Use raw shadow values or
|
|
8581
|
-
"
|
|
8582
|
-
"Use shadow-500 or shadow-600 as a routine default."
|
|
8708
|
+
"Put a shadow on an in-page surface for decoration or to signal that it is clickable.",
|
|
8709
|
+
"Use raw shadow values, inset glows, or the removed numbered levels and elevation hook.",
|
|
8710
|
+
"Invent a third floating level; stack order comes from float vs overlay."
|
|
8583
8711
|
],
|
|
8584
8712
|
"enforcedByLint": false
|
|
8585
8713
|
},
|
|
@@ -8692,7 +8820,7 @@
|
|
|
8692
8820
|
"Prefer more, smaller steps over dense ones; ask one thing at a time.",
|
|
8693
8821
|
"Derive instead of asking whenever possible (a name from a work email, the company from its domain).",
|
|
8694
8822
|
"Prefer clear text-only buttons; add an icon only when it communicates essential meaning the label cannot carry alone, or for a compact conventional icon-only control.",
|
|
8695
|
-
"
|
|
8823
|
+
"Open a multi-step create task launched from a collection (New campaign) as a Modal over that list: title-only header, one scrolling form (for New campaign: Campaign name, Caller numbers, Audience), and Cancel + Create together in the footer — the user never loses their place. Add a Stepper only when the task truly has separate steps. Form modals use a fixed height (Modal height=\"fixed\", 640px) so the frame never resizes: the header and footer stay put and ModalBody scrolls. Standalone onboarding flows render full-screen with a single content container holding the inputs and its own Back/Continue."
|
|
8696
8824
|
],
|
|
8697
8825
|
"dont": [
|
|
8698
8826
|
"Add section eyebrows above a title that already names the screen, or helper text that restates the obvious / duplicates a disabled button's meaning.",
|
|
@@ -8721,13 +8849,15 @@
|
|
|
8721
8849
|
{
|
|
8722
8850
|
"id": "leading-back-navigation",
|
|
8723
8851
|
"number": 10,
|
|
8724
|
-
"title": "Back navigation is leading",
|
|
8725
|
-
"rule": "A
|
|
8852
|
+
"title": "Back navigation is leading; drill-downs use the breadcrumb",
|
|
8853
|
+
"rule": "A record or drill-down page (a campaign inside Voice campaigns, a connector inside Data Integrations) is titled by its Breadcrumbs trail — parent / record at 16px — with no back arrow and no repeated H1; the page's one primary action sits at the right end of the same row. A standalone page-level Back control, when one is needed outside a hierarchy, sits immediately before the title and never on the right.",
|
|
8726
8854
|
"do": [
|
|
8727
|
-
"
|
|
8728
|
-
"
|
|
8855
|
+
"Title a drill-down with Breadcrumbs (16px trail: muted parent links, Medium current item) and put its primary action (e.g. Pause campaign) right-aligned on the same row.",
|
|
8856
|
+
"Use PageHeader with onBack only for a standalone page that has no parent hierarchy to show.",
|
|
8857
|
+
"Reserve the trailing header area for forward or page-level actions such as Add, Save, Pause, or Share."
|
|
8729
8858
|
],
|
|
8730
8859
|
"dont": [
|
|
8860
|
+
"Stack a back arrow and a large H1 above a page whose parent is already known — the breadcrumb says both.",
|
|
8731
8861
|
"Place Back on the right side of a page header.",
|
|
8732
8862
|
"Render a redundant visible Back label when the standard left arrow and accessible label are sufficient."
|
|
8733
8863
|
],
|
|
@@ -8737,15 +8867,91 @@
|
|
|
8737
8867
|
"id": "tabs-search-opposed",
|
|
8738
8868
|
"number": 11,
|
|
8739
8869
|
"title": "Tabs lead; scoped search trails",
|
|
8740
|
-
"rule": "When tabs and a search field control the same content, they share one responsive control row: the tab
|
|
8870
|
+
"rule": "When tabs and a search field control the same content, they share one responsive control row: the tab list leads with its triggers left-aligned at their natural width over a baseline that fades from WG3 to transparent, and search sits at the trailing edge. On collection screens the trailing controls are icon triggers — SearchDisclosure (expands into the field) then Filters — and tab labels are 14px with a quieter count after each label.",
|
|
8741
8871
|
"do": [
|
|
8742
|
-
"Keep
|
|
8872
|
+
"Keep tab triggers left-aligned at their natural width, then place the scoped search opposite them in the same toolbar.",
|
|
8873
|
+
"On collection screens use SearchDisclosure followed by Filters as 32px icon triggers at the trailing edge; keep the page header for the title and one primary action only.",
|
|
8874
|
+
"Give each status tab its count (All 42 · Active 14 · Paused 4); the count renders Regular in tertiary grey, teal on the active tab.",
|
|
8743
8875
|
"On constrained containers, stack tabs first and search second while preserving their relationship."
|
|
8744
8876
|
],
|
|
8745
8877
|
"dont": [
|
|
8746
8878
|
"Stretch the tab track to fill the space between its labels and the search field.",
|
|
8747
8879
|
"Put a scoped search field on a separate row above its tabs when both controls fit side by side.",
|
|
8748
|
-
"Place search before tabs in the reading or keyboard order."
|
|
8880
|
+
"Place search before tabs in the reading or keyboard order.",
|
|
8881
|
+
"Put a Search button or a full-width search field in the page header of a collection screen."
|
|
8882
|
+
],
|
|
8883
|
+
"enforcedByLint": false
|
|
8884
|
+
},
|
|
8885
|
+
{
|
|
8886
|
+
"id": "collection-screens",
|
|
8887
|
+
"number": 12,
|
|
8888
|
+
"title": "Collection screens fill the panel",
|
|
8889
|
+
"rule": "A collection screen (campaigns, call logs, leads) is one white panel: BodyPageHeader (title + one primary action), the tab/search/filter row, then a Table whose rows fill the panel's height with Pagination pinned to its bottom edge. Rows open details in a shell-level side panel; the list stays visible.",
|
|
8890
|
+
"do": [
|
|
8891
|
+
"Size the page so the rows fill the panel to its 24px bottom inset and Pagination sits at the bottom; let only the rows scroll.",
|
|
8892
|
+
"Show row checkboxes only on hover/focus (and while checked or mixed); keep the header select-all checkbox always visible.",
|
|
8893
|
+
"When a row's details are open, mark it with TableRow isActive (the soft-teal fade) — no radio and no selection column for that purpose.",
|
|
8894
|
+
"Put status in a Chip using business language (see status-language) and keep cell values at text-m.",
|
|
8895
|
+
"Show the customer's workspace logo in the Sidebar brand slot (SidebarWorkspace) when the product runs inside a customer workspace."
|
|
8896
|
+
],
|
|
8897
|
+
"dont": [
|
|
8898
|
+
"Leave an empty band under a short table, or float Pagination mid-panel.",
|
|
8899
|
+
"Use single-selection radios to mean 'this row is open'.",
|
|
8900
|
+
"Show a checkbox on every resting row of a multi-select table.",
|
|
8901
|
+
"Open record details in a modal over the list you are scanning."
|
|
8902
|
+
],
|
|
8903
|
+
"enforcedByLint": false
|
|
8904
|
+
},
|
|
8905
|
+
{
|
|
8906
|
+
"id": "record-detail-panels",
|
|
8907
|
+
"number": 13,
|
|
8908
|
+
"title": "Record detail panels are grouped by question",
|
|
8909
|
+
"rule": "A selection-driven detail panel reads top-down as: kicker (the KIND of record), title, then the record's status Chip and its one-line context directly under the title; then titled sections 32px apart — Performance (stat cards + chart card) and Details (label–value rows with inset dividers); then footer actions (secondary outline + one solid primary).",
|
|
8910
|
+
"do": [
|
|
8911
|
+
"Put the status Chip and its context (\"Finished Oct 21\") in the header, 4px under the title, so status never floats on its own.",
|
|
8912
|
+
"Group numbers in small outlined stat cards (WG3 edge, radius-l, 12px padding, 8px apart) and the trend in its own chart card.",
|
|
8913
|
+
"List attributes (owner, started, calling windows) as label–value rows: label secondary left, value primary right, inset WG3 dividers.",
|
|
8914
|
+
"Separate sections with 32px and keep items inside a section ≤16px apart; give each section a 14px Medium title."
|
|
8915
|
+
],
|
|
8916
|
+
"dont": [
|
|
8917
|
+
"Mix attributes (owner) into the metric grid.",
|
|
8918
|
+
"Leave a lone chip or line of metadata between the title and the first section.",
|
|
8919
|
+
"Repeat the same fact (finish date) in the header and in Details."
|
|
8920
|
+
],
|
|
8921
|
+
"enforcedByLint": false
|
|
8922
|
+
},
|
|
8923
|
+
{
|
|
8924
|
+
"id": "analytics-surfaces",
|
|
8925
|
+
"number": 14,
|
|
8926
|
+
"title": "Stats and charts sit in their own containers, values visible",
|
|
8927
|
+
"rule": "On analytics/record pages every stat and every chart is its own outlined container (1px WG3 border, radius-l, 20px padding, white, flat) on the white panel, 16px apart. Values are printed on the chart by default — never hover-only — and the legend sits at the right end of the chart's title row.",
|
|
8928
|
+
"do": [
|
|
8929
|
+
"Stat card: label (14px secondary) → number (32px) with its scope (\"of 4,800 calls\") 4px apart, then a Progress bar 12px below that fills the card width.",
|
|
8930
|
+
"Chart card: title (16px Medium) + scope subtitle (12px secondary) on the left, the legend right-aligned on the same row, ~40px from the title block to the plot.",
|
|
8931
|
+
"Bar charts print each bar's value; stacked bars print each segment that fits plus the stack total. Line charts print every point's value in the series colour (secondary grey for light amber/grey series).",
|
|
8932
|
+
"Size charts so the cards end on the panel's 24px bottom inset."
|
|
8933
|
+
],
|
|
8934
|
+
"dont": [
|
|
8935
|
+
"Separate stats with vertical hairlines while their bars run into the next stat — proximity breaks.",
|
|
8936
|
+
"Hide numbers behind a hover tooltip.",
|
|
8937
|
+
"Give a legend its own row under the subtitle when it fits beside the title.",
|
|
8938
|
+
"Put the same spacing between a label and its value as between two separate cards."
|
|
8939
|
+
],
|
|
8940
|
+
"enforcedByLint": false
|
|
8941
|
+
},
|
|
8942
|
+
{
|
|
8943
|
+
"id": "status-language",
|
|
8944
|
+
"number": 15,
|
|
8945
|
+
"title": "Status speaks the business, with one tone per meaning",
|
|
8946
|
+
"rule": "Status labels name the business state, not the machine's activity, and tabs use the same words. Campaign statuses: Active and Scheduled (info blue), Paused (warning amber), Completed (success green), Draft (default grey), Failed (danger red). Teal is reserved for actions and selection, not for a status.",
|
|
8947
|
+
"do": [
|
|
8948
|
+
"Say Active, not Dialing; name the tab Active too (All · Draft · Active · Paused · Completed).",
|
|
8949
|
+
"Use Chip tones consistently for the same status everywhere (table cell, detail header, filters).",
|
|
8950
|
+
"Use the plain Chip appearance (square dot + 14px text) where a column of filled chips would shout louder than the record names."
|
|
8951
|
+
],
|
|
8952
|
+
"dont": [
|
|
8953
|
+
"Colour a status with the primary teal — it competes with the primary action and the selected-row fade.",
|
|
8954
|
+
"Use different words for the same state in the tab, the chip and the filter."
|
|
8749
8955
|
],
|
|
8750
8956
|
"enforcedByLint": false
|
|
8751
8957
|
}
|
|
@@ -9003,68 +9209,352 @@
|
|
|
9003
9209
|
"story": "ADS/Components/Data display/Tabs"
|
|
9004
9210
|
},
|
|
9005
9211
|
{
|
|
9006
|
-
"id": "
|
|
9007
|
-
"name": "
|
|
9212
|
+
"id": "collection-screen",
|
|
9213
|
+
"name": "Collection screen with record detail",
|
|
9008
9214
|
"intents": [
|
|
9009
|
-
"
|
|
9010
|
-
"
|
|
9011
|
-
"
|
|
9012
|
-
"
|
|
9013
|
-
"
|
|
9215
|
+
"campaigns",
|
|
9216
|
+
"call logs",
|
|
9217
|
+
"leads",
|
|
9218
|
+
"records list",
|
|
9219
|
+
"collection",
|
|
9220
|
+
"list page",
|
|
9221
|
+
"new campaign"
|
|
9014
9222
|
],
|
|
9015
|
-
"description": "
|
|
9223
|
+
"description": "BodyPageHeader (title + one primary action), a control row with counted Tabs leading and SearchDisclosure + Filters trailing, a Table whose rows fill the panel with Pagination at its bottom edge, a shell-level Drawer for the open record, and a fixed-height Modal for the create task.",
|
|
9016
9224
|
"roots": [
|
|
9017
9225
|
{
|
|
9018
|
-
"
|
|
9226
|
+
"native": "div",
|
|
9227
|
+
"slot": "shell-canvas-row",
|
|
9019
9228
|
"children": [
|
|
9020
9229
|
{
|
|
9021
|
-
"
|
|
9230
|
+
"native": "section",
|
|
9231
|
+
"slot": "collection-panel",
|
|
9022
9232
|
"children": [
|
|
9023
9233
|
{
|
|
9024
|
-
"component": "
|
|
9234
|
+
"component": "BodyPageHeader",
|
|
9235
|
+
"children": [
|
|
9236
|
+
{
|
|
9237
|
+
"component": "Button",
|
|
9238
|
+
"slot": "primary-action"
|
|
9239
|
+
}
|
|
9240
|
+
]
|
|
9025
9241
|
},
|
|
9026
9242
|
{
|
|
9027
|
-
"
|
|
9028
|
-
"
|
|
9243
|
+
"native": "div",
|
|
9244
|
+
"slot": "control-row",
|
|
9245
|
+
"children": [
|
|
9246
|
+
{
|
|
9247
|
+
"component": "Tabs",
|
|
9248
|
+
"children": [
|
|
9249
|
+
{
|
|
9250
|
+
"component": "TabList",
|
|
9251
|
+
"children": [
|
|
9252
|
+
{
|
|
9253
|
+
"component": "Tab",
|
|
9254
|
+
"repeat": true,
|
|
9255
|
+
"note": "count={n}"
|
|
9256
|
+
}
|
|
9257
|
+
]
|
|
9258
|
+
}
|
|
9259
|
+
]
|
|
9260
|
+
},
|
|
9261
|
+
{
|
|
9262
|
+
"component": "SearchDisclosure",
|
|
9263
|
+
"slot": "trailing-search"
|
|
9264
|
+
},
|
|
9265
|
+
{
|
|
9266
|
+
"component": "Filters",
|
|
9267
|
+
"slot": "trailing-filters"
|
|
9268
|
+
}
|
|
9269
|
+
]
|
|
9270
|
+
},
|
|
9271
|
+
{
|
|
9272
|
+
"component": "Table",
|
|
9273
|
+
"note": "selectionMode=\"multiple\"; footer={<Pagination />}; page size derived from the panel height",
|
|
9274
|
+
"children": [
|
|
9275
|
+
{
|
|
9276
|
+
"component": "TableHeader",
|
|
9277
|
+
"children": [
|
|
9278
|
+
{
|
|
9279
|
+
"component": "TableRow",
|
|
9280
|
+
"children": [
|
|
9281
|
+
{
|
|
9282
|
+
"component": "TableColumn",
|
|
9283
|
+
"repeat": true
|
|
9284
|
+
}
|
|
9285
|
+
]
|
|
9286
|
+
}
|
|
9287
|
+
]
|
|
9288
|
+
},
|
|
9289
|
+
{
|
|
9290
|
+
"component": "TableBody",
|
|
9291
|
+
"children": [
|
|
9292
|
+
{
|
|
9293
|
+
"component": "TableRow",
|
|
9294
|
+
"repeat": true,
|
|
9295
|
+
"note": "isActive while its detail is open",
|
|
9296
|
+
"children": [
|
|
9297
|
+
{
|
|
9298
|
+
"component": "TableCell",
|
|
9299
|
+
"repeat": true
|
|
9300
|
+
}
|
|
9301
|
+
]
|
|
9302
|
+
}
|
|
9303
|
+
]
|
|
9304
|
+
}
|
|
9305
|
+
]
|
|
9029
9306
|
}
|
|
9030
9307
|
]
|
|
9031
9308
|
},
|
|
9032
9309
|
{
|
|
9033
|
-
"component": "
|
|
9034
|
-
"
|
|
9310
|
+
"component": "Drawer",
|
|
9311
|
+
"slot": "selected-record-detail",
|
|
9312
|
+
"optional": true,
|
|
9313
|
+
"children": [
|
|
9314
|
+
{
|
|
9315
|
+
"component": "DrawerHeader",
|
|
9316
|
+
"children": [
|
|
9317
|
+
{
|
|
9318
|
+
"component": "DrawerTitle"
|
|
9319
|
+
},
|
|
9320
|
+
{
|
|
9321
|
+
"component": "Chip",
|
|
9322
|
+
"slot": "status-under-title"
|
|
9323
|
+
}
|
|
9324
|
+
]
|
|
9325
|
+
},
|
|
9326
|
+
{
|
|
9327
|
+
"component": "DrawerBody",
|
|
9328
|
+
"note": "Performance (stat cards + chart card), then Details (label–value rows)"
|
|
9329
|
+
},
|
|
9330
|
+
{
|
|
9331
|
+
"component": "DrawerFooter"
|
|
9332
|
+
}
|
|
9333
|
+
]
|
|
9035
9334
|
},
|
|
9036
9335
|
{
|
|
9037
|
-
"component": "
|
|
9336
|
+
"component": "Modal",
|
|
9337
|
+
"slot": "create-task",
|
|
9338
|
+
"optional": true,
|
|
9339
|
+
"note": "height=\"fixed\"",
|
|
9038
9340
|
"children": [
|
|
9039
9341
|
{
|
|
9040
|
-
"component": "
|
|
9041
|
-
"
|
|
9342
|
+
"component": "ModalHeader",
|
|
9343
|
+
"children": [
|
|
9344
|
+
{
|
|
9345
|
+
"component": "ModalTitle"
|
|
9346
|
+
}
|
|
9347
|
+
]
|
|
9348
|
+
},
|
|
9349
|
+
{
|
|
9350
|
+
"component": "ModalBody",
|
|
9351
|
+
"children": [
|
|
9352
|
+
{
|
|
9353
|
+
"component": "InputField"
|
|
9354
|
+
},
|
|
9355
|
+
{
|
|
9356
|
+
"component": "SegmentedControl"
|
|
9357
|
+
},
|
|
9358
|
+
{
|
|
9359
|
+
"component": "FileDropzone",
|
|
9360
|
+
"optional": true
|
|
9361
|
+
}
|
|
9362
|
+
]
|
|
9363
|
+
},
|
|
9364
|
+
{
|
|
9365
|
+
"component": "ModalFooter"
|
|
9042
9366
|
}
|
|
9043
9367
|
]
|
|
9044
9368
|
}
|
|
9045
9369
|
]
|
|
9046
9370
|
}
|
|
9047
9371
|
],
|
|
9048
|
-
"jsx": "<
|
|
9372
|
+
"jsx": "<div className=\"flex h-screen gap-3 bg-background p-3\">\n <section className=\"flex min-w-0 flex-1 flex-col overflow-hidden rounded-l bg-card\">\n <BodyPageHeader title=\"Voice campaigns\" actions={<Button onClick={openCreate}>New campaign</Button>} />\n <div className=\"flex items-center justify-between gap-4 px-6\">\n <Tabs value={tab} onValueChange={setTab}>\n <TabList>{tabs.map(t => <Tab key={t.value} value={t.value} count={t.count}>{t.label}</Tab>)}</TabList>\n </Tabs>\n <div className=\"flex items-center gap-2\">\n <SearchDisclosure value={query} onValueChange={setQuery} triggerLabel=\"Search campaigns\" />\n <Filters groups={filters} onChange={setFilter} triggerLabel=\"Filter campaigns\" />\n </div>\n </div>\n <div ref={rowsRef} className=\"min-h-0 flex-1 px-6 pt-4 pb-6\">\n <Table selectionMode=\"multiple\" footer={<Pagination total={pages} page={page} onChange={setPage} summary={summary} />}>\n <TableHeader><TableRow>{columns}</TableRow></TableHeader>\n <TableBody>\n {rows.map(row => (\n <TableRow key={row.id} rowKey={row.id} isActive={row.id === openId} onClick={() => open(row.id)} aria-label={`Open ${row.name}`}>{cells(row)}</TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </section>\n <Drawer open={Boolean(openId)} onOpenChange={close}>{detail}</Drawer>\n <Modal open={creating} onOpenChange={setCreating} height=\"fixed\">{createForm}</Modal>\n</div>",
|
|
9049
9373
|
"constraints": [
|
|
9050
|
-
"
|
|
9051
|
-
"Keep
|
|
9052
|
-
"
|
|
9374
|
+
"Derive the page size from the panel height so rows fill it and Pagination sits on the bottom edge.",
|
|
9375
|
+
"Keep the page header to the title and ONE primary action; search and filters are trailing icon triggers on the tab row.",
|
|
9376
|
+
"Row checkboxes appear on hover/focus only; the header select-all is always visible.",
|
|
9377
|
+
"Mark the row whose detail is open with TableRow isActive — never a radio column.",
|
|
9378
|
+
"Put the status Chip in the Drawer header under the title; group the body into Performance and Details sections 32px apart.",
|
|
9379
|
+
"Status words are business words (Active, Scheduled, Paused, Completed, Draft, Failed) with one tone each; tabs use the same words.",
|
|
9380
|
+
"The create task is a Modal with height=\"fixed\" over the list, never a separate screen."
|
|
9053
9381
|
],
|
|
9054
9382
|
"principles": [
|
|
9055
|
-
"
|
|
9056
|
-
"
|
|
9057
|
-
"
|
|
9383
|
+
"collection-screens",
|
|
9384
|
+
"record-detail-panels",
|
|
9385
|
+
"status-language",
|
|
9386
|
+
"tabs-search-opposed",
|
|
9387
|
+
"shell-owns-the-frame",
|
|
9388
|
+
"minimal-information"
|
|
9058
9389
|
],
|
|
9059
|
-
"story": "ADS/Components/
|
|
9390
|
+
"story": "ADS/Components/Table"
|
|
9060
9391
|
},
|
|
9061
9392
|
{
|
|
9062
|
-
"id": "
|
|
9063
|
-
"name": "
|
|
9393
|
+
"id": "record-analytics",
|
|
9394
|
+
"name": "Record analytics page",
|
|
9064
9395
|
"intents": [
|
|
9065
|
-
"
|
|
9066
|
-
"
|
|
9067
|
-
"
|
|
9396
|
+
"analysis",
|
|
9397
|
+
"analytics tab",
|
|
9398
|
+
"record page",
|
|
9399
|
+
"campaign analysis",
|
|
9400
|
+
"metrics",
|
|
9401
|
+
"dashboard tab"
|
|
9402
|
+
],
|
|
9403
|
+
"description": "A drill-down page titled by its Breadcrumbs (parent / record) with the primary action on the same row, record Tabs, then outlined stat cards and outlined chart cards whose legends sit in their title row and whose values are printed.",
|
|
9404
|
+
"roots": [
|
|
9405
|
+
{
|
|
9406
|
+
"native": "main",
|
|
9407
|
+
"children": [
|
|
9408
|
+
{
|
|
9409
|
+
"component": "Breadcrumbs",
|
|
9410
|
+
"children": [
|
|
9411
|
+
{
|
|
9412
|
+
"component": "BreadcrumbItem",
|
|
9413
|
+
"repeat": true
|
|
9414
|
+
},
|
|
9415
|
+
{
|
|
9416
|
+
"component": "Button",
|
|
9417
|
+
"slot": "actions"
|
|
9418
|
+
}
|
|
9419
|
+
]
|
|
9420
|
+
},
|
|
9421
|
+
{
|
|
9422
|
+
"component": "Tabs",
|
|
9423
|
+
"children": [
|
|
9424
|
+
{
|
|
9425
|
+
"component": "TabList",
|
|
9426
|
+
"children": [
|
|
9427
|
+
{
|
|
9428
|
+
"component": "Tab",
|
|
9429
|
+
"repeat": true
|
|
9430
|
+
}
|
|
9431
|
+
]
|
|
9432
|
+
}
|
|
9433
|
+
]
|
|
9434
|
+
},
|
|
9435
|
+
{
|
|
9436
|
+
"native": "div",
|
|
9437
|
+
"slot": "stat-cards",
|
|
9438
|
+
"children": [
|
|
9439
|
+
{
|
|
9440
|
+
"native": "section",
|
|
9441
|
+
"repeat": true,
|
|
9442
|
+
"slot": "stat-card",
|
|
9443
|
+
"children": [
|
|
9444
|
+
{
|
|
9445
|
+
"component": "Progress"
|
|
9446
|
+
}
|
|
9447
|
+
]
|
|
9448
|
+
}
|
|
9449
|
+
]
|
|
9450
|
+
},
|
|
9451
|
+
{
|
|
9452
|
+
"native": "div",
|
|
9453
|
+
"slot": "chart-cards",
|
|
9454
|
+
"children": [
|
|
9455
|
+
{
|
|
9456
|
+
"native": "section",
|
|
9457
|
+
"slot": "chart-card",
|
|
9458
|
+
"children": [
|
|
9459
|
+
{
|
|
9460
|
+
"component": "BarChart",
|
|
9461
|
+
"note": "title, subtitle, legendPlacement=\"header\""
|
|
9462
|
+
}
|
|
9463
|
+
]
|
|
9464
|
+
},
|
|
9465
|
+
{
|
|
9466
|
+
"native": "section",
|
|
9467
|
+
"slot": "chart-card",
|
|
9468
|
+
"children": [
|
|
9469
|
+
{
|
|
9470
|
+
"component": "LineChart",
|
|
9471
|
+
"note": "title, subtitle, legendPlacement=\"header\""
|
|
9472
|
+
}
|
|
9473
|
+
]
|
|
9474
|
+
}
|
|
9475
|
+
]
|
|
9476
|
+
}
|
|
9477
|
+
]
|
|
9478
|
+
}
|
|
9479
|
+
],
|
|
9480
|
+
"jsx": "<main className=\"flex min-w-0 flex-1 flex-col rounded-l bg-card\">\n <Breadcrumbs actions={<Button>Pause campaign</Button>}>\n <BreadcrumbItem href=\"/campaigns\">Voice campaigns</BreadcrumbItem>\n <BreadcrumbItem isCurrent>{campaign.name}</BreadcrumbItem>\n </Breadcrumbs>\n <Tabs value={tab} onValueChange={setTab}><TabList>{tabs}</TabList></Tabs>\n <div className=\"grid grid-cols-[repeat(auto-fill,minmax(16rem,1fr))] gap-4\">\n {stats.map(stat => (\n <section key={stat.label} className=\"rounded-l border border-tertiary p-5\">\n <p className=\"text-m text-secondary\">{stat.label}</p>\n <p className=\"mt-1 text-3xl tabular-nums\">{stat.value} <span className=\"text-m text-secondary\">{stat.of}</span></p>\n <Progress className=\"mt-3\" value={stat.percent} label={stat.label} />\n </section>\n ))}\n </div>\n <section className=\"rounded-l border border-tertiary p-5\">\n <BarChart title=\"Who was in the segment\" subtitle={scope} legendPlacement=\"header\" data={data} categoryKey=\"day\" series={series} stacked />\n </section>\n</main>",
|
|
9481
|
+
"constraints": [
|
|
9482
|
+
"Title a drill-down with Breadcrumbs (16px); no back arrow and no repeated H1.",
|
|
9483
|
+
"Give every stat and every chart its own outlined card (1px WG3, radius-l, 20px padding, flat), 16px apart.",
|
|
9484
|
+
"Keep a stat's label, number and scope 4px apart and its Progress 12px below, filling the card.",
|
|
9485
|
+
"Put chart legends in the title row (legendPlacement=\"header\") and leave showValues on — values are never hover-only."
|
|
9486
|
+
],
|
|
9487
|
+
"principles": [
|
|
9488
|
+
"analytics-surfaces",
|
|
9489
|
+
"leading-back-navigation",
|
|
9490
|
+
"status-language",
|
|
9491
|
+
"responsive-container-fluid"
|
|
9492
|
+
],
|
|
9493
|
+
"story": "ADS/Components/Chart"
|
|
9494
|
+
},
|
|
9495
|
+
{
|
|
9496
|
+
"id": "modal-task",
|
|
9497
|
+
"name": "Blocking modal task",
|
|
9498
|
+
"intents": [
|
|
9499
|
+
"modal",
|
|
9500
|
+
"confirmation",
|
|
9501
|
+
"short form",
|
|
9502
|
+
"blocking task",
|
|
9503
|
+
"destructive action"
|
|
9504
|
+
],
|
|
9505
|
+
"description": "A focused interruption with one title, body, and decisive footer.",
|
|
9506
|
+
"roots": [
|
|
9507
|
+
{
|
|
9508
|
+
"component": "Modal",
|
|
9509
|
+
"children": [
|
|
9510
|
+
{
|
|
9511
|
+
"component": "ModalHeader",
|
|
9512
|
+
"children": [
|
|
9513
|
+
{
|
|
9514
|
+
"component": "ModalTitle"
|
|
9515
|
+
},
|
|
9516
|
+
{
|
|
9517
|
+
"component": "ModalDescription",
|
|
9518
|
+
"optional": true
|
|
9519
|
+
}
|
|
9520
|
+
]
|
|
9521
|
+
},
|
|
9522
|
+
{
|
|
9523
|
+
"component": "ModalBody",
|
|
9524
|
+
"optional": true
|
|
9525
|
+
},
|
|
9526
|
+
{
|
|
9527
|
+
"component": "ModalFooter",
|
|
9528
|
+
"children": [
|
|
9529
|
+
{
|
|
9530
|
+
"component": "Button",
|
|
9531
|
+
"repeat": true
|
|
9532
|
+
}
|
|
9533
|
+
]
|
|
9534
|
+
}
|
|
9535
|
+
]
|
|
9536
|
+
}
|
|
9537
|
+
],
|
|
9538
|
+
"jsx": "<Modal open={open} onOpenChange={setOpen} aria-label={title}>\n <ModalHeader><ModalTitle>{title}</ModalTitle></ModalHeader>\n <ModalBody>{task}</ModalBody>\n <ModalFooter><Button variant=\"ghost\">Cancel</Button><Button>Continue</Button></ModalFooter>\n</Modal>",
|
|
9539
|
+
"constraints": [
|
|
9540
|
+
"Add ModalDescription only when the user explicitly requested supporting header copy.",
|
|
9541
|
+
"Keep one primary footer action; use danger only for an irreversible destructive action.",
|
|
9542
|
+
"Do not wrap or replace the Modal's built-in focus, backdrop, or motion behavior."
|
|
9543
|
+
],
|
|
9544
|
+
"principles": [
|
|
9545
|
+
"minimal-information",
|
|
9546
|
+
"motion-follows-guide",
|
|
9547
|
+
"ads-first"
|
|
9548
|
+
],
|
|
9549
|
+
"story": "ADS/Components/Overlays/Modal"
|
|
9550
|
+
},
|
|
9551
|
+
{
|
|
9552
|
+
"id": "settings-card",
|
|
9553
|
+
"name": "Settings card",
|
|
9554
|
+
"intents": [
|
|
9555
|
+
"settings",
|
|
9556
|
+
"preferences",
|
|
9557
|
+
"configuration",
|
|
9068
9558
|
"toggles"
|
|
9069
9559
|
],
|
|
9070
9560
|
"description": "A compact settings surface with grouped SettingRows and one save action.",
|
|
@@ -9123,7 +9613,7 @@
|
|
|
9123
9613
|
"minimal-information",
|
|
9124
9614
|
"ads-first"
|
|
9125
9615
|
],
|
|
9126
|
-
"story": "ADS/
|
|
9616
|
+
"story": "ADS/Components/Under review/SettingList / SettingRow"
|
|
9127
9617
|
},
|
|
9128
9618
|
{
|
|
9129
9619
|
"id": "research-trace",
|
|
@@ -9527,6 +10017,16 @@
|
|
|
9527
10017
|
"id": "horizontal-overflow",
|
|
9528
10018
|
"description": "Scroll hints and sticky edges respond to hidden content.",
|
|
9529
10019
|
"required": true
|
|
10020
|
+
},
|
|
10021
|
+
{
|
|
10022
|
+
"id": "hover-revealed-selection",
|
|
10023
|
+
"description": "Multi-select row checkboxes hidden at rest, shown on hover/focus and while checked; header checkbox always visible.",
|
|
10024
|
+
"required": true
|
|
10025
|
+
},
|
|
10026
|
+
{
|
|
10027
|
+
"id": "row-active",
|
|
10028
|
+
"description": "The row whose detail panel is open carries the soft-teal fade via isActive, with no selection control.",
|
|
10029
|
+
"required": true
|
|
9530
10030
|
}
|
|
9531
10031
|
],
|
|
9532
10032
|
"representativeCombinations": [
|
|
@@ -9667,13 +10167,13 @@
|
|
|
9667
10167
|
]
|
|
9668
10168
|
},
|
|
9669
10169
|
"counts": {
|
|
9670
|
-
"nodes":
|
|
9671
|
-
"edges":
|
|
9672
|
-
"component":
|
|
9673
|
-
"state":
|
|
9674
|
-
"principle":
|
|
9675
|
-
"production":
|
|
9676
|
-
"layout":
|
|
10170
|
+
"nodes": 844,
|
|
10171
|
+
"edges": 625,
|
|
10172
|
+
"component": 325,
|
|
10173
|
+
"state": 482,
|
|
10174
|
+
"principle": 15,
|
|
10175
|
+
"production": 11,
|
|
10176
|
+
"layout": 11
|
|
9677
10177
|
},
|
|
9678
10178
|
"nodes": [
|
|
9679
10179
|
{
|
|
@@ -9785,7 +10285,7 @@
|
|
|
9785
10285
|
"required": false,
|
|
9786
10286
|
"derived": true,
|
|
9787
10287
|
"isDefault": false,
|
|
9788
|
-
"description": "
|
|
10288
|
+
"description": "Deprecated alias — renders identically to md (32px). Use md."
|
|
9789
10289
|
},
|
|
9790
10290
|
{
|
|
9791
10291
|
"id": "state:Button:size=sm",
|
|
@@ -9797,7 +10297,7 @@
|
|
|
9797
10297
|
"required": false,
|
|
9798
10298
|
"derived": true,
|
|
9799
10299
|
"isDefault": false,
|
|
9800
|
-
"description": "
|
|
10300
|
+
"description": "Deprecated alias — renders identically to md (32px). Use md."
|
|
9801
10301
|
},
|
|
9802
10302
|
{
|
|
9803
10303
|
"id": "state:Button:size=md",
|
|
@@ -9809,7 +10309,7 @@
|
|
|
9809
10309
|
"required": false,
|
|
9810
10310
|
"derived": true,
|
|
9811
10311
|
"isDefault": true,
|
|
9812
|
-
"description": "
|
|
10312
|
+
"description": "The default 32px button for nearly every action, form, toolbar and table row."
|
|
9813
10313
|
},
|
|
9814
10314
|
{
|
|
9815
10315
|
"id": "state:Button:size=lg",
|
|
@@ -9821,7 +10321,7 @@
|
|
|
9821
10321
|
"required": false,
|
|
9822
10322
|
"derived": true,
|
|
9823
10323
|
"isDefault": false,
|
|
9824
|
-
"description": "
|
|
10324
|
+
"description": "The 48px button (20px inline padding, 8px radius) for a standalone high-emphasis CTA such as a full-screen step or empty state."
|
|
9825
10325
|
},
|
|
9826
10326
|
{
|
|
9827
10327
|
"id": "state:Button:size=icon",
|
|
@@ -9946,6 +10446,30 @@
|
|
|
9946
10446
|
"showcaseUrl": "https://ads.actioneer.dev/#/review/file-dropzone",
|
|
9947
10447
|
"description": ""
|
|
9948
10448
|
},
|
|
10449
|
+
{
|
|
10450
|
+
"id": "state:FileDropzone:hasFiles=true",
|
|
10451
|
+
"kind": "state",
|
|
10452
|
+
"label": "hasFiles=true",
|
|
10453
|
+
"component": "FileDropzone",
|
|
10454
|
+
"axis": "hasFiles",
|
|
10455
|
+
"value": "true",
|
|
10456
|
+
"required": false,
|
|
10457
|
+
"derived": true,
|
|
10458
|
+
"isDefault": false,
|
|
10459
|
+
"description": ""
|
|
10460
|
+
},
|
|
10461
|
+
{
|
|
10462
|
+
"id": "state:FileDropzone:hasFiles=false",
|
|
10463
|
+
"kind": "state",
|
|
10464
|
+
"label": "hasFiles=false",
|
|
10465
|
+
"component": "FileDropzone",
|
|
10466
|
+
"axis": "hasFiles",
|
|
10467
|
+
"value": "false",
|
|
10468
|
+
"required": false,
|
|
10469
|
+
"derived": true,
|
|
10470
|
+
"isDefault": false,
|
|
10471
|
+
"description": ""
|
|
10472
|
+
},
|
|
9949
10473
|
{
|
|
9950
10474
|
"id": "state:FileDropzone:isDragging=true",
|
|
9951
10475
|
"kind": "state",
|
|
@@ -10360,6 +10884,15 @@
|
|
|
10360
10884
|
"showcaseUrl": "https://ads.actioneer.dev/#/date-range-picker",
|
|
10361
10885
|
"description": ""
|
|
10362
10886
|
},
|
|
10887
|
+
{
|
|
10888
|
+
"id": "component:Filters",
|
|
10889
|
+
"kind": "component",
|
|
10890
|
+
"label": "Filters",
|
|
10891
|
+
"family": "Form controls",
|
|
10892
|
+
"module": "filters",
|
|
10893
|
+
"showcaseUrl": "https://ads.actioneer.dev/#/filters",
|
|
10894
|
+
"description": ""
|
|
10895
|
+
},
|
|
10363
10896
|
{
|
|
10364
10897
|
"id": "component:Input",
|
|
10365
10898
|
"kind": "component",
|
|
@@ -11269,6 +11802,30 @@
|
|
|
11269
11802
|
"isDefault": false,
|
|
11270
11803
|
"description": ""
|
|
11271
11804
|
},
|
|
11805
|
+
{
|
|
11806
|
+
"id": "state:Modal:height=content",
|
|
11807
|
+
"kind": "state",
|
|
11808
|
+
"label": "height=content",
|
|
11809
|
+
"component": "Modal",
|
|
11810
|
+
"axis": "height",
|
|
11811
|
+
"value": "content",
|
|
11812
|
+
"required": false,
|
|
11813
|
+
"derived": true,
|
|
11814
|
+
"isDefault": true,
|
|
11815
|
+
"description": ""
|
|
11816
|
+
},
|
|
11817
|
+
{
|
|
11818
|
+
"id": "state:Modal:height=fixed",
|
|
11819
|
+
"kind": "state",
|
|
11820
|
+
"label": "height=fixed",
|
|
11821
|
+
"component": "Modal",
|
|
11822
|
+
"axis": "height",
|
|
11823
|
+
"value": "fixed",
|
|
11824
|
+
"required": false,
|
|
11825
|
+
"derived": true,
|
|
11826
|
+
"isDefault": false,
|
|
11827
|
+
"description": ""
|
|
11828
|
+
},
|
|
11272
11829
|
{
|
|
11273
11830
|
"id": "component:ModalBody",
|
|
11274
11831
|
"kind": "component",
|
|
@@ -11362,6 +11919,30 @@
|
|
|
11362
11919
|
"isDefault": false,
|
|
11363
11920
|
"description": ""
|
|
11364
11921
|
},
|
|
11922
|
+
{
|
|
11923
|
+
"id": "state:ModalBody:height=content",
|
|
11924
|
+
"kind": "state",
|
|
11925
|
+
"label": "height=content",
|
|
11926
|
+
"component": "ModalBody",
|
|
11927
|
+
"axis": "height",
|
|
11928
|
+
"value": "content",
|
|
11929
|
+
"required": false,
|
|
11930
|
+
"derived": true,
|
|
11931
|
+
"isDefault": true,
|
|
11932
|
+
"description": ""
|
|
11933
|
+
},
|
|
11934
|
+
{
|
|
11935
|
+
"id": "state:ModalBody:height=fixed",
|
|
11936
|
+
"kind": "state",
|
|
11937
|
+
"label": "height=fixed",
|
|
11938
|
+
"component": "ModalBody",
|
|
11939
|
+
"axis": "height",
|
|
11940
|
+
"value": "fixed",
|
|
11941
|
+
"required": false,
|
|
11942
|
+
"derived": true,
|
|
11943
|
+
"isDefault": false,
|
|
11944
|
+
"description": ""
|
|
11945
|
+
},
|
|
11365
11946
|
{
|
|
11366
11947
|
"id": "component:ModalClose",
|
|
11367
11948
|
"kind": "component",
|
|
@@ -11455,6 +12036,30 @@
|
|
|
11455
12036
|
"isDefault": false,
|
|
11456
12037
|
"description": ""
|
|
11457
12038
|
},
|
|
12039
|
+
{
|
|
12040
|
+
"id": "state:ModalClose:height=content",
|
|
12041
|
+
"kind": "state",
|
|
12042
|
+
"label": "height=content",
|
|
12043
|
+
"component": "ModalClose",
|
|
12044
|
+
"axis": "height",
|
|
12045
|
+
"value": "content",
|
|
12046
|
+
"required": false,
|
|
12047
|
+
"derived": true,
|
|
12048
|
+
"isDefault": true,
|
|
12049
|
+
"description": ""
|
|
12050
|
+
},
|
|
12051
|
+
{
|
|
12052
|
+
"id": "state:ModalClose:height=fixed",
|
|
12053
|
+
"kind": "state",
|
|
12054
|
+
"label": "height=fixed",
|
|
12055
|
+
"component": "ModalClose",
|
|
12056
|
+
"axis": "height",
|
|
12057
|
+
"value": "fixed",
|
|
12058
|
+
"required": false,
|
|
12059
|
+
"derived": true,
|
|
12060
|
+
"isDefault": false,
|
|
12061
|
+
"description": ""
|
|
12062
|
+
},
|
|
11458
12063
|
{
|
|
11459
12064
|
"id": "component:ModalDescription",
|
|
11460
12065
|
"kind": "component",
|
|
@@ -11548,6 +12153,30 @@
|
|
|
11548
12153
|
"isDefault": false,
|
|
11549
12154
|
"description": ""
|
|
11550
12155
|
},
|
|
12156
|
+
{
|
|
12157
|
+
"id": "state:ModalDescription:height=content",
|
|
12158
|
+
"kind": "state",
|
|
12159
|
+
"label": "height=content",
|
|
12160
|
+
"component": "ModalDescription",
|
|
12161
|
+
"axis": "height",
|
|
12162
|
+
"value": "content",
|
|
12163
|
+
"required": false,
|
|
12164
|
+
"derived": true,
|
|
12165
|
+
"isDefault": true,
|
|
12166
|
+
"description": ""
|
|
12167
|
+
},
|
|
12168
|
+
{
|
|
12169
|
+
"id": "state:ModalDescription:height=fixed",
|
|
12170
|
+
"kind": "state",
|
|
12171
|
+
"label": "height=fixed",
|
|
12172
|
+
"component": "ModalDescription",
|
|
12173
|
+
"axis": "height",
|
|
12174
|
+
"value": "fixed",
|
|
12175
|
+
"required": false,
|
|
12176
|
+
"derived": true,
|
|
12177
|
+
"isDefault": false,
|
|
12178
|
+
"description": ""
|
|
12179
|
+
},
|
|
11551
12180
|
{
|
|
11552
12181
|
"id": "component:ModalDrawer",
|
|
11553
12182
|
"kind": "component",
|
|
@@ -11734,6 +12363,30 @@
|
|
|
11734
12363
|
"isDefault": false,
|
|
11735
12364
|
"description": ""
|
|
11736
12365
|
},
|
|
12366
|
+
{
|
|
12367
|
+
"id": "state:ModalFooter:height=content",
|
|
12368
|
+
"kind": "state",
|
|
12369
|
+
"label": "height=content",
|
|
12370
|
+
"component": "ModalFooter",
|
|
12371
|
+
"axis": "height",
|
|
12372
|
+
"value": "content",
|
|
12373
|
+
"required": false,
|
|
12374
|
+
"derived": true,
|
|
12375
|
+
"isDefault": true,
|
|
12376
|
+
"description": ""
|
|
12377
|
+
},
|
|
12378
|
+
{
|
|
12379
|
+
"id": "state:ModalFooter:height=fixed",
|
|
12380
|
+
"kind": "state",
|
|
12381
|
+
"label": "height=fixed",
|
|
12382
|
+
"component": "ModalFooter",
|
|
12383
|
+
"axis": "height",
|
|
12384
|
+
"value": "fixed",
|
|
12385
|
+
"required": false,
|
|
12386
|
+
"derived": true,
|
|
12387
|
+
"isDefault": false,
|
|
12388
|
+
"description": ""
|
|
12389
|
+
},
|
|
11737
12390
|
{
|
|
11738
12391
|
"id": "component:ModalHeader",
|
|
11739
12392
|
"kind": "component",
|
|
@@ -11827,6 +12480,30 @@
|
|
|
11827
12480
|
"isDefault": false,
|
|
11828
12481
|
"description": ""
|
|
11829
12482
|
},
|
|
12483
|
+
{
|
|
12484
|
+
"id": "state:ModalHeader:height=content",
|
|
12485
|
+
"kind": "state",
|
|
12486
|
+
"label": "height=content",
|
|
12487
|
+
"component": "ModalHeader",
|
|
12488
|
+
"axis": "height",
|
|
12489
|
+
"value": "content",
|
|
12490
|
+
"required": false,
|
|
12491
|
+
"derived": true,
|
|
12492
|
+
"isDefault": true,
|
|
12493
|
+
"description": ""
|
|
12494
|
+
},
|
|
12495
|
+
{
|
|
12496
|
+
"id": "state:ModalHeader:height=fixed",
|
|
12497
|
+
"kind": "state",
|
|
12498
|
+
"label": "height=fixed",
|
|
12499
|
+
"component": "ModalHeader",
|
|
12500
|
+
"axis": "height",
|
|
12501
|
+
"value": "fixed",
|
|
12502
|
+
"required": false,
|
|
12503
|
+
"derived": true,
|
|
12504
|
+
"isDefault": false,
|
|
12505
|
+
"description": ""
|
|
12506
|
+
},
|
|
11830
12507
|
{
|
|
11831
12508
|
"id": "component:ModalSection",
|
|
11832
12509
|
"kind": "component",
|
|
@@ -11921,14 +12598,38 @@
|
|
|
11921
12598
|
"description": ""
|
|
11922
12599
|
},
|
|
11923
12600
|
{
|
|
11924
|
-
"id": "
|
|
11925
|
-
"kind": "
|
|
11926
|
-
"label": "
|
|
11927
|
-
"
|
|
11928
|
-
"
|
|
11929
|
-
"
|
|
11930
|
-
"
|
|
11931
|
-
|
|
12601
|
+
"id": "state:ModalSection:height=content",
|
|
12602
|
+
"kind": "state",
|
|
12603
|
+
"label": "height=content",
|
|
12604
|
+
"component": "ModalSection",
|
|
12605
|
+
"axis": "height",
|
|
12606
|
+
"value": "content",
|
|
12607
|
+
"required": false,
|
|
12608
|
+
"derived": true,
|
|
12609
|
+
"isDefault": true,
|
|
12610
|
+
"description": ""
|
|
12611
|
+
},
|
|
12612
|
+
{
|
|
12613
|
+
"id": "state:ModalSection:height=fixed",
|
|
12614
|
+
"kind": "state",
|
|
12615
|
+
"label": "height=fixed",
|
|
12616
|
+
"component": "ModalSection",
|
|
12617
|
+
"axis": "height",
|
|
12618
|
+
"value": "fixed",
|
|
12619
|
+
"required": false,
|
|
12620
|
+
"derived": true,
|
|
12621
|
+
"isDefault": false,
|
|
12622
|
+
"description": ""
|
|
12623
|
+
},
|
|
12624
|
+
{
|
|
12625
|
+
"id": "component:ModalTitle",
|
|
12626
|
+
"kind": "component",
|
|
12627
|
+
"label": "ModalTitle",
|
|
12628
|
+
"family": "Overlays",
|
|
12629
|
+
"module": "modal",
|
|
12630
|
+
"showcaseUrl": "https://ads.actioneer.dev/#/modal",
|
|
12631
|
+
"description": ""
|
|
12632
|
+
},
|
|
11932
12633
|
{
|
|
11933
12634
|
"id": "state:ModalTitle:size=sm",
|
|
11934
12635
|
"kind": "state",
|
|
@@ -12013,6 +12714,30 @@
|
|
|
12013
12714
|
"isDefault": false,
|
|
12014
12715
|
"description": ""
|
|
12015
12716
|
},
|
|
12717
|
+
{
|
|
12718
|
+
"id": "state:ModalTitle:height=content",
|
|
12719
|
+
"kind": "state",
|
|
12720
|
+
"label": "height=content",
|
|
12721
|
+
"component": "ModalTitle",
|
|
12722
|
+
"axis": "height",
|
|
12723
|
+
"value": "content",
|
|
12724
|
+
"required": false,
|
|
12725
|
+
"derived": true,
|
|
12726
|
+
"isDefault": true,
|
|
12727
|
+
"description": ""
|
|
12728
|
+
},
|
|
12729
|
+
{
|
|
12730
|
+
"id": "state:ModalTitle:height=fixed",
|
|
12731
|
+
"kind": "state",
|
|
12732
|
+
"label": "height=fixed",
|
|
12733
|
+
"component": "ModalTitle",
|
|
12734
|
+
"axis": "height",
|
|
12735
|
+
"value": "fixed",
|
|
12736
|
+
"required": false,
|
|
12737
|
+
"derived": true,
|
|
12738
|
+
"isDefault": false,
|
|
12739
|
+
"description": ""
|
|
12740
|
+
},
|
|
12016
12741
|
{
|
|
12017
12742
|
"id": "component:Popover",
|
|
12018
12743
|
"kind": "component",
|
|
@@ -12541,6 +13266,18 @@
|
|
|
12541
13266
|
"isDefault": false,
|
|
12542
13267
|
"description": "Transparent background with a border — use on tinted/colored surfaces where solid or soft would clash."
|
|
12543
13268
|
},
|
|
13269
|
+
{
|
|
13270
|
+
"id": "state:Chip:variant=plain",
|
|
13271
|
+
"kind": "state",
|
|
13272
|
+
"label": "variant=plain",
|
|
13273
|
+
"component": "Chip",
|
|
13274
|
+
"axis": "variant",
|
|
13275
|
+
"value": "plain",
|
|
13276
|
+
"required": false,
|
|
13277
|
+
"derived": true,
|
|
13278
|
+
"isDefault": false,
|
|
13279
|
+
"description": ""
|
|
13280
|
+
},
|
|
12544
13281
|
{
|
|
12545
13282
|
"id": "state:Chip:color=default",
|
|
12546
13283
|
"kind": "state",
|
|
@@ -14558,7 +15295,7 @@
|
|
|
14558
15295
|
"required": false,
|
|
14559
15296
|
"derived": true,
|
|
14560
15297
|
"isDefault": true,
|
|
14561
|
-
"description": "Neutral heads-up with a
|
|
15298
|
+
"description": "Neutral heads-up with a neutral icon and no urgency signaled."
|
|
14562
15299
|
},
|
|
14563
15300
|
{
|
|
14564
15301
|
"id": "state:Alert:variant=success",
|
|
@@ -15034,6 +15771,15 @@
|
|
|
15034
15771
|
"showcaseUrl": "https://ads.actioneer.dev/#/sidebar",
|
|
15035
15772
|
"description": ""
|
|
15036
15773
|
},
|
|
15774
|
+
{
|
|
15775
|
+
"id": "component:SidebarWorkspace",
|
|
15776
|
+
"kind": "component",
|
|
15777
|
+
"label": "SidebarWorkspace",
|
|
15778
|
+
"family": "Navigation",
|
|
15779
|
+
"module": "sidebar",
|
|
15780
|
+
"showcaseUrl": "https://ads.actioneer.dev/#/sidebar",
|
|
15781
|
+
"description": ""
|
|
15782
|
+
},
|
|
15037
15783
|
{
|
|
15038
15784
|
"id": "component:Collapsible",
|
|
15039
15785
|
"kind": "component",
|
|
@@ -17501,9 +18247,9 @@
|
|
|
17501
18247
|
{
|
|
17502
18248
|
"id": "principle:elevation-is-actionability",
|
|
17503
18249
|
"kind": "principle",
|
|
17504
|
-
"label": "
|
|
18250
|
+
"label": "Five shadows, floating layers only",
|
|
17505
18251
|
"number": 2,
|
|
17506
|
-
"rule": "
|
|
18252
|
+
"rule": "ADS has five shadow tokens: shadow-0 (flat, the default), shadow-float, shadow-overlay, and the two table scroll-hint smudges. Only a layer that floats above the page may carry float or overlay; everything in the page is flat."
|
|
17507
18253
|
},
|
|
17508
18254
|
{
|
|
17509
18255
|
"id": "principle:motion-follows-guide",
|
|
@@ -17557,16 +18303,44 @@
|
|
|
17557
18303
|
{
|
|
17558
18304
|
"id": "principle:leading-back-navigation",
|
|
17559
18305
|
"kind": "principle",
|
|
17560
|
-
"label": "Back navigation is leading",
|
|
18306
|
+
"label": "Back navigation is leading; drill-downs use the breadcrumb",
|
|
17561
18307
|
"number": 10,
|
|
17562
|
-
"rule": "A
|
|
18308
|
+
"rule": "A record or drill-down page (a campaign inside Voice campaigns, a connector inside Data Integrations) is titled by its Breadcrumbs trail — parent / record at 16px — with no back arrow and no repeated H1; the page's one primary action sits at the right end of the same row. A standalone page-level Back control, when one is needed outside a hierarchy, sits immediately before the title and never on the right."
|
|
17563
18309
|
},
|
|
17564
18310
|
{
|
|
17565
18311
|
"id": "principle:tabs-search-opposed",
|
|
17566
18312
|
"kind": "principle",
|
|
17567
18313
|
"label": "Tabs lead; scoped search trails",
|
|
17568
18314
|
"number": 11,
|
|
17569
|
-
"rule": "When tabs and a search field control the same content, they share one responsive control row: the tab
|
|
18315
|
+
"rule": "When tabs and a search field control the same content, they share one responsive control row: the tab list leads with its triggers left-aligned at their natural width over a baseline that fades from WG3 to transparent, and search sits at the trailing edge. On collection screens the trailing controls are icon triggers — SearchDisclosure (expands into the field) then Filters — and tab labels are 14px with a quieter count after each label."
|
|
18316
|
+
},
|
|
18317
|
+
{
|
|
18318
|
+
"id": "principle:collection-screens",
|
|
18319
|
+
"kind": "principle",
|
|
18320
|
+
"label": "Collection screens fill the panel",
|
|
18321
|
+
"number": 12,
|
|
18322
|
+
"rule": "A collection screen (campaigns, call logs, leads) is one white panel: BodyPageHeader (title + one primary action), the tab/search/filter row, then a Table whose rows fill the panel's height with Pagination pinned to its bottom edge. Rows open details in a shell-level side panel; the list stays visible."
|
|
18323
|
+
},
|
|
18324
|
+
{
|
|
18325
|
+
"id": "principle:record-detail-panels",
|
|
18326
|
+
"kind": "principle",
|
|
18327
|
+
"label": "Record detail panels are grouped by question",
|
|
18328
|
+
"number": 13,
|
|
18329
|
+
"rule": "A selection-driven detail panel reads top-down as: kicker (the KIND of record), title, then the record's status Chip and its one-line context directly under the title; then titled sections 32px apart — Performance (stat cards + chart card) and Details (label–value rows with inset dividers); then footer actions (secondary outline + one solid primary)."
|
|
18330
|
+
},
|
|
18331
|
+
{
|
|
18332
|
+
"id": "principle:analytics-surfaces",
|
|
18333
|
+
"kind": "principle",
|
|
18334
|
+
"label": "Stats and charts sit in their own containers, values visible",
|
|
18335
|
+
"number": 14,
|
|
18336
|
+
"rule": "On analytics/record pages every stat and every chart is its own outlined container (1px WG3 border, radius-l, 20px padding, white, flat) on the white panel, 16px apart. Values are printed on the chart by default — never hover-only — and the legend sits at the right end of the chart's title row."
|
|
18337
|
+
},
|
|
18338
|
+
{
|
|
18339
|
+
"id": "principle:status-language",
|
|
18340
|
+
"kind": "principle",
|
|
18341
|
+
"label": "Status speaks the business, with one tone per meaning",
|
|
18342
|
+
"number": 15,
|
|
18343
|
+
"rule": "Status labels name the business state, not the machine's activity, and tabs use the same words. Campaign statuses: Active and Scheduled (info blue), Paused (warning amber), Completed (success green), Draft (default grey), Failed (danger red). Teal is reserved for actions and selection, not for a status."
|
|
17570
18344
|
},
|
|
17571
18345
|
{
|
|
17572
18346
|
"id": "state:Button:interaction=default",
|
|
@@ -18019,6 +18793,28 @@
|
|
|
18019
18793
|
"derived": false,
|
|
18020
18794
|
"description": "Scroll hints and sticky edges respond to hidden content."
|
|
18021
18795
|
},
|
|
18796
|
+
{
|
|
18797
|
+
"id": "state:Table:interaction=hover-revealed-selection",
|
|
18798
|
+
"kind": "state",
|
|
18799
|
+
"label": "hover-revealed-selection",
|
|
18800
|
+
"component": "Table",
|
|
18801
|
+
"axis": "interaction",
|
|
18802
|
+
"value": "hover-revealed-selection",
|
|
18803
|
+
"required": true,
|
|
18804
|
+
"derived": false,
|
|
18805
|
+
"description": "Multi-select row checkboxes hidden at rest, shown on hover/focus and while checked; header checkbox always visible."
|
|
18806
|
+
},
|
|
18807
|
+
{
|
|
18808
|
+
"id": "state:Table:interaction=row-active",
|
|
18809
|
+
"kind": "state",
|
|
18810
|
+
"label": "row-active",
|
|
18811
|
+
"component": "Table",
|
|
18812
|
+
"axis": "interaction",
|
|
18813
|
+
"value": "row-active",
|
|
18814
|
+
"required": true,
|
|
18815
|
+
"derived": false,
|
|
18816
|
+
"description": "The row whose detail panel is open carries the soft-teal fade via isActive, with no selection control."
|
|
18817
|
+
},
|
|
18022
18818
|
{
|
|
18023
18819
|
"id": "state:ResearchActivity:interaction=active",
|
|
18024
18820
|
"kind": "state",
|
|
@@ -18237,6 +19033,125 @@
|
|
|
18237
19033
|
"slot": "responsive-control-row",
|
|
18238
19034
|
"production": "tabbed-results"
|
|
18239
19035
|
},
|
|
19036
|
+
{
|
|
19037
|
+
"id": "production:collection-screen",
|
|
19038
|
+
"kind": "production",
|
|
19039
|
+
"label": "Collection screen with record detail",
|
|
19040
|
+
"description": "BodyPageHeader (title + one primary action), a control row with counted Tabs leading and SearchDisclosure + Filters trailing, a Table whose rows fill the panel with Pagination at its bottom edge, a shell-level Drawer for the open record, and a fixed-height Modal for the create task.",
|
|
19041
|
+
"intents": [
|
|
19042
|
+
"campaigns",
|
|
19043
|
+
"call logs",
|
|
19044
|
+
"leads",
|
|
19045
|
+
"records list",
|
|
19046
|
+
"collection",
|
|
19047
|
+
"list page",
|
|
19048
|
+
"new campaign"
|
|
19049
|
+
],
|
|
19050
|
+
"story": "ADS/Components/Table",
|
|
19051
|
+
"jsx": "<div className=\"flex h-screen gap-3 bg-background p-3\">\n <section className=\"flex min-w-0 flex-1 flex-col overflow-hidden rounded-l bg-card\">\n <BodyPageHeader title=\"Voice campaigns\" actions={<Button onClick={openCreate}>New campaign</Button>} />\n <div className=\"flex items-center justify-between gap-4 px-6\">\n <Tabs value={tab} onValueChange={setTab}>\n <TabList>{tabs.map(t => <Tab key={t.value} value={t.value} count={t.count}>{t.label}</Tab>)}</TabList>\n </Tabs>\n <div className=\"flex items-center gap-2\">\n <SearchDisclosure value={query} onValueChange={setQuery} triggerLabel=\"Search campaigns\" />\n <Filters groups={filters} onChange={setFilter} triggerLabel=\"Filter campaigns\" />\n </div>\n </div>\n <div ref={rowsRef} className=\"min-h-0 flex-1 px-6 pt-4 pb-6\">\n <Table selectionMode=\"multiple\" footer={<Pagination total={pages} page={page} onChange={setPage} summary={summary} />}>\n <TableHeader><TableRow>{columns}</TableRow></TableHeader>\n <TableBody>\n {rows.map(row => (\n <TableRow key={row.id} rowKey={row.id} isActive={row.id === openId} onClick={() => open(row.id)} aria-label={`Open ${row.name}`}>{cells(row)}</TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </section>\n <Drawer open={Boolean(openId)} onOpenChange={close}>{detail}</Drawer>\n <Modal open={creating} onOpenChange={setCreating} height=\"fixed\">{createForm}</Modal>\n</div>",
|
|
19052
|
+
"constraints": [
|
|
19053
|
+
"Derive the page size from the panel height so rows fill it and Pagination sits on the bottom edge.",
|
|
19054
|
+
"Keep the page header to the title and ONE primary action; search and filters are trailing icon triggers on the tab row.",
|
|
19055
|
+
"Row checkboxes appear on hover/focus only; the header select-all is always visible.",
|
|
19056
|
+
"Mark the row whose detail is open with TableRow isActive — never a radio column.",
|
|
19057
|
+
"Put the status Chip in the Drawer header under the title; group the body into Performance and Details sections 32px apart.",
|
|
19058
|
+
"Status words are business words (Active, Scheduled, Paused, Completed, Draft, Failed) with one tone each; tabs use the same words.",
|
|
19059
|
+
"The create task is a Modal with height=\"fixed\" over the list, never a separate screen."
|
|
19060
|
+
]
|
|
19061
|
+
},
|
|
19062
|
+
{
|
|
19063
|
+
"id": "layout:collection-screen:0",
|
|
19064
|
+
"kind": "layout",
|
|
19065
|
+
"label": "shell-canvas-row",
|
|
19066
|
+
"element": "div",
|
|
19067
|
+
"slot": "shell-canvas-row",
|
|
19068
|
+
"production": "collection-screen"
|
|
19069
|
+
},
|
|
19070
|
+
{
|
|
19071
|
+
"id": "layout:collection-screen:0.0",
|
|
19072
|
+
"kind": "layout",
|
|
19073
|
+
"label": "collection-panel",
|
|
19074
|
+
"element": "section",
|
|
19075
|
+
"slot": "collection-panel",
|
|
19076
|
+
"production": "collection-screen"
|
|
19077
|
+
},
|
|
19078
|
+
{
|
|
19079
|
+
"id": "layout:collection-screen:0.0.1",
|
|
19080
|
+
"kind": "layout",
|
|
19081
|
+
"label": "control-row",
|
|
19082
|
+
"element": "div",
|
|
19083
|
+
"slot": "control-row",
|
|
19084
|
+
"production": "collection-screen"
|
|
19085
|
+
},
|
|
19086
|
+
{
|
|
19087
|
+
"id": "production:record-analytics",
|
|
19088
|
+
"kind": "production",
|
|
19089
|
+
"label": "Record analytics page",
|
|
19090
|
+
"description": "A drill-down page titled by its Breadcrumbs (parent / record) with the primary action on the same row, record Tabs, then outlined stat cards and outlined chart cards whose legends sit in their title row and whose values are printed.",
|
|
19091
|
+
"intents": [
|
|
19092
|
+
"analysis",
|
|
19093
|
+
"analytics tab",
|
|
19094
|
+
"record page",
|
|
19095
|
+
"campaign analysis",
|
|
19096
|
+
"metrics",
|
|
19097
|
+
"dashboard tab"
|
|
19098
|
+
],
|
|
19099
|
+
"story": "ADS/Components/Chart",
|
|
19100
|
+
"jsx": "<main className=\"flex min-w-0 flex-1 flex-col rounded-l bg-card\">\n <Breadcrumbs actions={<Button>Pause campaign</Button>}>\n <BreadcrumbItem href=\"/campaigns\">Voice campaigns</BreadcrumbItem>\n <BreadcrumbItem isCurrent>{campaign.name}</BreadcrumbItem>\n </Breadcrumbs>\n <Tabs value={tab} onValueChange={setTab}><TabList>{tabs}</TabList></Tabs>\n <div className=\"grid grid-cols-[repeat(auto-fill,minmax(16rem,1fr))] gap-4\">\n {stats.map(stat => (\n <section key={stat.label} className=\"rounded-l border border-tertiary p-5\">\n <p className=\"text-m text-secondary\">{stat.label}</p>\n <p className=\"mt-1 text-3xl tabular-nums\">{stat.value} <span className=\"text-m text-secondary\">{stat.of}</span></p>\n <Progress className=\"mt-3\" value={stat.percent} label={stat.label} />\n </section>\n ))}\n </div>\n <section className=\"rounded-l border border-tertiary p-5\">\n <BarChart title=\"Who was in the segment\" subtitle={scope} legendPlacement=\"header\" data={data} categoryKey=\"day\" series={series} stacked />\n </section>\n</main>",
|
|
19101
|
+
"constraints": [
|
|
19102
|
+
"Title a drill-down with Breadcrumbs (16px); no back arrow and no repeated H1.",
|
|
19103
|
+
"Give every stat and every chart its own outlined card (1px WG3, radius-l, 20px padding, flat), 16px apart.",
|
|
19104
|
+
"Keep a stat's label, number and scope 4px apart and its Progress 12px below, filling the card.",
|
|
19105
|
+
"Put chart legends in the title row (legendPlacement=\"header\") and leave showValues on — values are never hover-only."
|
|
19106
|
+
]
|
|
19107
|
+
},
|
|
19108
|
+
{
|
|
19109
|
+
"id": "layout:record-analytics:0",
|
|
19110
|
+
"kind": "layout",
|
|
19111
|
+
"label": "main",
|
|
19112
|
+
"element": "main",
|
|
19113
|
+
"production": "record-analytics"
|
|
19114
|
+
},
|
|
19115
|
+
{
|
|
19116
|
+
"id": "layout:record-analytics:0.2",
|
|
19117
|
+
"kind": "layout",
|
|
19118
|
+
"label": "stat-cards",
|
|
19119
|
+
"element": "div",
|
|
19120
|
+
"slot": "stat-cards",
|
|
19121
|
+
"production": "record-analytics"
|
|
19122
|
+
},
|
|
19123
|
+
{
|
|
19124
|
+
"id": "layout:record-analytics:0.2.0",
|
|
19125
|
+
"kind": "layout",
|
|
19126
|
+
"label": "stat-card",
|
|
19127
|
+
"element": "section",
|
|
19128
|
+
"slot": "stat-card",
|
|
19129
|
+
"production": "record-analytics"
|
|
19130
|
+
},
|
|
19131
|
+
{
|
|
19132
|
+
"id": "layout:record-analytics:0.3",
|
|
19133
|
+
"kind": "layout",
|
|
19134
|
+
"label": "chart-cards",
|
|
19135
|
+
"element": "div",
|
|
19136
|
+
"slot": "chart-cards",
|
|
19137
|
+
"production": "record-analytics"
|
|
19138
|
+
},
|
|
19139
|
+
{
|
|
19140
|
+
"id": "layout:record-analytics:0.3.0",
|
|
19141
|
+
"kind": "layout",
|
|
19142
|
+
"label": "chart-card",
|
|
19143
|
+
"element": "section",
|
|
19144
|
+
"slot": "chart-card",
|
|
19145
|
+
"production": "record-analytics"
|
|
19146
|
+
},
|
|
19147
|
+
{
|
|
19148
|
+
"id": "layout:record-analytics:0.3.1",
|
|
19149
|
+
"kind": "layout",
|
|
19150
|
+
"label": "chart-card",
|
|
19151
|
+
"element": "section",
|
|
19152
|
+
"slot": "chart-card",
|
|
19153
|
+
"production": "record-analytics"
|
|
19154
|
+
},
|
|
18240
19155
|
{
|
|
18241
19156
|
"id": "production:modal-task",
|
|
18242
19157
|
"kind": "production",
|
|
@@ -18268,7 +19183,7 @@
|
|
|
18268
19183
|
"configuration",
|
|
18269
19184
|
"toggles"
|
|
18270
19185
|
],
|
|
18271
|
-
"story": "ADS/
|
|
19186
|
+
"story": "ADS/Components/Under review/SettingList / SettingRow",
|
|
18272
19187
|
"jsx": "<Card>\n <CardHeader><CardTitle>{title}</CardTitle></CardHeader>\n <CardBody>\n <SettingList aria-label={title}>\n {settings.map(setting => <SettingRow key={setting.id} {...setting} />)}\n </SettingList>\n </CardBody>\n <CardFooter><Button>Save changes</Button></CardFooter>\n</Card>",
|
|
18273
19188
|
"constraints": [
|
|
18274
19189
|
"Use SettingRow.action for the corresponding ADS control; do not hand-roll label/action rows.",
|
|
@@ -18429,6 +19344,18 @@
|
|
|
18429
19344
|
"target": "state:CodeBlock:variant=plain",
|
|
18430
19345
|
"relation": "supports-state"
|
|
18431
19346
|
},
|
|
19347
|
+
{
|
|
19348
|
+
"id": "component:FileDropzone:supports-state:state:FileDropzone:hasFiles=true:global",
|
|
19349
|
+
"source": "component:FileDropzone",
|
|
19350
|
+
"target": "state:FileDropzone:hasFiles=true",
|
|
19351
|
+
"relation": "supports-state"
|
|
19352
|
+
},
|
|
19353
|
+
{
|
|
19354
|
+
"id": "component:FileDropzone:supports-state:state:FileDropzone:hasFiles=false:global",
|
|
19355
|
+
"source": "component:FileDropzone",
|
|
19356
|
+
"target": "state:FileDropzone:hasFiles=false",
|
|
19357
|
+
"relation": "supports-state"
|
|
19358
|
+
},
|
|
18432
19359
|
{
|
|
18433
19360
|
"id": "component:FileDropzone:supports-state:state:FileDropzone:isDragging=true:global",
|
|
18434
19361
|
"source": "component:FileDropzone",
|
|
@@ -18897,6 +19824,18 @@
|
|
|
18897
19824
|
"target": "state:Modal:position=top",
|
|
18898
19825
|
"relation": "supports-state"
|
|
18899
19826
|
},
|
|
19827
|
+
{
|
|
19828
|
+
"id": "component:Modal:supports-state:state:Modal:height=content:global",
|
|
19829
|
+
"source": "component:Modal",
|
|
19830
|
+
"target": "state:Modal:height=content",
|
|
19831
|
+
"relation": "supports-state"
|
|
19832
|
+
},
|
|
19833
|
+
{
|
|
19834
|
+
"id": "component:Modal:supports-state:state:Modal:height=fixed:global",
|
|
19835
|
+
"source": "component:Modal",
|
|
19836
|
+
"target": "state:Modal:height=fixed",
|
|
19837
|
+
"relation": "supports-state"
|
|
19838
|
+
},
|
|
18900
19839
|
{
|
|
18901
19840
|
"id": "component:ModalBody:supports-state:state:ModalBody:size=sm:global",
|
|
18902
19841
|
"source": "component:ModalBody",
|
|
@@ -18939,6 +19878,18 @@
|
|
|
18939
19878
|
"target": "state:ModalBody:position=top",
|
|
18940
19879
|
"relation": "supports-state"
|
|
18941
19880
|
},
|
|
19881
|
+
{
|
|
19882
|
+
"id": "component:ModalBody:supports-state:state:ModalBody:height=content:global",
|
|
19883
|
+
"source": "component:ModalBody",
|
|
19884
|
+
"target": "state:ModalBody:height=content",
|
|
19885
|
+
"relation": "supports-state"
|
|
19886
|
+
},
|
|
19887
|
+
{
|
|
19888
|
+
"id": "component:ModalBody:supports-state:state:ModalBody:height=fixed:global",
|
|
19889
|
+
"source": "component:ModalBody",
|
|
19890
|
+
"target": "state:ModalBody:height=fixed",
|
|
19891
|
+
"relation": "supports-state"
|
|
19892
|
+
},
|
|
18942
19893
|
{
|
|
18943
19894
|
"id": "component:ModalClose:supports-state:state:ModalClose:size=sm:global",
|
|
18944
19895
|
"source": "component:ModalClose",
|
|
@@ -18981,6 +19932,18 @@
|
|
|
18981
19932
|
"target": "state:ModalClose:position=top",
|
|
18982
19933
|
"relation": "supports-state"
|
|
18983
19934
|
},
|
|
19935
|
+
{
|
|
19936
|
+
"id": "component:ModalClose:supports-state:state:ModalClose:height=content:global",
|
|
19937
|
+
"source": "component:ModalClose",
|
|
19938
|
+
"target": "state:ModalClose:height=content",
|
|
19939
|
+
"relation": "supports-state"
|
|
19940
|
+
},
|
|
19941
|
+
{
|
|
19942
|
+
"id": "component:ModalClose:supports-state:state:ModalClose:height=fixed:global",
|
|
19943
|
+
"source": "component:ModalClose",
|
|
19944
|
+
"target": "state:ModalClose:height=fixed",
|
|
19945
|
+
"relation": "supports-state"
|
|
19946
|
+
},
|
|
18984
19947
|
{
|
|
18985
19948
|
"id": "component:ModalDescription:supports-state:state:ModalDescription:size=sm:global",
|
|
18986
19949
|
"source": "component:ModalDescription",
|
|
@@ -19023,6 +19986,18 @@
|
|
|
19023
19986
|
"target": "state:ModalDescription:position=top",
|
|
19024
19987
|
"relation": "supports-state"
|
|
19025
19988
|
},
|
|
19989
|
+
{
|
|
19990
|
+
"id": "component:ModalDescription:supports-state:state:ModalDescription:height=content:global",
|
|
19991
|
+
"source": "component:ModalDescription",
|
|
19992
|
+
"target": "state:ModalDescription:height=content",
|
|
19993
|
+
"relation": "supports-state"
|
|
19994
|
+
},
|
|
19995
|
+
{
|
|
19996
|
+
"id": "component:ModalDescription:supports-state:state:ModalDescription:height=fixed:global",
|
|
19997
|
+
"source": "component:ModalDescription",
|
|
19998
|
+
"target": "state:ModalDescription:height=fixed",
|
|
19999
|
+
"relation": "supports-state"
|
|
20000
|
+
},
|
|
19026
20001
|
{
|
|
19027
20002
|
"id": "component:ModalDrawer:supports-state:state:ModalDrawer:side=right:global",
|
|
19028
20003
|
"source": "component:ModalDrawer",
|
|
@@ -19107,6 +20082,18 @@
|
|
|
19107
20082
|
"target": "state:ModalFooter:position=top",
|
|
19108
20083
|
"relation": "supports-state"
|
|
19109
20084
|
},
|
|
20085
|
+
{
|
|
20086
|
+
"id": "component:ModalFooter:supports-state:state:ModalFooter:height=content:global",
|
|
20087
|
+
"source": "component:ModalFooter",
|
|
20088
|
+
"target": "state:ModalFooter:height=content",
|
|
20089
|
+
"relation": "supports-state"
|
|
20090
|
+
},
|
|
20091
|
+
{
|
|
20092
|
+
"id": "component:ModalFooter:supports-state:state:ModalFooter:height=fixed:global",
|
|
20093
|
+
"source": "component:ModalFooter",
|
|
20094
|
+
"target": "state:ModalFooter:height=fixed",
|
|
20095
|
+
"relation": "supports-state"
|
|
20096
|
+
},
|
|
19110
20097
|
{
|
|
19111
20098
|
"id": "component:ModalHeader:supports-state:state:ModalHeader:size=sm:global",
|
|
19112
20099
|
"source": "component:ModalHeader",
|
|
@@ -19149,6 +20136,18 @@
|
|
|
19149
20136
|
"target": "state:ModalHeader:position=top",
|
|
19150
20137
|
"relation": "supports-state"
|
|
19151
20138
|
},
|
|
20139
|
+
{
|
|
20140
|
+
"id": "component:ModalHeader:supports-state:state:ModalHeader:height=content:global",
|
|
20141
|
+
"source": "component:ModalHeader",
|
|
20142
|
+
"target": "state:ModalHeader:height=content",
|
|
20143
|
+
"relation": "supports-state"
|
|
20144
|
+
},
|
|
20145
|
+
{
|
|
20146
|
+
"id": "component:ModalHeader:supports-state:state:ModalHeader:height=fixed:global",
|
|
20147
|
+
"source": "component:ModalHeader",
|
|
20148
|
+
"target": "state:ModalHeader:height=fixed",
|
|
20149
|
+
"relation": "supports-state"
|
|
20150
|
+
},
|
|
19152
20151
|
{
|
|
19153
20152
|
"id": "component:ModalSection:supports-state:state:ModalSection:size=sm:global",
|
|
19154
20153
|
"source": "component:ModalSection",
|
|
@@ -19191,6 +20190,18 @@
|
|
|
19191
20190
|
"target": "state:ModalSection:position=top",
|
|
19192
20191
|
"relation": "supports-state"
|
|
19193
20192
|
},
|
|
20193
|
+
{
|
|
20194
|
+
"id": "component:ModalSection:supports-state:state:ModalSection:height=content:global",
|
|
20195
|
+
"source": "component:ModalSection",
|
|
20196
|
+
"target": "state:ModalSection:height=content",
|
|
20197
|
+
"relation": "supports-state"
|
|
20198
|
+
},
|
|
20199
|
+
{
|
|
20200
|
+
"id": "component:ModalSection:supports-state:state:ModalSection:height=fixed:global",
|
|
20201
|
+
"source": "component:ModalSection",
|
|
20202
|
+
"target": "state:ModalSection:height=fixed",
|
|
20203
|
+
"relation": "supports-state"
|
|
20204
|
+
},
|
|
19194
20205
|
{
|
|
19195
20206
|
"id": "component:ModalTitle:supports-state:state:ModalTitle:size=sm:global",
|
|
19196
20207
|
"source": "component:ModalTitle",
|
|
@@ -19233,6 +20244,18 @@
|
|
|
19233
20244
|
"target": "state:ModalTitle:position=top",
|
|
19234
20245
|
"relation": "supports-state"
|
|
19235
20246
|
},
|
|
20247
|
+
{
|
|
20248
|
+
"id": "component:ModalTitle:supports-state:state:ModalTitle:height=content:global",
|
|
20249
|
+
"source": "component:ModalTitle",
|
|
20250
|
+
"target": "state:ModalTitle:height=content",
|
|
20251
|
+
"relation": "supports-state"
|
|
20252
|
+
},
|
|
20253
|
+
{
|
|
20254
|
+
"id": "component:ModalTitle:supports-state:state:ModalTitle:height=fixed:global",
|
|
20255
|
+
"source": "component:ModalTitle",
|
|
20256
|
+
"target": "state:ModalTitle:height=fixed",
|
|
20257
|
+
"relation": "supports-state"
|
|
20258
|
+
},
|
|
19236
20259
|
{
|
|
19237
20260
|
"id": "component:AnswerRenderer:supports-state:state:AnswerRenderer:tone=default:global",
|
|
19238
20261
|
"source": "component:AnswerRenderer",
|
|
@@ -19353,6 +20376,12 @@
|
|
|
19353
20376
|
"target": "state:Chip:variant=outline",
|
|
19354
20377
|
"relation": "supports-state"
|
|
19355
20378
|
},
|
|
20379
|
+
{
|
|
20380
|
+
"id": "component:Chip:supports-state:state:Chip:variant=plain:global",
|
|
20381
|
+
"source": "component:Chip",
|
|
20382
|
+
"target": "state:Chip:variant=plain",
|
|
20383
|
+
"relation": "supports-state"
|
|
20384
|
+
},
|
|
19356
20385
|
{
|
|
19357
20386
|
"id": "component:Chip:supports-state:state:Chip:color=default:global",
|
|
19358
20387
|
"source": "component:Chip",
|
|
@@ -21039,6 +22068,18 @@
|
|
|
21039
22068
|
"target": "state:Table:interaction=horizontal-overflow",
|
|
21040
22069
|
"relation": "supports-state"
|
|
21041
22070
|
},
|
|
22071
|
+
{
|
|
22072
|
+
"id": "component:Table:supports-state:state:Table:interaction=hover-revealed-selection:global",
|
|
22073
|
+
"source": "component:Table",
|
|
22074
|
+
"target": "state:Table:interaction=hover-revealed-selection",
|
|
22075
|
+
"relation": "supports-state"
|
|
22076
|
+
},
|
|
22077
|
+
{
|
|
22078
|
+
"id": "component:Table:supports-state:state:Table:interaction=row-active:global",
|
|
22079
|
+
"source": "component:Table",
|
|
22080
|
+
"target": "state:Table:interaction=row-active",
|
|
22081
|
+
"relation": "supports-state"
|
|
22082
|
+
},
|
|
21042
22083
|
{
|
|
21043
22084
|
"id": "component:ResearchActivity:supports-state:state:ResearchActivity:interaction=active:global",
|
|
21044
22085
|
"source": "component:ResearchActivity",
|
|
@@ -21446,6 +22487,512 @@
|
|
|
21446
22487
|
"optional": false,
|
|
21447
22488
|
"repeat": false
|
|
21448
22489
|
},
|
|
22490
|
+
{
|
|
22491
|
+
"id": "production:collection-screen:constrained-by:principle:collection-screens:collection-screen",
|
|
22492
|
+
"source": "production:collection-screen",
|
|
22493
|
+
"target": "principle:collection-screens",
|
|
22494
|
+
"relation": "constrained-by",
|
|
22495
|
+
"production": "collection-screen"
|
|
22496
|
+
},
|
|
22497
|
+
{
|
|
22498
|
+
"id": "production:collection-screen:constrained-by:principle:record-detail-panels:collection-screen",
|
|
22499
|
+
"source": "production:collection-screen",
|
|
22500
|
+
"target": "principle:record-detail-panels",
|
|
22501
|
+
"relation": "constrained-by",
|
|
22502
|
+
"production": "collection-screen"
|
|
22503
|
+
},
|
|
22504
|
+
{
|
|
22505
|
+
"id": "production:collection-screen:constrained-by:principle:status-language:collection-screen",
|
|
22506
|
+
"source": "production:collection-screen",
|
|
22507
|
+
"target": "principle:status-language",
|
|
22508
|
+
"relation": "constrained-by",
|
|
22509
|
+
"production": "collection-screen"
|
|
22510
|
+
},
|
|
22511
|
+
{
|
|
22512
|
+
"id": "production:collection-screen:constrained-by:principle:tabs-search-opposed:collection-screen",
|
|
22513
|
+
"source": "production:collection-screen",
|
|
22514
|
+
"target": "principle:tabs-search-opposed",
|
|
22515
|
+
"relation": "constrained-by",
|
|
22516
|
+
"production": "collection-screen"
|
|
22517
|
+
},
|
|
22518
|
+
{
|
|
22519
|
+
"id": "production:collection-screen:constrained-by:principle:shell-owns-the-frame:collection-screen",
|
|
22520
|
+
"source": "production:collection-screen",
|
|
22521
|
+
"target": "principle:shell-owns-the-frame",
|
|
22522
|
+
"relation": "constrained-by",
|
|
22523
|
+
"production": "collection-screen"
|
|
22524
|
+
},
|
|
22525
|
+
{
|
|
22526
|
+
"id": "production:collection-screen:constrained-by:principle:minimal-information:collection-screen",
|
|
22527
|
+
"source": "production:collection-screen",
|
|
22528
|
+
"target": "principle:minimal-information",
|
|
22529
|
+
"relation": "constrained-by",
|
|
22530
|
+
"production": "collection-screen"
|
|
22531
|
+
},
|
|
22532
|
+
{
|
|
22533
|
+
"id": "production:collection-screen:renders:layout:collection-screen:0:collection-screen",
|
|
22534
|
+
"source": "production:collection-screen",
|
|
22535
|
+
"target": "layout:collection-screen:0",
|
|
22536
|
+
"relation": "renders",
|
|
22537
|
+
"production": "collection-screen",
|
|
22538
|
+
"slot": "shell-canvas-row",
|
|
22539
|
+
"optional": false,
|
|
22540
|
+
"repeat": false
|
|
22541
|
+
},
|
|
22542
|
+
{
|
|
22543
|
+
"id": "layout:collection-screen:0:contains:layout:collection-screen:0.0:collection-screen",
|
|
22544
|
+
"source": "layout:collection-screen:0",
|
|
22545
|
+
"target": "layout:collection-screen:0.0",
|
|
22546
|
+
"relation": "contains",
|
|
22547
|
+
"production": "collection-screen",
|
|
22548
|
+
"slot": "collection-panel",
|
|
22549
|
+
"optional": false,
|
|
22550
|
+
"repeat": false
|
|
22551
|
+
},
|
|
22552
|
+
{
|
|
22553
|
+
"id": "layout:collection-screen:0.0:contains:component:BodyPageHeader:collection-screen",
|
|
22554
|
+
"source": "layout:collection-screen:0.0",
|
|
22555
|
+
"target": "component:BodyPageHeader",
|
|
22556
|
+
"relation": "contains",
|
|
22557
|
+
"production": "collection-screen",
|
|
22558
|
+
"optional": false,
|
|
22559
|
+
"repeat": false
|
|
22560
|
+
},
|
|
22561
|
+
{
|
|
22562
|
+
"id": "component:BodyPageHeader:contains:component:Button:collection-screen",
|
|
22563
|
+
"source": "component:BodyPageHeader",
|
|
22564
|
+
"target": "component:Button",
|
|
22565
|
+
"relation": "contains",
|
|
22566
|
+
"production": "collection-screen",
|
|
22567
|
+
"slot": "primary-action",
|
|
22568
|
+
"optional": false,
|
|
22569
|
+
"repeat": false
|
|
22570
|
+
},
|
|
22571
|
+
{
|
|
22572
|
+
"id": "layout:collection-screen:0.0:contains:layout:collection-screen:0.0.1:collection-screen",
|
|
22573
|
+
"source": "layout:collection-screen:0.0",
|
|
22574
|
+
"target": "layout:collection-screen:0.0.1",
|
|
22575
|
+
"relation": "contains",
|
|
22576
|
+
"production": "collection-screen",
|
|
22577
|
+
"slot": "control-row",
|
|
22578
|
+
"optional": false,
|
|
22579
|
+
"repeat": false
|
|
22580
|
+
},
|
|
22581
|
+
{
|
|
22582
|
+
"id": "layout:collection-screen:0.0.1:contains:component:Tabs:collection-screen",
|
|
22583
|
+
"source": "layout:collection-screen:0.0.1",
|
|
22584
|
+
"target": "component:Tabs",
|
|
22585
|
+
"relation": "contains",
|
|
22586
|
+
"production": "collection-screen",
|
|
22587
|
+
"optional": false,
|
|
22588
|
+
"repeat": false
|
|
22589
|
+
},
|
|
22590
|
+
{
|
|
22591
|
+
"id": "component:Tabs:contains:component:TabList:collection-screen",
|
|
22592
|
+
"source": "component:Tabs",
|
|
22593
|
+
"target": "component:TabList",
|
|
22594
|
+
"relation": "contains",
|
|
22595
|
+
"production": "collection-screen",
|
|
22596
|
+
"optional": false,
|
|
22597
|
+
"repeat": false
|
|
22598
|
+
},
|
|
22599
|
+
{
|
|
22600
|
+
"id": "component:TabList:contains:component:Tab:collection-screen",
|
|
22601
|
+
"source": "component:TabList",
|
|
22602
|
+
"target": "component:Tab",
|
|
22603
|
+
"relation": "contains",
|
|
22604
|
+
"production": "collection-screen",
|
|
22605
|
+
"optional": false,
|
|
22606
|
+
"repeat": true,
|
|
22607
|
+
"note": "count={n}"
|
|
22608
|
+
},
|
|
22609
|
+
{
|
|
22610
|
+
"id": "layout:collection-screen:0.0.1:contains:component:SearchDisclosure:collection-screen",
|
|
22611
|
+
"source": "layout:collection-screen:0.0.1",
|
|
22612
|
+
"target": "component:SearchDisclosure",
|
|
22613
|
+
"relation": "contains",
|
|
22614
|
+
"production": "collection-screen",
|
|
22615
|
+
"slot": "trailing-search",
|
|
22616
|
+
"optional": false,
|
|
22617
|
+
"repeat": false
|
|
22618
|
+
},
|
|
22619
|
+
{
|
|
22620
|
+
"id": "layout:collection-screen:0.0.1:contains:component:Filters:collection-screen",
|
|
22621
|
+
"source": "layout:collection-screen:0.0.1",
|
|
22622
|
+
"target": "component:Filters",
|
|
22623
|
+
"relation": "contains",
|
|
22624
|
+
"production": "collection-screen",
|
|
22625
|
+
"slot": "trailing-filters",
|
|
22626
|
+
"optional": false,
|
|
22627
|
+
"repeat": false
|
|
22628
|
+
},
|
|
22629
|
+
{
|
|
22630
|
+
"id": "layout:collection-screen:0.0:contains:component:Table:collection-screen",
|
|
22631
|
+
"source": "layout:collection-screen:0.0",
|
|
22632
|
+
"target": "component:Table",
|
|
22633
|
+
"relation": "contains",
|
|
22634
|
+
"production": "collection-screen",
|
|
22635
|
+
"optional": false,
|
|
22636
|
+
"repeat": false,
|
|
22637
|
+
"note": "selectionMode=\"multiple\"; footer={<Pagination />}; page size derived from the panel height"
|
|
22638
|
+
},
|
|
22639
|
+
{
|
|
22640
|
+
"id": "component:Table:contains:component:TableHeader:collection-screen",
|
|
22641
|
+
"source": "component:Table",
|
|
22642
|
+
"target": "component:TableHeader",
|
|
22643
|
+
"relation": "contains",
|
|
22644
|
+
"production": "collection-screen",
|
|
22645
|
+
"optional": false,
|
|
22646
|
+
"repeat": false
|
|
22647
|
+
},
|
|
22648
|
+
{
|
|
22649
|
+
"id": "component:TableHeader:contains:component:TableRow:collection-screen",
|
|
22650
|
+
"source": "component:TableHeader",
|
|
22651
|
+
"target": "component:TableRow",
|
|
22652
|
+
"relation": "contains",
|
|
22653
|
+
"production": "collection-screen",
|
|
22654
|
+
"optional": false,
|
|
22655
|
+
"repeat": false
|
|
22656
|
+
},
|
|
22657
|
+
{
|
|
22658
|
+
"id": "component:TableRow:contains:component:TableColumn:collection-screen",
|
|
22659
|
+
"source": "component:TableRow",
|
|
22660
|
+
"target": "component:TableColumn",
|
|
22661
|
+
"relation": "contains",
|
|
22662
|
+
"production": "collection-screen",
|
|
22663
|
+
"optional": false,
|
|
22664
|
+
"repeat": true
|
|
22665
|
+
},
|
|
22666
|
+
{
|
|
22667
|
+
"id": "component:Table:contains:component:TableBody:collection-screen",
|
|
22668
|
+
"source": "component:Table",
|
|
22669
|
+
"target": "component:TableBody",
|
|
22670
|
+
"relation": "contains",
|
|
22671
|
+
"production": "collection-screen",
|
|
22672
|
+
"optional": false,
|
|
22673
|
+
"repeat": false
|
|
22674
|
+
},
|
|
22675
|
+
{
|
|
22676
|
+
"id": "component:TableBody:contains:component:TableRow:collection-screen",
|
|
22677
|
+
"source": "component:TableBody",
|
|
22678
|
+
"target": "component:TableRow",
|
|
22679
|
+
"relation": "contains",
|
|
22680
|
+
"production": "collection-screen",
|
|
22681
|
+
"optional": false,
|
|
22682
|
+
"repeat": true,
|
|
22683
|
+
"note": "isActive while its detail is open"
|
|
22684
|
+
},
|
|
22685
|
+
{
|
|
22686
|
+
"id": "component:TableRow:contains:component:TableCell:collection-screen",
|
|
22687
|
+
"source": "component:TableRow",
|
|
22688
|
+
"target": "component:TableCell",
|
|
22689
|
+
"relation": "contains",
|
|
22690
|
+
"production": "collection-screen",
|
|
22691
|
+
"optional": false,
|
|
22692
|
+
"repeat": true
|
|
22693
|
+
},
|
|
22694
|
+
{
|
|
22695
|
+
"id": "layout:collection-screen:0:contains:component:Drawer:collection-screen",
|
|
22696
|
+
"source": "layout:collection-screen:0",
|
|
22697
|
+
"target": "component:Drawer",
|
|
22698
|
+
"relation": "contains",
|
|
22699
|
+
"production": "collection-screen",
|
|
22700
|
+
"slot": "selected-record-detail",
|
|
22701
|
+
"optional": true,
|
|
22702
|
+
"repeat": false
|
|
22703
|
+
},
|
|
22704
|
+
{
|
|
22705
|
+
"id": "component:Drawer:contains:component:DrawerHeader:collection-screen",
|
|
22706
|
+
"source": "component:Drawer",
|
|
22707
|
+
"target": "component:DrawerHeader",
|
|
22708
|
+
"relation": "contains",
|
|
22709
|
+
"production": "collection-screen",
|
|
22710
|
+
"optional": false,
|
|
22711
|
+
"repeat": false
|
|
22712
|
+
},
|
|
22713
|
+
{
|
|
22714
|
+
"id": "component:DrawerHeader:contains:component:DrawerTitle:collection-screen",
|
|
22715
|
+
"source": "component:DrawerHeader",
|
|
22716
|
+
"target": "component:DrawerTitle",
|
|
22717
|
+
"relation": "contains",
|
|
22718
|
+
"production": "collection-screen",
|
|
22719
|
+
"optional": false,
|
|
22720
|
+
"repeat": false
|
|
22721
|
+
},
|
|
22722
|
+
{
|
|
22723
|
+
"id": "component:DrawerHeader:contains:component:Chip:collection-screen",
|
|
22724
|
+
"source": "component:DrawerHeader",
|
|
22725
|
+
"target": "component:Chip",
|
|
22726
|
+
"relation": "contains",
|
|
22727
|
+
"production": "collection-screen",
|
|
22728
|
+
"slot": "status-under-title",
|
|
22729
|
+
"optional": false,
|
|
22730
|
+
"repeat": false
|
|
22731
|
+
},
|
|
22732
|
+
{
|
|
22733
|
+
"id": "component:Drawer:contains:component:DrawerBody:collection-screen",
|
|
22734
|
+
"source": "component:Drawer",
|
|
22735
|
+
"target": "component:DrawerBody",
|
|
22736
|
+
"relation": "contains",
|
|
22737
|
+
"production": "collection-screen",
|
|
22738
|
+
"optional": false,
|
|
22739
|
+
"repeat": false,
|
|
22740
|
+
"note": "Performance (stat cards + chart card), then Details (label–value rows)"
|
|
22741
|
+
},
|
|
22742
|
+
{
|
|
22743
|
+
"id": "component:Drawer:contains:component:DrawerFooter:collection-screen",
|
|
22744
|
+
"source": "component:Drawer",
|
|
22745
|
+
"target": "component:DrawerFooter",
|
|
22746
|
+
"relation": "contains",
|
|
22747
|
+
"production": "collection-screen",
|
|
22748
|
+
"optional": false,
|
|
22749
|
+
"repeat": false
|
|
22750
|
+
},
|
|
22751
|
+
{
|
|
22752
|
+
"id": "layout:collection-screen:0:contains:component:Modal:collection-screen",
|
|
22753
|
+
"source": "layout:collection-screen:0",
|
|
22754
|
+
"target": "component:Modal",
|
|
22755
|
+
"relation": "contains",
|
|
22756
|
+
"production": "collection-screen",
|
|
22757
|
+
"slot": "create-task",
|
|
22758
|
+
"optional": true,
|
|
22759
|
+
"repeat": false,
|
|
22760
|
+
"note": "height=\"fixed\""
|
|
22761
|
+
},
|
|
22762
|
+
{
|
|
22763
|
+
"id": "component:Modal:contains:component:ModalHeader:collection-screen",
|
|
22764
|
+
"source": "component:Modal",
|
|
22765
|
+
"target": "component:ModalHeader",
|
|
22766
|
+
"relation": "contains",
|
|
22767
|
+
"production": "collection-screen",
|
|
22768
|
+
"optional": false,
|
|
22769
|
+
"repeat": false
|
|
22770
|
+
},
|
|
22771
|
+
{
|
|
22772
|
+
"id": "component:ModalHeader:contains:component:ModalTitle:collection-screen",
|
|
22773
|
+
"source": "component:ModalHeader",
|
|
22774
|
+
"target": "component:ModalTitle",
|
|
22775
|
+
"relation": "contains",
|
|
22776
|
+
"production": "collection-screen",
|
|
22777
|
+
"optional": false,
|
|
22778
|
+
"repeat": false
|
|
22779
|
+
},
|
|
22780
|
+
{
|
|
22781
|
+
"id": "component:Modal:contains:component:ModalBody:collection-screen",
|
|
22782
|
+
"source": "component:Modal",
|
|
22783
|
+
"target": "component:ModalBody",
|
|
22784
|
+
"relation": "contains",
|
|
22785
|
+
"production": "collection-screen",
|
|
22786
|
+
"optional": false,
|
|
22787
|
+
"repeat": false
|
|
22788
|
+
},
|
|
22789
|
+
{
|
|
22790
|
+
"id": "component:ModalBody:contains:component:InputField:collection-screen",
|
|
22791
|
+
"source": "component:ModalBody",
|
|
22792
|
+
"target": "component:InputField",
|
|
22793
|
+
"relation": "contains",
|
|
22794
|
+
"production": "collection-screen",
|
|
22795
|
+
"optional": false,
|
|
22796
|
+
"repeat": false
|
|
22797
|
+
},
|
|
22798
|
+
{
|
|
22799
|
+
"id": "component:ModalBody:contains:component:SegmentedControl:collection-screen",
|
|
22800
|
+
"source": "component:ModalBody",
|
|
22801
|
+
"target": "component:SegmentedControl",
|
|
22802
|
+
"relation": "contains",
|
|
22803
|
+
"production": "collection-screen",
|
|
22804
|
+
"optional": false,
|
|
22805
|
+
"repeat": false
|
|
22806
|
+
},
|
|
22807
|
+
{
|
|
22808
|
+
"id": "component:ModalBody:contains:component:FileDropzone:collection-screen",
|
|
22809
|
+
"source": "component:ModalBody",
|
|
22810
|
+
"target": "component:FileDropzone",
|
|
22811
|
+
"relation": "contains",
|
|
22812
|
+
"production": "collection-screen",
|
|
22813
|
+
"optional": true,
|
|
22814
|
+
"repeat": false
|
|
22815
|
+
},
|
|
22816
|
+
{
|
|
22817
|
+
"id": "component:Modal:contains:component:ModalFooter:collection-screen",
|
|
22818
|
+
"source": "component:Modal",
|
|
22819
|
+
"target": "component:ModalFooter",
|
|
22820
|
+
"relation": "contains",
|
|
22821
|
+
"production": "collection-screen",
|
|
22822
|
+
"optional": false,
|
|
22823
|
+
"repeat": false
|
|
22824
|
+
},
|
|
22825
|
+
{
|
|
22826
|
+
"id": "production:record-analytics:constrained-by:principle:analytics-surfaces:record-analytics",
|
|
22827
|
+
"source": "production:record-analytics",
|
|
22828
|
+
"target": "principle:analytics-surfaces",
|
|
22829
|
+
"relation": "constrained-by",
|
|
22830
|
+
"production": "record-analytics"
|
|
22831
|
+
},
|
|
22832
|
+
{
|
|
22833
|
+
"id": "production:record-analytics:constrained-by:principle:leading-back-navigation:record-analytics",
|
|
22834
|
+
"source": "production:record-analytics",
|
|
22835
|
+
"target": "principle:leading-back-navigation",
|
|
22836
|
+
"relation": "constrained-by",
|
|
22837
|
+
"production": "record-analytics"
|
|
22838
|
+
},
|
|
22839
|
+
{
|
|
22840
|
+
"id": "production:record-analytics:constrained-by:principle:status-language:record-analytics",
|
|
22841
|
+
"source": "production:record-analytics",
|
|
22842
|
+
"target": "principle:status-language",
|
|
22843
|
+
"relation": "constrained-by",
|
|
22844
|
+
"production": "record-analytics"
|
|
22845
|
+
},
|
|
22846
|
+
{
|
|
22847
|
+
"id": "production:record-analytics:constrained-by:principle:responsive-container-fluid:record-analytics",
|
|
22848
|
+
"source": "production:record-analytics",
|
|
22849
|
+
"target": "principle:responsive-container-fluid",
|
|
22850
|
+
"relation": "constrained-by",
|
|
22851
|
+
"production": "record-analytics"
|
|
22852
|
+
},
|
|
22853
|
+
{
|
|
22854
|
+
"id": "production:record-analytics:renders:layout:record-analytics:0:record-analytics",
|
|
22855
|
+
"source": "production:record-analytics",
|
|
22856
|
+
"target": "layout:record-analytics:0",
|
|
22857
|
+
"relation": "renders",
|
|
22858
|
+
"production": "record-analytics",
|
|
22859
|
+
"optional": false,
|
|
22860
|
+
"repeat": false
|
|
22861
|
+
},
|
|
22862
|
+
{
|
|
22863
|
+
"id": "layout:record-analytics:0:contains:component:Breadcrumbs:record-analytics",
|
|
22864
|
+
"source": "layout:record-analytics:0",
|
|
22865
|
+
"target": "component:Breadcrumbs",
|
|
22866
|
+
"relation": "contains",
|
|
22867
|
+
"production": "record-analytics",
|
|
22868
|
+
"optional": false,
|
|
22869
|
+
"repeat": false
|
|
22870
|
+
},
|
|
22871
|
+
{
|
|
22872
|
+
"id": "component:Breadcrumbs:contains:component:BreadcrumbItem:record-analytics",
|
|
22873
|
+
"source": "component:Breadcrumbs",
|
|
22874
|
+
"target": "component:BreadcrumbItem",
|
|
22875
|
+
"relation": "contains",
|
|
22876
|
+
"production": "record-analytics",
|
|
22877
|
+
"optional": false,
|
|
22878
|
+
"repeat": true
|
|
22879
|
+
},
|
|
22880
|
+
{
|
|
22881
|
+
"id": "component:Breadcrumbs:contains:component:Button:record-analytics",
|
|
22882
|
+
"source": "component:Breadcrumbs",
|
|
22883
|
+
"target": "component:Button",
|
|
22884
|
+
"relation": "contains",
|
|
22885
|
+
"production": "record-analytics",
|
|
22886
|
+
"slot": "actions",
|
|
22887
|
+
"optional": false,
|
|
22888
|
+
"repeat": false
|
|
22889
|
+
},
|
|
22890
|
+
{
|
|
22891
|
+
"id": "layout:record-analytics:0:contains:component:Tabs:record-analytics",
|
|
22892
|
+
"source": "layout:record-analytics:0",
|
|
22893
|
+
"target": "component:Tabs",
|
|
22894
|
+
"relation": "contains",
|
|
22895
|
+
"production": "record-analytics",
|
|
22896
|
+
"optional": false,
|
|
22897
|
+
"repeat": false
|
|
22898
|
+
},
|
|
22899
|
+
{
|
|
22900
|
+
"id": "component:Tabs:contains:component:TabList:record-analytics",
|
|
22901
|
+
"source": "component:Tabs",
|
|
22902
|
+
"target": "component:TabList",
|
|
22903
|
+
"relation": "contains",
|
|
22904
|
+
"production": "record-analytics",
|
|
22905
|
+
"optional": false,
|
|
22906
|
+
"repeat": false
|
|
22907
|
+
},
|
|
22908
|
+
{
|
|
22909
|
+
"id": "component:TabList:contains:component:Tab:record-analytics",
|
|
22910
|
+
"source": "component:TabList",
|
|
22911
|
+
"target": "component:Tab",
|
|
22912
|
+
"relation": "contains",
|
|
22913
|
+
"production": "record-analytics",
|
|
22914
|
+
"optional": false,
|
|
22915
|
+
"repeat": true
|
|
22916
|
+
},
|
|
22917
|
+
{
|
|
22918
|
+
"id": "layout:record-analytics:0:contains:layout:record-analytics:0.2:record-analytics",
|
|
22919
|
+
"source": "layout:record-analytics:0",
|
|
22920
|
+
"target": "layout:record-analytics:0.2",
|
|
22921
|
+
"relation": "contains",
|
|
22922
|
+
"production": "record-analytics",
|
|
22923
|
+
"slot": "stat-cards",
|
|
22924
|
+
"optional": false,
|
|
22925
|
+
"repeat": false
|
|
22926
|
+
},
|
|
22927
|
+
{
|
|
22928
|
+
"id": "layout:record-analytics:0.2:contains:layout:record-analytics:0.2.0:record-analytics",
|
|
22929
|
+
"source": "layout:record-analytics:0.2",
|
|
22930
|
+
"target": "layout:record-analytics:0.2.0",
|
|
22931
|
+
"relation": "contains",
|
|
22932
|
+
"production": "record-analytics",
|
|
22933
|
+
"slot": "stat-card",
|
|
22934
|
+
"optional": false,
|
|
22935
|
+
"repeat": true
|
|
22936
|
+
},
|
|
22937
|
+
{
|
|
22938
|
+
"id": "layout:record-analytics:0.2.0:contains:component:Progress:record-analytics",
|
|
22939
|
+
"source": "layout:record-analytics:0.2.0",
|
|
22940
|
+
"target": "component:Progress",
|
|
22941
|
+
"relation": "contains",
|
|
22942
|
+
"production": "record-analytics",
|
|
22943
|
+
"optional": false,
|
|
22944
|
+
"repeat": false
|
|
22945
|
+
},
|
|
22946
|
+
{
|
|
22947
|
+
"id": "layout:record-analytics:0:contains:layout:record-analytics:0.3:record-analytics",
|
|
22948
|
+
"source": "layout:record-analytics:0",
|
|
22949
|
+
"target": "layout:record-analytics:0.3",
|
|
22950
|
+
"relation": "contains",
|
|
22951
|
+
"production": "record-analytics",
|
|
22952
|
+
"slot": "chart-cards",
|
|
22953
|
+
"optional": false,
|
|
22954
|
+
"repeat": false
|
|
22955
|
+
},
|
|
22956
|
+
{
|
|
22957
|
+
"id": "layout:record-analytics:0.3:contains:layout:record-analytics:0.3.0:record-analytics",
|
|
22958
|
+
"source": "layout:record-analytics:0.3",
|
|
22959
|
+
"target": "layout:record-analytics:0.3.0",
|
|
22960
|
+
"relation": "contains",
|
|
22961
|
+
"production": "record-analytics",
|
|
22962
|
+
"slot": "chart-card",
|
|
22963
|
+
"optional": false,
|
|
22964
|
+
"repeat": false
|
|
22965
|
+
},
|
|
22966
|
+
{
|
|
22967
|
+
"id": "layout:record-analytics:0.3.0:contains:component:BarChart:record-analytics",
|
|
22968
|
+
"source": "layout:record-analytics:0.3.0",
|
|
22969
|
+
"target": "component:BarChart",
|
|
22970
|
+
"relation": "contains",
|
|
22971
|
+
"production": "record-analytics",
|
|
22972
|
+
"optional": false,
|
|
22973
|
+
"repeat": false,
|
|
22974
|
+
"note": "title, subtitle, legendPlacement=\"header\""
|
|
22975
|
+
},
|
|
22976
|
+
{
|
|
22977
|
+
"id": "layout:record-analytics:0.3:contains:layout:record-analytics:0.3.1:record-analytics",
|
|
22978
|
+
"source": "layout:record-analytics:0.3",
|
|
22979
|
+
"target": "layout:record-analytics:0.3.1",
|
|
22980
|
+
"relation": "contains",
|
|
22981
|
+
"production": "record-analytics",
|
|
22982
|
+
"slot": "chart-card",
|
|
22983
|
+
"optional": false,
|
|
22984
|
+
"repeat": false
|
|
22985
|
+
},
|
|
22986
|
+
{
|
|
22987
|
+
"id": "layout:record-analytics:0.3.1:contains:component:LineChart:record-analytics",
|
|
22988
|
+
"source": "layout:record-analytics:0.3.1",
|
|
22989
|
+
"target": "component:LineChart",
|
|
22990
|
+
"relation": "contains",
|
|
22991
|
+
"production": "record-analytics",
|
|
22992
|
+
"optional": false,
|
|
22993
|
+
"repeat": false,
|
|
22994
|
+
"note": "title, subtitle, legendPlacement=\"header\""
|
|
22995
|
+
},
|
|
21449
22996
|
{
|
|
21450
22997
|
"id": "production:modal-task:constrained-by:principle:minimal-information:modal-task",
|
|
21451
22998
|
"source": "production:modal-task",
|