@popsure/dirty-swan 0.27.6 → 0.27.8
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/dist/index.css +21 -12
- package/dist/index.css.map +1 -1
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/components/markdown/index.d.ts +9 -0
- package/dist/lib/scss/private/base/style.module.scss +1 -1
- package/dist/lib/scss/private/components/_badge.scss +1 -1
- package/dist/lib/scss/private/components/_buttons.scss +2 -2
- package/dist/lib/scss/private/components/_input.scss +6 -6
- package/dist/lib/scss/public/colors/default.scss +4 -2
- package/dist/lib/scss/third-party/_google_places.scss +1 -1
- package/package.json +4 -1
- package/src/lib/components/dateSelector/datepicker.scss +2 -2
- package/src/lib/components/input/index.stories.mdx +4 -0
- package/src/lib/components/input/index.tsx +19 -11
- package/src/lib/components/input/style.module.scss +6 -2
- package/src/lib/components/markdown/example.md +78 -0
- package/src/lib/components/markdown/index.stories.mdx +22 -0
- package/src/lib/components/markdown/index.tsx +139 -0
- package/src/lib/components/markdown/styles.module.scss +13 -0
- package/src/lib/components/multiDropzone/UploadFileCell/style.module.scss +1 -1
- package/src/lib/components/signaturePad/style.module.scss +1 -1
- package/src/lib/scss/private/base/style.module.scss +1 -1
- package/src/lib/scss/private/components/_badge.scss +1 -1
- package/src/lib/scss/private/components/_buttons.scss +2 -2
- package/src/lib/scss/private/components/_input.scss +6 -6
- package/src/lib/scss/public/colors/default.scss +4 -2
- package/src/lib/scss/third-party/_google_places.scss +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { FunctionComponent } from 'react';
|
|
2
|
+
declare const Markdown: ({ children, customMDComponents, className, openLinksInNewTab, paragraphClassName, }: {
|
|
3
|
+
children: string;
|
|
4
|
+
customMDComponents?: Record<string, React.FunctionComponent<any>> | undefined;
|
|
5
|
+
className?: string | undefined;
|
|
6
|
+
openLinksInNewTab?: boolean | undefined;
|
|
7
|
+
paragraphClassName?: string | undefined;
|
|
8
|
+
}) => JSX.Element;
|
|
9
|
+
export default Markdown;
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
color: $ds-grey-500;
|
|
172
172
|
background-color: transparent;
|
|
173
173
|
|
|
174
|
-
border: 1px dashed $ds-grey-
|
|
174
|
+
border: 1px dashed $ds-grey-400;
|
|
175
175
|
|
|
176
176
|
&:hover {
|
|
177
177
|
color: $ds-grey-600;
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
|
|
181
181
|
&[disabled] {
|
|
182
182
|
color: $ds-grey-500;
|
|
183
|
-
border-color: $ds-grey-
|
|
183
|
+
border-color: $ds-grey-400;
|
|
184
184
|
opacity: 0.5;
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
width: 100%;
|
|
15
15
|
|
|
16
16
|
border-radius: 8px;
|
|
17
|
-
border: 1px solid $ds-grey-
|
|
17
|
+
border: 1px solid $ds-grey-400;
|
|
18
18
|
background-color: white;
|
|
19
19
|
|
|
20
20
|
color: $ds-grey-900;
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
&:disabled {
|
|
29
29
|
background-color: $ds-grey-300;
|
|
30
|
-
border
|
|
30
|
+
border: none;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
&:focus {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
height: 16px;
|
|
82
82
|
min-height: 16px;
|
|
83
83
|
|
|
84
|
-
border: 1px solid $ds-grey-
|
|
84
|
+
border: 1px solid $ds-grey-400;
|
|
85
85
|
border-radius: 50%;
|
|
86
86
|
|
|
87
87
|
background-color: white;
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
height: 16px;
|
|
114
114
|
min-height: 16px;
|
|
115
115
|
|
|
116
|
-
border: 1px solid $ds-grey-
|
|
116
|
+
border: 1px solid $ds-grey-400;
|
|
117
117
|
border-radius: 4px;
|
|
118
118
|
|
|
119
119
|
background-color: white;
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
padding-left: 16px;
|
|
164
164
|
|
|
165
165
|
border-radius: 8px;
|
|
166
|
-
border: 1px solid $ds-grey-
|
|
166
|
+
border: 1px solid $ds-grey-400;
|
|
167
167
|
background-color: white;
|
|
168
168
|
|
|
169
169
|
&:hover {
|
|
@@ -201,7 +201,7 @@ input:checked[type='checkbox'] + .p-label--bordered {
|
|
|
201
201
|
height: 48px;
|
|
202
202
|
|
|
203
203
|
border-radius: 8px;
|
|
204
|
-
border: 1px solid $ds-grey-
|
|
204
|
+
border: 1px solid $ds-grey-400;
|
|
205
205
|
background-color: white;
|
|
206
206
|
|
|
207
207
|
font-family: inherit;
|
|
@@ -41,8 +41,9 @@ $ds-pink-900: #700024;
|
|
|
41
41
|
|
|
42
42
|
$ds-grey-100: #fafaff;
|
|
43
43
|
$ds-grey-200: #f5f5fa;
|
|
44
|
-
$ds-grey-300: #
|
|
45
|
-
$ds-grey-
|
|
44
|
+
$ds-grey-300: #ededf2;
|
|
45
|
+
$ds-grey-400: #d2d2d8;
|
|
46
|
+
$ds-grey-500: #848490;
|
|
46
47
|
$ds-grey-600: #696970;
|
|
47
48
|
$ds-grey-700: #4c4c53;
|
|
48
49
|
$ds-grey-900: #26262e;
|
|
@@ -98,6 +99,7 @@ $colors: (
|
|
|
98
99
|
'grey-100': $ds-grey-100,
|
|
99
100
|
'grey-200': $ds-grey-200,
|
|
100
101
|
'grey-300': $ds-grey-300,
|
|
102
|
+
'grey-400': $ds-grey-400,
|
|
101
103
|
'grey-500': $ds-grey-500,
|
|
102
104
|
'grey-600': $ds-grey-600,
|
|
103
105
|
'grey-700': $ds-grey-700,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@popsure/dirty-swan",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.8",
|
|
4
4
|
"author": "Vincent Audoire <vincent@getpopsure.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -23,12 +23,15 @@
|
|
|
23
23
|
"@popsure/public-models": "^1.0.1",
|
|
24
24
|
"classnames": "^2.3.1",
|
|
25
25
|
"dayjs": "^1.10.7",
|
|
26
|
+
"hastscript": "^7.0.2",
|
|
26
27
|
"lodash.debounce": "^4.0.8",
|
|
27
28
|
"lodash.isequal": "^4.5.0",
|
|
28
29
|
"react-autosuggest": "^10.1.0",
|
|
29
30
|
"react-day-picker": "^7.4.10",
|
|
30
31
|
"react-dropzone": "^11.3.2",
|
|
32
|
+
"react-markdown": "^8.0.3",
|
|
31
33
|
"react-scroll-sync": "^0.9.0",
|
|
34
|
+
"remark-directive": "^2.0.1",
|
|
32
35
|
"sass": "^1.35.1",
|
|
33
36
|
"signature_pad": "^3.0.0-beta.3"
|
|
34
37
|
},
|
|
@@ -391,7 +391,7 @@
|
|
|
391
391
|
}
|
|
392
392
|
|
|
393
393
|
.DayPicker-Day--outside {
|
|
394
|
-
color: $ds-grey-
|
|
394
|
+
color: $ds-grey-400;
|
|
395
395
|
cursor: pointer;
|
|
396
396
|
|
|
397
397
|
&:hover {
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
}
|
|
401
401
|
|
|
402
402
|
.DayPicker-Day--disabled {
|
|
403
|
-
color: $ds-grey-
|
|
403
|
+
color: $ds-grey-400;
|
|
404
404
|
background-color: transparent;
|
|
405
405
|
pointer-events: none;
|
|
406
406
|
}
|
|
@@ -34,6 +34,8 @@ You are looking at the JSX definition of the Input component, if you want you ca
|
|
|
34
34
|
value="jane.doe@feather-insurance.com"
|
|
35
35
|
placeholder="Email"
|
|
36
36
|
/>
|
|
37
|
+
<h4 className="p-h4 mt24">Disabled</h4>
|
|
38
|
+
<Input className="wmx5 mt8" placeholder="Email" disabled />
|
|
37
39
|
<h4 className="p-h4 mt24">Error</h4>
|
|
38
40
|
<Input
|
|
39
41
|
className="wmx5 mt8"
|
|
@@ -50,6 +52,8 @@ You are looking at the JSX definition of the Input component, if you want you ca
|
|
|
50
52
|
<Input className="wmx5 mt8" placeholder="amount" prefix="€" />
|
|
51
53
|
<h4 className="p-h4 mt24">Filled with placeholder</h4>
|
|
52
54
|
<Input className="wmx5 mt8" placeholder="amount" value="100" prefix="€" />
|
|
55
|
+
<h4 className="p-h4 mt24">Disabled</h4>
|
|
56
|
+
<Input className="wmx5 mt8" placeholder="amount" disabled prefix="€" />
|
|
53
57
|
<h4 className="p-h4 mt24">Error</h4>
|
|
54
58
|
<Input
|
|
55
59
|
className="wmx5 mt8"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
2
3
|
|
|
3
4
|
import styles from './style.module.scss';
|
|
4
5
|
|
|
@@ -11,7 +12,7 @@ export type InputProps = {
|
|
|
11
12
|
|
|
12
13
|
export default React.forwardRef(
|
|
13
14
|
(
|
|
14
|
-
{ className, placeholder, prefix, error, ...props }: InputProps,
|
|
15
|
+
{ className, placeholder, prefix, error, disabled, ...props }: InputProps,
|
|
15
16
|
ref?: React.ForwardedRef<HTMLInputElement>
|
|
16
17
|
) => (
|
|
17
18
|
<div className={`${styles.container} ${className ?? ''}`}>
|
|
@@ -19,27 +20,34 @@ export default React.forwardRef(
|
|
|
19
20
|
data-testid="ds-input-input"
|
|
20
21
|
type="text"
|
|
21
22
|
ref={ref}
|
|
22
|
-
className={
|
|
23
|
-
|
|
23
|
+
className={classnames(
|
|
24
|
+
error ? 'p-input--error' : 'p-input',
|
|
25
|
+
placeholder && placeholder.length > 0
|
|
24
26
|
? styles.input
|
|
25
|
-
: styles['input--no-placeholder']
|
|
26
|
-
|
|
27
|
+
: styles['input--no-placeholder'],
|
|
28
|
+
{ [styles['input--with-prefix']]: prefix }
|
|
29
|
+
)}
|
|
27
30
|
placeholder=" "
|
|
31
|
+
disabled={disabled}
|
|
28
32
|
{...props}
|
|
29
33
|
/>
|
|
30
34
|
{prefix && (
|
|
31
35
|
<span
|
|
32
|
-
className={
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
className={classnames(
|
|
37
|
+
styles.prefix,
|
|
38
|
+
{ [styles['prefix--with-error']]: error },
|
|
39
|
+
{ [styles['prefix--disabled']]: disabled }
|
|
40
|
+
)}
|
|
35
41
|
>
|
|
36
42
|
{prefix}
|
|
37
43
|
</span>
|
|
38
44
|
)}
|
|
39
45
|
<span
|
|
40
|
-
className={
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
className={classnames(
|
|
47
|
+
styles.placeholder,
|
|
48
|
+
{ [styles['placeholder--with-prefix']]: prefix },
|
|
49
|
+
{ [styles['placeholder--with-error']]: error }
|
|
50
|
+
)}
|
|
43
51
|
>
|
|
44
52
|
{placeholder}
|
|
45
53
|
</span>
|
|
@@ -10,13 +10,17 @@
|
|
|
10
10
|
|
|
11
11
|
transform: translateY(-50%);
|
|
12
12
|
|
|
13
|
-
color: var(--ds-grey-
|
|
13
|
+
color: var(--ds-grey-500);
|
|
14
14
|
|
|
15
15
|
transition: 0.3s top;
|
|
16
16
|
|
|
17
17
|
&--with-error {
|
|
18
18
|
color: var(--ds-red-500);
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
&--disabled {
|
|
22
|
+
color: var(--ds-grey-600);
|
|
23
|
+
}
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
.input:not(:placeholder-shown) ~ .placeholder,
|
|
@@ -78,7 +82,7 @@
|
|
|
78
82
|
transform: translateY(-50%);
|
|
79
83
|
transition: 0.3s ease all;
|
|
80
84
|
|
|
81
|
-
color: var(--ds-grey-
|
|
85
|
+
color: var(--ds-grey-500);
|
|
82
86
|
|
|
83
87
|
&--with-prefix {
|
|
84
88
|
left: 32px;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Headers
|
|
2
|
+
|
|
3
|
+
The header options range from h1 to h4.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
# H1
|
|
7
|
+
## H2
|
|
8
|
+
### H3
|
|
9
|
+
#### H4
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
# H1 Lorem ipsum non sunt qui sunt
|
|
13
|
+
|
|
14
|
+
## H2 Lorem ipsum non sunt qui sunt
|
|
15
|
+
|
|
16
|
+
### H3 Lorem ipsum non sunt qui sunt
|
|
17
|
+
|
|
18
|
+
#### H4 Lorem ipsum non sunt qui sunt
|
|
19
|
+
|
|
20
|
+
# Emphasis
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Emphasis or italics, use *asterisk* or _underscore_.
|
|
24
|
+
Strong emphasis or bold, use **asterisks** or __underscores__.
|
|
25
|
+
Combined emphasis, use **_asterisks and underscores_**.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Emphasis or italics, use _asterisk_ or _underscore_.
|
|
29
|
+
|
|
30
|
+
Strong emphasis or bold, use **asterisks** or **underscores**.
|
|
31
|
+
|
|
32
|
+
Combined emphasis, use **_asterisks and underscores_**.
|
|
33
|
+
|
|
34
|
+
# Lists
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
1. First ordered list item
|
|
38
|
+
2. Another item
|
|
39
|
+
3. Actual numbers don't matter, just that it's a number
|
|
40
|
+
4. And another item.
|
|
41
|
+
|
|
42
|
+
* Unordered list can use asterisks
|
|
43
|
+
- Or minuses
|
|
44
|
+
+ Or pluses
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
1. First ordered list item
|
|
48
|
+
2. Another item
|
|
49
|
+
3. Actual numbers don't matter, just that it's a number
|
|
50
|
+
4. And another item.
|
|
51
|
+
|
|
52
|
+
- Unordered list can use asterisks
|
|
53
|
+
- Or minuses
|
|
54
|
+
- Or pluses
|
|
55
|
+
|
|
56
|
+
# Links
|
|
57
|
+
|
|
58
|
+
For links markdown syntax should be used.
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
[This is an inline link](https://feather-insurance.com)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
[This is an inline link](https://feather-insurance.com)
|
|
65
|
+
|
|
66
|
+
# Custom Markdown tags
|
|
67
|
+
|
|
68
|
+
When additional functionality needs to be added to the markdown component, custom tags can be used.
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Tags in the form of :mytag[value]{attributes} will be converted to the corresponding
|
|
72
|
+
custom HTML tags <mytag ...attributes>value<mytag>.
|
|
73
|
+
|
|
74
|
+
Custom styling for these tags can be provided by passing the customMDComponents prop
|
|
75
|
+
<Markdown customMDComponents={
|
|
76
|
+
mytag: ({ children }) => (<h1>{childrend}</h1>)
|
|
77
|
+
}>
|
|
78
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Meta, Preview } from '@storybook/addon-docs/blocks';
|
|
2
|
+
|
|
3
|
+
import Markdown from '.';
|
|
4
|
+
import example from './example.md';
|
|
5
|
+
|
|
6
|
+
<Meta title="JSX/Markdown" />
|
|
7
|
+
|
|
8
|
+
# Markdown
|
|
9
|
+
|
|
10
|
+
Display markdown text based on [react-markdown](https://github.com/remarkjs/react-markdown) with custom styling.
|
|
11
|
+
|
|
12
|
+
<Preview>
|
|
13
|
+
<Markdown>{example}</Markdown>
|
|
14
|
+
</Preview>
|
|
15
|
+
|
|
16
|
+
| attribute | unit | description | default value | required |
|
|
17
|
+
| ------------------ | ---------------------------------------------- | ------------------------------------------------ | ------------- | -------- |
|
|
18
|
+
| children | string | Markdown source to be rendered | n/a | true |
|
|
19
|
+
| customMDComponents | Record<string, FunctionComponent<any>> | Styling functions for custom tags | n/a | false |
|
|
20
|
+
| className | string | Styles to be applied to the whole markdown block | '' | false |
|
|
21
|
+
| openLinksInNewTab | boolean | Whether the links should open in a new tab | false | false |
|
|
22
|
+
| paragraphClassName | string | Styles to be applied to paragraph tags | '' | false |
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { h } from 'hastscript/html.js';
|
|
2
|
+
import React, { FunctionComponent } from 'react';
|
|
3
|
+
import ReactMarkdown from 'react-markdown';
|
|
4
|
+
import remarkDirective from 'remark-directive';
|
|
5
|
+
import visit from 'unist-util-visit';
|
|
6
|
+
|
|
7
|
+
import styles from './styles.module.scss';
|
|
8
|
+
|
|
9
|
+
// The plugin function 'directiveToHTMLTag' is used in conjunction with 'remarkDirective' to parse custom markdown tags.
|
|
10
|
+
|
|
11
|
+
// It converts tags in the form of :mytag[value]{attributes} to the
|
|
12
|
+
// corresponding custom HTML tags <mytag ...attributes>value<mytag> .
|
|
13
|
+
// (NOTE: tag names are always converted to lowercase custom html tags)
|
|
14
|
+
|
|
15
|
+
// These can then be overridden by supplying the ReactMarkdown component with
|
|
16
|
+
// an entry in its 'components' property:
|
|
17
|
+
// <ReactMarkdown components={
|
|
18
|
+
// mytag: ({ children }) => (<h1>{childrend}</h1>)
|
|
19
|
+
// }>
|
|
20
|
+
|
|
21
|
+
// Without those plugins, it's only possible to override the standard html tags as listed here:
|
|
22
|
+
// https://github.com/remarkjs/react-markdown#appendix-b-components
|
|
23
|
+
|
|
24
|
+
const directiveToHTMLTag = () => {
|
|
25
|
+
return (tree: any) => {
|
|
26
|
+
// Visit the given tree and transform 'text-', 'leaf-' or 'containerDirectives' (= custom tags) as parsed by
|
|
27
|
+
// the remarkDirective plugin
|
|
28
|
+
visit(
|
|
29
|
+
tree,
|
|
30
|
+
['textDirective', 'leafDirective', 'containerDirective'],
|
|
31
|
+
(node: any) => {
|
|
32
|
+
// Grab a reference to the data of the custom tag node
|
|
33
|
+
const data = node.data || (node.data = {});
|
|
34
|
+
|
|
35
|
+
// Create a HyperText Abstract Syntax Tree (HAST) from the node
|
|
36
|
+
const hast = h(node.name, node.attributes);
|
|
37
|
+
|
|
38
|
+
// Modify the node data with the resulting HAST's data to transform the node into something
|
|
39
|
+
// that ReactMarkdown can understand (custom html tag) and later replace with a custom component
|
|
40
|
+
data.hName = hast.tagName;
|
|
41
|
+
data.hProperties = hast.properties;
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const Link = (openLinksInNewTab: boolean) => (props: any) => {
|
|
48
|
+
return openLinksInNewTab ? (
|
|
49
|
+
<a href={props.href} className="p-a" target="_blank" rel="noreferrer">
|
|
50
|
+
{props.children}
|
|
51
|
+
</a>
|
|
52
|
+
) : (
|
|
53
|
+
<a href={props.href} className="p-a">
|
|
54
|
+
{props.children}
|
|
55
|
+
</a>
|
|
56
|
+
);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const Paragraph = (className: string) => (props: any) => {
|
|
60
|
+
return <p className={className || 'p-p mt8'}>{props.children}</p>;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const Heading = (props: any) => {
|
|
64
|
+
const { level } = props;
|
|
65
|
+
|
|
66
|
+
switch (level) {
|
|
67
|
+
case 1:
|
|
68
|
+
return <h1 className="p-h1 p--serif mt32">{props.children}</h1>;
|
|
69
|
+
case 2:
|
|
70
|
+
return <h2 className="p-h2 mt24">{props.children}</h2>;
|
|
71
|
+
case 3:
|
|
72
|
+
return <h3 className="p-h3 mt16">{props.children}</h3>;
|
|
73
|
+
case 4:
|
|
74
|
+
return <h4 className="p-h4 mt8">{props.children}</h4>;
|
|
75
|
+
default:
|
|
76
|
+
return <p>{props.children}</p>;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const UList = (props: any) => {
|
|
81
|
+
return <ul className={`p-p ${styles.ulist} mt8`}>{props.children}</ul>;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const OList = (props: any) => {
|
|
85
|
+
return <ol className={`p-p ${styles.olist} mt8`}>{props.children}</ol>;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const Strong = (props: any) => {
|
|
89
|
+
return <strong className="fw-bold">{props.children}</strong>;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const Italic = (props: any) => {
|
|
93
|
+
return <em className="fs-italic">{props.children}</em>;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const Code = (props: any) => {
|
|
97
|
+
return (
|
|
98
|
+
<div className={`bg-grey-200 p8 p-p--small my8 br2 ${styles.code}`}>
|
|
99
|
+
{props.children}
|
|
100
|
+
</div>
|
|
101
|
+
);
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
const Markdown = ({
|
|
105
|
+
children,
|
|
106
|
+
customMDComponents,
|
|
107
|
+
className = '',
|
|
108
|
+
openLinksInNewTab = false,
|
|
109
|
+
paragraphClassName = '',
|
|
110
|
+
}: {
|
|
111
|
+
children: string;
|
|
112
|
+
customMDComponents?: Record<string, FunctionComponent<any>>;
|
|
113
|
+
className?: string;
|
|
114
|
+
openLinksInNewTab?: boolean;
|
|
115
|
+
paragraphClassName?: string;
|
|
116
|
+
}) => (
|
|
117
|
+
<ReactMarkdown
|
|
118
|
+
children={children}
|
|
119
|
+
className={className}
|
|
120
|
+
components={{
|
|
121
|
+
a: Link(openLinksInNewTab),
|
|
122
|
+
p: Paragraph(paragraphClassName),
|
|
123
|
+
h1: Heading,
|
|
124
|
+
h2: Heading,
|
|
125
|
+
h3: Heading,
|
|
126
|
+
h4: Heading,
|
|
127
|
+
h5: Heading,
|
|
128
|
+
ol: OList,
|
|
129
|
+
ul: UList,
|
|
130
|
+
strong: Strong,
|
|
131
|
+
em: Italic,
|
|
132
|
+
code: Code,
|
|
133
|
+
...customMDComponents,
|
|
134
|
+
}}
|
|
135
|
+
remarkPlugins={[remarkDirective, directiveToHTMLTag]}
|
|
136
|
+
/>
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
export default Markdown;
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
color: $ds-grey-500;
|
|
172
172
|
background-color: transparent;
|
|
173
173
|
|
|
174
|
-
border: 1px dashed $ds-grey-
|
|
174
|
+
border: 1px dashed $ds-grey-400;
|
|
175
175
|
|
|
176
176
|
&:hover {
|
|
177
177
|
color: $ds-grey-600;
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
|
|
181
181
|
&[disabled] {
|
|
182
182
|
color: $ds-grey-500;
|
|
183
|
-
border-color: $ds-grey-
|
|
183
|
+
border-color: $ds-grey-400;
|
|
184
184
|
opacity: 0.5;
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
width: 100%;
|
|
15
15
|
|
|
16
16
|
border-radius: 8px;
|
|
17
|
-
border: 1px solid $ds-grey-
|
|
17
|
+
border: 1px solid $ds-grey-400;
|
|
18
18
|
background-color: white;
|
|
19
19
|
|
|
20
20
|
color: $ds-grey-900;
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
&:disabled {
|
|
29
29
|
background-color: $ds-grey-300;
|
|
30
|
-
border
|
|
30
|
+
border: none;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
&:focus {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
height: 16px;
|
|
82
82
|
min-height: 16px;
|
|
83
83
|
|
|
84
|
-
border: 1px solid $ds-grey-
|
|
84
|
+
border: 1px solid $ds-grey-400;
|
|
85
85
|
border-radius: 50%;
|
|
86
86
|
|
|
87
87
|
background-color: white;
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
height: 16px;
|
|
114
114
|
min-height: 16px;
|
|
115
115
|
|
|
116
|
-
border: 1px solid $ds-grey-
|
|
116
|
+
border: 1px solid $ds-grey-400;
|
|
117
117
|
border-radius: 4px;
|
|
118
118
|
|
|
119
119
|
background-color: white;
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
padding-left: 16px;
|
|
164
164
|
|
|
165
165
|
border-radius: 8px;
|
|
166
|
-
border: 1px solid $ds-grey-
|
|
166
|
+
border: 1px solid $ds-grey-400;
|
|
167
167
|
background-color: white;
|
|
168
168
|
|
|
169
169
|
&:hover {
|
|
@@ -201,7 +201,7 @@ input:checked[type='checkbox'] + .p-label--bordered {
|
|
|
201
201
|
height: 48px;
|
|
202
202
|
|
|
203
203
|
border-radius: 8px;
|
|
204
|
-
border: 1px solid $ds-grey-
|
|
204
|
+
border: 1px solid $ds-grey-400;
|
|
205
205
|
background-color: white;
|
|
206
206
|
|
|
207
207
|
font-family: inherit;
|
|
@@ -41,8 +41,9 @@ $ds-pink-900: #700024;
|
|
|
41
41
|
|
|
42
42
|
$ds-grey-100: #fafaff;
|
|
43
43
|
$ds-grey-200: #f5f5fa;
|
|
44
|
-
$ds-grey-300: #
|
|
45
|
-
$ds-grey-
|
|
44
|
+
$ds-grey-300: #ededf2;
|
|
45
|
+
$ds-grey-400: #d2d2d8;
|
|
46
|
+
$ds-grey-500: #848490;
|
|
46
47
|
$ds-grey-600: #696970;
|
|
47
48
|
$ds-grey-700: #4c4c53;
|
|
48
49
|
$ds-grey-900: #26262e;
|
|
@@ -98,6 +99,7 @@ $colors: (
|
|
|
98
99
|
'grey-100': $ds-grey-100,
|
|
99
100
|
'grey-200': $ds-grey-200,
|
|
100
101
|
'grey-300': $ds-grey-300,
|
|
102
|
+
'grey-400': $ds-grey-400,
|
|
101
103
|
'grey-500': $ds-grey-500,
|
|
102
104
|
'grey-600': $ds-grey-600,
|
|
103
105
|
'grey-700': $ds-grey-700,
|