@czi-sds/mcp 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -204,6 +204,11 @@
204
204
  "package": "@czi-sds/components",
205
205
  "source": "packages/components/src/core/PreComposedTable/__storybook__/docs/content.html"
206
206
  },
207
+ "ProteinStructureViewer": {
208
+ "file": "ProteinStructureViewer.md",
209
+ "package": "@czi-sds/data-viz",
210
+ "source": "packages/data-viz/src/core/ProteinStructureViewer/__storybook__/docs/content.html"
211
+ },
207
212
  "SegmentedControl": {
208
213
  "file": "SegmentedControl.md",
209
214
  "package": "@czi-sds/components",
@@ -58,5 +58,5 @@
58
58
  "TooltipCondensed",
59
59
  "TooltipTable"
60
60
  ],
61
- "data-viz": ["HeatmapChart", "StackedBarChart"]
61
+ "data-viz": ["HeatmapChart", "ProteinStructureViewer", "StackedBarChart"]
62
62
  }
@@ -10,7 +10,7 @@
10
10
  "defaultValue": "default",
11
11
  "description": "Validation styling on the search field. Single column only; the multi-column field does not take it.",
12
12
  "isRequired": false,
13
- "type": "InputSearchProps"
13
+ "type": "\"default\" | \"negative\" | \"notice\" | \"positive\""
14
14
  },
15
15
  "keepSearchOnSelect": {
16
16
  "defaultValue": false,
@@ -44,12 +44,12 @@
44
44
  "value": {
45
45
  "description": "The selection. An array when multiple, and a record keyed by column name when there is more than one column.",
46
46
  "isRequired": false,
47
- "type": "string | Exclusive<AutocompleteOptionBasic, AutocompleteOptionComponent> | Exclusive<AutocompleteOptionComponent, AutocompleteOptionBasic> | Record<string | number | symbol, AutocompleteValue<T, Multiple, DisableClearable, FreeSolo>> | (T | AutocompleteFreeSoloValueMapping<FreeSolo>)[] | AutocompleteOptionBasic & { component?: undefined; } | AutocompleteOptionComponent & { details?: undefined; icon?: undefined; count?: undefined; sdsIconProps?: undefined; }"
47
+ "type": "string | Exclusive<AutocompleteOptionBasic, AutocompleteOptionComponent> | Exclusive<AutocompleteOptionComponent, AutocompleteOptionBasic> | Record<string | number | symbol, AutocompleteValue<T, Multiple, DisableClearable, FreeSolo>> | (T | AutocompleteFreeSoloValueMapping<FreeSolo>)[] | AutocompleteOptionBasic & { component?: undefined; } | AutocompleteOptionComponent & { details?: undefined; icon?: undefined; count?: undefined; sdsIconProps?: undefined; } | null"
48
48
  },
49
49
  "onInputChange": {
50
50
  "description": "Callback fired when the input value changes.\n@param event The event source of the callback.\n@param value The new value of the text input.\n@param reason Can be: `\"input\"` (user input), `\"reset\"` (programmatic change), `\"clear\"`, `\"blur\"`, `\"selectOption\"`, `\"removeOption\"`",
51
51
  "isRequired": false,
52
- "type": "((event: SyntheticEvent"
52
+ "type": "((event: SyntheticEvent<Element, Event>, value: string, reason: AutocompleteInputChangeReason) => void) & ((event: SyntheticEvent<...>, value: string, reason: AutocompleteInputChangeReason) => void)"
53
53
  },
54
54
  "search": {
55
55
  "defaultValue": false,
@@ -75,7 +75,7 @@
75
75
  "InputBaseProps": {
76
76
  "description": "Props for the search field. This is the way in: SDS supplies renderInput itself.",
77
77
  "isRequired": false,
78
- "type": "InputSearchProps"
78
+ "type": "Partial<InputSearchProps>"
79
79
  },
80
80
  "renderInput": {
81
81
  "defaultValue": "an SDS InputSearch",
@@ -36,7 +36,7 @@
36
36
  "sdsIconProps": {
37
37
  "description": "Additional props to be passed to the icon component.",
38
38
  "isRequired": false,
39
- "type": "IconProps<string | number | symbol>"
39
+ "type": "Partial<IconProps<keyof IconNameToSizes>>"
40
40
  },
41
41
  "sdsType": {
42
42
  "description": "Required. The primary variant fills the Banner with the intent's primary surface color and uses the on-fill text color. The secondary variant uses the intent's secondary surface color with the standard primary text color.",
@@ -57,7 +57,7 @@
57
57
  "sdsIconProps": {
58
58
  "description": "Props forwarded to the Icon component when icon is given as a name.",
59
59
  "isRequired": false,
60
- "type": "IconProps<string | number | symbol>"
60
+ "type": "Partial<IconProps>"
61
61
  },
62
62
  "sdsStage": {
63
63
  "defaultValue": "open",
@@ -90,7 +90,7 @@
90
90
  "tooltipProps": {
91
91
  "description": "Passed to the Tooltip, and overrides the defaults the cell sets (title, subtitle, arrow, dark style, no leave delay).",
92
92
  "isRequired": false,
93
- "type": "TooltipProps"
93
+ "type": "Partial<TooltipProps>"
94
94
  },
95
95
  "verticalAlign": {
96
96
  "defaultValue": "top",
@@ -52,7 +52,7 @@
52
52
  "tooltipProps": {
53
53
  "description": "Passed to the Tooltip, and overrides the defaults the header sets (arrow, top-start placement, dark style).",
54
54
  "isRequired": false,
55
- "type": "TooltipProps"
55
+ "type": "Partial<TooltipProps>"
56
56
  },
57
57
  "tooltipSubtitle": {
58
58
  "description": "A second line below the tooltip's title.",
@@ -10,7 +10,7 @@
10
10
  "defaultValue": "{ sdsStyle: minimal }",
11
11
  "description": "Passed straight to the InputDropdown that opens the filter. Note that supplying it replaces the default, so a filter that should stay minimal needs sdsStyle passed again alongside whatever else it sets.",
12
12
  "isRequired": false,
13
- "type": "InputDropdownPropsType"
13
+ "type": "Partial<InputDropdownProps>"
14
14
  },
15
15
  "isTriggerChangeOnOptionClick": {
16
16
  "defaultValue": false,
@@ -16,7 +16,7 @@
16
16
  "classes": {
17
17
  "description": "Override or extend the styles applied to the component.",
18
18
  "isRequired": false,
19
- "type": "complex"
19
+ "type": "{ cardPaper?: string | undefined; cardContent?: string | undefined; cardHeader?: string | undefined; cardMedia?: string | undefined; cardOverline?: string | undefined; cardTitle?: string | undefined; cardSubtitle?: string | undefined; cardMetadata?: string | undefined; cardActions?: string | undefined; clickableCard..."
20
20
  },
21
21
  "clickableCard": {
22
22
  "defaultValue": false,
@@ -27,7 +27,7 @@
27
27
  "clickableCardProps": {
28
28
  "description": "Props forwarded to the clickable card wrapper when clickableCard is true, including href and target to make the whole card a link.",
29
29
  "isRequired": false,
30
- "type": "Partial<ButtonProps & { target?: HTMLAttributeAnchorTarget; }>"
30
+ "type": "Partial<ButtonProps & { target?: HTMLAttributeAnchorTarget | undefined; }>"
31
31
  },
32
32
  "decorativeBorder": {
33
33
  "defaultValue": false,
@@ -4,12 +4,12 @@
4
4
  "DropdownMenuProps": {
5
5
  "description": "These props are directly passed to the underlying DropdownMenu component, customizing its behavior. It is also the way to reach the menu's PopperComponent, PaperComponent and placement.",
6
6
  "isRequired": false,
7
- "type": "SdsDropdownMenuProps<T, Multiple, DisableClearable, FreeSolo>"
7
+ "type": "Partial<DropdownMenuProps>"
8
8
  },
9
9
  "InputDropdownProps": {
10
10
  "description": "These props are directly passed to the underlying InputDropdown component, customizing its behavior.",
11
11
  "isRequired": false,
12
- "type": "InputDropdownPropsType"
12
+ "type": "Partial<InputDropdownPropsType>"
13
13
  },
14
14
  "buttonPosition": {
15
15
  "defaultValue": "left",
@@ -55,7 +55,7 @@
55
55
  "onChange": {
56
56
  "description": "Callback fired when the value changes.\n@param event The event source of the callback.\n@param value The new value of the component.\n@param reason One of \"createOption\", \"selectOption\", \"removeOption\", \"blur\" or \"clear\".\n@param details",
57
57
  "isRequired": false,
58
- "type": "(event: SyntheticEvent"
58
+ "type": "(event: SyntheticEvent<Element, Event>, value: AutocompleteValue<T, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails<...> | undefined) => void"
59
59
  },
60
60
  "onClose": {
61
61
  "description": "Callback fired when the popup requests to be closed.\nUse in controlled mode (see open).\n@param event The event source of the callback.\n@param reason Can be: `\"toggleInput\"`, `\"escape\"`, `\"selectOption\"`, `\"removeOption\"`, `\"blur\"`.",
@@ -92,7 +92,7 @@
92
92
  "onInputChange": {
93
93
  "description": "Callback fired when the input value changes.\n@param event The event source of the callback.\n@param value The new value of the text input.\n@param reason Can be: `\"input\"` (user input), `\"reset\"` (programmatic change), `\"clear\"`, `\"blur\"`, `\"selectOption\"`, `\"removeOption\"`",
94
94
  "isRequired": false,
95
- "type": "((event: SyntheticEvent"
95
+ "type": "((event: SyntheticEvent<Element, Event>, value: string, reason: AutocompleteInputChangeReason) => void) & ((event: SyntheticEvent<...>, value: string, reason: AutocompleteInputChangeReason) => void)"
96
96
  },
97
97
  "InputDropdownComponent": {
98
98
  "defaultValue": "InputDropdown",
@@ -65,7 +65,7 @@
65
65
  "anchorEl": {
66
66
  "description": "Required. The element the menu is positioned against, usually the control that opens it. Until it is set the menu renders an empty container: the list is only mounted once there is something to anchor it to. See the MUI Popper API .",
67
67
  "isRequired": true,
68
- "type": "HTMLElement"
68
+ "type": "HTMLElement | null"
69
69
  },
70
70
  "children": {
71
71
  "description": "Rendered inside the menu below the list, for footers such as an apply button.",
@@ -80,7 +80,7 @@
80
80
  "InputBaseProps": {
81
81
  "description": "Passed to the InputSearch the search prop renders. The menu sets autoFocus from isSearchAutoFocus and onClick to a no-op after these, so those two are the menu's to decide.",
82
82
  "isRequired": false,
83
- "type": "InputSearchProps"
83
+ "type": "Partial<InputSearchProps>"
84
84
  },
85
85
  "isOptionEqualToValue": {
86
86
  "defaultValue": "(option, val) => option.name === val.name",
@@ -114,7 +114,7 @@
114
114
  "onInputChange": {
115
115
  "description": "Called as the search text changes; see more in the MUI Autocomplete API or in the Recipes section. Signature: function(event: SyntheticEvent, value: string, reason: AutocompleteInputChangeReason) => void",
116
116
  "isRequired": false,
117
- "type": "(event: SyntheticEvent"
117
+ "type": "(event: SyntheticEvent<Element, Event>, value: string, reason: AutocompleteInputChangeReason) => void"
118
118
  },
119
119
  "onOpen": {
120
120
  "description": "Called when the list asks to open. Signature: function(event: SyntheticEvent) => void",
@@ -76,7 +76,7 @@
76
76
  "defaultValue": "a 2–4px border",
77
77
  "description": "How a cell is drawn while the pointer is over it. Takes the same shape as\n`itemStyle`: color, border, opacity.\nhttps://echarts.apache.org/en/option.html#series-scatter.emphasis",
78
78
  "isRequired": false,
79
- "type": "ScatterStateOption"
79
+ "type": "ScatterStateOption<CallbackDataParams> & { focus?: DefaultEmphasisFocus | undefined; scale?: number | boolean | undefined; } & { ...; }"
80
80
  },
81
81
  "dataZoom": {
82
82
  "defaultValue": "the camera window",
@@ -88,7 +88,7 @@
88
88
  "defaultValue": "fills the container",
89
89
  "description": "Where the plotting area sits inside the container. The function form\nreceives the computed default, for insetting it without recomputing the\nsize.\nhttps://echarts.apache.org/en/option.html#grid",
90
90
  "isRequired": false,
91
- "type": "GridOption | GridOption[] | (defaultOption: GridOption | GridOption[]) => GridOption | GridOption[]"
91
+ "type": "GridOption | GridOption[] | (defaultOption: GridOption | GridOption[] | undefined) => GridOption | GridOption[] | undefined"
92
92
  },
93
93
  "options": {
94
94
  "description": "Anything else ECharts understands, merged over the generated options.\nhttps://echarts.apache.org/en/option.html",
@@ -32,7 +32,7 @@
32
32
  "defaultValue": {},
33
33
  "description": "Class names for the internal elements: root, labelCaptionContainer, label,\ncaption, checkbox, checkboxCheckedIcon, checkboxDefaultIcon, and\ncheckboxIndeterminateIcon.",
34
34
  "isRequired": false,
35
- "type": "complex"
35
+ "type": "{ root?: string | undefined; labelCaptionContainer?: string | undefined; label?: string | undefined; caption?: string | undefined; checkbox?: string | undefined; checkboxCheckedIcon?: string | undefined; checkboxDefaultIcon?: string | undefined; checkboxIndeterminateIcon?: string | undefined; }"
36
36
  },
37
37
  "checkboxProps": {
38
38
  "defaultValue": {},
@@ -9,7 +9,7 @@
9
9
  "classes": {
10
10
  "description": "A class name for each part of the input, for styling one of them without reaching through the DOM: root, label, labelDetailsWrapper, contentWrapper, details, counter, iconWrapper, chevronIcon and minimalDetails.",
11
11
  "isRequired": false,
12
- "type": "complex"
12
+ "type": "{ root?: string | undefined; label?: string | undefined; labelDetailsWrapper?: string | undefined; contentWrapper?: string | undefined; details?: string | undefined; counter?: string | undefined; iconWrapper?: string | undefined; chevronIcon?: string | undefined; minimalDetails?: string | undefined; }"
13
13
  },
14
14
  "disabled": {
15
15
  "defaultValue": false,
@@ -32,7 +32,7 @@
32
32
  "defaultValue": {},
33
33
  "description": "Class names for the internal elements: root, labelCaptionContainer, label,\ncaption, radioButton, radioCheckedIcon, radioCheckedIconDot, and\nradioDefaultIcon.",
34
34
  "isRequired": false,
35
- "type": "complex"
35
+ "type": "{ root?: string | undefined; labelCaptionContainer?: string | undefined; label?: string | undefined; caption?: string | undefined; radioButton?: string | undefined; radioCheckedIcon?: string | undefined; radioCheckedIconDot?: string | undefined; radioDefaultIcon?: string | undefined; }"
36
36
  },
37
37
  "value": {
38
38
  "description": "The value a RadioGroup compares against to decide whether this radio is\nselected. It also backs the label and caption element ids, so give every\nradio a unique one.",
@@ -39,7 +39,7 @@
39
39
  "defaultValue": {},
40
40
  "description": "Override or extend the styles applied to the component.",
41
41
  "isRequired": false,
42
- "type": "Partial"
42
+ "type": "Partial<TextFieldClasses> & { root?: string | undefined; label?: string | undefined; input?: string | undefined; endAdornment?: string | undefined; startAdornment?: string | undefined; clearButton?: string | undefined; searchButton?: string | undefined; }"
43
43
  },
44
44
  "handleSubmit": {
45
45
  "defaultValue": "function(value: string) => void",
@@ -29,7 +29,7 @@
29
29
  "defaultValue": 1,
30
30
  "description": "The granularity with which the slider can step through values. (A \"discrete\" slider.)\nThe `min` prop serves as the origin for the valid values.\nWe recommend (max - min) to be evenly divisible by the step.\n\nWhen step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.",
31
31
  "isRequired": false,
32
- "type": "number"
32
+ "type": "number | null"
33
33
  },
34
34
  "valueLabelDisplay": {
35
35
  "defaultValue": "off",
@@ -44,7 +44,7 @@
44
44
  "defaultValue": {},
45
45
  "description": "Override or extend the styles applied to the component.",
46
46
  "isRequired": false,
47
- "type": "Partial"
47
+ "type": "Partial<TextFieldClasses> & { root?: string | undefined; label?: string | undefined; input?: string | undefined; endAdornment?: string | undefined; startAdornment?: string | undefined; clearButton?: string | undefined; searchButton?: string | undefined; }"
48
48
  }
49
49
  }
50
50
  }
@@ -26,7 +26,7 @@
26
26
  "sdsIconProps": {
27
27
  "description": "Enables you to pass additional props to customize the SDS icon within the menu item.",
28
28
  "isRequired": false,
29
- "type": "IconProps<IconName>"
29
+ "type": "function"
30
30
  },
31
31
  "sdsStyle": {
32
32
  "defaultValue": "determinate",
@@ -22,7 +22,7 @@
22
22
  "onChange": {
23
23
  "description": "(value: number, event?: React.SyntheticEvent, type?: \"click\" | \"scroll\") => void. Called when the highlighted item changes, with its index and what caused the change. For a scroll the event is synthesized, not a real DOM event.",
24
24
  "isRequired": false,
25
- "type": "\"scroll\" | \"click\""
25
+ "type": "(value: number, event?: SyntheticEvent<Element, Event> | undefined, type?: \"scroll\" | \"click\" | undefined) => void"
26
26
  },
27
27
  "title": {
28
28
  "description": "The item's label. It is also kebab-cased into the tab's id, so keep titles distinct.",
@@ -35,7 +35,7 @@
35
35
  "sdsIconProps": {
36
36
  "description": "Props forwarded to the Icon component when icon is given as a name.",
37
37
  "isRequired": false,
38
- "type": "IconProps<string | number | symbol>"
38
+ "type": "Partial<IconProps>"
39
39
  },
40
40
  "slideDirection": {
41
41
  "defaultValue": "left",
@@ -23,7 +23,7 @@
23
23
  "defaultValue": "{\nenter: theme.transitions.duration.enteringScreen,\nexit: theme.transitions.duration.leavingScreen,\n}",
24
24
  "description": "The duration for the transition, in milliseconds.\nYou may specify a single timeout for all transitions, or individually with an object.",
25
25
  "isRequired": false,
26
- "type": "number | { appear?: number; enter?: number; exit?: number; }"
26
+ "type": "number | { appear?: number | undefined; enter?: number | undefined; exit?: number | undefined; }"
27
27
  },
28
28
  "width": {
29
29
  "defaultValue": "240 (basic) 320 (overlay)",
@@ -56,7 +56,7 @@
56
56
  "onClose": {
57
57
  "description": "Callback fired when the component requests to be closed.\nThe `reason` parameter can optionally be used to control the response to `onClose`.\n@param event The event source of the callback.\n@param reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.",
58
58
  "isRequired": false,
59
- "type": "\"backdropClick\" | \"escapeKeyDown\""
59
+ "type": "(event: {}, reason: \"backdropClick\" | \"escapeKeyDown\") => void"
60
60
  },
61
61
  "ModalProps": {
62
62
  "defaultValue": {},
@@ -68,7 +68,7 @@
68
68
  "defaultValue": {},
69
69
  "description": "The props used for each slot inside.",
70
70
  "isRequired": false,
71
- "type": "{ root?: SlotProps"
71
+ "type": "{ root?: SlotProps<ElementType<ModalProps, keyof IntrinsicElements>, DrawerRootSlotPropsOverrides, DrawerOwnerState> | undefined; backdrop?: SlotProps<...> | undefined; docked?: SlotProps<...> | undefined; paper?: SlotProps<...> | undefined; transition?: SlotProps<...> | undefined; }"
72
72
  }
73
73
  }
74
74
  }
@@ -21,12 +21,12 @@
21
21
  "anchorEl": {
22
22
  "description": "An HTML element, [PopoverVirtualElement](https://mui.com/material-ui/react-popover/#virtual-element),\nor a function that returns either.\nIt's used to set the position of the popover.",
23
23
  "isRequired": false,
24
- "type": "Element | PopoverVirtualElement | () => Element | PopoverVirtualElement"
24
+ "type": "Element | PopoverVirtualElement | () => Element | PopoverVirtualElement | null | null"
25
25
  },
26
26
  "onClose": {
27
27
  "description": "Callback fired when the component requests to be closed.\nThe `reason` parameter can optionally be used to control the response to `onClose`.",
28
28
  "isRequired": false,
29
- "type": "\"backdropClick\" | \"escapeKeyDown\""
29
+ "type": "(event: {}, reason: \"backdropClick\" | \"escapeKeyDown\") => void"
30
30
  },
31
31
  "children": {
32
32
  "description": "The content of the component.",
@@ -48,13 +48,13 @@
48
48
  "defaultValue": {},
49
49
  "description": "The props used for each slot inside.",
50
50
  "isRequired": false,
51
- "type": "{ root?: SlotProps"
51
+ "type": "{ root?: SlotProps<ElementType<ModalProps, keyof IntrinsicElements>, PopoverRootSlotPropsOverrides, PopoverOwnerState> | undefined; paper?: SlotProps<...> | undefined; transition?: SlotComponentProps<...> | undefined; backdrop?: SlotProps<...> | undefined; }"
52
52
  },
53
53
  "marginThreshold": {
54
54
  "defaultValue": 16,
55
55
  "description": "Specifies how close to the edge of the window the popover can appear.\nIf null, the popover will not be constrained by the window.",
56
56
  "isRequired": false,
57
- "type": "number"
57
+ "type": "number | null"
58
58
  },
59
59
  "keepMounted": {
60
60
  "defaultValue": false,
@@ -84,7 +84,7 @@
84
84
  "defaultValue": "auto",
85
85
  "description": "Set to 'auto' to automatically calculate transition time based on height.",
86
86
  "isRequired": false,
87
- "type": "number | { appear?: number; enter?: number; exit?: number; } | \"auto\""
87
+ "type": "number | { appear?: number | undefined; enter?: number | undefined; exit?: number | undefined; } | \"auto\""
88
88
  }
89
89
  }
90
90
  }
@@ -0,0 +1,117 @@
1
+ {
2
+ "ProteinStructureViewer": {
3
+ "props": {
4
+ "backgroundColor": {
5
+ "description": "Canvas background, as `#RRGGBB`. Defaults to the SDS theme's base\nbackground, so the canvas follows the surrounding page in both modes.",
6
+ "isRequired": false,
7
+ "type": "string"
8
+ },
9
+ "showAxes": {
10
+ "defaultValue": true,
11
+ "description": "Show the orientation axes widget and the reset-camera button.",
12
+ "isRequired": false,
13
+ "type": "boolean"
14
+ },
15
+ "showLegend": {
16
+ "defaultValue": true,
17
+ "description": "Show the stats and color scale legend overlaid on the viewer.",
18
+ "isRequired": false,
19
+ "type": "boolean"
20
+ },
21
+ "sequenceViewerBackgroundColor": {
22
+ "description": "Sequence panel background, as any CSS color. Defaults to the SDS theme's\nprimary surface, so the panel follows the surrounding page in both modes.",
23
+ "isRequired": false,
24
+ "type": "string"
25
+ },
26
+ "showSequenceViewer": {
27
+ "defaultValue": true,
28
+ "description": "Show the sequence panel pinned along the bottom of the viewer.",
29
+ "isRequired": false,
30
+ "type": "boolean"
31
+ },
32
+ "stats": {
33
+ "description": "Up to three whole-structure stats shown along the bottom. A null entry\nreserves its column without rendering anything, so the columns never shift\nas values come and go.",
34
+ "isRequired": false,
35
+ "type": "(StructureStat | null)[]"
36
+ },
37
+ "pdb": {
38
+ "defaultValue": "- (required)",
39
+ "description": "Structure to render, as raw PDB text.",
40
+ "isRequired": true,
41
+ "type": "string"
42
+ },
43
+ "plddt": {
44
+ "description": "Per-residue pLDDT confidence on a 0-1 scale, ordered by residue. When\nsupplied the structure is colored by pLDDT unless `residueOverlay` takes\nover.",
45
+ "isRequired": false,
46
+ "type": "number[] | null"
47
+ },
48
+ "residueOverlay": {
49
+ "description": "Per-residue values that override pLDDT coloring while set.",
50
+ "isRequired": false,
51
+ "type": "ResidueValueOverlay | null"
52
+ },
53
+ "selectedResidue": {
54
+ "defaultValue": null,
55
+ "description": "0-based index of the selected residue, or null when none is selected.\nControlled: selecting a residue zooms the camera in on it, and clearing the\nselection zooms back out to the default view.",
56
+ "isRequired": false,
57
+ "type": "number | null"
58
+ },
59
+ "onResidueClick": {
60
+ "description": "Called with the clicked residue.",
61
+ "isRequired": false,
62
+ "type": "(residue: ResidueRef) => void"
63
+ },
64
+ "onResidueHover": {
65
+ "description": "Called as the pointer moves over residues, and with `null` when it leaves\nthe structure.",
66
+ "isRequired": false,
67
+ "type": "(residue: ResidueRef | null) => void"
68
+ },
69
+ "onSelectionClear": {
70
+ "description": "Called when the user clicks empty space, clearing the selection.",
71
+ "isRequired": false,
72
+ "type": "() => void"
73
+ },
74
+ "values": {
75
+ "defaultValue": "- (required)",
76
+ "description": "0-based residue index to value. Residues absent from the map read as 0, so they render in the neutral gray rather than at the bottom of the scale.",
77
+ "isRequired": false,
78
+ "type": "Map<number, number>"
79
+ },
80
+ "max": {
81
+ "defaultValue": "- (required)",
82
+ "description": "The value mapped to the top of the color scale.",
83
+ "isRequired": false,
84
+ "type": "number"
85
+ },
86
+ "min": {
87
+ "defaultValue": 0,
88
+ "description": "Values at or below this render in a neutral gray rather than on the scale.",
89
+ "isRequired": false,
90
+ "type": "number"
91
+ },
92
+ "colorScale": {
93
+ "defaultValue": "PLASMA_COLOR_SCALE",
94
+ "description": "Scale used to color residues and to draw the legend.",
95
+ "isRequired": false,
96
+ "type": "ColorScale"
97
+ },
98
+ "tooltip": {
99
+ "description": "Help tooltip attached to the legend caption.",
100
+ "isRequired": false,
101
+ "type": "string"
102
+ },
103
+ "readoutLabel": {
104
+ "defaultValue": "Value",
105
+ "description": "Label for the per-residue readout that replaces a stat slot on hover.",
106
+ "isRequired": false,
107
+ "type": "string"
108
+ },
109
+ "value": {
110
+ "defaultValue": "- (required)",
111
+ "description": "The stat's value, already formatted for display.",
112
+ "isRequired": false,
113
+ "type": "string"
114
+ }
115
+ }
116
+ }
117
+ }
@@ -33,7 +33,7 @@
33
33
  "tooltipProps": {
34
34
  "description": "Passed to the Tooltip, and overrides the defaults the row sets (arrow, dark style).",
35
35
  "isRequired": false,
36
- "type": "TooltipProps"
36
+ "type": "Partial<TooltipProps>"
37
37
  },
38
38
  "tooltipSubtitle": {
39
39
  "description": "A second line below the tooltip's title.",
@@ -21,7 +21,7 @@
21
21
  "data": {
22
22
  "description": "The sections, drawn in order and separated by dividers. A section's label heads it, its dataRows fill it, and disabled greys the whole block.",
23
23
  "isRequired": false,
24
- "type": "{ label?: string; dataRows: { label: string; value: string | number; }[]; disabled?: boolean; }[]"
24
+ "type": "{ label?: string | undefined; dataRows: { label: string; value: string | number; }[]; disabled?: boolean | undefined; }[]"
25
25
  }
26
26
  }
27
27
  }
@@ -2734,7 +2734,7 @@
2734
2734
  "sds-color-primitive-blue-700": "#cde3ff",
2735
2735
  "sds-color-primitive-blue-800": "#e2eeff",
2736
2736
  "sds-color-primitive-gray-50": "#000000",
2737
- "sds-color-primitive-gray-75": "#101010",
2737
+ "sds-color-primitive-gray-75": "#1b1b1b",
2738
2738
  "sds-color-primitive-gray-100": "#333333",
2739
2739
  "sds-color-primitive-gray-200": "#494949",
2740
2740
  "sds-color-primitive-gray-300": "#696969",
@@ -2815,9 +2815,9 @@
2815
2815
  "sds-color-semantic-accent-text-action": "#beb5ff",
2816
2816
  "sds-color-semantic-accent-text-action-hover": "#dcd9ff",
2817
2817
  "sds-color-semantic-accent-text-action-pressed": "#f1f0ff",
2818
- "sds-color-semantic-base-background-primary": "#101010",
2819
- "sds-color-semantic-base-background-primary-dark": "#101010",
2820
- "sds-color-semantic-base-background-primary-inverse": "#101010",
2818
+ "sds-color-semantic-base-background-primary": "#000000",
2819
+ "sds-color-semantic-base-background-primary-dark": "#000000",
2820
+ "sds-color-semantic-base-background-primary-inverse": "#1b1b1b",
2821
2821
  "sds-color-semantic-base-background-secondary": "#33333399",
2822
2822
  "sds-color-semantic-base-background-secondary-dark": "#33333399",
2823
2823
  "sds-color-semantic-base-background-secondary-inverse": "#33333399",
@@ -2833,20 +2833,21 @@
2833
2833
  "sds-color-semantic-base-border-primary-on-dark": "#cdcdcd",
2834
2834
  "sds-color-semantic-base-border-primary-inverse": "#cdcdcd",
2835
2835
  "sds-color-semantic-base-border-primary-pressed-inverse": "#ffffff",
2836
- "sds-color-semantic-base-border-secondary": "#696969",
2836
+ "sds-color-semantic-base-border-secondary": "#696969b3",
2837
+ "sds-color-semantic-base-border-highlight": "#ffffff1a",
2837
2838
  "sds-color-semantic-base-border-secondary-on-dark": "#696969",
2838
2839
  "sds-color-semantic-base-divider": "#494949",
2839
2840
  "sds-color-semantic-base-divider-on-dark": "#494949",
2840
2841
  "sds-color-semantic-base-divider-inverse": "#494949",
2841
- "sds-color-semantic-base-fill-disabled": "#333333",
2842
+ "sds-color-semantic-base-fill-disabled": "#1b1b1b",
2842
2843
  "sds-color-semantic-base-fill-primary-interaction": "#69696952",
2843
- "sds-color-semantic-base-fill-primary-interaction-on-dark": "#69696952",
2844
+ "sds-color-semantic-base-fill-primary-interaction-on-dark": "#6969693d",
2844
2845
  "sds-color-semantic-base-fill-hover-inverse": "#69696952",
2845
2846
  "sds-color-semantic-base-fill-open-inverse": "#69696952",
2846
- "sds-color-semantic-base-fill-primary-pressed": "#69696966",
2847
+ "sds-color-semantic-base-fill-primary-pressed": "#69696957",
2847
2848
  "sds-color-semantic-base-fill-primary-pressed-on-dark": "#69696966",
2848
2849
  "sds-color-semantic-base-fill-pressed-inverse": "#69696952",
2849
- "sds-color-semantic-base-fill-primary": "#333333",
2850
+ "sds-color-semantic-base-fill-primary": "#1b1b1b",
2850
2851
  "sds-color-semantic-base-fill-selected": "#ffffff",
2851
2852
  "sds-color-semantic-base-fill-secondary": "#494949",
2852
2853
  "sds-color-semantic-base-fill-secondary-interaction": "#94949442",
@@ -2854,7 +2855,7 @@
2854
2855
  "sds-color-semantic-base-fill-secondary-on-dark": "#494949",
2855
2856
  "sds-color-semantic-base-fill-secondary-interaction-on-dark": "#94949457",
2856
2857
  "sds-color-semantic-base-fill-secondary-pressed-on-dark": "#94949475",
2857
- "sds-color-semantic-base-fill-disabled-on-dark": "#333333",
2858
+ "sds-color-semantic-base-fill-disabled-on-dark": "#1b1b1b",
2858
2859
  "sds-color-semantic-base-ornament-disabled": "#696969",
2859
2860
  "sds-color-semantic-base-ornament-disabled-on-dark": "#696969",
2860
2861
  "sds-color-semantic-base-ornament-disabled-inverse": "#696969",
@@ -2863,15 +2864,17 @@
2863
2864
  "sds-color-semantic-base-ornament-primary-on-dark": "#ffffff",
2864
2865
  "sds-color-semantic-base-ornament-primary-inverse": "#000000",
2865
2866
  "sds-color-semantic-base-ornament-secondary": "#cdcdcd",
2867
+ "sds-color-semantic-base-ornament-tertiary": "#696969",
2866
2868
  "sds-color-semantic-base-ornament-secondary-interaction": "#ffffff",
2867
2869
  "sds-color-semantic-base-ornament-secondary-interaction-on-dark": "#ffffff",
2868
2870
  "sds-color-semantic-base-ornament-secondary-hover-inverse": "#ffffff",
2869
2871
  "sds-color-semantic-base-ornament-secondary-on-dark": "#cdcdcd",
2870
2872
  "sds-color-semantic-base-ornament-secondary-inverse": "#cdcdcd",
2871
2873
  "sds-color-semantic-base-ornament-secondary-pressed-inverse": "#ffffff",
2872
- "sds-color-semantic-base-surface-primary": "#333333",
2873
- "sds-color-semantic-base-surface-secondary": "#69696952",
2874
- "sds-color-semantic-base-surface-primary-dark": "#333333",
2874
+ "sds-color-semantic-base-surface-primary": "#1b1b1b",
2875
+ "sds-color-semantic-base-surface-secondary": "#333333a3",
2876
+ "sds-color-semantic-base-surface-tertiary": "#333333",
2877
+ "sds-color-semantic-base-surface-primary-dark": "#1b1b1b",
2875
2878
  "sds-color-semantic-base-surface-inverse": "#333333",
2876
2879
  "sds-color-semantic-base-text-disabled": "#696969",
2877
2880
  "sds-color-semantic-base-text-disabled-on-dark": "#696969",
@@ -3092,7 +3095,8 @@
3092
3095
  "sds-color-semantic-base-border-primary-on-dark": "#c3c3c3",
3093
3096
  "sds-color-semantic-base-border-primary-inverse": "#c3c3c3",
3094
3097
  "sds-color-semantic-base-border-primary-pressed-inverse": "#ffffff",
3095
- "sds-color-semantic-base-border-secondary": "#c3c3c3",
3098
+ "sds-color-semantic-base-border-secondary": "#c3c3c3b3",
3099
+ "sds-color-semantic-base-border-highlight": "#0000001a",
3096
3100
  "sds-color-semantic-base-border-secondary-on-dark": "#767676",
3097
3101
  "sds-color-semantic-base-divider": "#dfdfdf",
3098
3102
  "sds-color-semantic-base-divider-on-dark": "#3b3b3b",
@@ -3122,6 +3126,7 @@
3122
3126
  "sds-color-semantic-base-ornament-primary-on-dark": "#ffffff",
3123
3127
  "sds-color-semantic-base-ornament-primary-inverse": "#ffffff",
3124
3128
  "sds-color-semantic-base-ornament-secondary": "#767676",
3129
+ "sds-color-semantic-base-ornament-tertiary": "#c3c3c3",
3125
3130
  "sds-color-semantic-base-ornament-secondary-interaction": "#000000",
3126
3131
  "sds-color-semantic-base-ornament-secondary-interaction-on-dark": "#ffffff",
3127
3132
  "sds-color-semantic-base-ornament-secondary-hover-inverse": "#ffffff",
@@ -3130,6 +3135,7 @@
3130
3135
  "sds-color-semantic-base-ornament-secondary-pressed-inverse": "#ffffff",
3131
3136
  "sds-color-semantic-base-surface-primary": "#ffffff",
3132
3137
  "sds-color-semantic-base-surface-secondary": "#c3c3c333",
3138
+ "sds-color-semantic-base-surface-tertiary": "#dfdfdf",
3133
3139
  "sds-color-semantic-base-surface-primary-dark": "#000000",
3134
3140
  "sds-color-semantic-base-surface-inverse": "#000000",
3135
3141
  "sds-color-semantic-base-text-disabled": "#c3c3c3",