@czi-sds/mcp 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/component-props/Accordion.json +14 -15
- package/data/component-props/Alert.json +2 -44
- package/data/component-props/Autocomplete.json +14 -32
- package/data/component-props/Banner.json +11 -12
- package/data/component-props/Button.json +17 -82
- package/data/component-props/ButtonDropdown.json +26 -0
- package/data/component-props/ButtonIcon.json +4 -60
- package/data/component-props/ButtonToggle.json +2 -66
- package/data/component-props/Callout.json +11 -65
- package/data/component-props/CellBasic.json +28 -56
- package/data/component-props/CellComponent.json +4 -32
- package/data/component-props/CellHeader.json +13 -49
- package/data/component-props/ComplexFilter.json +24 -4
- package/data/component-props/ContentCard.json +66 -2
- package/data/component-props/Dialog.json +26 -0
- package/data/component-props/Dropdown.json +29 -67
- package/data/component-props/DropdownMenu.json +16 -56
- package/data/component-props/HeatmapChart.json +6 -87
- package/data/component-props/Icon.json +3 -8
- package/data/component-props/InputCheckbox.json +5 -53
- package/data/component-props/InputDropdown.json +11 -33
- package/data/component-props/InputRadio.json +5 -53
- package/data/component-props/InputSearch.json +6 -70
- package/data/component-props/InputSlider.json +21 -35
- package/data/component-props/InputText.json +7 -63
- package/data/component-props/InputToggle.json +5 -54
- package/data/component-props/Link.json +18 -0
- package/data/component-props/LoadingIndicator.json +1 -2
- package/data/component-props/MenuItem.json +11 -41
- package/data/component-props/MenuSelect.json +4 -67
- package/data/component-props/NavigationFooter.json +0 -8
- package/data/component-props/NavigationHeader.json +14 -65
- package/data/component-props/NavigationJumpTo.json +0 -40
- package/data/component-props/Notification.json +14 -58
- package/data/component-props/Pagination.json +8 -33
- package/data/component-props/Panel.json +4 -54
- package/data/component-props/SegmentedControl.json +0 -55
- package/data/component-props/TableRow.json +10 -38
- package/data/component-props/Tabs.json +18 -0
- package/data/component-props/Tag.json +10 -56
- package/data/component-props/TagFilter.json +0 -47
- package/data/component-props/Tooltip.json +12 -61
- package/data/component-props/TooltipCondensed.json +18 -0
- package/data/component-props/TooltipTable.json +0 -4
- package/data/zeroheight-exports/Accordion.md +167 -125
- package/data/zeroheight-exports/Banner.md +71 -48
- package/data/zeroheight-exports/Borders.md +72 -73
- package/data/zeroheight-exports/Buttons.md +375 -330
- package/data/zeroheight-exports/Callout.md +138 -116
- package/data/zeroheight-exports/Colors.md +254 -255
- package/data/zeroheight-exports/Content-Card.md +36 -37
- package/data/zeroheight-exports/Contributing-to-SDS.md +34 -35
- package/data/zeroheight-exports/Control-Inputs.md +289 -234
- package/data/zeroheight-exports/Corners.md +63 -64
- package/data/zeroheight-exports/Cover-page.md +0 -1
- package/data/zeroheight-exports/Dialog.md +237 -179
- package/data/zeroheight-exports/Downloads.md +10 -11
- package/data/zeroheight-exports/Drop-Shadows.md +40 -41
- package/data/zeroheight-exports/Dropdown-Input.md +158 -127
- package/data/zeroheight-exports/Dropdown-Menu.md +814 -718
- package/data/zeroheight-exports/Element-Status-Tracker.md +191 -192
- package/data/zeroheight-exports/Field-Inputs.md +149 -130
- package/data/zeroheight-exports/Filters.md +114 -94
- package/data/zeroheight-exports/Getting-Started.md +112 -249
- package/data/zeroheight-exports/Hero.md +43 -37
- package/data/zeroheight-exports/Icons.md +205 -206
- package/data/zeroheight-exports/Intent.md +6 -7
- package/data/zeroheight-exports/Introduction-to-Bases.md +8 -9
- package/data/zeroheight-exports/Introduction-to-Cells.md +11 -12
- package/data/zeroheight-exports/Introduction-to-DNA.md +8 -9
- package/data/zeroheight-exports/Introduction-to-Genes.md +8 -9
- package/data/zeroheight-exports/Introduction.md +52 -53
- package/data/zeroheight-exports/Link.md +50 -37
- package/data/zeroheight-exports/Lists.md +78 -63
- package/data/zeroheight-exports/Loading-Indicator.md +7 -8
- package/data/zeroheight-exports/Navigation.md +163 -142
- package/data/zeroheight-exports/Notification.md +132 -102
- package/data/zeroheight-exports/Panel.md +231 -115
- package/data/zeroheight-exports/Responsive-Design.md +35 -32
- package/data/zeroheight-exports/Search-Input.md +9 -10
- package/data/zeroheight-exports/Search.md +87 -104
- package/data/zeroheight-exports/Segmented-Control.md +68 -45
- package/data/zeroheight-exports/Spacing.md +210 -211
- package/data/zeroheight-exports/Table.md +414 -302
- package/data/zeroheight-exports/Tabs.md +126 -98
- package/data/zeroheight-exports/Tags.md +148 -118
- package/data/zeroheight-exports/Text-Link.md +32 -33
- package/data/zeroheight-exports/Theming.md +48 -29
- package/data/zeroheight-exports/Tooltips.md +253 -237
- package/data/zeroheight-exports/Typography.md +463 -464
- package/dist/stdio.js +44 -132
- package/package.json +3 -4
- package/data/component-props/Chip.json +0 -73
- package/data/component-props/List.json +0 -43
- package/data/component-props/Menu.json +0 -48
- package/data/component-props/Table.json +0 -26
- package/data/component-props-storybook/Accordion-storybook.json +0 -45
- package/data/component-props-storybook/Alert-storybook.json +0 -30
- package/data/component-props-storybook/Autocomplete-storybook.json +0 -67
- package/data/component-props-storybook/Banner-storybook.json +0 -78
- package/data/component-props-storybook/Button-storybook.json +0 -115
- package/data/component-props-storybook/ButtonDropdown-storybook.json +0 -73
- package/data/component-props-storybook/ButtonIcon-storybook.json +0 -60
- package/data/component-props-storybook/ButtonToggle-storybook.json +0 -68
- package/data/component-props-storybook/Callout-storybook.json +0 -90
- package/data/component-props-storybook/CellBasic-storybook.json +0 -138
- package/data/component-props-storybook/CellComponent-storybook.json +0 -48
- package/data/component-props-storybook/CellHeader-storybook.json +0 -71
- package/data/component-props-storybook/Chip-storybook.json +0 -26
- package/data/component-props-storybook/ComplexFilter-storybook.json +0 -60
- package/data/component-props-storybook/ContentCard-storybook.json +0 -175
- package/data/component-props-storybook/Dialog-storybook.json +0 -56
- package/data/component-props-storybook/Dropdown-storybook.json +0 -93
- package/data/component-props-storybook/DropdownMenu-storybook.json +0 -73
- package/data/component-props-storybook/HeatmapChart-storybook.json +0 -55
- package/data/component-props-storybook/Icon-storybook.json +0 -75
- package/data/component-props-storybook/InputCheckbox-storybook.json +0 -57
- package/data/component-props-storybook/InputDropdown-storybook.json +0 -80
- package/data/component-props-storybook/InputRadio-storybook.json +0 -56
- package/data/component-props-storybook/InputSearch-storybook.json +0 -55
- package/data/component-props-storybook/InputSlider-storybook.json +0 -55
- package/data/component-props-storybook/InputText-storybook.json +0 -59
- package/data/component-props-storybook/InputToggle-storybook.json +0 -42
- package/data/component-props-storybook/Link-storybook.json +0 -50
- package/data/component-props-storybook/List-storybook.json +0 -26
- package/data/component-props-storybook/LoadingIndicator-storybook.json +0 -34
- package/data/component-props-storybook/Menu-storybook.json +0 -26
- package/data/component-props-storybook/MenuItem-storybook.json +0 -74
- package/data/component-props-storybook/MenuSelect-storybook.json +0 -38
- package/data/component-props-storybook/NavigationFooter-storybook.json +0 -67
- package/data/component-props-storybook/NavigationHeader-storybook.json +0 -115
- package/data/component-props-storybook/NavigationJumpTo-storybook.json +0 -41
- package/data/component-props-storybook/Notification-storybook.json +0 -89
- package/data/component-props-storybook/Pagination-storybook.json +0 -50
- package/data/component-props-storybook/Panel-storybook.json +0 -52
- package/data/component-props-storybook/SegmentedControl-storybook.json +0 -30
- package/data/component-props-storybook/Table-storybook.json +0 -26
- package/data/component-props-storybook/TableHeader-storybook.json +0 -26
- package/data/component-props-storybook/TableRow-storybook.json +0 -62
- package/data/component-props-storybook/Tabs-storybook.json +0 -45
- package/data/component-props-storybook/Tag-storybook.json +0 -78
- package/data/component-props-storybook/TagFilter-storybook.json +0 -30
- package/data/component-props-storybook/Tooltip-storybook.json +0 -85
- package/data/component-props-storybook/TooltipCondensed-storybook.json +0 -38
- package/data/component-props-storybook/TooltipTable-storybook.json +0 -47
|
@@ -4,27 +4,27 @@ A Dialog is a window element that appears on top of content to provide informati
|
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
|
|
|
8
|
-
| --- |
|
|
7
|
+
| | In Figma | | | Meets Accessibility | | | In napari hub + .org Codebases |
|
|
8
|
+
| --- | -------- | --- | --- | ------------------- | --- | --- | ------------------------------ |
|
|
9
9
|
|
|
10
10
|
Dialogs are highly customizable and designed to accommodate a range of product needs and can optionally include overline text above the title, subtitle text below the title, or both. The interior of a Dialog can be filled with any content needed, whether that is to communicate information to the user or collect data from them via a form.
|
|
11
11
|
|
|
12
12
|
There are five size options, each with a fixed width and minimum height (except for `xs` and `xxs` which have no minimum height):
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
- `xxs` — `width: 270px`
|
|
15
|
+
- `xs` —`width: 400px`
|
|
16
|
+
- `s` —`width: 600px`, `min-height: 400px`
|
|
17
|
+
- `m` —`width: 900px`, `min-height: 480px`
|
|
18
|
+
- `l` —`width: 1200px`, `min-height: 600px`
|
|
19
19
|
|
|
20
20
|
Dialogs are dismissible in a few different ways. Regardless of how a Dialog is dismissed, it will result in any selections the user has made within it being lost.
|
|
21
21
|
|
|
22
22
|
Dialogs may be dismissed by:
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
- Clicking an action Button that is configured to close, cancel, or complete an action occurring in the Dialog
|
|
25
|
+
- Pressing the keyboard Esc key
|
|
26
|
+
- Clicking the close Icon Button
|
|
27
|
+
- Clicking outside of the Dialog. Doing this will result in any selections the user has made being lost, so it is recommended that the `canOutsideClickClose` prop remain set to `false` (the default setting) in instances where losing entered information would be a significant burden to the user
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
@@ -42,12 +42,12 @@ A backdrop appears behind the active Dialog to bring emphasis to it as well as i
|
|
|
42
42
|
|
|
43
43
|
## Dialog Component
|
|
44
44
|
|
|
45
|
-
| Below you will find an interactive Storybook iframe for Dialogs.
|
|
46
|
-
|
|
|
45
|
+
| Below you will find an interactive Storybook iframe for Dialogs. 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:** Dialog |
|
|
46
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --- | ----------------------------- |
|
|
47
47
|
|
|
48
48
|
---
|
|
49
49
|
|
|
50
|
-
>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.
|
|
50
|
+
> 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.
|
|
51
51
|
|
|
52
52
|
### Dialog
|
|
53
53
|
|
|
@@ -61,34 +61,34 @@ A Dialog is a window element that appears on top of content to provide informati
|
|
|
61
61
|
|
|
62
62
|
## Dialog Variants
|
|
63
63
|
|
|
64
|
-
| The interior of a Dialog can be filled with any content needed, whether that is to communicate information to the user or collect data from them via a form. They come in four different sizes, each of which can optionally include a close Tertiary Icon Button in the top right corner, artwork above the title, and action Button(s) if the Dialog is prompting the user to take an action. In addition to their title, Dialogs can include overline text above the title, a subtitle below the title, or both.
|
|
65
|
-
|
|
|
64
|
+
| The interior of a Dialog can be filled with any content needed, whether that is to communicate information to the user or collect data from them via a form. They come in four different sizes, each of which can optionally include a close Tertiary Icon Button in the top right corner, artwork above the title, and action Button(s) if the Dialog is prompting the user to take an action. In addition to their title, Dialogs can include overline text above the title, a subtitle below the title, or both. Follow the usage criteria accompanying each variant as a guide for selecting the correct Dialog for any given use case. | | **Jump to variant:** Persistent Dismissible Use Cases |
|
|
65
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ----------------------------------------------------- |
|
|
66
66
|
|
|
67
67
|
---
|
|
68
68
|
|
|
69
69
|
## Dialog
|
|
70
70
|
|
|
71
|
-
|
|
|
72
|
-
| --- |
|
|
71
|
+
| | In Figma | | | Meets Accessibility | | | In CZ GEN EPI Codebase |
|
|
72
|
+
| --- | -------- | --- | --- | ------------------- | --- | --- | ---------------------- |
|
|
73
73
|
|
|
74
74
|
Dialogs are highly customizable and designed to accommodate a range of product needs; any combination of the following properties can be used:
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
- Overline text above the title, subtitle text below the title, or both
|
|
77
|
+
- Artwork above the title, whether a logo, icon, or illustration
|
|
78
78
|
|
|
79
79
|
There are four size options, each with a fixed width and minimum height (except for `xs` which has no minimum height):
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
- `xs` —`width: 400px`
|
|
82
|
+
- `s` —`width: 600px`, `min-height: 400px`
|
|
83
|
+
- `m` —`width: 900px`, `min-height: 480px`
|
|
84
|
+
- `l` —`width: 1200px`, `min-height: 600px`
|
|
85
85
|
|
|
86
86
|
Dialogs may be dismissed by:
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
- Clicking an action Button that is configured to close, cancel, or complete a multi-step workflow occurring in the Dialog
|
|
89
|
+
- Pressing the keyboard Esc key
|
|
90
|
+
- Clicking the close Tertiary Icon Button on Dismissible Dialogs
|
|
91
|
+
- Clicking outside of the Dialog. Doing this will result in any selections the user has made being lost, so it is recommended that the `canOutsideClickClose` prop remain set to `false` (the default setting) in instances where losing entered information would be a significant burden to the user
|
|
92
92
|
|
|
93
93
|
### Persistent Dialog
|
|
94
94
|
|
|
@@ -98,7 +98,7 @@ Persistent Dialogs are generally used in multi-step workflows where dismissing t
|
|
|
98
98
|
|
|
99
99
|
Click on each state below to enter inspect view and get details on its code attributes and any global styles it uses.
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
|
|
102
102
|
|
|
103
103
|
---
|
|
104
104
|
|
|
@@ -144,7 +144,7 @@ Nested Dialogs should only be used in specific scenarios, most notably when a us
|
|
|
144
144
|
|
|
145
145
|
Avoid using nested dialogs when possible because it introduces layers of complexity to pages and may make it more difficult for users to anticipate the results of their actions. It may also impede usability by making it more difficult for users to quickly exit a flow. Instead, explore utilizing a multi-step Dialog workflow (see below).
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
|
|
148
148
|
|
|
149
149
|
### Multi-step Dialog Workflow
|
|
150
150
|
|
|
@@ -158,12 +158,12 @@ The Dialog should not be dismissible and the `canOutsideClickClose` prop should
|
|
|
158
158
|
|
|
159
159
|
## Dialog Component
|
|
160
160
|
|
|
161
|
-
| Below you will find an interactive Storybook iframe for Dialogs.
|
|
162
|
-
|
|
|
161
|
+
| Below you will find an interactive Storybook iframe for Dialogs. 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:** Dialog |
|
|
162
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --- | ----------------------------- |
|
|
163
163
|
|
|
164
164
|
---
|
|
165
165
|
|
|
166
|
-
>This component appears as it is in the default SDS codebase. Once imported into the CZ GEN EPI codebase, use a theme file to enable the CZ GEN EPI visual appearance customization.
|
|
166
|
+
> This component appears as it is in the default SDS codebase. Once imported into the CZ GEN EPI codebase, use a theme file to enable the CZ GEN EPI visual appearance customization.
|
|
167
167
|
|
|
168
168
|
### Dialog
|
|
169
169
|
|
|
@@ -177,34 +177,34 @@ A Dialog is a window element that appears on top of content to provide informati
|
|
|
177
177
|
|
|
178
178
|
## Dialog Variants
|
|
179
179
|
|
|
180
|
-
| The interior of a Dialog can be filled with any content needed, whether that is to communicate information to the user or collect data from them via a form. They come in four different sizes, each of which can optionally include a close Tertiary Icon Button in the top right corner, artwork above the title, and action Button(s) if the Dialog is prompting the user to take an action. In addition to their title, Dialogs can include overline text above the title, a subtitle below the title, or both.
|
|
181
|
-
|
|
|
180
|
+
| The interior of a Dialog can be filled with any content needed, whether that is to communicate information to the user or collect data from them via a form. They come in four different sizes, each of which can optionally include a close Tertiary Icon Button in the top right corner, artwork above the title, and action Button(s) if the Dialog is prompting the user to take an action. In addition to their title, Dialogs can include overline text above the title, a subtitle below the title, or both. Follow the usage criteria accompanying each variant as a guide for selecting the correct Dialog for any given use case. | | **Jump to variant:** Persistent Dismissible Use Cases |
|
|
181
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ----------------------------------------------------- |
|
|
182
182
|
|
|
183
183
|
---
|
|
184
184
|
|
|
185
185
|
## Dialog
|
|
186
186
|
|
|
187
|
-
|
|
|
188
|
-
| --- |
|
|
187
|
+
| | In Figma | | | Meets Accessibility | | | In CZ ID Codebase |
|
|
188
|
+
| --- | -------- | --- | --- | ------------------- | --- | --- | ----------------- |
|
|
189
189
|
|
|
190
190
|
Dialogs are highly customizable and designed to accommodate a range of product needs; any combination of the following properties can be used:
|
|
191
191
|
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
- Overline text above the title, subtitle text below the title, or both
|
|
193
|
+
- Artwork above the title, whether a logo, icon, or illustration
|
|
194
194
|
|
|
195
195
|
There are four size options, each with a fixed width and minimum height (except for `xs` which has no minimum height):
|
|
196
196
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
197
|
+
- `xs` —`width: 400px`
|
|
198
|
+
- `s` —`width: 600px`, `min-height: 400px`
|
|
199
|
+
- `m` —`width: 900px`, `min-height: 480px`
|
|
200
|
+
- `l` —`width: 1200px`, `min-height: 600px`
|
|
201
201
|
|
|
202
202
|
Dialogs may be dismissed by:
|
|
203
203
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
204
|
+
- Clicking an action Button that is configured to close, cancel, or complete a multi-step workflow occurring in the Dialog
|
|
205
|
+
- Pressing the keyboard Esc key
|
|
206
|
+
- Clicking the close Tertiary Icon Button on Dismissible Dialogs
|
|
207
|
+
- Clicking outside of the Dialog. Doing this will result in any selections the user has made being lost, so it is recommended that the `canOutsideClickClose` prop remain set to `false` (the default setting) in instances where losing entered information would be a significant burden to the user
|
|
208
208
|
|
|
209
209
|
### Persistent Dialog
|
|
210
210
|
|
|
@@ -214,7 +214,7 @@ Persistent Dialogs are generally used in multi-step workflows where dismissing t
|
|
|
214
214
|
|
|
215
215
|
Click on each state below to enter inspect view and get details on its code attributes and any global styles it uses.
|
|
216
216
|
|
|
217
|
-
|
|
217
|
+
|
|
218
218
|
|
|
219
219
|
---
|
|
220
220
|
|
|
@@ -242,7 +242,7 @@ Click on each state below to enter inspect view and get details on its code attr
|
|
|
242
242
|
|
|
243
243
|
In instances where the length of content contained in the Dialog results in the Dialog filling the entire height of the screen, there must be a minimum of `spaceXxl` margin above and below the Dialog window. The Dialog content scrolls when it exceeds the max-height of the dialog window; title, overline, subtitle, and any action Buttons are anchored to the top and bottom during scrolling.
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
|
|
246
246
|
|
|
247
247
|
---
|
|
248
248
|
|
|
@@ -262,7 +262,7 @@ Nested Dialogs should only be used in specific scenarios, most notably when a us
|
|
|
262
262
|
|
|
263
263
|
Avoid using nested dialogs when possible because it introduces layers of complexity to pages and may make it more difficult for users to anticipate the results of their actions. It may also impede usability by making it more difficult for users to quickly exit a flow. Instead, explore utilizing a multi-step Dialog workflow (see below).
|
|
264
264
|
|
|
265
|
-
|
|
265
|
+
|
|
266
266
|
|
|
267
267
|
### Multi-step Dialog Workflow
|
|
268
268
|
|
|
@@ -276,8 +276,8 @@ The Dialog should not be dismissible and the `canOutsideClickClose` prop should
|
|
|
276
276
|
|
|
277
277
|
## Dialog Component
|
|
278
278
|
|
|
279
|
-
| Below you will find an interactive Storybook iframe for Dialogs.
|
|
280
|
-
|
|
|
279
|
+
| Below you will find an interactive Storybook iframe for Dialogs. 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:** Dialog |
|
|
280
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --- | ----------------------------- |
|
|
281
281
|
|
|
282
282
|
---
|
|
283
283
|
|
|
@@ -285,7 +285,7 @@ The Dialog should not be dismissible and the `canOutsideClickClose` prop should
|
|
|
285
285
|
|
|
286
286
|
Storybook
|
|
287
287
|
|
|
288
|
-
|
|
288
|
+
|
|
289
289
|
|
|
290
290
|
---
|
|
291
291
|
|
|
@@ -295,8 +295,8 @@ A Dialog is a window element that appears on top of content to provide informati
|
|
|
295
295
|
|
|
296
296
|
## Overview
|
|
297
297
|
|
|
298
|
-
|
|
|
299
|
-
| --- |
|
|
298
|
+
| | In Figma | | | Meets Accessibility | | | In Code |
|
|
299
|
+
| --- | -------- | --- | --- | ------------------- | --- | --- | ------- |
|
|
300
300
|
|
|
301
301
|
### Dialog Variants
|
|
302
302
|
|
|
@@ -306,24 +306,24 @@ There are two Dialog variants available—Persistent and Dismissible. They are h
|
|
|
306
306
|
|
|
307
307
|
Any combination of the following properties can be used:
|
|
308
308
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
309
|
+
- One or two Button(s), positioned to the right or left side of the dialog (positioned right by default)
|
|
310
|
+
- Overline text above the title
|
|
311
|
+
- Subtitle text below the title
|
|
312
|
+
- Artwork above the title (logo, icon, or illustration)
|
|
313
313
|
|
|
314
314
|
There are four size options, each with a fixed width and minimum height (except for `xs` which has no minimum height):
|
|
315
315
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
316
|
+
- `xs` —`width: 400px`
|
|
317
|
+
- `s` —`width: 600px`, `min-height: 400px`
|
|
318
|
+
- `m` —`width: 900px`, `min-height: 480px`
|
|
319
|
+
- `l` —`width: 1200px`, `min-height: 600px`
|
|
320
320
|
|
|
321
321
|
Users can dismiss them by:
|
|
322
322
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
323
|
+
- Clicking an action Button that is configured to close, cancel, or complete a multi-step workflow occurring in the Dialog
|
|
324
|
+
- Pressing the keyboard `Esc` key
|
|
325
|
+
- Clicking the close Tertiary Icon Button (Dismissible variant only)
|
|
326
|
+
- Clicking outside of the Dialog. Doing this will result in any selections the user has made being lost, so it is recommended that this be disabled in instances where losing entered information would be a significant burden to the user
|
|
327
327
|
|
|
328
328
|
---
|
|
329
329
|
|
|
@@ -341,14 +341,14 @@ Use this variant when the user is unable to dismiss the Dialog without making a
|
|
|
341
341
|
|
|
342
342
|
Persistent Dialogs are generally used:
|
|
343
343
|
|
|
344
|
-
|
|
345
|
-
|
|
344
|
+
- In multi-step workflows where dismissing the Dialog would result in a loss of progress
|
|
345
|
+
- When there is a need for users to confirm they have read the content on the Dialog before proceeding, such as when they are being directed to an external site (see Dialog Use Cases section below for details).
|
|
346
346
|
|
|
347
347
|
| 1 Button | 2 Buttons | 2 Buttons, left-aligned |
|
|
348
|
-
|
|
|
348
|
+
| -------- | --------- | ----------------------- |
|
|
349
349
|
|
|
350
350
|
| 2 Buttons, rounded | 2 Buttons + Overline + Subtitle | 2 Buttons + Artwork |
|
|
351
|
-
|
|
|
351
|
+
| ------------------ | ------------------------------- | ------------------- |
|
|
352
352
|
|
|
353
353
|
---
|
|
354
354
|
|
|
@@ -357,10 +357,10 @@ Persistent Dialogs are generally used:
|
|
|
357
357
|
Use this variant to allow the user the ability to manually dismiss the Dialog by clicking the close Tertiary Icon Button in the Dialog's upper right corner. Dismissing the Dialog will result in any selections the user has made being lost. Dismissible Dialogs should not be used in multi-step workflows where closing the Dialog would result in a loss of progress (see Dialog Use Cases section below for details).
|
|
358
358
|
|
|
359
359
|
| 0 Buttons | 1 Button | 2 Buttons | 2 Buttons, left-aligned |
|
|
360
|
-
|
|
|
360
|
+
| --------- | -------- | --------- | ----------------------- |
|
|
361
361
|
|
|
362
362
|
| 2 Buttons, rounded | 2 Buttons + Overline + Subtitle | 2 Buttons + Artwork |
|
|
363
|
-
|
|
|
363
|
+
| ------------------ | ------------------------------- | ------------------- |
|
|
364
364
|
|
|
365
365
|
---
|
|
366
366
|
|
|
@@ -384,7 +384,7 @@ Details and guidelines around complex Dialog use cases, such as nested Dialogs a
|
|
|
384
384
|
|
|
385
385
|
#### Nested Dialogs
|
|
386
386
|
|
|
387
|
-
Nested Dialogs should only be used in specific scenarios, most notably when a user is being directed to an external site and a final confirmation is needed.
|
|
387
|
+
Nested Dialogs should only be used in specific scenarios, most notably when a user is being directed to an external site and a final confirmation is needed.
|
|
388
388
|
|
|
389
389
|
Avoid using nested dialogs when possible because it introduces layers of complexity to pages and may make it more difficult for users to anticipate the results of their actions. It may also impede usability by making it more difficult for users to quickly exit a flow. Instead, explore utilizing a multi-step Dialog workflow (see below).
|
|
390
390
|
|
|
@@ -398,7 +398,7 @@ The Dialog should not be dismissible to prevent any accidental loss of progress.
|
|
|
398
398
|
|
|
399
399
|
## Code
|
|
400
400
|
|
|
401
|
-
|
|
401
|
+
> **Note:** The code examples below must install dependencies before displaying and may take extra time to load
|
|
402
402
|
|
|
403
403
|
## Dialog
|
|
404
404
|
|
|
@@ -408,17 +408,17 @@ The `Dialog` component's source code in the SDS codebase can be found here.
|
|
|
408
408
|
|
|
409
409
|
The `Dialog` component is accompanied by a number of other accessory components that can be used to help compose dialogs, but they are not required:
|
|
410
410
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
411
|
+
- Main `Dialog` component source code
|
|
412
|
+
- `DialogActions` source code
|
|
413
|
+
- `DialogContent` source code
|
|
414
|
+
- `DialogPaper` source code
|
|
415
|
+
- `DialogTitle` source code
|
|
416
416
|
|
|
417
417
|
### SDS vs MUI
|
|
418
418
|
|
|
419
|
-
The SDS `Dialog` component is built on top of MUI's `Dialog` component. SDS's `Dialog` passes a styled version of the `Paper` component
|
|
419
|
+
The SDS `Dialog` component is built on top of MUI's `Dialog` component. SDS's `Dialog` passes a styled version of the `Paper` component (`DialogPaper`) to the `PaperComponent` prop. You can further style this `DialogPaper` component and pass it to your SDS `Dialog` via the `PaperComponent` prop (a prop of SDS `Dialog`) if needed.
|
|
420
420
|
|
|
421
|
-
The SDS `Dialog` does **not** support the `fullScreen` prop that the MUI component has (which allows dialogs to
|
|
421
|
+
The SDS `Dialog` does **not** support the `fullScreen` prop that the MUI component has (which allows dialogs to overtake the full screen).
|
|
422
422
|
|
|
423
423
|
### MUI Documentation
|
|
424
424
|
|
|
@@ -432,30 +432,30 @@ Any custom SDS props and MUI props required for implementation are found on the
|
|
|
432
432
|
|
|
433
433
|
Props table for the Dialog component.
|
|
434
434
|
|
|
435
|
-
| Name
|
|
436
|
-
|
|
|
437
|
-
| `canClickOutsideClose` | `bool`
|
|
438
|
-
| `onClose`
|
|
439
|
-
| `sdsSize`
|
|
435
|
+
| Name | Type | Default | Description |
|
|
436
|
+
| ---------------------- | -------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | --- | ------------------------------------------ |
|
|
437
|
+
| `canClickOutsideClose` | `bool` | `false` | A boolean prop that determines whether clicking outside of the Dialog should trigger its closure. |
|
|
438
|
+
| `onClose` | `func` | `function(event: object, reason: string) => void` | A callback function that is invoked when the Dialog is closed. It receives two parameters: `event`. The event source of the callback. `reason`. Can be: .`escapeKeyDown`., .`backdropClick`. |
|
|
439
|
+
| `sdsSize` | `"xs"` ` | "s"` ` | "m"` ` | "l"` | `m` | Controls the size of the Dialog component. |
|
|
440
440
|
|
|
441
441
|
#### DialogTitle Props
|
|
442
442
|
|
|
443
443
|
Props table for the DialogTitle component.
|
|
444
444
|
|
|
445
|
-
| Name
|
|
446
|
-
|
|
|
447
|
-
| `title`
|
|
448
|
-
| `subtitle` | `string` | `-`
|
|
449
|
-
| `onClose`
|
|
450
|
-
| `open`
|
|
445
|
+
| Name | Type | Default | Description |
|
|
446
|
+
| ---------- | -------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
447
|
+
| `title` | `string` | `-` | This prop represents the title text to be displayed in the Dialog component. |
|
|
448
|
+
| `subtitle` | `string` | `-` | The subtitle prop allows you to include additional descriptive text beneath the title within the Dialog. |
|
|
449
|
+
| `onClose` | `func` | `function(event: object, reason: string) => void` | When the `onClose` prop is set, it results in the appearance of a small `x` icon in the top-right corner of the Dialog. This `x` icon provides users with a visual cue to close the Dialog, and clicking on it invokes the specified `onClose` function. |
|
|
450
|
+
| `open` | `bool` | `false` | If `true`, the component is shown. |
|
|
451
451
|
|
|
452
452
|
#### DialogActions Props
|
|
453
453
|
|
|
454
454
|
Props table for the DialogActions component.
|
|
455
455
|
|
|
456
|
-
| Name
|
|
457
|
-
|
|
|
458
|
-
| `buttonPosition` | `"left" | "right"` | `left`
|
|
456
|
+
| Name | Type | Default | Description |
|
|
457
|
+
| ---------------- | ------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
458
|
+
| `buttonPosition` | `"left" | "right"` | `left` | Specifies the position of action buttons within the Dialog component. It can be set to either `left` or `right` , allowing you to control the alignment of these buttons. |
|
|
459
459
|
|
|
460
460
|
### Code examples
|
|
461
461
|
|
|
@@ -488,13 +488,11 @@ h1 {
|
|
|
488
488
|
|
|
489
489
|
```json
|
|
490
490
|
{
|
|
491
|
-
"include": [
|
|
492
|
-
"./**/*"
|
|
493
|
-
],
|
|
491
|
+
"include": ["./**/*"],
|
|
494
492
|
"compilerOptions": {
|
|
495
493
|
"strict": true,
|
|
496
494
|
"esModuleInterop": true,
|
|
497
|
-
"lib": [
|
|
495
|
+
"lib": ["dom", "es2015"],
|
|
498
496
|
"jsx": "react-jsx"
|
|
499
497
|
}
|
|
500
498
|
}
|
|
@@ -505,13 +503,19 @@ h1 {
|
|
|
505
503
|
```tsx
|
|
506
504
|
// Most minimal Dialog (just has the basic requirements)
|
|
507
505
|
|
|
508
|
-
import {useState} from "react";
|
|
509
|
-
import {
|
|
506
|
+
import { useState } from "react";
|
|
507
|
+
import {
|
|
508
|
+
Button,
|
|
509
|
+
Dialog,
|
|
510
|
+
DialogTitle,
|
|
511
|
+
DialogContent,
|
|
512
|
+
DialogActions,
|
|
513
|
+
} from "@czi-sds/components";
|
|
510
514
|
import "./styles.css";
|
|
511
515
|
|
|
512
516
|
function App() {
|
|
513
517
|
const [isOpen, setIsOpen] = useState(true);
|
|
514
|
-
|
|
518
|
+
|
|
515
519
|
function handleClick() {
|
|
516
520
|
setIsOpen(true);
|
|
517
521
|
}
|
|
@@ -519,7 +523,7 @@ function App() {
|
|
|
519
523
|
function handleClose() {
|
|
520
524
|
setIsOpen(false);
|
|
521
525
|
}
|
|
522
|
-
|
|
526
|
+
|
|
523
527
|
return (
|
|
524
528
|
<div className="app">
|
|
525
529
|
<Button sdsStyle="minimal" sdsType="primary" onClick={handleClick}>
|
|
@@ -532,9 +536,10 @@ function App() {
|
|
|
532
536
|
onClose={handleClose}
|
|
533
537
|
/>
|
|
534
538
|
<DialogContent>
|
|
535
|
-
Embark on a journey of continuous improvement with our treasure trove
|
|
536
|
-
materials. This section hosts an array of tutorials,
|
|
537
|
-
articles designed to enhance your skills and
|
|
539
|
+
Embark on a journey of continuous improvement with our treasure trove
|
|
540
|
+
of learning materials. This section hosts an array of tutorials,
|
|
541
|
+
guides, and insightful articles designed to enhance your skills and
|
|
542
|
+
deepen your understanding.
|
|
538
543
|
</DialogContent>
|
|
539
544
|
</Dialog>
|
|
540
545
|
</div>
|
|
@@ -581,13 +586,12 @@ root.render(
|
|
|
581
586
|
<RootApp />
|
|
582
587
|
</React.StrictMode>
|
|
583
588
|
);
|
|
584
|
-
|
|
585
589
|
```
|
|
586
590
|
|
|
587
591
|
**/public/index.html**
|
|
588
592
|
|
|
589
593
|
```html
|
|
590
|
-
<!
|
|
594
|
+
<!doctype html>
|
|
591
595
|
<html lang="en">
|
|
592
596
|
<head>
|
|
593
597
|
<meta charset="UTF-8" />
|
|
@@ -608,13 +612,24 @@ root.render(
|
|
|
608
612
|
<div id="root"></div>
|
|
609
613
|
</body>
|
|
610
614
|
</html>
|
|
611
|
-
|
|
612
615
|
```
|
|
613
616
|
|
|
614
617
|
**/package.json**
|
|
615
618
|
|
|
616
619
|
```json
|
|
617
|
-
{
|
|
620
|
+
{
|
|
621
|
+
"dependencies": {
|
|
622
|
+
"react": "^18.0.0",
|
|
623
|
+
"react-dom": "^18.0.0",
|
|
624
|
+
"react-scripts": "^4.0.0"
|
|
625
|
+
},
|
|
626
|
+
"devDependencies": {
|
|
627
|
+
"@types/react": "^18.0.0",
|
|
628
|
+
"@types/react-dom": "^18.0.0",
|
|
629
|
+
"typescript": "^4.0.0"
|
|
630
|
+
},
|
|
631
|
+
"main": "/index.tsx"
|
|
632
|
+
}
|
|
618
633
|
```
|
|
619
634
|
|
|
620
635
|
---
|
|
@@ -648,13 +663,11 @@ h1 {
|
|
|
648
663
|
|
|
649
664
|
```json
|
|
650
665
|
{
|
|
651
|
-
"include": [
|
|
652
|
-
"./**/*"
|
|
653
|
-
],
|
|
666
|
+
"include": ["./**/*"],
|
|
654
667
|
"compilerOptions": {
|
|
655
668
|
"strict": true,
|
|
656
669
|
"esModuleInterop": true,
|
|
657
|
-
"lib": [
|
|
670
|
+
"lib": ["dom", "es2015"],
|
|
658
671
|
"jsx": "react-jsx"
|
|
659
672
|
}
|
|
660
673
|
}
|
|
@@ -663,13 +676,19 @@ h1 {
|
|
|
663
676
|
**/App.tsx**
|
|
664
677
|
|
|
665
678
|
```tsx
|
|
666
|
-
import {useState} from "react";
|
|
667
|
-
import {
|
|
679
|
+
import { useState } from "react";
|
|
680
|
+
import {
|
|
681
|
+
Button,
|
|
682
|
+
Dialog,
|
|
683
|
+
DialogTitle,
|
|
684
|
+
DialogContent,
|
|
685
|
+
DialogActions,
|
|
686
|
+
} from "@czi-sds/components";
|
|
668
687
|
import "./styles.css";
|
|
669
688
|
|
|
670
689
|
function App() {
|
|
671
690
|
const [isOpen, setIsOpen] = useState(true);
|
|
672
|
-
|
|
691
|
+
|
|
673
692
|
function handleClick() {
|
|
674
693
|
setIsOpen(true);
|
|
675
694
|
}
|
|
@@ -677,25 +696,30 @@ function App() {
|
|
|
677
696
|
function handleClose() {
|
|
678
697
|
setIsOpen(false);
|
|
679
698
|
}
|
|
680
|
-
|
|
699
|
+
|
|
681
700
|
return (
|
|
682
701
|
<div className="app">
|
|
683
702
|
<Button sdsStyle="minimal" sdsType="primary" onClick={handleClick}>
|
|
684
703
|
Open Dialog
|
|
685
704
|
</Button>
|
|
686
|
-
<Dialog
|
|
705
|
+
<Dialog
|
|
706
|
+
onClose={handleClose}
|
|
707
|
+
open={isOpen}
|
|
708
|
+
sdsSize="xs"
|
|
709
|
+
canClickOutsideClose={false}
|
|
710
|
+
>
|
|
687
711
|
<DialogTitle
|
|
688
712
|
title="Welcome"
|
|
689
713
|
subtitle="New features showcase"
|
|
690
714
|
onClose={handleClose}
|
|
691
715
|
/>
|
|
692
716
|
<DialogContent>
|
|
693
|
-
We are thrilled to introduce you to our latest enhancements and
|
|
694
|
-
In this interactive showcase, you'll have the opportunity to
|
|
695
|
-
wide range of improvements designed to elevate your user
|
|
696
|
-
Whether it's streamlined navigation, enhanced performance,
|
|
697
|
-
visual enhancements, we've got something for everyone.
|
|
698
|
-
discover what's new!
|
|
717
|
+
We are thrilled to introduce you to our latest enhancements and
|
|
718
|
+
features. In this interactive showcase, you'll have the opportunity to
|
|
719
|
+
explore a wide range of improvements designed to elevate your user
|
|
720
|
+
experience. Whether it's streamlined navigation, enhanced performance,
|
|
721
|
+
or delightful visual enhancements, we've got something for everyone.
|
|
722
|
+
Dive in and discover what's new!
|
|
699
723
|
</DialogContent>
|
|
700
724
|
</Dialog>
|
|
701
725
|
</div>
|
|
@@ -742,13 +766,12 @@ root.render(
|
|
|
742
766
|
<RootApp />
|
|
743
767
|
</React.StrictMode>
|
|
744
768
|
);
|
|
745
|
-
|
|
746
769
|
```
|
|
747
770
|
|
|
748
771
|
**/public/index.html**
|
|
749
772
|
|
|
750
773
|
```html
|
|
751
|
-
<!
|
|
774
|
+
<!doctype html>
|
|
752
775
|
<html lang="en">
|
|
753
776
|
<head>
|
|
754
777
|
<meta charset="UTF-8" />
|
|
@@ -769,13 +792,24 @@ root.render(
|
|
|
769
792
|
<div id="root"></div>
|
|
770
793
|
</body>
|
|
771
794
|
</html>
|
|
772
|
-
|
|
773
795
|
```
|
|
774
796
|
|
|
775
797
|
**/package.json**
|
|
776
798
|
|
|
777
799
|
```json
|
|
778
|
-
{
|
|
800
|
+
{
|
|
801
|
+
"dependencies": {
|
|
802
|
+
"react": "^18.0.0",
|
|
803
|
+
"react-dom": "^18.0.0",
|
|
804
|
+
"react-scripts": "^4.0.0"
|
|
805
|
+
},
|
|
806
|
+
"devDependencies": {
|
|
807
|
+
"@types/react": "^18.0.0",
|
|
808
|
+
"@types/react-dom": "^18.0.0",
|
|
809
|
+
"typescript": "^4.0.0"
|
|
810
|
+
},
|
|
811
|
+
"main": "/index.tsx"
|
|
812
|
+
}
|
|
779
813
|
```
|
|
780
814
|
|
|
781
815
|
---
|
|
@@ -809,13 +843,11 @@ h1 {
|
|
|
809
843
|
|
|
810
844
|
```json
|
|
811
845
|
{
|
|
812
|
-
"include": [
|
|
813
|
-
"./**/*"
|
|
814
|
-
],
|
|
846
|
+
"include": ["./**/*"],
|
|
815
847
|
"compilerOptions": {
|
|
816
848
|
"strict": true,
|
|
817
849
|
"esModuleInterop": true,
|
|
818
|
-
"lib": [
|
|
850
|
+
"lib": ["dom", "es2015"],
|
|
819
851
|
"jsx": "react-jsx"
|
|
820
852
|
}
|
|
821
853
|
}
|
|
@@ -824,13 +856,19 @@ h1 {
|
|
|
824
856
|
**/App.tsx**
|
|
825
857
|
|
|
826
858
|
```tsx
|
|
827
|
-
import {useState} from "react";
|
|
828
|
-
import {
|
|
859
|
+
import { useState } from "react";
|
|
860
|
+
import {
|
|
861
|
+
Button,
|
|
862
|
+
Dialog,
|
|
863
|
+
DialogTitle,
|
|
864
|
+
DialogContent,
|
|
865
|
+
DialogActions,
|
|
866
|
+
} from "@czi-sds/components";
|
|
829
867
|
import "./styles.css";
|
|
830
868
|
|
|
831
869
|
function App() {
|
|
832
870
|
const [isOpen, setIsOpen] = useState(true);
|
|
833
|
-
|
|
871
|
+
|
|
834
872
|
function handleClick() {
|
|
835
873
|
setIsOpen(true);
|
|
836
874
|
}
|
|
@@ -838,7 +876,7 @@ function App() {
|
|
|
838
876
|
function handleClose() {
|
|
839
877
|
setIsOpen(false);
|
|
840
878
|
}
|
|
841
|
-
|
|
879
|
+
|
|
842
880
|
return (
|
|
843
881
|
<div className="app">
|
|
844
882
|
<Button sdsStyle="minimal" sdsType="primary" onClick={handleClick}>
|
|
@@ -851,13 +889,12 @@ function App() {
|
|
|
851
889
|
onClose={handleClose}
|
|
852
890
|
/>
|
|
853
891
|
<DialogContent>
|
|
854
|
-
Embark on a journey of continuous improvement with our treasure trove
|
|
855
|
-
materials. This section hosts an array of tutorials,
|
|
856
|
-
articles designed to enhance your skills and
|
|
892
|
+
Embark on a journey of continuous improvement with our treasure trove
|
|
893
|
+
of learning materials. This section hosts an array of tutorials,
|
|
894
|
+
guides, and insightful articles designed to enhance your skills and
|
|
895
|
+
deepen your understanding.
|
|
857
896
|
</DialogContent>
|
|
858
|
-
<DialogActions
|
|
859
|
-
buttonPosition="right"
|
|
860
|
-
>
|
|
897
|
+
<DialogActions buttonPosition="right">
|
|
861
898
|
<Button sdsStyle="square" sdsType="secondary" onClick={handleClose}>
|
|
862
899
|
Secondary Action
|
|
863
900
|
</Button>
|
|
@@ -910,13 +947,12 @@ root.render(
|
|
|
910
947
|
<RootApp />
|
|
911
948
|
</React.StrictMode>
|
|
912
949
|
);
|
|
913
|
-
|
|
914
950
|
```
|
|
915
951
|
|
|
916
952
|
**/public/index.html**
|
|
917
953
|
|
|
918
954
|
```html
|
|
919
|
-
<!
|
|
955
|
+
<!doctype html>
|
|
920
956
|
<html lang="en">
|
|
921
957
|
<head>
|
|
922
958
|
<meta charset="UTF-8" />
|
|
@@ -937,13 +973,24 @@ root.render(
|
|
|
937
973
|
<div id="root"></div>
|
|
938
974
|
</body>
|
|
939
975
|
</html>
|
|
940
|
-
|
|
941
976
|
```
|
|
942
977
|
|
|
943
978
|
**/package.json**
|
|
944
979
|
|
|
945
980
|
```json
|
|
946
|
-
{
|
|
981
|
+
{
|
|
982
|
+
"dependencies": {
|
|
983
|
+
"react": "^18.0.0",
|
|
984
|
+
"react-dom": "^18.0.0",
|
|
985
|
+
"react-scripts": "^4.0.0"
|
|
986
|
+
},
|
|
987
|
+
"devDependencies": {
|
|
988
|
+
"@types/react": "^18.0.0",
|
|
989
|
+
"@types/react-dom": "^18.0.0",
|
|
990
|
+
"typescript": "^4.0.0"
|
|
991
|
+
},
|
|
992
|
+
"main": "/index.tsx"
|
|
993
|
+
}
|
|
947
994
|
```
|
|
948
995
|
|
|
949
996
|
---
|
|
@@ -977,13 +1024,11 @@ h1 {
|
|
|
977
1024
|
|
|
978
1025
|
```json
|
|
979
1026
|
{
|
|
980
|
-
"include": [
|
|
981
|
-
"./**/*"
|
|
982
|
-
],
|
|
1027
|
+
"include": ["./**/*"],
|
|
983
1028
|
"compilerOptions": {
|
|
984
1029
|
"strict": true,
|
|
985
1030
|
"esModuleInterop": true,
|
|
986
|
-
"lib": [
|
|
1031
|
+
"lib": ["dom", "es2015"],
|
|
987
1032
|
"jsx": "react-jsx"
|
|
988
1033
|
}
|
|
989
1034
|
}
|
|
@@ -994,13 +1039,19 @@ h1 {
|
|
|
994
1039
|
```tsx
|
|
995
1040
|
// Most minimal Dialog (just has the basic requirements)
|
|
996
1041
|
|
|
997
|
-
import {useState} from "react";
|
|
998
|
-
import {
|
|
1042
|
+
import { useState } from "react";
|
|
1043
|
+
import {
|
|
1044
|
+
Button,
|
|
1045
|
+
Dialog,
|
|
1046
|
+
DialogTitle,
|
|
1047
|
+
DialogContent,
|
|
1048
|
+
DialogActions,
|
|
1049
|
+
} from "@czi-sds/components";
|
|
999
1050
|
import "./styles.css";
|
|
1000
1051
|
|
|
1001
1052
|
function App() {
|
|
1002
1053
|
const [isOpen, setIsOpen] = useState(true);
|
|
1003
|
-
|
|
1054
|
+
|
|
1004
1055
|
function handleClick() {
|
|
1005
1056
|
setIsOpen(true);
|
|
1006
1057
|
}
|
|
@@ -1008,7 +1059,7 @@ function App() {
|
|
|
1008
1059
|
function handleClose() {
|
|
1009
1060
|
setIsOpen(false);
|
|
1010
1061
|
}
|
|
1011
|
-
|
|
1062
|
+
|
|
1012
1063
|
return (
|
|
1013
1064
|
<div className="app">
|
|
1014
1065
|
<Button sdsStyle="minimal" sdsType="primary" onClick={handleClick}>
|
|
@@ -1021,26 +1072,24 @@ function App() {
|
|
|
1021
1072
|
onClose={handleClose}
|
|
1022
1073
|
/>
|
|
1023
1074
|
<DialogContent>
|
|
1024
|
-
Embark on a fulfilling journey of continuous improvement with our vast
|
|
1025
|
-
repository of valuable learning resources. Within this dedicated
|
|
1026
|
-
you'll find an extensive collection of meticulously crafted
|
|
1027
|
-
comprehensive guides, and thought-provoking articles
|
|
1028
|
-
to enrich your skill set and provide profound
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
you're a novice eager to build a strong foundation or a seasoned
|
|
1033
|
-
seeking to stay at the forefront of your industry, our
|
|
1034
|
-
materials is your gateway to honing your
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1075
|
+
Embark on a fulfilling journey of continuous improvement with our vast
|
|
1076
|
+
repository of valuable learning resources. Within this dedicated
|
|
1077
|
+
section, you'll find an extensive collection of meticulously crafted
|
|
1078
|
+
tutorials, comprehensive guides, and thought-provoking articles
|
|
1079
|
+
meticulously designed to enrich your skill set and provide profound
|
|
1080
|
+
insights into your field of interest. Explore a diverse range of
|
|
1081
|
+
topics, from fundamental principles to advanced techniques, as we aim
|
|
1082
|
+
to empower you with knowledge that transcends boundaries. Whether
|
|
1083
|
+
you're a novice eager to build a strong foundation or a seasoned
|
|
1084
|
+
professional seeking to stay at the forefront of your industry, our
|
|
1085
|
+
treasure trove of educational materials is your gateway to honing your
|
|
1086
|
+
expertise. Unlock your potential, expand your horizons, and stay ahead
|
|
1087
|
+
of the curve by immersing yourself in this wealth of knowledge. We
|
|
1088
|
+
believe that continuous learning is the key to personal and
|
|
1089
|
+
professional growth, and we're excited to accompany you on this
|
|
1039
1090
|
educational journey, every step of the way.
|
|
1040
1091
|
</DialogContent>
|
|
1041
|
-
<DialogActions
|
|
1042
|
-
buttonPosition="left"
|
|
1043
|
-
>
|
|
1092
|
+
<DialogActions buttonPosition="left">
|
|
1044
1093
|
<Button sdsStyle="square" sdsType="primary" onClick={handleClose}>
|
|
1045
1094
|
Primary Action
|
|
1046
1095
|
</Button>
|
|
@@ -1093,13 +1142,12 @@ root.render(
|
|
|
1093
1142
|
<RootApp />
|
|
1094
1143
|
</React.StrictMode>
|
|
1095
1144
|
);
|
|
1096
|
-
|
|
1097
1145
|
```
|
|
1098
1146
|
|
|
1099
1147
|
**/public/index.html**
|
|
1100
1148
|
|
|
1101
1149
|
```html
|
|
1102
|
-
<!
|
|
1150
|
+
<!doctype html>
|
|
1103
1151
|
<html lang="en">
|
|
1104
1152
|
<head>
|
|
1105
1153
|
<meta charset="UTF-8" />
|
|
@@ -1120,14 +1168,24 @@ root.render(
|
|
|
1120
1168
|
<div id="root"></div>
|
|
1121
1169
|
</body>
|
|
1122
1170
|
</html>
|
|
1123
|
-
|
|
1124
1171
|
```
|
|
1125
1172
|
|
|
1126
1173
|
**/package.json**
|
|
1127
1174
|
|
|
1128
1175
|
```json
|
|
1129
|
-
{
|
|
1176
|
+
{
|
|
1177
|
+
"dependencies": {
|
|
1178
|
+
"react": "^18.0.0",
|
|
1179
|
+
"react-dom": "^18.0.0",
|
|
1180
|
+
"react-scripts": "^4.0.0"
|
|
1181
|
+
},
|
|
1182
|
+
"devDependencies": {
|
|
1183
|
+
"@types/react": "^18.0.0",
|
|
1184
|
+
"@types/react-dom": "^18.0.0",
|
|
1185
|
+
"typescript": "^4.0.0"
|
|
1186
|
+
},
|
|
1187
|
+
"main": "/index.tsx"
|
|
1188
|
+
}
|
|
1130
1189
|
```
|
|
1131
1190
|
|
|
1132
1191
|
---
|
|
1133
|
-
|