@contentful/field-editor-markdown 1.2.1 → 1.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.
- package/dist/cjs/MarkdownActions.js +235 -0
- package/dist/cjs/MarkdownEditor.js +180 -0
- package/dist/cjs/__fixtures__/FakeSdk.js +183 -0
- package/dist/cjs/__fixtures__/asset/index.js +37 -0
- package/dist/cjs/__fixtures__/content-type/index.js +16 -0
- package/dist/cjs/__fixtures__/entry/index.js +33 -0
- package/dist/cjs/__fixtures__/fixtures.js +71 -0
- package/dist/cjs/__fixtures__/locale/index.js +40 -0
- package/dist/cjs/__fixtures__/space/index.js +16 -0
- package/dist/cjs/codemirrorImports.js +9 -0
- package/dist/cjs/components/HeadingSelector.js +66 -0
- package/dist/cjs/components/InsertLinkSelector.js +86 -0
- package/dist/cjs/components/MarkdownBottomBar.js +111 -0
- package/dist/cjs/components/MarkdownConstraints.js +79 -0
- package/dist/cjs/components/MarkdownPreview.js +249 -0
- package/dist/cjs/components/MarkdownTabs.js +128 -0
- package/dist/cjs/components/MarkdownTextarea/CodeMirrorWrapper.js +383 -0
- package/dist/cjs/components/MarkdownTextarea/MarkdownCommands.js +233 -0
- package/dist/cjs/components/MarkdownTextarea/MarkdownTextarea.js +190 -0
- package/dist/cjs/components/MarkdownTextarea/createMarkdownEditor.js +101 -0
- package/dist/cjs/components/MarkdownToolbar.js +367 -0
- package/dist/cjs/components/icons.js +193 -0
- package/dist/cjs/dialogs/CheatsheetModalDialog.js +239 -0
- package/dist/cjs/dialogs/ConfirmInsertAssetModalDialog.js +94 -0
- package/dist/cjs/dialogs/EmdebExternalContentDialog.js +202 -0
- package/dist/cjs/dialogs/InsertLinkModalDialog.js +149 -0
- package/dist/cjs/dialogs/InsertTableModalDialog.js +140 -0
- package/dist/cjs/dialogs/SpecialCharacterModalDialog.js +146 -0
- package/dist/cjs/dialogs/ZenModeModalDialog.js +257 -0
- package/dist/cjs/dialogs/openMarkdownDialog.js +121 -0
- package/dist/cjs/dialogs/renderMarkdownDialog.js +108 -0
- package/dist/cjs/index.js +29 -0
- package/dist/cjs/types.js +20 -0
- package/dist/cjs/utils/insertAssetLinks.js +122 -0
- package/dist/cjs/utils/insertAssetLinks.spec.js +22 -0
- package/dist/cjs/utils/isValidUrl.js +22 -0
- package/dist/cjs/utils/linkOrganizer.js +187 -0
- package/dist/cjs/utils/linkOrganizer.spec.js +96 -0
- package/dist/cjs/utils/replaceMailtoAmp.js +15 -0
- package/dist/cjs/utils/replaceMailtoAmp.spec.js +22 -0
- package/dist/cjs/utils/specialCharacters.js +228 -0
- package/dist/cjs/utils/userAgent.js +28 -0
- package/dist/esm/MarkdownActions.js +186 -0
- package/dist/esm/MarkdownEditor.js +118 -0
- package/dist/esm/__fixtures__/FakeSdk.js +173 -0
- package/dist/esm/__fixtures__/asset/index.js +6 -0
- package/dist/esm/__fixtures__/content-type/index.js +2 -0
- package/dist/esm/__fixtures__/entry/index.js +5 -0
- package/dist/esm/__fixtures__/fixtures.js +6 -0
- package/dist/esm/__fixtures__/locale/index.js +15 -0
- package/dist/esm/__fixtures__/space/index.js +2 -0
- package/dist/esm/codemirrorImports.js +5 -0
- package/dist/esm/components/HeadingSelector.js +17 -0
- package/dist/esm/components/InsertLinkSelector.js +37 -0
- package/dist/esm/components/MarkdownBottomBar.js +46 -0
- package/dist/esm/components/MarkdownConstraints.js +25 -0
- package/dist/esm/components/MarkdownPreview.js +195 -0
- package/dist/esm/components/MarkdownTabs.js +74 -0
- package/dist/esm/components/MarkdownTextarea/CodeMirrorWrapper.js +329 -0
- package/dist/esm/components/MarkdownTextarea/MarkdownCommands.js +218 -0
- package/dist/esm/components/MarkdownTextarea/MarkdownTextarea.js +136 -0
- package/dist/esm/components/MarkdownTextarea/createMarkdownEditor.js +52 -0
- package/dist/esm/components/MarkdownToolbar.js +302 -0
- package/dist/esm/components/icons.js +112 -0
- package/dist/esm/dialogs/CheatsheetModalDialog.js +177 -0
- package/dist/esm/dialogs/ConfirmInsertAssetModalDialog.js +37 -0
- package/dist/esm/dialogs/EmdebExternalContentDialog.js +140 -0
- package/dist/esm/dialogs/InsertLinkModalDialog.js +92 -0
- package/dist/esm/dialogs/InsertTableModalDialog.js +78 -0
- package/dist/esm/dialogs/SpecialCharacterModalDialog.js +84 -0
- package/dist/esm/dialogs/ZenModeModalDialog.js +195 -0
- package/dist/esm/dialogs/openMarkdownDialog.js +72 -0
- package/dist/esm/dialogs/renderMarkdownDialog.js +59 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/types.js +10 -0
- package/dist/esm/utils/insertAssetLinks.js +99 -0
- package/dist/esm/utils/insertAssetLinks.spec.js +18 -0
- package/dist/esm/utils/isValidUrl.js +4 -0
- package/dist/esm/utils/linkOrganizer.js +152 -0
- package/dist/esm/utils/linkOrganizer.spec.js +53 -0
- package/dist/esm/utils/replaceMailtoAmp.js +5 -0
- package/dist/esm/utils/replaceMailtoAmp.spec.js +18 -0
- package/dist/esm/utils/specialCharacters.js +218 -0
- package/dist/esm/utils/userAgent.js +13 -0
- package/dist/{MarkdownActions.d.ts → types/MarkdownActions.d.ts} +38 -38
- package/dist/{MarkdownEditor.d.ts → types/MarkdownEditor.d.ts} +22 -22
- package/dist/types/__fixtures__/FakeSdk.d.ts +8 -0
- package/dist/types/__fixtures__/asset/index.d.ts +6 -0
- package/dist/types/__fixtures__/content-type/index.d.ts +2 -0
- package/dist/types/__fixtures__/entry/index.d.ts +5 -0
- package/dist/types/__fixtures__/fixtures.d.ts +6 -0
- package/dist/types/__fixtures__/locale/index.d.ts +42 -0
- package/dist/types/__fixtures__/space/index.d.ts +2 -0
- package/dist/{codemirrorImports.d.ts → types/codemirrorImports.d.ts} +5 -5
- package/dist/{components → types/components}/HeadingSelector.d.ts +7 -7
- package/dist/{components → types/components}/InsertLinkSelector.d.ts +9 -9
- package/dist/{components → types/components}/MarkdownBottomBar.d.ts +11 -11
- package/dist/{components → types/components}/MarkdownConstraints.d.ts +6 -6
- package/dist/{components → types/components}/MarkdownPreview.d.ts +14 -14
- package/dist/{components → types/components}/MarkdownTabs.d.ts +8 -8
- package/dist/{components → types/components}/MarkdownTextarea/CodeMirrorWrapper.d.ts +58 -58
- package/dist/{components → types/components}/MarkdownTextarea/MarkdownCommands.d.ts +33 -33
- package/dist/{components → types/components}/MarkdownTextarea/MarkdownTextarea.d.ts +17 -17
- package/dist/{components → types/components}/MarkdownTextarea/createMarkdownEditor.d.ts +55 -55
- package/dist/{components → types/components}/MarkdownToolbar.d.ts +12 -12
- package/dist/types/components/icons.d.ts +18 -0
- package/dist/{dialogs → types/dialogs}/CheatsheetModalDialog.d.ts +4 -4
- package/dist/{dialogs → types/dialogs}/ConfirmInsertAssetModalDialog.d.ts +23 -23
- package/dist/{dialogs → types/dialogs}/EmdebExternalContentDialog.d.ts +9 -9
- package/dist/{dialogs → types/dialogs}/InsertLinkModalDialog.d.ts +17 -17
- package/dist/{dialogs → types/dialogs}/InsertTableModalDialog.d.ts +13 -13
- package/dist/{dialogs → types/dialogs}/SpecialCharacterModalDialog.d.ts +9 -9
- package/dist/{dialogs → types/dialogs}/ZenModeModalDialog.d.ts +24 -24
- package/dist/{dialogs → types/dialogs}/openMarkdownDialog.d.ts +5 -5
- package/dist/{dialogs → types/dialogs}/renderMarkdownDialog.d.ts +8 -8
- package/dist/{index.d.ts → types/index.d.ts} +5 -5
- package/dist/{types.d.ts → types/types.d.ts} +75 -75
- package/dist/{utils → types/utils}/insertAssetLinks.d.ts +29 -29
- package/dist/types/utils/insertAssetLinks.spec.d.ts +1 -0
- package/dist/{utils → types/utils}/isValidUrl.d.ts +2 -2
- package/dist/{utils → types/utils}/linkOrganizer.d.ts +6 -6
- package/dist/types/utils/linkOrganizer.spec.d.ts +1 -0
- package/dist/{utils → types/utils}/replaceMailtoAmp.d.ts +1 -1
- package/dist/types/utils/replaceMailtoAmp.spec.d.ts +1 -0
- package/dist/{utils → types/utils}/specialCharacters.d.ts +4 -4
- package/dist/{utils → types/utils}/userAgent.d.ts +1 -1
- package/package.json +25 -11
- package/CHANGELOG.md +0 -314
- package/dist/components/icons.d.ts +0 -18
- package/dist/field-editor-markdown.cjs.development.js +0 -3609
- package/dist/field-editor-markdown.cjs.development.js.map +0 -1
- package/dist/field-editor-markdown.cjs.production.min.js +0 -216
- package/dist/field-editor-markdown.cjs.production.min.js.map +0 -1
- package/dist/field-editor-markdown.esm.js +0 -3599
- package/dist/field-editor-markdown.esm.js.map +0 -1
- package/dist/index.js +0 -8
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0}),require("codemirror/mode/markdown/markdown"),require("codemirror/mode/xml/xml"),require("codemirror/addon/edit/continuelist"),require("codemirror/addon/mode/overlay"),require("codemirror/addon/display/autorefresh");var t=require("react"),n=e(t),a=e(require("@contentful/f36-tokens")),l=require("@contentful/field-editor-shared"),o=require("emotion"),i=require("@contentful/f36-components"),r=e(require("dompurify")),s=e(require("markdown-to-jsx")),c=e(require("codemirror"));require("codemirror/addon/edit/matchbrackets");var d=e(require("lodash/throttle")),m=e(require("lodash/transform")),u=e(require("lodash/get")),p=e(require("lodash/max")),h=e(require("lodash/min")),g=e(require("lodash/range")),f=e(require("lodash/times")),b=e(require("lodash/repeat")),E=require("@contentful/f36-icons"),v=e(require("lodash/inRange")),C=e(require("lodash/isObject")),k=e(require("lodash/extend")),w=e(require("lodash/isString")),x=e(require("lodash/isFinite")),y=e(require("lodash/forEach"));const q={root:o.css({display:"flex",justifyContent:"space-between",background:a.gray100,border:"1px solid "+a.gray400,borderBottomLeftRadius:a.borderRadiusSmall,borderBottomRightRadius:a.borderRadiusSmall,padding:`${a.spacingXs} ${a.spacingS}`}),help:o.css({color:a.gray700,fontSize:a.fontSizeS,button:{fontSize:a.fontSizeS,lineHeight:"inherit"}})};function S(e){return n.createElement(i.Paragraph,{marginBottom:"none",className:q.help},"Format your text like a pro with the"," ",n.createElement(i.TextLink,{as:"button",testId:"open-markdown-cheatsheet-button",onClick:()=>{e.onClick()}},"markdown cheatsheet"),".")}function I(e){return n.createElement("div",{className:q.root},e.children)}const z={root:o.css({display:"flex",justifyContent:"space-between",fontSize:a.fontSizeM,marginTop:a.spacingXs,color:a.gray700})};function N(e){const t=l.ConstraintsUtils.fromFieldValidations(e.sdk.field.validations,e.sdk.field.type),a=l.ConstraintsUtils.makeChecker(t);return n.createElement("div",{className:z.root},n.createElement(l.CharCounter,{value:e.value,checkConstraint:a}),n.createElement(l.CharValidation,{constraints:t}))}const T={root:o.css`
|
|
2
|
-
border: 1px solid ${a.gray400};
|
|
3
|
-
border-width: 0 1px;
|
|
4
|
-
word-wrap: break-word;
|
|
5
|
-
overflow-wrap: break-word;
|
|
6
|
-
min-height: 300px;
|
|
7
|
-
padding: ${a.spacingL};
|
|
8
|
-
font-size: ${a.fontSizeM};
|
|
9
|
-
font-family: ${a.fontStackPrimary};
|
|
10
|
-
line-height: ${a.lineHeightDefault};
|
|
11
|
-
color: ${a.gray700};
|
|
12
|
-
white-space: pre-line;
|
|
13
|
-
|
|
14
|
-
h1,
|
|
15
|
-
h2,
|
|
16
|
-
h3,
|
|
17
|
-
h4,
|
|
18
|
-
h5,
|
|
19
|
-
h6 {
|
|
20
|
-
margin-top: ${a.spacingL};
|
|
21
|
-
margin-bottom: ${a.spacingM};
|
|
22
|
-
color: ${a.gray900};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
h1:first-child,
|
|
26
|
-
h2:first-child,
|
|
27
|
-
h3:first-child,
|
|
28
|
-
h4:first-child,
|
|
29
|
-
h5:first-child,
|
|
30
|
-
h6:first-child {
|
|
31
|
-
margin-top: 0;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
h1 {
|
|
35
|
-
font-size: 1.9em;
|
|
36
|
-
}
|
|
37
|
-
h2 {
|
|
38
|
-
font-size: 1.75em;
|
|
39
|
-
}
|
|
40
|
-
h3 {
|
|
41
|
-
font-size: 1.6em;
|
|
42
|
-
}
|
|
43
|
-
h4 {
|
|
44
|
-
font-size: 1.45em;
|
|
45
|
-
}
|
|
46
|
-
h5 {
|
|
47
|
-
font-size: 1.3em;
|
|
48
|
-
}
|
|
49
|
-
h6 {
|
|
50
|
-
font-size: 1.15em;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
p {
|
|
54
|
-
margin-top: 0;
|
|
55
|
-
margin-bottom: ${a.spacingM};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
ul,
|
|
59
|
-
ol {
|
|
60
|
-
margin: ${a.spacingS} 0;
|
|
61
|
-
padding-left: ${a.spacingM};
|
|
62
|
-
}
|
|
63
|
-
ul > li {
|
|
64
|
-
list-style-type: disc;
|
|
65
|
-
margin-bottom: 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
ol > li {
|
|
69
|
-
list-style-type: decimal;
|
|
70
|
-
margin-bottom: 0;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
table {
|
|
74
|
-
table-layout: fixed;
|
|
75
|
-
border-right-width: 0;
|
|
76
|
-
border-bottom-width: 0;
|
|
77
|
-
width: 80%;
|
|
78
|
-
margin: ${a.spacingM} auto;
|
|
79
|
-
border-spacing: 0;
|
|
80
|
-
border-collapse: collapse;
|
|
81
|
-
border: 1px solid ${a.gray300};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
table th,
|
|
85
|
-
table td {
|
|
86
|
-
padding: 5px;
|
|
87
|
-
border-left-width: 0;
|
|
88
|
-
border-top-width: 0;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
table th {
|
|
92
|
-
background: ${a.gray200};
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
table td {
|
|
96
|
-
border: 1px solid ${a.gray300};
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
a {
|
|
100
|
-
color: ${a.blue500};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
hr {
|
|
104
|
-
margin-top: ${a.spacingL};
|
|
105
|
-
margin-bottom: ${a.spacingL};
|
|
106
|
-
height: 1px;
|
|
107
|
-
background-color: ${a.gray300};
|
|
108
|
-
border: none;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
blockquote {
|
|
112
|
-
border-left: 4px solid ${a.gray200};
|
|
113
|
-
padding-left: ${a.spacingL};
|
|
114
|
-
margin: 0;
|
|
115
|
-
margin-top: ${a.spacingM};
|
|
116
|
-
font-style: italic;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
img {
|
|
120
|
-
margin: ${a.spacingM} auto;
|
|
121
|
-
display: block;
|
|
122
|
-
max-width: 80%;
|
|
123
|
-
max-height: 250px;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
pre code {
|
|
127
|
-
font-size: ${a.fontSizeS};
|
|
128
|
-
font-family: ${a.fontStackMonospace};
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.embedly-card {
|
|
132
|
-
margin: ${a.spacingM} auto;
|
|
133
|
-
display: block;
|
|
134
|
-
}
|
|
135
|
-
`,framed:o.css({height:"100%",maxHeight:"500px",overflowY:"auto"}),zen:o.css({maxWidth:"650px",margin:"0 auto",border:"none !important"}),rtl:o.css({direction:"rtl"})};function L(e){const{Embedly:t,children:a,...l}=e;return"embedly-card"===e.className&&t?n.createElement(t,{url:e.href}):n.createElement("a",{...l,target:"_blank",rel:"noopener noreferrer"},a)}const M=n.memo(e=>{var t;const a=o.cx(T.root,void 0!==e.minHeight?o.css({minHeight:e.minHeight}):void 0,"default"===e.mode?T.framed:T.zen,"rtl"===e.direction?T.rtl:void 0),l=n.useMemo(()=>r.sanitize(e.value).replace(/href="mailto:[^"]*&/g,(function(e){return e.replace(/&/g,"&")})),[e.value]);return n.createElement("div",{className:a,"data-test-id":"markdown-preview"},n.createElement(s,{options:{overrides:{a:{component:L,props:{Embedly:null==(t=e.previewComponents)?void 0:t.embedly}}}}},l))});M.displayName="MarkdownPreview";const H={root:o.css({display:"flex",zIndex:10,flexDirection:"row",justifyContent:"flex-end",overflow:"hidden",marginBottom:"-1px",fontSize:a.fontSizeM}),tab:o.css({cursor:"pointer",color:a.gray700,padding:a.spacingXs,minWidth:"70px",border:"1px solid "+a.gray400,borderTopLeftRadius:a.borderRadiusSmall,borderTopRightRadius:a.borderRadiusSmall,marginLeft:a.spacingXs,textAlign:"center",backgroundColor:a.gray100,borderBottomColor:a.gray100,outline:"none","&:focus":{boxShadow:a.boxShadowHeavy},transition:`all ${a.transitionEasingDefault} ${a.transitionDurationShort}`}),inactiveTab:o.css({background:a.gray200,borderBottomColor:a.gray400,"&:hover":{background:a.gray300}})};function B(e){return n.createElement("div",{className:o.cx(H.tab,{[H.inactiveTab]:!1===e.isActive}),onClick:()=>{e.onSelect(e.name)},onKeyDown:t=>{13===t.keyCode&&e.onSelect(e.name)},tabIndex:0,role:"tab","aria-controls":e.name,"aria-selected":!0===e.isActive,"data-test-id":e.testId},e.children)}function F(e){return n.createElement("div",{className:H.root},n.createElement(B,{name:"editor",onSelect:e.onSelect,isActive:"editor"===e.active,testId:"markdown-tab-md"},"Editor"),n.createElement(B,{name:"preview",onSelect:e.onSelect,isActive:"preview"===e.active,testId:"markdown-tab-preview"},"Preview"))}const A=u(window,"navigator.userAgent",""),D=u(window,"navigator.platform","");let R="Ctrl";function V(){return R}function $(e){if("string"!=typeof e)return e;if(!e.match(/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/))throw new Error("Couldn't match unit in given string");return parseFloat(e)}function P(e){return t=>{t.lineStartsWith(e)?t.removeFromLineBeginning(e.length):t.insertAtLineBeginning(e)}}function O(e,t,n){return()=>{if(e.usePrimarySelection(),e.getSelection()){const n=e.getSelectedText();if(n.startsWith(t)&&n.endsWith(t)){const a=t.length,l=n.slice(a,n.length-a);e.replaceSelectedText(l)}else e.wrapSelection(t)}else e.insertAtCursor(t+n+t),e.selectBackwards(t.length,n.length)}}(/(iphone os|ipad|iphone|ipod)/i.test(A)&&!window.MSStream||/mac(68k|ppc|intel)/i.test(D))&&(R="Cmd");const U=P("> "),X=P(" ");function W(e){return{bold:O(e,"__","text in bold"),italic:O(e,"*","text in italic"),strike:O(e,"~~","striked out"),quote:j(e,U),code:j(e,X),link:function(t,n,a){e.usePrimarySelection(),e.replaceSelectedText(n?"["+n+"]("+t+(a?' "'+a+'"':"")+")":"<"+t+">","around")},h1:Z(e,1),h2:Z(e,2),h3:Z(e,3),ul:j(e,K,!0),ol:j(e,G,!0),undo:function(){e.cmd("undo")},redo:function(){e.cmd("redo")},hr:function(){e.moveIfNotEmpty();const t=e.getNl();e.insertAtCursor(t+"---"+t+t)},indent:function(){e.insertAtLineBeginning(e.getIndentation())},dedent:function(){const t=e.getIndentation();e.lineStartsWith(t)&&e.removeFromLineBeginning(t.length)},table:function(t){const n=e.getNl();e.moveIfNotEmpty(),e.insertAtCursor(n);const a=e.getCurrentLineNumber();e.insertAtCursor(function(e,t){const n=new Array(11),a=" "+n.join(" ")+" |",l=" "+n.join("-")+" |";let o="|",i="|";f(t,()=>{o+=a,i+=l});const r=g(e).map(()=>o.replace(/\| {5}/g,"| Cell"));return[o.replace(/\| {7}/g,"| Header"),i].concat(r)}(t.rows,t.cols).join(n)),e.insertAtCursor(n+n),e.restoreCursor(2,a)}}}function j(e,t,n){return()=>{e.usePrimarySelection();const a=e.getSelection();a?(function(n,a){const l=[n.anchor.line,n.head.line],o=p(l),i=h(l);g(i||0,void 0!==o?o+1:void 0).forEach((n,a)=>{((n,a)=>{e.moveToLineBeginning(n),t(e,a)})(n,a+1)})}(a),e.moveToLineEnd()):(!n||_(e)||e.lineStartsWith("- ")||function(e){const t=e.getCurrentLineNumber(),n=e.isLineEmpty(t);let a=n?2:4;t>0&&e.isLineEmpty(t-1)&&(a-=1),(!(t<e.getLinesCount()-1)||e.isLineEmpty(t+1))&&(a-=1),e.moveToLineEnd(),e.insertAtCursor(e.getNl(a)),e.restoreCursor(0,n?t:t+2)}(e),t(e))}}function _(e){const t=e.getCurrentLine().match(/^(\d+\. )/);return t?t[1]:null}function K(e){if(e.lineStartsWith("- "))e.removeFromLineBeginning(2);else{const t=_(e);t&&e.removeFromLineBeginning(t.length),e.insertAtLineBeginning("- ")}}function G(e,t){const n=_(e);n?e.removeFromLineBeginning(n.length):(e.lineStartsWith("- ")&&e.removeFromLineBeginning(2),e.insertAtLineBeginning((t||1)+". "))}function Z(e,t){return()=>{const n=e.getCurrentCharacter(),a=function(e){const t=e.getCurrentLine().match(/^( {0,3})(#{1,6}) /);if(!t)return null;const n=t[1],a=t[2];return e.select(l(0),l(a.length)),e.getSelection();function l(t){return{line:e.getCurrentLineNumber(),ch:n.length+t}}}(e),l=b("#",t);if(!a)return e.moveToLineBeginning(),e.insertAtCursor(l+" "),void e.restoreCursor(n+l.length+1);if(e.getSelectedText()===l){e.extendSelectionBy(1);const t=e.getSelectionLength();return e.removeSelectedText(),void e.restoreCursor(n-t)}const o=l.length-e.getSelectionLength();e.replaceSelectedText(l),e.restoreCursor(n+o)}}const Y={root:o.css`
|
|
136
|
-
border: 1px solid ${a.gray400};
|
|
137
|
-
border-width: 0 1px;
|
|
138
|
-
overflow-y: auto;
|
|
139
|
-
height: auto;
|
|
140
|
-
min-height: 300px;
|
|
141
|
-
|
|
142
|
-
.CodeMirror {
|
|
143
|
-
height: auto;
|
|
144
|
-
line-height: ${a.lineHeightDefault};
|
|
145
|
-
}
|
|
146
|
-
.CodeMirror-lines {
|
|
147
|
-
color: ${a.gray700};
|
|
148
|
-
padding: ${a.spacingL};
|
|
149
|
-
}
|
|
150
|
-
.CodeMirror-code {
|
|
151
|
-
font-family: ${a.fontStackMonospace};
|
|
152
|
-
font-size: ${a.fontSizeM};
|
|
153
|
-
}
|
|
154
|
-
.CodeMirror-scroll {
|
|
155
|
-
min-height: '6rem';
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.cm-header {
|
|
159
|
-
color: ${a.gray900};
|
|
160
|
-
}
|
|
161
|
-
span.cm-variable-2 {
|
|
162
|
-
color: ${a.gray700};
|
|
163
|
-
}
|
|
164
|
-
.cm-header-1 {
|
|
165
|
-
font-size: 1.9em;
|
|
166
|
-
}
|
|
167
|
-
.cm-header-2 {
|
|
168
|
-
font-size: 1.75em;
|
|
169
|
-
}
|
|
170
|
-
.cm-header-3 {
|
|
171
|
-
font-size: 1.6em;
|
|
172
|
-
}
|
|
173
|
-
.cm-header-4 {
|
|
174
|
-
font-size: 1.45em;
|
|
175
|
-
}
|
|
176
|
-
.cm-header-5 {
|
|
177
|
-
font-size: 1.3em;
|
|
178
|
-
}
|
|
179
|
-
.cm-header-6 {
|
|
180
|
-
font-size: 1.15em;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
span.cm-tag,
|
|
184
|
-
span.cm-string,
|
|
185
|
-
span.cm-attribute {
|
|
186
|
-
color: ${a.red600};
|
|
187
|
-
}
|
|
188
|
-
span.cm-string {
|
|
189
|
-
text-decoration: none !important;
|
|
190
|
-
}
|
|
191
|
-
span.cm-quote,
|
|
192
|
-
span.cm-comment {
|
|
193
|
-
color: ${a.gray600};
|
|
194
|
-
}
|
|
195
|
-
span.cm-link,
|
|
196
|
-
span.cm-url {
|
|
197
|
-
color: ${a.blue500} !important;
|
|
198
|
-
}
|
|
199
|
-
span.cm-link {
|
|
200
|
-
text-decoration: underline;
|
|
201
|
-
}
|
|
202
|
-
`,framed:o.css({".CodeMirror":{maxHeight:"500px"}}),zen:o.css({border:"none !important",".CodeMirror-lines":{maxWidth:"650px",margin:"0 auto"}}),disabled:o.css`
|
|
203
|
-
.CodeMirror {
|
|
204
|
-
background: ${a.gray100};
|
|
205
|
-
cursor: 'not-allowed';
|
|
206
|
-
}
|
|
207
|
-
.CodeMirror-cursors {
|
|
208
|
-
visibility: hidden !important;
|
|
209
|
-
}
|
|
210
|
-
.CodeMirror-scroll,
|
|
211
|
-
.CodeMirror-sizer,
|
|
212
|
-
.CodeMirror-lines {
|
|
213
|
-
cursor: not-allowed;
|
|
214
|
-
}
|
|
215
|
-
`},Q=n.memo(e=>{const a=t.useRef(null),[l,i]=t.useState(null);t.useEffect(()=>{a.current&&i(function(e,t){const n=function(e,t){const{direction:n,fixedHeight:a,height:l,readOnly:o}=t||{};let i=!1;const r={min:l?$(l):300,max:500,shift:50},s=c(e,{direction:n,readOnly:o,mode:"markdown",lineNumbers:!1,undoDepth:200,matchBrackets:!0,lineWrapping:!0,lineSeparator:null,theme:"elegant",tabSize:2,indentWithTabs:!1,indentUnit:2,autoRefresh:!0,spellcheck:!0,inputStyle:"contenteditable"});return s.setSize("100%",r.min),a||s.on("change",d((function(){const e=s.heightAtLine(s.lastLine(),"local")+r.shift;let t=e;e<r.min&&(t=r.min),e>r.max&&(t=r.max),s.setSize("100%",t)}),150)),s.setOption("extraKeys",{Tab:function(){v(I())},Enter:"newlineAndIndentContinueMarkdownList",Esc:()=>{s.getInputField().blur()}}),{destroy:function(){s.toTextArea()},disable:function(){s.setOption("readOnly","nocursor")},enable:function(){s.setOption("readOnly",!1)},attachEvent:function(e,t,n){n&&(t=d(t,n)),s.on(e,t)},addKeyShortcuts:function(e){const t=V();s.addKeyMap(m(e,(e,n,a)=>{e[t+"-"+a]=n},{}))},setValue:function(e){if(e=e||"",N()===e)return;const t=y(),n=q();s.setValue(e),h(n,t,!0),i||(s.clearHistory(),i=!0)},cmd:u,moveToLineBeginning:p,moveIfNotEmpty:function(){if(S()<1)return;const e=y()+1;s.lastLine()<e&&(g(),E(z())),p(e)},restoreCursor:h,moveToLineEnd:g,usePrimarySelection:function(){u("singleSelection")},focus:function(){s.focus()},select:b,selectBackwards:function(e,t){function n(e){return{line:y(),ch:q()+e}}b(n(-e-t),n(-e))},selectAll:()=>s.execCommand("selectAll"),extendSelectionBy:function(e){function t(e,t){const n=C();return n?{line:n[e].line,ch:n[e].ch+t}:{line:0,ch:0}}b(t("anchor",0),t("head",e))},insertAtCursor:E,insertAtLineBeginning:function(e){const t=q();p(),E(e),h(t+e.length),s.focus()},wrapSelection:function(e){const t=e+w()+e,n=C();n&&(s.replaceRange(t,n.anchor,null==n?void 0:n.head),s.focus())},removeFromLineBeginning:function(e){const t=y();s.replaceRange("",{line:t,ch:0},{line:t,ch:e}),s.focus()},removeSelectedText:function(){s.replaceSelection(""),s.focus()},replaceSelectedText:v,getCursor:function(){return s.getCursor()},setCursor:function(e){s.setCursor(e)},getSelection:C,getLine:k,isLineEmpty:function(e){const t=f(e);return t>-1&&k(t).length<1&&t<s.lineCount()},getSelectedText:w,getSelectionLength:function(){return w().length},getCurrentLine:x,getCurrentLineNumber:y,getCurrentCharacter:q,getCurrentLineLength:S,lineStartsWith:function(e){return x().startsWith(e)},getIndentation:I,getNl:z,getValue:N,getLinesCount:function(){return s.lineCount()},getHistorySize:function(e){const t=s.historySize();return e?t[e]:t},setReadOnly:e=>s.setOption("readOnly",e),getHistory:()=>s.getHistory(),setHistory:e=>s.setHistory(e),setFullsize:()=>{s.setSize("100%","100%"),s.refresh()},refresh:()=>s.refresh()};function u(e){s.execCommand(e),s.focus()}function p(e){s.setCursor({line:f(e),ch:0}),s.focus()}function h(e,t,n){s.setCursor(f(t),e,{scroll:!n}),n||s.focus()}function g(e){s.setCursor({line:f(e),ch:S()}),s.focus()}function f(e){return 0===e||void 0!==e&&e>0?e:y()}function b(e,t){s.setSelection(e,t),s.focus()}function E(e){s.replaceRange(e,s.getCursor()),s.focus()}function v(e,t){s.replaceSelection(e,t),s.focus()}function C(){const e=s.listSelections();return!s.somethingSelected()||!e||e.length<1?null:e[0]}function k(e){return s.getLine(e)||""}function w(){return C()?s.getSelection():""}function x(){return k(y())}function y(){return s.getCursor().line}function q(){return s.getCursor().ch}function S(){return x().length}function I(){return T(" ",s.getOption("indentUnit")??0)}function z(e=1){return e<1?"":T("\n",e)}function N(){return s.getValue()||""}function T(e,t){return new Array(t+1).join(e)}}(e,t),a={actions:W(n),history:{hasUndo:function(){return n.getHistorySize("undo")>0},hasRedo:function(){return n.getHistorySize("redo")>0}},events:{onScroll:function(e){n.attachEvent("scroll",e,150)},onChange:function(e){n.attachEvent("change",function(e){return(t,a)=>{e(n.getValue(),t,a)}}(e),0)},onPaste:function(e){n.attachEvent("paste",e,0)}},insert:n.insertAtCursor,focus:n.focus,getContent:n.getValue,destroy:n.destroy,setContent:n.setValue,getSelectedText:n.getSelectedText,usePrimarySelection:n.usePrimarySelection,setReadOnly:n.setReadOnly,selectBackwards:n.selectBackwards,getCursor:n.getCursor,setCursor:n.setCursor,clear:()=>n.setValue(""),selectAll:n.selectAll,setFullsize:n.setFullsize,refresh:n.refresh};return n.addKeyShortcuts({B:a.actions.bold,I:a.actions.italic}),a}(a.current,Object.assign({},{direction:e.direction,readOnly:!0},"zen"===e.mode?{fixedHeight:!0,height:"100%"}:{},void 0!==e.minHeight?{height:e.minHeight}:{})))},[]),t.useEffect(()=>{l&&e.onReady(l)},[l]);const r=o.cx(Y.root,void 0!==e.minHeight?o.css({minHeight:e.minHeight}):void 0,"default"===e.mode?Y.framed:Y.zen,e.disabled&&Y.disabled);return n.createElement("div",{className:r,ref:a,"data-test-id":"markdown-textarea",style:{display:e.visible?"block":"none"}})});Q.displayName="MarkdownTextarea";const J=e=>{const t=t=>{e.onSelect(t)};return n.createElement(i.Menu,null,n.createElement(i.Menu.Trigger,null,e.children),n.createElement(i.Menu.List,null,n.createElement(i.Menu.Item,{testId:"markdown-action-button-heading-h1",onClick:()=>t("h1")},"Heading 1"),n.createElement(i.Menu.Item,{testId:"markdown-action-button-heading-h2",onClick:()=>t("h2")},"Heading 2"),n.createElement(i.Menu.Item,{testId:"markdown-action-button-heading-h3",onClick:()=>t("h3")},"Heading 3")))},ee=o.css({position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",border:"0"}),te=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M1411 541l-355 355 355 355 144-144q29-31 70-14 39 17 39 59v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l144-144-355-355-355 355 144 144q31 30 14 69-17 40-59 40H192q-26 0-45-19t-19-45v-448q0-42 40-59 39-17 69 14l144 144 355-355-355-355-144 144q-19 19-45 19-12 0-24-5-40-17-40-59V192q0-26 19-45t45-19h448q42 0 59 40 17 39-14 69L541 381l355 355 355-355-144-144q-31-30-14-69 17-40 59-40h448q26 0 45 19t19 45v448q0 42-39 59-13 5-25 5-26 0-45-19z"}),n.createElement("span",{className:ee},e)),ne=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M1760 896q14 0 23 9t9 23v64q0 14-9 23t-23 9H32q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h1728zM483 832q-28-35-51-80-48-98-48-188 0-181 134-309 133-127 393-127 50 0 167 19 66 12 177 48 10 38 21 118 14 123 14 183 0 18-5 45l-12 3-84-6-14-2q-50-149-103-205-88-91-210-91-114 0-182 59-67 58-67 146 0 73 66 140t279 129q69 20 173 66 58 28 95 52H483zm507 256h411q7 39 7 92 0 111-41 212-23 56-71 104-37 35-109 81-80 48-153 66-80 21-203 21-114 0-195-23l-140-40q-57-16-72-28-8-8-8-22v-13q0-108-2-156-1-30 0-68l2-37v-44l102-2q15 34 30 71t22.5 56 12.5 27q35 57 80 94 43 36 105 57 59 22 132 22 64 0 139-27 77-26 122-86 47-61 47-129 0-84-81-157-34-29-137-71z"}),n.createElement("span",{className:ee},e)),ae=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M352 832q0 14-9 23L55 1143q-9 9-23 9-13 0-22.5-9.5T0 1120V544q0-13 9.5-22.5T32 512q14 0 23 9l288 288q9 9 9 23zm1440 480v192q0 13-9.5 22.5t-22.5 9.5H32q-13 0-22.5-9.5T0 1504v-192q0-13 9.5-22.5T32 1280h1728q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5H672q-13 0-22.5-9.5T640 1120V928q0-13 9.5-22.5T672 896h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5T1760 768H672q-13 0-22.5-9.5T640 736V544q0-13 9.5-22.5T672 512h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5T1760 384H32q-13 0-22.5-9.5T0 352V160q0-13 9.5-22.5T32 128h1728q13 0 22.5 9.5t9.5 22.5z"}),n.createElement("span",{className:ee},e)),le=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M384 544v576q0 13-9.5 22.5T352 1152q-14 0-23-9L41 855q-9-9-9-23t9-23l288-288q9-9 23-9 13 0 22.5 9.5T384 544zm1408 768v192q0 13-9.5 22.5t-22.5 9.5H32q-13 0-22.5-9.5T0 1504v-192q0-13 9.5-22.5T32 1280h1728q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5H672q-13 0-22.5-9.5T640 1120V928q0-13 9.5-22.5T672 896h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5T1760 768H672q-13 0-22.5-9.5T640 736V544q0-13 9.5-22.5T672 512h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5T1760 384H32q-13 0-22.5-9.5T0 352V160q0-13 9.5-22.5T32 128h1728q13 0 22.5 9.5t9.5 22.5z"}),n.createElement("span",{className:ee},e)),oe=({label:e,...t})=>n.createElement("svg",{width:18,height:14,viewBox:"0 0 2304 1792",...t},n.createElement("path",{d:"M640 1632l384-192v-314l-384 164v342zm-64-454l404-173-404-173-404 173zm1088 454l384-192v-314l-384 164v342zm-64-454l404-173-404-173-404 173zm-448-293l384-165V454l-384 164v267zm-64-379l441-189-441-189-441 189zm1088 518v416q0 36-19 67t-52 47l-448 224q-25 14-57 14t-57-14l-448-224q-4-2-7-4-2 2-7 4l-448 224q-25 14-57 14t-57-14L71 1554q-33-16-52-47t-19-67v-416q0-38 21.5-70T78 906l434-186V320q0-38 21.5-70t56.5-48l448-192q23-10 50-10t50 10l448 192q35 16 56.5 48t21.5 70v400l434 186q36 16 57 48t21 70z"}),n.createElement("span",{className:ee},e)),ie=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M576 1376v-192q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V800q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zM576 608V416q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768V416q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V416q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47H224q-66 0-113-47t-47-113V288q0-66 47-113t113-47h1344q66 0 113 47t47 113z"}),n.createElement("span",{className:ee},e)),re=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M1360 1307l35 159q3 12-3 22.5t-17 14.5l-5 1q-4 2-10.5 3.5t-16 4.5-21.5 5.5-25.5 5-30 5-33.5 4.5-36.5 3-38.5 1q-234 0-409-130.5T511 1054h-95q-13 0-22.5-9.5T384 1022V909q0-13 9.5-22.5T416 877h66q-2-57 1-105h-67q-14 0-23-9t-9-23V626q0-14 9-23t23-9h98q67-210 243.5-338T1158 128q102 0 194 23 11 3 20 15 6 11 3 24l-43 159q-3 13-14 19.5t-24 2.5l-4-1q-4-1-11.5-2.5L1261 364l-22.5-3.5-26-3-29-2.5-29.5-1q-126 0-226 64T778 594h468q16 0 25 12 10 12 7 26l-24 114q-5 26-32 26H734q-3 37 0 105h459q15 0 25 12 9 12 6 27l-24 112q-2 11-11 18.5t-20 7.5H782q48 117 149.5 185.5T1160 1308q18 0 36-1.5t33.5-3.5 29.5-4.5 24.5-5 18.5-4.5l12-3 5-2q13-5 26 2 12 7 15 21z"}),n.createElement("span",{className:ee},e)),se=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M1792 1248v320q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-320q0-40 28-68t68-28h96V960H960v192h96q40 0 68 28t28 68v320q0 40-28 68t-68 28H736q-40 0-68-28t-28-68v-320q0-40 28-68t68-28h96V960H320v192h96q40 0 68 28t28 68v320q0 40-28 68t-68 28H96q-40 0-68-28t-28-68v-320q0-40 28-68t68-28h96V960q0-52 38-90t90-38h512V640h-96q-40 0-68-28t-28-68V224q0-40 28-68t68-28h320q40 0 68 28t28 68v320q0 40-28 68t-68 28h-96v192h512q52 0 90 38t38 90v192h96q40 0 68 28t28 68z"}),n.createElement("span",{className:ee},e)),ce=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M1664 896q0 156-61 298t-164 245-245 164-298 61q-172 0-327-72.5T305 1387q-7-10-6.5-22.5t8.5-20.5l137-138q10-9 25-9 16 2 23 12 73 95 179 147t225 52q104 0 198.5-40.5T1258 1258t109.5-163.5T1408 896t-40.5-198.5T1258 534t-163.5-109.5T896 384q-98 0-188 35.5T548 521l137 138q31 30 14 69-17 40-59 40H192q-26 0-45-19t-19-45V256q0-42 40-59 39-17 69 14l130 129q107-101 244.5-156.5T896 128q156 0 298 61t245 164 164 245 61 298z"}),n.createElement("span",{className:ee},e)),de=({label:e,...t})=>n.createElement("svg",{width:14,height:14,viewBox:"0 0 1792 1792",...t},n.createElement("path",{d:"M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l138-138q-148-137-349-137-104 0-198.5 40.5T534 534 424.5 697.5 384 896t40.5 198.5T534 1258t163.5 109.5T896 1408q119 0 225-52t179-147q7-10 23-12 15 0 25 9l137 138q9 8 9.5 20.5t-7.5 22.5q-109 132-264 204.5T896 1664q-156 0-298-61t-245-164-164-245-61-298 61-298 164-245 245-164 298-61q147 0 284.5 55.5T1425 340l130-129q29-31 70-14 39 17 39 59z"}),n.createElement("span",{className:ee},e)),me=e=>e.canAddNew?n.createElement(ue,{...e}):n.createElement(i.Button,{isDisabled:e.disabled,startIcon:n.createElement(E.AssetIcon,null),testId:"markdownEditor.linkExistingAssets",size:"small",variant:"secondary",onClick:()=>{e.onSelectExisting()}},"Insert media"),ue=e=>n.createElement(i.Menu,{placement:"bottom-end"},n.createElement(i.Menu.Trigger,null,n.createElement(i.Button,{endIcon:n.createElement(E.ChevronDownIcon,null),isDisabled:e.disabled,startIcon:n.createElement(E.AssetIcon,null),testId:"markdownEditor.insertMediaDropdownTrigger",size:"small",variant:"secondary"},"Insert media")),n.createElement(i.Menu.List,null,n.createElement(i.Menu.Item,{testId:"markdownEditor.uploadAssetsAndLink",onClick:()=>e.onAddNew()},"Add new media and link"),n.createElement(i.Menu.Item,{testId:"markdownEditor.linkExistingAssets",onClick:()=>e.onSelectExisting()},"Link existing media"))),pe={root:o.css({position:"relative",zIndex:Number(a.zIndexWorkbenchHeader),border:"1px solid "+a.gray400,backgroundColor:a.gray100,padding:a.spacingXs,borderTopLeftRadius:a.borderRadiusSmall,overflow:"hidden"}),button:o.css({height:"30px",width:"36px",marginLeft:a.spacing2Xs,marginRight:a.spacing2Xs}),icon:o.css({fill:a.gray700,verticalAlign:"middle"}),zenButton:o.css({marginLeft:a.spacingXs}),zenButtonPressed:o.css({backgroundColor:a.gray400}),tooltip:o.css({zIndex:Number(a.zIndexTooltip)})},he=n.forwardRef((e,t)=>{const{tooltip:a,onClick:l,children:r,className:s,variant:c="transparent",tooltipPlace:d="top",isDisabled:m=!1,...u}=e;return n.createElement(i.Tooltip,{className:pe.tooltip,placement:d,content:a},n.createElement(i.IconButton,{...u,ref:t,className:o.cx(pe.button,s),isDisabled:m,onClick:l,variant:c,size:"small",icon:r,"aria-label":a}))});function ge(e){const t="zen"===e.mode?"bottom":"top";return n.createElement(n.Fragment,null,n.createElement(J,{onSelect:t=>{t&&e.actions.headings[t]&&e.actions.headings[t]()}},n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-heading",tooltip:"Headings",tooltipPlace:t},n.createElement(E.HeadingIcon,{"aria-label":"Headings",className:pe.icon}))),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-bold",tooltip:"Bold",tooltipPlace:t,onClick:e.actions.simple.bold},n.createElement(E.FormatBoldIcon,{"aria-label":"Bold",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-italic",tooltip:"Italic",tooltipPlace:t,onClick:e.actions.simple.italic},n.createElement(E.FormatItalicIcon,{"aria-label":"Italic",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-quote",tooltip:"Quote",tooltipPlace:t,onClick:e.actions.simple.quote},n.createElement(E.QuoteIcon,{"aria-label":"Quote",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-ul",tooltip:"Unordered list",tooltipPlace:t,onClick:e.actions.simple.ul},n.createElement(E.ListBulletedIcon,{"aria-label":"Unordered list",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-ol",tooltip:"Ordered list",tooltipPlace:t,onClick:e.actions.simple.ol},n.createElement(E.ListNumberedIcon,{"aria-label":"Ordered list",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-link",tooltip:"Link",tooltipPlace:t,onClick:e.actions.insertLink},n.createElement(E.LinkIcon,{"aria-label":"Link",className:pe.icon})))}function fe(e){const t="zen"===e.mode?"bottom":"top";return n.createElement(n.Fragment,null,n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-strike",tooltip:"Strike out",tooltipPlace:t,onClick:e.actions.simple.strike},n.createElement(ne,{label:"Strike out",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-code",tooltip:"Code block",tooltipPlace:t,onClick:e.actions.simple.code},n.createElement(E.CodeIcon,{"aria-label":"Code block",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-hr",tooltip:"Horizontal rule",tooltipPlace:t,onClick:e.actions.simple.hr},n.createElement(E.HorizontalRuleIcon,{"aria-label":"Horizontal rule",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-indent",tooltip:"Increase indentation",tooltipPlace:t,onClick:e.actions.simple.indent},n.createElement(ae,{label:"Increase indentation",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-dedent",tooltip:"Decrease indentation",tooltipPlace:t,onClick:e.actions.simple.dedent},n.createElement(le,{label:"Decrease indentation",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-embed",tooltip:"Embed external content",tooltipPlace:t,onClick:e.actions.embedExternalContent},n.createElement(oe,{label:"Embed external content",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-table",tooltip:"Insert table",tooltipPlace:t,onClick:e.actions.insertTable},n.createElement(ie,{label:"Insert table",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-special",tooltip:"Insert special character",tooltipPlace:t,onClick:e.actions.insertSpecialCharacter},n.createElement(re,{label:"Insert special character",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-organizeLinks",tooltip:"Organize links",tooltipPlace:t,onClick:e.actions.organizeLinks},n.createElement(se,{label:"Organize links",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-undo",tooltip:"Undo",tooltipPlace:t,onClick:e.actions.history.undo},n.createElement(ce,{label:"Undo",className:pe.icon})),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-redo",tooltip:"Redo",tooltipPlace:t,onClick:e.actions.history.redo},n.createElement(de,{label:"Redo",className:pe.icon})))}function be(e){const[t,a]=n.useState(!1);return n.createElement("div",{className:pe.root},n.createElement(i.Flex,{justifyContent:"space-between",flexWrap:"wrap"},n.createElement(i.Flex,{flexWrap:"wrap"},n.createElement(ge,{...e}),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-toggle-additional",tooltip:t?"Hide additional actions":"More actions",onClick:()=>{a(!t)}},n.createElement(E.MoreHorizontalIcon,{className:pe.icon}))),n.createElement(i.Flex,null,n.createElement(me,{disabled:e.disabled,onSelectExisting:e.actions.linkExistingMedia,onAddNew:e.actions.addNewMedia,canAddNew:e.canUploadAssets}),n.createElement(he,{isDisabled:e.disabled,testId:"markdown-action-button-zen",variant:"secondary",onClick:e.actions.openZenMode,className:pe.zenButton,tooltip:"Expand"},n.createElement(te,{label:"Expand",className:pe.icon})))),t&&n.createElement(i.Flex,{justifyContent:"space-between",marginTop:"spacingXs"},n.createElement(i.Flex,null,n.createElement(fe,{...e}))))}function Ee(e){return n.createElement("div",{className:pe.root},n.createElement(i.Flex,{justifyContent:"space-between"},n.createElement(i.Flex,null,n.createElement(ge,{...e}),n.createElement(fe,{...e})),n.createElement(i.Flex,null,n.createElement(me,{disabled:e.disabled,onSelectExisting:e.actions.linkExistingMedia,onAddNew:e.actions.addNewMedia,canAddNew:e.canUploadAssets}),n.createElement(i.IconButton,{testId:"markdown-action-button-zen-close",variant:"secondary",size:"small",className:o.cx(pe.zenButton,pe.zenButtonPressed),onClick:()=>{e.actions.closeZenMode()},icon:n.createElement(te,{label:"Collapse",className:pe.icon}),"aria-label":"Collapse"}))))}he.displayName="ToolbarButton";const ve=n.memo(e=>n.createElement("zen"===e.mode?Ee:be,{...e}));var Ce;ve.displayName="MarkdownToolbar",function(e){e.cheatsheet="markdown-cheatsheet",e.insertLink="markdown-insertLink",e.insertSpecialCharacter="markdown-insertSpecialCharacter",e.insertTable="markdown-insertTable",e.embedExternalContent="markdown-embedExternalContent",e.confirmInsertAsset="markdown-confirmInsertAsset",e.zenMode="markdown-zenMode"}(Ce||(Ce={}));const ke={flexColumnContainer:o.css({display:"flex",flexWrap:"nowrap"}),flexColumn:o.css({flexGrow:1}),verticalDivider:o.css({borderRight:"1px solid "+a.gray500,paddingRight:a.spacing3Xl,marginRight:a.spacing2Xl}),preview:o.css({display:"inline-block",paddingRight:a.spacingL,width:"50%"}),unOrderedListPreview:o.css({listStyleType:"disc",marginLeft:a.spacingS}),orderedListPreview:o.css({listStyleType:"decimal",marginLeft:a.spacingS}),markup:o.css({display:"inline-block",color:a.gray600,paddingLeft:a.spacingL,width:"50%"}),h1:o.css({fontSize:a.fontSize2Xl}),h2:o.css({fontSize:a.fontSizeXl}),h3:o.css({fontSize:a.fontSizeL}),helpItem:o.css({marginBottom:a.spacingS,display:"flex",alignItems:"flex-end",height:a.spacingXl}),helpLink:o.css({margin:"auto"}),flexRowContainer:o.css({display:"flex",width:"100%",justifyContent:"center",marginTop:a.spacingXl})},we=()=>n.createElement(i.ModalContent,{testId:"markdown-cheatsheet-dialog-content"},n.createElement("div",{className:ke.flexColumnContainer},n.createElement("div",{className:o.cx(ke.flexColumn,ke.verticalDivider)},n.createElement("div",{className:ke.helpItem},n.createElement(i.Heading,{marginBottom:"none",as:"h1",className:o.cx(ke.preview,ke.h1)},"H1"),n.createElement("div",{className:ke.markup},"# heading")),n.createElement("div",{className:ke.helpItem},n.createElement(i.Heading,{marginBottom:"none",as:"h2",className:o.cx(ke.preview,ke.h2)},"H2"),n.createElement("div",{className:ke.markup},"## heading")),n.createElement("div",{className:ke.helpItem},n.createElement(i.Heading,{marginBottom:"none",as:"h3",className:o.cx(ke.preview,ke.h3)},"H3"),n.createElement("div",{className:ke.markup},"### heading")),n.createElement("div",{className:ke.helpItem},n.createElement("strong",{className:ke.preview},"bold"),n.createElement("div",{className:ke.markup},"__text__")),n.createElement("div",{className:ke.helpItem},n.createElement("em",{className:ke.preview},"italic"),n.createElement("div",{className:ke.markup},"*text*")),n.createElement("div",{className:ke.helpItem},n.createElement("div",{className:ke.preview},"strikethrough"),n.createElement("div",{className:ke.markup},"~~text~~")),n.createElement("div",{className:ke.helpItem},n.createElement(i.TextLink,{as:"button",className:ke.preview},"Link"),n.createElement("div",{className:ke.markup},"[text](url)"))),n.createElement("div",{className:ke.flexColumn},n.createElement("div",{className:ke.helpItem},n.createElement("div",{className:ke.preview},"Image"),n.createElement("div",{className:ke.markup},"")),n.createElement("div",{className:ke.helpItem},n.createElement("div",{className:ke.preview},"Unordered list"),n.createElement("div",{className:ke.markup},"* list item")),n.createElement("div",{className:ke.helpItem},n.createElement("div",{className:ke.preview},n.createElement("div",null,"Ordered list")),n.createElement("div",{className:ke.markup},"1. list item")),n.createElement("div",{className:ke.helpItem},n.createElement("div",{className:ke.preview},n.createElement("div",null,"Blockquote")),n.createElement("div",{className:ke.markup},"> quote")),n.createElement("div",{className:ke.helpItem},n.createElement("div",{className:ke.preview},"code span"),n.createElement("div",{className:ke.markup},"`code here`")),n.createElement("div",{className:ke.helpItem},n.createElement("div",{className:ke.preview},"code block"),n.createElement("div",{className:ke.markup},"```code here```")))),n.createElement("div",{className:ke.flexRowContainer},n.createElement(i.TextLink,{className:ke.helpLink,href:"https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax",target:"_blank",rel:"noopener noreferrer"},"View the full GitHub-flavored Markdown syntax help (opens in a new window)"))),xe=e=>e.openCurrent({title:"Markdown formatting help",width:"large",minHeight:"415px",shouldCloseOnEscapePress:!0,shouldCloseOnOverlayClick:!0,parameters:{type:Ce.cheatsheet}}),ye=({onClose:e,assets:t,locale:a})=>{const l=t.length;return n.createElement(n.Fragment,null,n.createElement(i.ModalContent,{testId:"confirm-insert-asset"},n.createElement(i.Paragraph,null,1===l?"Link asset with missing file for locale "+a:"Link assets with missing files for locale "+a),n.createElement(i.Paragraph,null,1===l?"Do you want to link to the file in its fallback locale?":"Do you want to link to the files in their fallback locales?"),n.createElement(i.EntityList,null,t.map(({title:e,description:t,thumbnailUrl:a,thumbnailAltText:l})=>n.createElement(i.EntityList.Item,{key:a,title:e,thumbnailUrl:a+"?w=46&h=46&fit=thumb",thumbnailAltText:l,description:t})))),n.createElement(i.ModalControls,null,n.createElement(i.Button,{onClick:()=>e(!1),variant:"secondary",size:"small"},"Cancel"),n.createElement(i.Button,{testId:"confirm-insert-asset",onClick:()=>e(!0),variant:"positive",size:"small"},"Confirm")))},qe=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?$/;function Se(e){return qe.test(e)}const Ie={widthFiledGroup:o.css({display:"flex",flexWrap:"nowrap",alignItems:"flex-start"}),radioButtonGroup:o.css({display:"inline-flex",alignItems:"flex-start",paddingTop:a.spacingXl}),radioButton:o.css({marginLeft:a.spacingM})},ze=(e,t)=>"percent"!==t||e<=100,Ne=({onClose:e})=>{const a=t.useRef(null),[l,o]=t.useState("https://"),[r,s]=t.useState("percent"),[c,d]=t.useState(!0),[m,u]=t.useState("100"),[p,h]=t.useState(!1);return t.useEffect(()=>{var e;null!=(e=a.current)&&e.focus&&a.current.focus()},[a]),n.createElement(n.Fragment,null,n.createElement(i.ModalContent,{testId:"embed-external-dialog"},n.createElement(i.Form,null,n.createElement(i.FormControl,{id:"external-link-url-field",isRequired:!0,isInvalid:!c},n.createElement(i.FormControl.Label,null,"Content URL"),n.createElement(i.TextInput,{name:"external-link-url",value:l,onChange:e=>{const t=e.target.value;o(t),d(Se(t))},testId:"external-link-url-field",placeholder:"https://example.com",ref:a}),n.createElement(i.FormControl.HelpText,null,"Include protocol (e.g. https://)"),!c&&n.createElement(i.FormControl.ValidationMessage,null,"URL is invalid")),n.createElement(i.TextLink,{href:"http://embed.ly/providers",target:"_blank",rel:"noopener noreferrer"},"Supported sources"),n.createElement("div",{className:Ie.widthFiledGroup},n.createElement(i.FormControl,{id:"embedded-content-width",isRequired:!0,isInvalid:!ze(Number(m),r)},n.createElement(i.FormControl.Label,null,"Width"),n.createElement(i.TextInput,{value:m,name:"embedded-content-width",testId:"embedded-content-width",type:"number",width:"small",onChange:e=>u(e.target.value)}),!ze(Number(m),r)&&n.createElement(i.FormControl.ValidationMessage,null,"Should be equal or less then 100")),n.createElement("div",{className:Ie.radioButtonGroup},n.createElement(i.Radio,{id:"unit-option-percent",value:"percent",isChecked:"percent"===r,onChange:()=>s("percent"),className:Ie.radioButton},"percent"),n.createElement(i.Radio,{id:"unit-option-pixels",value:"pixels",isChecked:"px"===r,onChange:()=>s("px"),className:Ie.radioButton},"pixels"))),n.createElement(i.Checkbox,{id:"attach-social-checkbox",name:"attach-social-checkbox",value:"Yes",isChecked:p,onChange:()=>h(!p),testId:"attach-social-checkbox"},"Attach social sharing links to this element"),n.createElement(i.Text,{as:"p",fontColor:"gray500",marginTop:"spacingXs"},"To enable this embedded content in your application make sure to add the ",n.createElement(i.TextLink,{href:"http://embed.ly/docs/products/cards",target:"_blank",rel:"noopener noreferrer"},"Embedly's platform.js")," on your development environment"))),n.createElement(i.ModalControls,null,n.createElement(i.Button,{testId:"emded-external-cancel",onClick:()=>e(!1),variant:"secondary",size:"small"},"Cancel"),n.createElement(i.Button,{testId:"embed-external-confirm",onClick:()=>e((({url:e,width:t,selectedUnit:n,attachSocial:a})=>['<a href="'+e+'" class="embedly-card" ','data-card-width="'+t+{percent:"%",px:"px"}[n]+'" ','data-card-controls="'+(a?"1":"0")+'"',">Embedded content: "+e+"</a>"].join(""))({url:l,width:Number(m),selectedUnit:r,attachSocial:p})),variant:"positive",size:"small"},"Insert")))},Te=({selectedText:e,onClose:a})=>{const l=t.useRef(null),[o,r]=t.useState(e||""),[s,c]=t.useState(""),[d,m]=t.useState(!1),[u,p]=t.useState(""),h=e=>a(e),g=Se(s);return t.useEffect(()=>{var e;null!=l&&null!=(e=l.current)&&e.focus&&l.current.focus()},[l]),n.createElement(n.Fragment,null,n.createElement(i.ModalContent,{testId:"insert-link-modal"},n.createElement(i.Form,{onSubmit:()=>h({url:s,text:o,title:u})},n.createElement(i.FormControl,{id:"link-text-field",isDisabled:Boolean(e)},n.createElement(i.FormControl.Label,null,"Link text"),n.createElement(i.TextInput,{name:"link-text",value:o,onChange:e=>{r(e.target.value)},testId:"link-text-field"})),n.createElement(i.FormControl,{id:"target-url-field",isInvalid:d&&!g},n.createElement(i.FormControl.Label,null,"Target URL"),n.createElement(i.TextInput,{name:"target-url",value:s,onChange:e=>{c(e.target.value),m(!0)},placeholder:"https://",maxLength:2100,testId:"target-url-field",ref:l}),n.createElement(i.FormControl.HelpText,null,"Include protocol (e.g. https://)"),d&&!g&&n.createElement(i.FormControl.ValidationMessage,null,"Invalid URL")),n.createElement(i.FormControl,{id:"link-title-field"},n.createElement(i.FormControl.Label,null,"Link title"),n.createElement(i.TextInput,{name:"link-title",value:u,onChange:e=>{p(e.target.value)},testId:"link-title-field"}),n.createElement(i.FormControl.HelpText,null,"Extra link information, usually shown as a tooltip on mouse hover")))),n.createElement(i.ModalControls,null,n.createElement(i.Button,{testId:"insert-link-cancel",onClick:()=>a(!1),variant:"secondary",size:"small"},"Cancel"),n.createElement(i.Button,{testId:"insert-link-confirm",onClick:()=>{h({url:s,text:o,title:u})},isDisabled:!g,variant:"positive",size:"small"},"Insert")))},Le=({onClose:e})=>{const a=t.useRef(null),[l,o]=t.useState(2),[r,s]=t.useState(1),c=v(l,2,100),d=v(r,1,100);return t.useEffect(()=>{var e;null!=(e=a.current)&&e.focus&&a.current.focus()},[a]),n.createElement(n.Fragment,null,n.createElement(i.ModalContent,{testId:"insert-table-modal"},n.createElement(i.Form,null,n.createElement(i.FormControl,{id:"insert-table-rows-number-field",isRequired:!0,isInvalid:!c},n.createElement(i.FormControl.Label,null,"Number of rows"),n.createElement(i.TextInput,{name:"rows",value:l.toString(),onChange:e=>o(Number(e.target.value)),testId:"insert-table-rows-number-field",min:2,max:100,pattern:"[1-9][0-9]*",type:"number",width:"small",autoComplete:"off",ref:a}),!c&&n.createElement(i.FormControl.ValidationMessage,null,"Should be between 2 and 100")),n.createElement(i.FormControl,{id:"insert-table-columns-number-field",isRequired:!0,isInvalid:!d},n.createElement(i.FormControl.Label,null,"Number of columns"),n.createElement(i.TextInput,{name:"columns",value:r.toString(),onChange:e=>s(Number(e.target.value)),testId:"insert-table-columns-number-field",min:1,max:100,pattern:"[1-9][0-9]*",type:"number",width:"small",autoComplete:"off"}),!d&&n.createElement(i.FormControl.ValidationMessage,null,"Should be between 1 and 100")))),n.createElement(i.ModalControls,null,n.createElement(i.Button,{testId:"insert-table-cancel",onClick:()=>e(!1),variant:"secondary",size:"small"},"Cancel"),n.createElement(i.Button,{testId:"insert-table-confirm",onClick:()=>e({rows:l,cols:r}),variant:"positive",size:"small",isDisabled:!c||!d},"Insert")))},Me=[{code:180,desc:"acute accent"},{code:38,desc:"ampersand"},{code:166,desc:"broken vertical bar"},{code:8226,desc:"bullet"},{code:184,desc:"cedilla"},{code:162,desc:"cent"},{code:169,desc:"copyright"},{code:176,desc:"degree"},{code:247,desc:"division"},{code:189,desc:"fraction half"},{code:188,desc:"fraction quarter"},{code:190,desc:"fraction three quarters"},{code:62,desc:"greater than"},{code:161,desc:"inverted exclamation mark"},{code:191,desc:"inverted question mark"},{code:171,desc:"left-pointing double angle quotation mark"},{code:60,desc:"less than"},{code:175,desc:"macron"},{code:181,desc:"micro"},{code:160,desc:"non-breaking space"},{code:172,desc:"not"},{code:182,desc:"paragraph"},{code:177,desc:"plus-minus"},{code:34,desc:"quotation mark"},{code:174,desc:"registered"},{code:187,desc:"right-pointing double angle quotation mark"},{code:167,desc:"section"},{code:168,desc:"umlaut/diaeresis"},{code:215,desc:"multiplication"},{code:8482,desc:"trade mark"},{code:8364,desc:"euro"},{code:163,desc:"pound"},{code:165,desc:"yen"},{code:8222,desc:"double low-9 quotation mark"},{code:710,desc:"modifier circumflex accent"},{code:8224,desc:"dagger"},{code:8225,desc:"double dagger"},{code:8230,desc:"horizontal ellipsis"},{code:8220,desc:"left double quotation mark"},{code:8249,desc:"single left-pointing angle quotation mark"},{code:8216,desc:"left single quotation mark"},{code:183,desc:"middle dot"},{code:8212,desc:"em dash"},{code:8211,desc:"en dash"},{code:8240,desc:"per mille"},{code:8250,desc:"single right-pointing angle quotation mark"},{code:8217,desc:"right single quotation mark"},{code:8218,desc:"single low-9 quotation mark"},{code:170,desc:"feminine ordinal indicator"},{code:186,desc:"masculine ordinal indicator"},{code:8221,desc:"right double quotation mark"},{code:732,desc:"small tilde"},{code:9829,desc:"black heart"},{code:9830,desc:"diamond"}],He={buttonPanel:o.css({display:"flex",flexWrap:"wrap"}),charButton:o.css({border:"1px solid "+a.gray500,width:"4.1rem",height:"4.1rem",fontSize:a.fontSizeXl,marginTop:a.spacing2Xs,marginRight:a.spacing2Xs}),selectedCharButton:o.css({backgroundColor:a.gray100}),tooltip:o.css({zIndex:1e3}),button:o.css({marginTop:a.spacingM,marginRight:a.spacingS})},Be=({onClose:e})=>{const[a,l]=t.useState(Me[0]);return n.createElement(n.Fragment,null,n.createElement(i.ModalContent,{testId:"insert-special-character-modal"},n.createElement(i.Flex,{flexDirection:"column",alignItems:"center"},n.createElement(i.Text,{as:"div",lineHeight:"lineHeight3Xl",fontSize:"fontSize3Xl",marginBottom:"spacingS"},String.fromCharCode(a.code)),n.createElement(i.Text,{as:"div",marginBottom:"spacingS"},a.desc)),n.createElement("div",{className:He.buttonPanel},Me.map(e=>n.createElement("div",{key:e.code},n.createElement(i.Tooltip,{className:He.tooltip,content:e.desc},n.createElement(i.Button,{testId:"special-character-button",isActive:e.code===a.code,className:He.charButton,variant:"transparent",onClick:()=>l(e)},String.fromCharCode(e.code))))))),n.createElement(i.ModalControls,null,n.createElement(i.Button,{testId:"insert-character-cancel",className:He.button,onClick:()=>e(!1),variant:"secondary",size:"small"},"Cancel"),n.createElement(i.Button,{className:He.button,testId:"insert-character-confirm",onClick:()=>e(String.fromCharCode(a.code)),variant:"positive",size:"small"},"Insert selected")))},Fe={root:o.css({position:"fixed",left:0,right:0,top:0,bottom:0}),topSplit:o.css({position:"fixed",top:0,height:"48px",left:0,right:0}),bottomSplit:o.css({position:"fixed",bottom:0,left:0,right:0,height:"36px"}),editorSplit:o.css({width:"50%",position:"fixed",top:"48px",left:0,bottom:"36px",overflowX:"hidden",overflowY:"scroll"}),editorSplitFullscreen:o.css({left:0,right:0,width:"100%"}),previewSplit:o.css({width:"50%",position:"fixed",top:"48px",right:0,bottom:"36px",overflowX:"hidden",overflowY:"scroll"}),separator:o.css({position:"fixed",top:"48px",bottom:"36px",width:"1px",background:a.gray400,left:"50%"}),button:o.css({position:"fixed",cursor:"pointer",zIndex:105,top:"49%",height:"30px",backgroundColor:a.gray100,border:"1px solid "+a.gray400,padding:0}),hideButton:o.css({left:"50%"}),showButton:o.css({right:0,borderRightWidth:0}),icon:o.css({verticalAlign:"middle"})},Ae=e=>{const[t,a]=n.useState(e.initialValue??""),[l,i]=n.useState(!0),[r,s]=n.useState(null);n.useEffect(()=>{var t,n;null==(t=e.sdk)||null==(n=t.window)||n.updateHeight("100%")},[]),n.useEffect(()=>{setTimeout(()=>{null==r||r.setFullsize(),null==r||r.refresh()},150)},[r]);const c=n.useMemo(()=>Ge({sdk:e.sdk,editor:r,locale:e.locale}),[r]);c.closeZenMode=()=>{e.onClose({value:t,cursor:null==r?void 0:r.getCursor()})};const d=e.sdk.locales.direction[e.locale]??"ltr";return n.createElement("div",{className:Fe.root,"data-test-id":"zen-mode-markdown-editor"},n.createElement("div",{className:Fe.topSplit},n.createElement(ve,{mode:"zen",disabled:!1,canUploadAssets:!1,actions:c})),n.createElement("div",{className:o.cx(Fe.editorSplit,{[Fe.editorSplitFullscreen]:!1===l})},n.createElement(Q,{mode:"zen",visible:!0,disabled:!1,direction:d,onReady:t=>{t.setContent(e.initialValue??""),t.setReadOnly(!1),s(t),t.focus(),t.events.onChange(t=>{a(t),e.saveValueToSDK(t)})}})),l&&n.createElement("div",{className:Fe.previewSplit},n.createElement(M,{direction:d,mode:"zen",value:t,previewComponents:e.previewComponents})),l&&n.createElement("div",{className:Fe.separator}),l&&n.createElement("button",{className:o.cx(Fe.button,Fe.hideButton),"aria-label":"Hide preview",onClick:()=>{i(!1)}},n.createElement(E.ChevronRightIcon,{variant:"muted",size:"tiny",className:Fe.icon})),!l&&n.createElement("button",{className:o.cx(Fe.button,Fe.showButton),"aria-label":"Show preview",onClick:()=>{i(!0)}},n.createElement(E.ChevronLeftIcon,{variant:"muted",size:"tiny",className:Fe.icon})),n.createElement("div",{className:Fe.bottomSplit},n.createElement(I,null,n.createElement(S,{onClick:()=>{xe(e.sdk.dialogs)}}))))};function De(e){return(e=(e=e||"").replace(/^ *('|"|\()*/,"")).replace(/('|"|\))* *$/,"")}function Re(e){return e.split(" ").shift()}function Ve(e){const t=e.split(" ");return t.shift(),t.join(" ")}const $e={inline:function(e){return{match:e[0],text:e[1],href:Re(e[2]),title:De(Ve(e[2]))}},ref:function(e){return{match:e[0],text:e[1],id:e[2]}},label:function(e){return{match:e[0],id:e[1],href:Re(e[2]),title:De(Ve(e[2]))}}},Pe={inline:/\[([^\r\n[\]]+)]\(([^\r\n)]+)\)/,ref:/\[([^\r\n[\]]+)] ?\[([^\r\n[\]]+)]/,label:/^ {0,3}\[([^\r\n[\]]+)]:\s+(.+)$/},Oe=We("inline"),Ue=We("ref"),Xe=We("label");function We(e){return t=>function(e,t){const n=[],a=new RegExp(Pe[t].source,"g"+("label"===t?"m":""));let l=a.exec(e);for(;l;)n.push(l),a.lastIndex=l.index+l[0].length,l=a.exec(e);return n}(t,e).map($e[e])}function je(e){return C(e)&&w(e.title)&&e.title.length>0}function _e(e,t){let n="["+t+"]: "+e.href;return je(e)&&(n+=' "'+e.title+'"'),n}function Ke(e,t){return"["+e.text+"]["+t+"]"}function Ge(e){const{sdk:t,editor:n,locale:a}=e,l=async e=>{if(e){const{links:o,fallbacks:i}=await async function(e,t){const n=e.filter(e=>!u(e,["fields","file",t.localeCode])),a=e.map(e=>function(e,{localeCode:t,fallbackCode:n,defaultLocaleCode:a}){const l=u(e,["fields","file",t]),o=n?u(e,["fields","file",n]):null,i=u(e,["fields","file",a]),r=l||o||i;if(C(r)&&r.url){const i=u(e,["fields","title",t])||u(e,["fields","title",n||""])||u(e,["fields","title",a])||function(e){return e?e.trim().replace(/\s{2,}/g," "):e}((s=r.fileName,s.replace(/\.\w+$/g,"")).replace(/_/g," ")),c=function(e){const t={images:"images.ctfassets.net",assets:"assets.ctfassets.net",downloads:"downloads.ctfassets.net",videos:"videos.ctfassets.net"};return e.replace(/(images|assets|downloads|videos).contentful.com/,(e,n)=>t[n])}(r.url);return{title:i,asset:e,url:c,isLocalized:Boolean(l),isFallback:Boolean(o),asMarkdown:``}}var s;return null}(e,t)).filter(e=>null!==e);return n.length>0?{fallbacks:a.filter(({isLocalized:e})=>!e).map(({title:e,isFallback:n,asset:a})=>{const l=n?t.fallbackCode:t.defaultLocaleCode;return{title:e,thumbnailUrl:a.fields.file[l].url,thumbnailAltText:e,description:n?`Fallback locale (${l})`:`Default locale (${l})`,asset:a}}),links:a}:{links:a}}(e,{localeCode:a,defaultLocaleCode:t.locales.default,fallbackCode:t.locales.fallbacks[a]});if(o&&o.length>0){if(i&&!await(n=t.dialogs,l={locale:a,assets:i},n.openCurrent({title:"Confirm using fallback assets",width:"medium",minHeight:"270px",shouldCloseOnEscapePress:!0,shouldCloseOnOverlayClick:!0,parameters:{type:Ce.confirmInsertAsset,...l}})))throw Error("User decided to not use fallbacks");return o.map(e=>e.asMarkdown).join("\n\n")}}var n,l;return""};return{headings:{h1:()=>{null==n||n.actions.h1()},h2:()=>{null==n||n.actions.h2()},h3:()=>{null==n||n.actions.h3()}},simple:{italic:()=>{null==n||n.actions.italic()},bold:()=>{null==n||n.actions.bold()},quote:()=>{null==n||n.actions.quote()},ol:()=>{null==n||n.actions.ol()},ul:()=>{null==n||n.actions.ul()},strike:()=>{null==n||n.actions.strike()},code:()=>{null==n||n.actions.code()},hr:()=>{null==n||n.actions.hr()},indent:()=>{null==n||n.actions.indent()},dedent:()=>{null==n||n.actions.dedent()}},history:{undo:()=>{null==n||n.actions.undo()},redo:()=>{null==n||n.actions.redo()}},insertLink:async()=>{if(!n)return;n.usePrimarySelection();const e=n.getSelectedText(),a=await(l=t.dialogs,o={selectedText:e},l.openCurrent({title:"Insert link",width:"large",minHeight:"410px",shouldCloseOnEscapePress:!0,shouldCloseOnOverlayClick:!0,parameters:{type:Ce.insertLink,...o}}));var l,o;a&&n.actions.link(a.url,e||a.text,a.title)},insertSpecialCharacter:async()=>{if(!n)return;const e=await(a=t.dialogs,a.openCurrent({title:"Insert special character",width:"large",minHeight:"600px",shouldCloseOnEscapePress:!0,shouldCloseOnOverlayClick:!0,parameters:{type:Ce.insertSpecialCharacter}}));var a;e&&n.insert(e)},insertTable:async()=>{if(!n)return;const e=await(a=t.dialogs,a.openCurrent({title:"Insert table",width:"medium",minHeight:"260px",shouldCloseOnEscapePress:!0,shouldCloseOnOverlayClick:!0,parameters:{type:Ce.insertTable}}));var a;e&&n.actions.table(e)},organizeLinks:()=>{if(!n)return;let e=n.getContent();e&&(e=function(e){let t=function(e){w(e)&&(e=Xe(e));const t=e.map(e=>e.id).map(e=>parseInt(e,10)).filter(e=>x(e)&&e>0);return t.length>0&&p(t)||0}(e);return y(Oe(e),n=>{t+=1,e=e.replace(n.match,Ke(n,t)),e+="\n"+_e(n,t)}),e}(e),e=function(e){const t=function(e){const t={},n={};return y(Xe(e),e=>{const a=t[e.href],l=k({},e);a?je(l)&&!je(a)&&(a.title=l.title):t[l.href]=l,n[l.id]=a||l}),{byHref:t,byOldId:n}}(e),n={},a=[],l=[];let o=1;return y(Ue(e),e=>{const i=t.byOldId[e.id];if(!i)return;const r=i.href;let s=n[r];s||(n[r]=s=o,o+=1,a.push(k({newId:s},i))),l.push(k({newId:s},e))}),y(Xe(e),t=>{e=e.replace(t.match,"")}),e=e.replace(/[\r\n\s]*$/,""),e+="\n\n",y(l,t=>{e=e.replace(t.match,Ke(t,t.newId))}),y(a,t=>{e+="\n"+_e(t,t.newId)}),e}(e),n.setContent(e),t.notifier.success("All your links are now references at the bottom of your document."))},embedExternalContent:async()=>{if(!n)return;const e=await(a=t.dialogs,a.openCurrent({title:"Embed external content",width:"large",minHeight:"435px",shouldCloseOnEscapePress:!0,shouldCloseOnOverlayClick:!0,parameters:{type:Ce.embedExternalContent}}));var a;e&&n.insert(e)},addNewMedia:async()=>{if(n)try{const{entity:e}=await t.navigator.openNewAsset({slideIn:{waitForClose:!0}}),a=await l([e]);n.insert(a)}finally{n.focus()}},linkExistingMedia:async()=>{if(n)try{const e=await t.dialogs.selectMultipleAssets({locale:a}),o=await l(e);n.insert(o)}finally{n.focus()}},openZenMode:async()=>{if(!n)return;const a=await(l=t.dialogs,o={initialValue:n.getContent(),locale:e.locale},l.openCurrent({width:"zen",shouldCloseOnEscapePress:!1,minHeight:"100vh",shouldCloseOnOverlayClick:!1,parameters:{type:Ce.zenMode,initialValue:o.initialValue,locale:o.locale}}));var l,o;n.setContent(a.value),a.cursor&&n.setCursor(a.cursor),n.focus()},closeZenMode:()=>{}}}const Ze={container:o.css({display:"flex",flexDirection:"column",fontFamily:a.fontStackPrimary})};function Ye(e){const[t,a]=n.useState(e.initialValue??""),[l,o]=n.useState("editor"),[i,r]=n.useState(null),[s,c]=n.useState(!1);n.useEffect(()=>{i&&e.onReady&&(e.onReady(i),setTimeout(()=>{i.refresh()},1))},[i]),n.useEffect(()=>{e.sdk.access.can("create","Asset").then(e=>{c(e)})},[]),n.useEffect(()=>{i&&i.setReadOnly(e.disabled)},[i,e.disabled]);const d=null===i||e.disabled||"editor"!==l,m=e.sdk.locales.direction[e.sdk.field.locale]??"ltr",u=n.useMemo(()=>Ge({sdk:e.sdk,editor:i,locale:e.sdk.field.locale}),[i]),p=n.useCallback(()=>{xe(e.sdk.dialogs)},[]);return n.createElement("div",{className:Ze.container,"data-test-id":"markdown-editor"},n.createElement(F,{active:l,onSelect:e=>{o(e)}}),n.createElement(ve,{mode:"default",disabled:d,canUploadAssets:s,actions:u}),n.createElement(Q,{minHeight:e.minHeight,mode:"default",visible:"editor"===l,disabled:d,direction:m,onReady:t=>{t.setContent(e.initialValue??""),t.setReadOnly(e.disabled),r(t),t.events.onChange(t=>{const n=t.replace(/^\s+$/gm,"");e.saveValueToSDK(n),a(t)})}}),"preview"===l&&n.createElement(M,{direction:m,minHeight:e.minHeight,mode:"default",value:t,previewComponents:e.previewComponents}),n.createElement(I,null,n.createElement(S,{onClick:p})),n.createElement(N,{sdk:e.sdk,value:t}))}exports.MarkdownEditor=function(e){return n.createElement(l.FieldConnector,{throttle:300,field:e.sdk.field,isInitiallyDisabled:e.isInitiallyDisabled},({value:t,disabled:a,setValue:l,externalReset:o})=>n.createElement(Ye,{...e,key:"markdown-editor-"+o,initialValue:t,disabled:a,saveValueToSDK:l}))},exports.MarkdownPreview=M,exports.openMarkdownDialog=(e,t)=>a=>{var o,i,r,s,c,d,m;if((null==(o=a.parameters)?void 0:o.type)===Ce.cheatsheet)return l.ModalDialogLauncher.openDialog(a,()=>n.createElement(we,null));if((null==(i=a.parameters)?void 0:i.type)===Ce.insertLink){const e=a.parameters.selectedText;return l.ModalDialogLauncher.openDialog(a,({onClose:t})=>n.createElement(Te,{selectedText:e,onClose:t}))}if((null==(r=a.parameters)?void 0:r.type)===Ce.insertSpecialCharacter)return l.ModalDialogLauncher.openDialog(a,({onClose:e})=>n.createElement(Be,{onClose:e}));if((null==(s=a.parameters)?void 0:s.type)===Ce.insertTable)return l.ModalDialogLauncher.openDialog(a,({onClose:e})=>n.createElement(Le,{onClose:e}));if((null==(c=a.parameters)?void 0:c.type)===Ce.embedExternalContent)return l.ModalDialogLauncher.openDialog(a,({onClose:e})=>n.createElement(Ne,{onClose:e}));if((null==(d=a.parameters)?void 0:d.type)===Ce.confirmInsertAsset){const e=a.parameters.locale,t=a.parameters.assets;return l.ModalDialogLauncher.openDialog(a,({onClose:a})=>n.createElement(ye,{onClose:a,locale:e,assets:t}))}if((null==(m=a.parameters)?void 0:m.type)===Ce.zenMode){const o=a.parameters.initialValue,i=a.parameters.locale;return l.ModalDialogLauncher.openDialog(a,({onClose:a})=>n.createElement(Ae,{saveValueToSDK:t=>{var n,a;return t?null==e||null==(a=e.field)?void 0:a.setValue(t):null==e||null==(n=e.field)?void 0:n.removeValue()},onClose:a,initialValue:o,locale:i,sdk:e,previewComponents:t}))}return Promise.reject()},exports.renderMarkdownDialog=e=>{const t=e.parameters.invocation;if(t.type===Ce.cheatsheet)return e.window.startAutoResizer(),n.createElement(we,null);if(t.type===Ce.insertLink){const a=t.selectedText;return e.window.startAutoResizer(),n.createElement(Te,{selectedText:a,onClose:e.close})}if(t.type===Ce.insertSpecialCharacter)return e.window.startAutoResizer(),n.createElement(Be,{onClose:e.close});if(t.type===Ce.insertTable)return e.window.startAutoResizer(),n.createElement(Le,{onClose:e.close});if(t.type===Ce.embedExternalContent)return e.window.startAutoResizer(),n.createElement(Ne,{onClose:e.close});if(t.type===Ce.confirmInsertAsset){const a=t.locale,l=t.assets;return e.window.startAutoResizer(),n.createElement(ye,{onClose:e.close,locale:a,assets:l})}if(t.type===Ce.zenMode){const a=t.locale,l=t.initialValue;return e.window.updateHeight("100%"),n.createElement(Ae,{onClose:e.close,saveValueToSDK:()=>{},initialValue:l,locale:a,sdk:e})}return n.createElement("div",null)};
|
|
216
|
-
//# sourceMappingURL=field-editor-markdown.cjs.production.min.js.map
|