@czi-sds/mcp 0.2.1 → 0.3.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.
Files changed (50) hide show
  1. package/data/zeroheight-cache.json +5195 -0
  2. package/data/zeroheight-exports/Accordion.md +675 -0
  3. package/data/zeroheight-exports/Banner.md +576 -0
  4. package/data/zeroheight-exports/Borders.md +118 -0
  5. package/data/zeroheight-exports/Buttons.md +2260 -0
  6. package/data/zeroheight-exports/Callout.md +756 -0
  7. package/data/zeroheight-exports/Colors.md +633 -0
  8. package/data/zeroheight-exports/Content-Card.md +162 -0
  9. package/data/zeroheight-exports/Contributing-to-SDS.md +99 -0
  10. package/data/zeroheight-exports/Control-Inputs.md +2066 -0
  11. package/data/zeroheight-exports/Corners.md +112 -0
  12. package/data/zeroheight-exports/Cover-page.md +4 -0
  13. package/data/zeroheight-exports/Dialog.md +1133 -0
  14. package/data/zeroheight-exports/Downloads.md +121 -0
  15. package/data/zeroheight-exports/Drop-Shadows.md +80 -0
  16. package/data/zeroheight-exports/Dropdown-Input.md +1149 -0
  17. package/data/zeroheight-exports/Dropdown-Menu.md +3787 -0
  18. package/data/zeroheight-exports/Element-Status-Tracker.md +268 -0
  19. package/data/zeroheight-exports/Field-Inputs.md +965 -0
  20. package/data/zeroheight-exports/Filters.md +868 -0
  21. package/data/zeroheight-exports/Getting-Started.md +1296 -0
  22. package/data/zeroheight-exports/Hero.md +256 -0
  23. package/data/zeroheight-exports/Icons.md +432 -0
  24. package/data/zeroheight-exports/Intent.md +47 -0
  25. package/data/zeroheight-exports/Introduction-to-Bases.md +36 -0
  26. package/data/zeroheight-exports/Introduction-to-Cells.md +36 -0
  27. package/data/zeroheight-exports/Introduction-to-DNA.md +36 -0
  28. package/data/zeroheight-exports/Introduction-to-Genes.md +36 -0
  29. package/data/zeroheight-exports/Introduction.md +116 -0
  30. package/data/zeroheight-exports/Link.md +373 -0
  31. package/data/zeroheight-exports/Lists.md +617 -0
  32. package/data/zeroheight-exports/Loading-Indicator.md +38 -0
  33. package/data/zeroheight-exports/Navigation.md +853 -0
  34. package/data/zeroheight-exports/Notification.md +858 -0
  35. package/data/zeroheight-exports/Panel.md +862 -0
  36. package/data/zeroheight-exports/README.md +124 -0
  37. package/data/zeroheight-exports/Responsive-Design.md +275 -0
  38. package/data/zeroheight-exports/Search-Input.md +54 -0
  39. package/data/zeroheight-exports/Search.md +609 -0
  40. package/data/zeroheight-exports/Segmented-Control.md +561 -0
  41. package/data/zeroheight-exports/Spacing.md +298 -0
  42. package/data/zeroheight-exports/Table.md +4832 -0
  43. package/data/zeroheight-exports/Tabs.md +773 -0
  44. package/data/zeroheight-exports/Tags.md +1025 -0
  45. package/data/zeroheight-exports/Text-Link.md +185 -0
  46. package/data/zeroheight-exports/Theming.md +313 -0
  47. package/data/zeroheight-exports/Tooltips.md +1564 -0
  48. package/data/zeroheight-exports/Typography.md +769 -0
  49. package/dist/stdio.js +515 -12
  50. package/package.json +4 -3
@@ -0,0 +1,124 @@
1
+ # Exported Zeroheight Pages
2
+
3
+ Generated on: 2025-08-20T17:39:49.546Z
4
+ Styleguide ID: 66099
5
+ Total files exported: 56
6
+ Total pages combined: 164
7
+
8
+ ## Files
9
+
10
+ - [Icons.md](./Icons.md)
11
+ - [Introduction-to-Bases.md](./Introduction-to-Bases.md)
12
+ - [Colors.md](./Colors.md)
13
+ - [Theming.md](./Theming.md)
14
+ - [Corners.md](./Corners.md)
15
+ - [Responsive-Design.md](./Responsive-Design.md)
16
+ - [Typography.md](./Typography.md)
17
+ - [Borders.md](./Borders.md)
18
+ - [Drop-Shadows.md](./Drop-Shadows.md)
19
+ - [Spacing.md](./Spacing.md)
20
+ - [Introduction-to-Cells.md](./Introduction-to-Cells.md)
21
+ - [Search.md](./Search.md)
22
+ - [Dropdown-Menu.md](./Dropdown-Menu.md)
23
+ - [Introduction-to-DNA.md](./Introduction-to-DNA.md)
24
+ - [Accordion.md](./Accordion.md)
25
+ - [Table.md](./Table.md)
26
+ - [Filters.md](./Filters.md)
27
+ - [Dialog.md](./Dialog.md)
28
+ - [Tags.md](./Tags.md)
29
+ - [Tooltips.md](./Tooltips.md)
30
+ - [Buttons.md](./Buttons.md)
31
+ - [Control-Inputs.md](./Control-Inputs.md)
32
+ - [Text-Link.md](./Text-Link.md)
33
+ - [Navigation.md](./Navigation.md)
34
+ - [Search-Input.md](./Search-Input.md)
35
+ - [Loading-Indicator.md](./Loading-Indicator.md)
36
+ - [Dropdown-Input.md](./Dropdown-Input.md)
37
+ - [Tabs.md](./Tabs.md)
38
+ - [Lists.md](./Lists.md)
39
+ - [Introduction-to-Genes.md](./Introduction-to-Genes.md)
40
+ - [Introduction.md](./Introduction.md)
41
+ - [Element-Status-Tracker.md](./Element-Status-Tracker.md)
42
+ - [Getting-Started.md](./Getting-Started.md)
43
+ - [Downloads.md](./Downloads.md)
44
+ - [Notification.md](./Notification.md)
45
+ - [Panel.md](./Panel.md)
46
+ - [Callout.md](./Callout.md)
47
+ - [Dropdown-Input.md](./Dropdown-Input.md)
48
+ - [Field-Inputs.md](./Field-Inputs.md)
49
+ - [Loading-Indicator.md](./Loading-Indicator.md)
50
+ - [Segmented-Control.md](./Segmented-Control.md)
51
+ - [Banner.md](./Banner.md)
52
+ - [Hero.md](./Hero.md)
53
+ - [Content-Card.md](./Content-Card.md)
54
+ - [Notification.md](./Notification.md)
55
+ - [Table.md](./Table.md)
56
+ - [Dialog.md](./Dialog.md)
57
+ - [Callout.md](./Callout.md)
58
+ - [Dropdown-Menu.md](./Dropdown-Menu.md)
59
+ - [Accordion.md](./Accordion.md)
60
+ - [Panel.md](./Panel.md)
61
+ - [Contributing-to-SDS.md](./Contributing-to-SDS.md)
62
+ - [Link.md](./Link.md)
63
+ - [Intent.md](./Intent.md)
64
+ - [Banner.md](./Banner.md)
65
+ - [Cover-page.md](./Cover-page.md)
66
+
67
+ ## Combination Summary
68
+
69
+ - **Icons.md**: 4 pages combined
70
+ - **Introduction-to-Bases.md**: 4 pages combined
71
+ - **Colors.md**: 4 pages combined
72
+ - **Theming.md**: 1 page combined
73
+ - **Corners.md**: 4 pages combined
74
+ - **Responsive-Design.md**: 1 page combined
75
+ - **Typography.md**: 4 pages combined
76
+ - **Borders.md**: 3 pages combined
77
+ - **Drop-Shadows.md**: 4 pages combined
78
+ - **Spacing.md**: 4 pages combined
79
+ - **Introduction-to-Cells.md**: 4 pages combined
80
+ - **Search.md**: 4 pages combined
81
+ - **Dropdown-Menus.md**: 3 pages combined
82
+ - **Introduction-to-DNA.md**: 4 pages combined
83
+ - **Accordions.md**: 2 pages combined
84
+ - **Tables.md**: 2 pages combined
85
+ - **Filters.md**: 4 pages combined
86
+ - **Dialogs.md**: 3 pages combined
87
+ - **Tags.md**: 4 pages combined
88
+ - **Tooltips.md**: 4 pages combined
89
+ - **Buttons.md**: 4 pages combined
90
+ - **Control-Inputs.md**: 4 pages combined
91
+ - **Text-Link.md**: 3 pages combined
92
+ - **Navigation.md**: 3 pages combined
93
+ - **Search-Input.md**: 1 page combined
94
+ - **Loading-Indicator.md**: 4 pages combined
95
+ - **Dropdown-Input.md**: 4 pages combined
96
+ - **Tabs.md**: 4 pages combined
97
+ - **Lists.md**: 4 pages combined
98
+ - **Introduction-to-Genes.md**: 4 pages combined
99
+ - **Introduction.md**: 4 pages combined
100
+ - **Element-Status-Tracker.md**: 4 pages combined
101
+ - **Getting-Started.md**: 4 pages combined
102
+ - **Downloads.md**: 3 pages combined
103
+ - **Notifications.md**: 2 pages combined
104
+ - **Panels.md**: 2 pages combined
105
+ - **Callouts.md**: 2 pages combined
106
+ - **Dropdown-Inputs.md**: 1 page combined
107
+ - **Field-Inputs.md**: 3 pages combined
108
+ - **Loading-Indicators.md**: 3 pages combined
109
+ - **Segmented-Control.md**: 2 pages combined
110
+ - **Banners.md**: 1 page combined
111
+ - **Hero.md**: 1 page combined
112
+ - **Content-Card.md**: 1 page combined
113
+ - **Notification.md**: 3 pages combined
114
+ - **Table.md**: 3 pages combined
115
+ - **Dialog.md**: 4 pages combined
116
+ - **Callout.md**: 3 pages combined
117
+ - **Dropdown-Menu.md**: 4 pages combined
118
+ - **Accordion.md**: 3 pages combined
119
+ - **Panel.md**: 3 pages combined
120
+ - **Contributing-to-SDS.md**: 1 page combined
121
+ - **Link.md**: 1 page combined
122
+ - **Intent.md**: 1 page combined
123
+ - **Banner.md**: 2 pages combined
124
+ - **Cover-page.md**: 1 page combined
@@ -0,0 +1,275 @@
1
+ # Responsive Design
2
+
3
+ Applications that are built responsively visually adapt to the screen size that they are viewed on for a better user experience
4
+
5
+ ## Guidelines
6
+
7
+ ## Overview
8
+
9
+ Designing and building applications responsively helps ensure a positive viewing experience for users regardless of which device they are accessing from. There are a number of adjustments that can be made to page elements to better display on various screen sizes ranging from implementing font sizes that are better suited for small-screen viewing to making smart adjustments to page layouts so only the most crucial elements are displayed as screen sizes shrink.
10
+
11
+ ### Breakpoints
12
+
13
+ What we know about users of scientific software is that they tend to access their applications in one of three ways:
14
+
15
+ 1. On small laptops with lower resolution
16
+ 2. On large monitors that they plug their laptops into
17
+ 3. Occasionally on their phones when learning about new apps at conferences or following links from marketing campaigns posted to social media sites
18
+
19
+ Insight into these use cases has resulted in SDS implementing three distinct breakpoints that roughly map to these device types for teams to consider when designing and building scientific software. At each size, layout changes should be made to better utilize the amount of screen real estate available to ensure the most important UI elements remain accessible to users.
20
+
21
+ #### Small
22
+
23
+ *Screens <512px wide*
24
+
25
+ Small breakpoint will be used when applications are viewed on mobile devices and small-screened tablets. At this breakpoint only the main content should be displayed as there is not enough screen real estate to fit non-primary elements.
26
+
27
+ Header Navigation has been designed to collapse into a hamburger menu on narrow screens. Other navigation elements like Panels, Jump-to-Navigation, as well as supplemental pieces of UI will likely need to be accessed via alternative methods. This could mean tucking them away within a Dropdown Menu or an Accordion, adding them as additional menu items within the hamburger menu, or hiding them altogether. For this reason, designers should take special care to consider how these non-primary elements will be used on narrow screens.
28
+
29
+ | CSS | SCSS | Tailwind |
30
+ | --- | --- | --- |
31
+ | `--sds-breakpoint-sm` | `$sds-breakpoint-sm` | `breakpoints.sds-sm` |
32
+
33
+ #### Medium
34
+
35
+ *Screens between 512px-1023px wide*
36
+
37
+ Medium breakpoint will be used when applications are viewed on small laptops and large-screened tablets. At this breakpoint there is enough space to show both main content as well as a few non-primary elements, though likely not all.
38
+
39
+ Depending on the number of nav items in the Header Navigation it will either collapse into a hamburger menu or remain fully visible. This breakpoint gives designers control over which UI elements are displayed and which need to be accessed via alternative methods, offering more flexibility around how users interact with the application. Designing for this breakpoint still requires specific consideration to determine which non-primary elements remain visible vs which must be accessed elsewhere in the UI.
40
+
41
+ | CSS | SCSS | Tailwind |
42
+ | --- | --- | --- |
43
+ | `--sds-breakpoint-md` | `$sds-breakpoint-md` | `breakpoints.sds-md` |
44
+
45
+ #### Large
46
+
47
+ *Screens >1024px wide*
48
+
49
+ Large breakpoint will be used when applications are viewed on large laptops, desktop monitors, and other large displays. At this breakpoint there is enough space to show all content as intended. Considerations should be made for viewing on ultra-wide displays, such as implementing a max-width on pages to ensure UI elements are not stretched out of proportion.
50
+
51
+ | CSS | SCSS | Tailwind |
52
+ | --- | --- | --- |
53
+ | `--sds-breakpoint-lg` | `$sds-breakpoint-lg` | `breakpoints.sds-lg` |
54
+
55
+ ### Typography
56
+
57
+ SDS has two sets of typography, one for narrow screens and one for wide. Narrow screen typography is used when applications are viewed at the Small breakpoint (screen widths of less than 512px) and wide screen typography is used when applications are viewed at Medium or Large breakpoints (screen widths of 512px or greater).
58
+
59
+ Each typography variable from one set has a corresponding variable in the other, delineated by the word "narrow" or "wide" in its name (e.g., `narrow/fontBodyS`, `wide/fontBodyS`, etc.). This makes it easy to translate from one screen width to the other—simply use the variable with the same name but the opposite width (e.g., `narrow/fontBodyS` should be used for the same text on narrow screens that `wide/fontBodyS` is used for on wide screens).
60
+
61
+ Below are a few visual examples of the differences. See the Typography section for a detailed breakdown of the typography variables for each set.
62
+
63
+ | Header XXL – wide | Header XXL – narrow |
64
+ | :--- | :--- |
65
+
66
+ | Body L – wide | Body L – narrow |
67
+ | :--- | :--- |
68
+
69
+ | Caps XXS – wide | Caps XXS – narrow |
70
+ | :--- | :--- |
71
+
72
+ | Tabular S – wide | Tabular S – narrow |
73
+ | :--- | :--- |
74
+
75
+ | Code S – wide | Code S – narrow |
76
+ | :--- | :--- |
77
+
78
+ ## Code
79
+
80
+ ## Overview
81
+
82
+ Designing and building applications responsively helps ensure a positive viewing experience for users regardless of which device they are accessing from. There are a number of adjustments that can be made to page elements to better display on various screen sizes ranging from implementing font sizes that are better suited for small-screen viewing to making smart adjustments to page layouts so only the most crucial elements are displayed as screen sizes shrink.
83
+
84
+ ### SDS Source Code
85
+
86
+ The component's source code in the SDS codebase can be found here.
87
+
88
+ ### SDS vs MUI
89
+
90
+ In SDS, we utilize MUI’s breakpoint system with custom values to better align with our design requirements. Notably, we’ve streamlined the breakpoint options by removing the `xs` and `xl` breakpoints, as they are not used in SDS. As a result, SDS only supports `sm`, `md`, and `lg` breakpoints, ensuring more focused and relevant responsive behavior.
91
+
92
+ ### MUI Documentation
93
+
94
+ For more information on breakpoints, please refer to the MUI documentation.
95
+
96
+ ### Code examples
97
+
98
+ #### **Accessing SDS breakpoints**
99
+
100
+ This example demonstrates how to access SCS breakpoints to adjust component styling dynamically based on different screen sizes.
101
+
102
+ >**Note:** Use the resize handle to the right of the preview section below to adjust the container width. The background color will change dynamically based on the window width and the styles assigned to each breakpoint.
103
+
104
+ **/styles.css**
105
+
106
+ ```css
107
+ body {
108
+ font-size: 13px;
109
+ font-weight: 400;
110
+ letter-spacing: 0.08px;
111
+ line-height: 20px;
112
+ text-transform: none;
113
+ font-family: "Inter", sans-serif;
114
+ }
115
+
116
+ h1 {
117
+ font-size: 1.5rem;
118
+ }
119
+
120
+ .app {
121
+ padding: 20px;
122
+ }
123
+ ```
124
+
125
+ **tsconfig.json**
126
+
127
+ ```json
128
+ {
129
+ "include": [
130
+ "./**/*"
131
+ ],
132
+ "compilerOptions": {
133
+ "strict": true,
134
+ "esModuleInterop": true,
135
+ "lib": [ "dom", "es2015" ],
136
+ "jsx": "react-jsx"
137
+ }
138
+ }
139
+ ```
140
+
141
+ **/App.tsx**
142
+
143
+ ```tsx
144
+ import { useLayoutEffect, useState } from "react";
145
+ import { styled } from "@mui/material";
146
+ import { Callout, CalloutTitle } from "@czi-sds/components";
147
+ import "./styles.css";
148
+
149
+ const StyledDiv = styled("div")`
150
+ ${(props) => {
151
+ return `
152
+ width: 100%;
153
+ height: 100vh;
154
+ display: flex;
155
+ align-items: center;
156
+ justify-content: center;
157
+ background-color: yellow;
158
+
159
+ ${props?.theme?.breakpoints.down("lg")} {
160
+ background-color: skyblue;
161
+ }
162
+
163
+ ${props?.theme?.breakpoints.down("md")} {
164
+ background-color: pink;
165
+ }
166
+
167
+ ${props?.theme?.breakpoints.down("sm")} {
168
+ background-color: green;
169
+ }
170
+ `;
171
+ }}
172
+ `;
173
+
174
+ function App() {
175
+ const [width, setWidth] = useState(0);
176
+
177
+ const handleWidth = () => {
178
+ setWidth(window.innerWidth);
179
+ };
180
+
181
+ useLayoutEffect(() => {
182
+ handleWidth();
183
+
184
+ window.addEventListener("resize", () => handleWidth());
185
+
186
+ return ()=> {
187
+ window.removeEventListener("resize", () => handleWidth());
188
+ };
189
+ }, []);
190
+
191
+ return (
192
+ <StyledDiv>
193
+ Current width is: {width}
194
+ </StyledDiv>
195
+ );
196
+ }
197
+
198
+ export default App;
199
+ ```
200
+
201
+ **/index.tsx**
202
+
203
+ ```tsx
204
+ import React from "react";
205
+ import { createRoot } from "react-dom/client";
206
+ import { ThemeProvider as EmotionThemeProvider } from "@emotion/react";
207
+ import { StyledEngineProvider, ThemeProvider } from "@mui/material/styles";
208
+ import { Theme } from "@czi-sds/components";
209
+ import CssBaseline from "@mui/material/CssBaseline";
210
+ import useMediaQuery from "@mui/material/useMediaQuery";
211
+
212
+ import App from "./App";
213
+
214
+ const container = document.getElementById("root");
215
+ const root = createRoot(container!);
216
+
217
+ const RootApp = () => {
218
+ const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)");
219
+ const theme = prefersDarkMode ? Theme("dark") : Theme("light");
220
+
221
+ return (
222
+ <StyledEngineProvider injectFirst>
223
+ <ThemeProvider theme={theme}>
224
+ <EmotionThemeProvider theme={theme}>
225
+ <CssBaseline />
226
+ <App />
227
+ </EmotionThemeProvider>
228
+ </ThemeProvider>
229
+ </StyledEngineProvider>
230
+ );
231
+ };
232
+
233
+ root.render(
234
+ <React.StrictMode>
235
+ <RootApp />
236
+ </React.StrictMode>
237
+ );
238
+
239
+ ```
240
+
241
+ **/public/index.html**
242
+
243
+ ```html
244
+ <!DOCTYPE html>
245
+ <html lang="en">
246
+ <head>
247
+ <meta charset="UTF-8" />
248
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
249
+ <title>Button</title>
250
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
251
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
252
+ <link
253
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap"
254
+ rel="stylesheet"
255
+ />
256
+ <link
257
+ href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap"
258
+ rel="stylesheet"
259
+ />
260
+ </head>
261
+ <body>
262
+ <div id="root"></div>
263
+ </body>
264
+ </html>
265
+
266
+ ```
267
+
268
+ **/package.json**
269
+
270
+ ```json
271
+ {"dependencies":{"react":"^18.0.0","react-dom":"^18.0.0","react-scripts":"^4.0.0"},"devDependencies":{"@types/react":"^18.0.0","@types/react-dom":"^18.0.0","typescript":"^4.0.0"},"main":"/index.tsx"}
272
+ ```
273
+
274
+ ---
275
+
@@ -0,0 +1,54 @@
1
+ # Search Input
2
+
3
+ Search Inputs are elements that allow users to type within them and perform a search on that word or phrase
4
+
5
+ ## Overview
6
+
7
+ | | In Figma | | | Meets Accessibility | | | In napari hub + .org Codebases |
8
+ | --- | --- | --- | --- | --- | --- | --- | --- |
9
+
10
+ ### Large Search Input
11
+
12
+ Used in napari hub for top-level searches across the entire plugin database.
13
+
14
+ Click on each state below to enter inspect view and get details on its code attributes and any global styles it uses.
15
+
16
+ | **Default** | **Hover** | **Default** | **Focus** | **Disabled** |
17
+ | --- | --- | --- | --- | --- |
18
+
19
+  
20
+
21
+ ### Small Search Input
22
+
23
+ Used in napari hub for searching within plugin Filter Dropdown Menus when there are more menu items than can be viewed without scrolling.
24
+
25
+ Used in napari.org for searches within a given page.
26
+
27
+ | **Default** | **Hover** | **Default** | **Focus** | **Disabled** |
28
+ | --- | --- | --- | --- | --- |
29
+
30
+ ---
31
+
32
+ ### Search Input Spacing
33
+
34
+ These rules establish how much margin should exist between and around elements.
35
+
36
+  
37
+
38
+ ## Code
39
+
40
+ ## Field Input Components
41
+
42
+ | Below you will find an interactive Storybook iframe for Field Inputs. Tabs within each iframe provide a different set of tools: The Controls tab allows you to see and adjust all available props. The Actions tab shows you data displayed by event handler arguments. | | **Jump to component:** InputSearch |
43
+ | --- | --- | --- |
44
+
45
+ ---
46
+
47
+ >This component appears as it is in the default SDS codebase. Once imported into the napari hub or napari.org codebases, use a theme file to enable the napari visual appearance customization.
48
+
49
+ ### InputSearch
50
+
51
+ Storybook
52
+
53
+  
54
+