@licklist/design 0.78.5-dev.46 → 0.78.5-dev.47
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/v2/components/WYSIWYGEditor/Icons.d.ts +2 -0
- package/dist/v2/components/WYSIWYGEditor/Icons.d.ts.map +1 -1
- package/dist/v2/components/WYSIWYGEditor/Icons.js +28 -2
- package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.d.ts +1 -0
- package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.d.ts.map +1 -1
- package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.js +156 -17
- package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss.js +1 -1
- package/dist/v2/styles/form/NewInput.scss +2 -3
- package/dist/v2/styles/form/NewInput.scss.js +1 -1
- package/package.json +3 -3
- package/src/v2/components/WYSIWYGEditor/Icons.tsx +13 -1
- package/src/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss +40 -58
- package/src/v2/components/WYSIWYGEditor/WYSIWYGEditor.tsx +166 -10
- package/src/v2/styles/form/NewInput.scss +2 -3
|
@@ -9,6 +9,8 @@ export declare const BulletListIcon: () => import("react/jsx-runtime").JSX.Eleme
|
|
|
9
9
|
export declare const NumberedListIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
export declare const QuoteAltIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
export declare const DividerIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const HardBreakIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
export declare const UndoIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
13
14
|
export declare const RedoIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const ClearIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
14
16
|
//# sourceMappingURL=Icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icons.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/WYSIWYGEditor/Icons.tsx"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,+CAIpB,CAAC;AAEF,eAAO,MAAM,UAAU,+CAItB,CAAC;AAEF,eAAO,MAAM,aAAa,+CAIzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+CAI7B,CAAC;AAEF,eAAO,MAAM,YAAY,+CAIxB,CAAC;AAEF,eAAO,MAAM,YAAY,+CAIxB,CAAC;AAEF,eAAO,MAAM,aAAa,+CAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,+CAI1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAI5B,CAAC;AAEF,eAAO,MAAM,YAAY,+CAIxB,CAAC;AAEF,eAAO,MAAM,WAAW,+CAMvB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAIpB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAIpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Icons.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/WYSIWYGEditor/Icons.tsx"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,+CAIpB,CAAC;AAEF,eAAO,MAAM,UAAU,+CAItB,CAAC;AAEF,eAAO,MAAM,aAAa,+CAIzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+CAI7B,CAAC;AAEF,eAAO,MAAM,YAAY,+CAIxB,CAAC;AAEF,eAAO,MAAM,YAAY,+CAIxB,CAAC;AAEF,eAAO,MAAM,aAAa,+CAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,+CAI1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAI5B,CAAC;AAEF,eAAO,MAAM,YAAY,+CAIxB,CAAC;AAEF,eAAO,MAAM,WAAW,+CAMvB,CAAC;AAEF,eAAO,MAAM,aAAa,+CAIzB,CAAA;AAED,eAAO,MAAM,QAAQ,+CAIpB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAIpB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAIrB,CAAC"}
|
|
@@ -162,7 +162,7 @@ var DividerIcon = function() {
|
|
|
162
162
|
]
|
|
163
163
|
});
|
|
164
164
|
};
|
|
165
|
-
var
|
|
165
|
+
var HardBreakIcon = function() {
|
|
166
166
|
return /*#__PURE__*/ jsx("svg", {
|
|
167
167
|
xmlns: "http://www.w3.org/2000/svg",
|
|
168
168
|
width: "24",
|
|
@@ -175,6 +175,19 @@ var UndoIcon = function() {
|
|
|
175
175
|
})
|
|
176
176
|
});
|
|
177
177
|
};
|
|
178
|
+
var UndoIcon = function() {
|
|
179
|
+
return /*#__PURE__*/ jsx("svg", {
|
|
180
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
181
|
+
width: "24",
|
|
182
|
+
height: "24",
|
|
183
|
+
viewBox: "0 0 24 24",
|
|
184
|
+
fill: "none",
|
|
185
|
+
children: /*#__PURE__*/ jsx("path", {
|
|
186
|
+
d: "M6.06131 6.69136C5.88684 6.85818 5.71976 7.03357 5.56136 7.21755C5.32407 7.49319 5.10569 7.78768 4.90881 8.09936C4.77746 8.30727 4.65565 8.52287 4.54421 8.7457C4.48837 8.85736 4.43524 8.9709 4.38469 9.08613C4.2839 9.31587 4.19401 9.5527 4.11539 9.796C4.07598 9.91797 4.03914 10.0416 4.00559 10.1668C3.93079 10.446 3.87328 10.7259 3.83158 11.0051C3.82934 11.0201 3.82751 11.0351 3.82536 11.05C3.81494 11.1228 3.80597 11.1955 3.79774 11.2682C3.79428 11.2986 3.79116 11.329 3.78807 11.3594C3.78326 11.4071 3.77883 11.4547 3.77495 11.5023C3.75889 11.6978 3.75077 11.8926 3.75009 12.0865C3.75003 12.1086 3.74996 12.1307 3.75009 12.1528C3.75089 12.3012 3.75571 12.449 3.76528 12.5961C3.7665 12.6146 3.76808 12.633 3.76943 12.6514C3.82014 13.3498 3.96775 14.0309 4.20377 14.6767L7.62813 11.1377L5.45502 10.5556C5.48179 10.4557 5.51129 10.3567 5.54272 10.2594C5.66865 9.8695 5.83151 9.50078 6.02609 9.15588C6.07459 9.06992 6.12494 8.9854 6.17732 8.90245C6.91264 7.73794 8.02285 6.87449 9.29715 6.43448C9.38818 6.40305 9.48005 6.37386 9.57268 6.34679C10.1284 6.18439 10.7114 6.10131 11.3052 6.10717C11.4042 6.10814 11.5034 6.11157 11.6028 6.11753C12.0008 6.14137 12.4022 6.2058 12.8023 6.31295C13.2945 6.44483 13.7566 6.63317 14.182 6.8709C14.2125 6.88794 14.2416 6.90723 14.2718 6.92476C14.7547 7.20595 15.1899 7.54933 15.5686 7.94261C15.6449 8.02185 15.7186 8.10326 15.7902 8.18637C15.9047 8.31912 16.0139 8.45605 16.1162 8.59793C16.1915 8.70249 16.2625 8.80995 16.3309 8.91903C17.1864 10.2824 17.4949 11.9837 17.0456 13.6609C16.327 16.3424 13.9009 18.1093 11.2507 18.108V19.6078C14.5636 19.6095 17.5967 17.4016 18.4951 14.0497C19.0819 11.8595 18.6347 9.6365 17.4544 7.89634L17.4558 7.89496C17.4301 7.85706 17.4028 7.81984 17.3764 7.78241C17.3604 7.75975 17.3443 7.73721 17.3281 7.71473C17.2772 7.64435 17.2253 7.57483 17.172 7.50619C17.1543 7.48339 17.1368 7.46044 17.1188 7.43783C17.0658 7.37103 17.0112 7.30536 16.9559 7.24034C16.9336 7.21424 16.9115 7.18811 16.8889 7.16231C16.8382 7.10446 16.7867 7.04739 16.7342 6.99105C16.7045 6.95913 16.6747 6.92719 16.6444 6.89576C16.4036 6.64603 16.1448 6.41195 15.869 6.19625C15.8379 6.17193 15.8052 6.14967 15.7737 6.12582C15.715 6.08143 15.657 6.03598 15.5969 5.99323C15.5586 5.96599 15.5191 5.94038 15.4802 5.91382C15.4213 5.87363 15.3622 5.83365 15.302 5.79505C15.2644 5.7709 15.2263 5.74744 15.1881 5.72393C15.1285 5.6872 15.0687 5.65066 15.0079 5.61551C14.959 5.58729 14.9097 5.55983 14.8601 5.53265C14.8028 5.50128 14.745 5.47076 14.6868 5.44081C14.6463 5.41998 14.6055 5.39949 14.5645 5.37935C14.4883 5.3419 14.4111 5.30595 14.3332 5.27093C14.3021 5.25697 14.2713 5.24238 14.24 5.22881C14.1572 5.19297 14.0732 5.15965 13.9886 5.12661C13.953 5.11267 13.9176 5.09792 13.8816 5.08449C13.8148 5.05956 13.7471 5.03652 13.6793 5.01337C13.6344 4.99807 13.5899 4.98161 13.5446 4.9671C13.4284 4.92988 13.3102 4.89544 13.1911 4.86352C12.691 4.72957 12.1893 4.6496 11.6919 4.61976C11.4431 4.60484 11.1954 4.60237 10.9496 4.61217C10.8266 4.61706 10.7042 4.62473 10.5822 4.63564C10.3388 4.65745 10.0974 4.69064 9.85925 4.73577C8.42886 5.00676 7.10753 5.69099 6.06131 6.69136Z",
|
|
187
|
+
fill: "#626A90"
|
|
188
|
+
})
|
|
189
|
+
});
|
|
190
|
+
};
|
|
178
191
|
var RedoIcon = function() {
|
|
179
192
|
return /*#__PURE__*/ jsx("svg", {
|
|
180
193
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -188,5 +201,18 @@ var RedoIcon = function() {
|
|
|
188
201
|
})
|
|
189
202
|
});
|
|
190
203
|
};
|
|
204
|
+
var ClearIcon = function() {
|
|
205
|
+
return /*#__PURE__*/ jsx("svg", {
|
|
206
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
207
|
+
width: "24",
|
|
208
|
+
height: "24",
|
|
209
|
+
viewBox: "0 0 24 24",
|
|
210
|
+
fill: "none",
|
|
211
|
+
children: /*#__PURE__*/ jsx("path", {
|
|
212
|
+
d: "M12.4884 13.549L11.7035 18H10.1804L11.1935 12.2542L5.63599 6.69664L6.69664 5.63599L18.3639 17.3033L17.3032 18.3639L12.4884 13.549ZM11.8295 8.64752L12.0319 7.49995H10.6819L9.18193 5.99995H17.9999V7.49995H13.555L13.1243 9.94234L11.8295 8.64752Z",
|
|
213
|
+
fill: "#626A90"
|
|
214
|
+
})
|
|
215
|
+
});
|
|
216
|
+
};
|
|
191
217
|
|
|
192
|
-
export { BoldIcon, BulletListIcon, DividerIcon, Heading1Icon, Heading2Icon, ItalicIcon, NumberedListIcon, ParagraphIcon, QuoteAltIcon, RedoIcon, StrikeThroughIcon, UnderlineIcon, UndoIcon };
|
|
218
|
+
export { BoldIcon, BulletListIcon, ClearIcon, DividerIcon, HardBreakIcon, Heading1Icon, Heading2Icon, ItalicIcon, NumberedListIcon, ParagraphIcon, QuoteAltIcon, RedoIcon, StrikeThroughIcon, UnderlineIcon, UndoIcon };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WYSIWYGEditor.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/WYSIWYGEditor/WYSIWYGEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"WYSIWYGEditor.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/WYSIWYGEditor/WYSIWYGEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,OAAO,sBAAsB,CAAA;AAE7B,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwWtD,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import React__default from 'react';
|
|
3
|
-
import { BoldIcon, ItalicIcon, UnderlineIcon, StrikeThroughIcon, Heading1Icon, Heading2Icon, ParagraphIcon, QuoteAltIcon, BulletListIcon, NumberedListIcon, DividerIcon, UndoIcon, RedoIcon } from './Icons.js';
|
|
3
|
+
import { BoldIcon, ItalicIcon, UnderlineIcon, StrikeThroughIcon, Heading1Icon, Heading2Icon, ParagraphIcon, QuoteAltIcon, BulletListIcon, NumberedListIcon, DividerIcon, HardBreakIcon, UndoIcon, RedoIcon, ClearIcon } from './Icons.js';
|
|
4
4
|
import './WYSIWYGEditor.scss.js';
|
|
5
5
|
|
|
6
6
|
var WYSIWYGEditor = function(param) {
|
|
@@ -29,25 +29,139 @@ var WYSIWYGEditor = function(param) {
|
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
var execCommand = function(command, value) {
|
|
32
|
+
// Ensure the command is only executed if the editor is focused or if we can force focus to it
|
|
33
|
+
var selection = window.getSelection();
|
|
34
|
+
if (!selection) return;
|
|
35
|
+
var isWithinEditor = false;
|
|
36
|
+
if (selection.rangeCount > 0) {
|
|
37
|
+
var _contentRef_current;
|
|
38
|
+
var range = selection.getRangeAt(0);
|
|
39
|
+
isWithinEditor = ((_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.contains(range.commonAncestorContainer)) || false;
|
|
40
|
+
}
|
|
41
|
+
// If not within editor, we focus the editor first to ensure the command applies to it
|
|
42
|
+
if (!isWithinEditor && contentRef.current) {
|
|
43
|
+
contentRef.current.focus();
|
|
44
|
+
// We need to re-get the selection after focusing as it might have changed
|
|
45
|
+
var currentSelection = window.getSelection();
|
|
46
|
+
if (currentSelection) {
|
|
47
|
+
// If the editor is empty or we want to ensure cursor is inside, we set it
|
|
48
|
+
if (contentRef.current.innerHTML === '' || contentRef.current.innerHTML === '<p><br></p>') {
|
|
49
|
+
var newRange = document.createRange();
|
|
50
|
+
newRange.selectNodeContents(contentRef.current);
|
|
51
|
+
newRange.collapse(false);
|
|
52
|
+
currentSelection.removeAllRanges();
|
|
53
|
+
currentSelection.addRange(newRange);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (command === 'clearFormatting') {
|
|
58
|
+
if (selection.rangeCount > 0) {
|
|
59
|
+
var range1 = selection.getRangeAt(0);
|
|
60
|
+
// Check if selection is inside a list
|
|
61
|
+
var container = range1.commonAncestorContainer;
|
|
62
|
+
if (container.nodeType === Node.TEXT_NODE) {
|
|
63
|
+
container = container.parentNode;
|
|
64
|
+
}
|
|
65
|
+
var isInsideList = false;
|
|
66
|
+
var tempNode = container;
|
|
67
|
+
while(tempNode && tempNode !== contentRef.current){
|
|
68
|
+
if (tempNode.nodeName === 'UL' || tempNode.nodeName === 'OL') {
|
|
69
|
+
isInsideList = true;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
tempNode = tempNode.parentNode;
|
|
73
|
+
}
|
|
74
|
+
if (isInsideList) {
|
|
75
|
+
// If inside a list, we need to toggle off the list first
|
|
76
|
+
// We check which type of list it is and call the corresponding command
|
|
77
|
+
var listType = '';
|
|
78
|
+
var listNode = container;
|
|
79
|
+
while(listNode && listNode !== contentRef.current){
|
|
80
|
+
if (listNode.nodeName === 'UL') {
|
|
81
|
+
listType = 'insertUnorderedList';
|
|
82
|
+
break;
|
|
83
|
+
} else if (listNode.nodeName === 'OL') {
|
|
84
|
+
listType = 'insertOrderedList';
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
listNode = listNode.parentNode;
|
|
88
|
+
}
|
|
89
|
+
if (listType) {
|
|
90
|
+
document.execCommand(listType, false);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// If the selection is collapsed, just apply to current block
|
|
94
|
+
if (range1.collapsed) {
|
|
95
|
+
document.execCommand('formatBlock', false, '<p>');
|
|
96
|
+
document.execCommand('removeFormat', false);
|
|
97
|
+
} else {
|
|
98
|
+
// If there's a selection, we check if it contains HR
|
|
99
|
+
var fragment = range1.cloneContents();
|
|
100
|
+
var hasHR = fragment.querySelector('hr');
|
|
101
|
+
if (hasHR) {
|
|
102
|
+
// If it contains HR, we apply removeFormat but avoid formatBlock P
|
|
103
|
+
// which would replace the whole selection including HR with a single P
|
|
104
|
+
document.execCommand('removeFormat', false);
|
|
105
|
+
} else {
|
|
106
|
+
document.execCommand('formatBlock', false, '<p>');
|
|
107
|
+
document.execCommand('removeFormat', false);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
handleInput();
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
32
114
|
if (command === 'insertHorizontalRule') {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
range.deleteContents();
|
|
115
|
+
if (selection.rangeCount > 0) {
|
|
116
|
+
var range2 = selection.getRangeAt(0);
|
|
117
|
+
// range.deleteContents() // Removed to avoid clearing highlighted text
|
|
37
118
|
var hr = document.createElement('hr');
|
|
38
119
|
var p = document.createElement('p');
|
|
39
120
|
p.innerHTML = '<br>' // Ensure the paragraph is "typeable"
|
|
40
121
|
;
|
|
122
|
+
// If something is selected, we collapse to end to insert HR AFTER selection
|
|
123
|
+
if (!range2.collapsed) {
|
|
124
|
+
range2.collapse(false);
|
|
125
|
+
}
|
|
41
126
|
// Insert HR and then the paragraph after it
|
|
42
|
-
|
|
43
|
-
|
|
127
|
+
range2.insertNode(p);
|
|
128
|
+
range2.insertNode(hr);
|
|
44
129
|
// Move cursor to the new paragraph
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
130
|
+
var newRange1 = document.createRange();
|
|
131
|
+
newRange1.setStart(p, 0);
|
|
132
|
+
newRange1.setEnd(p, 0);
|
|
133
|
+
newRange1.collapse(true);
|
|
49
134
|
selection.removeAllRanges();
|
|
50
|
-
selection.addRange(
|
|
135
|
+
selection.addRange(newRange1);
|
|
136
|
+
handleInput();
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (command === 'hardBreak') {
|
|
141
|
+
if (selection.rangeCount > 0) {
|
|
142
|
+
var range3 = selection.getRangeAt(0);
|
|
143
|
+
// range.deleteContents() // Removed to avoid clearing highlighted text
|
|
144
|
+
var spacer = document.createElement('div');
|
|
145
|
+
spacer.className = 'wysiwyg-editor__hard-break';
|
|
146
|
+
spacer.innerHTML = '<br>';
|
|
147
|
+
// If something is selected, we collapse to end to insert break AFTER selection
|
|
148
|
+
// or we can just insert it at current position.
|
|
149
|
+
// User says "it should just break to new line", usually that implies keeping the text.
|
|
150
|
+
if (!range3.collapsed) {
|
|
151
|
+
range3.collapse(false);
|
|
152
|
+
}
|
|
153
|
+
range3.insertNode(spacer);
|
|
154
|
+
// Create a new paragraph after the spacer to continue typing
|
|
155
|
+
var p1 = document.createElement('p');
|
|
156
|
+
p1.innerHTML = '<br>';
|
|
157
|
+
spacer.after(p1);
|
|
158
|
+
// Move cursor to the new paragraph
|
|
159
|
+
var newRange2 = document.createRange();
|
|
160
|
+
newRange2.setStart(p1, 0);
|
|
161
|
+
newRange2.setEnd(p1, 0);
|
|
162
|
+
newRange2.collapse(true);
|
|
163
|
+
selection.removeAllRanges();
|
|
164
|
+
selection.addRange(newRange2);
|
|
51
165
|
handleInput();
|
|
52
166
|
return;
|
|
53
167
|
}
|
|
@@ -109,7 +223,7 @@ var WYSIWYGEditor = function(param) {
|
|
|
109
223
|
className: "wysiwyg-editor__toolbar-btn",
|
|
110
224
|
title: "Heading 1",
|
|
111
225
|
onClick: function() {
|
|
112
|
-
return execCommand('formatBlock', '
|
|
226
|
+
return execCommand('formatBlock', '<h1>');
|
|
113
227
|
},
|
|
114
228
|
children: /*#__PURE__*/ jsx(Heading1Icon, {})
|
|
115
229
|
}),
|
|
@@ -118,7 +232,7 @@ var WYSIWYGEditor = function(param) {
|
|
|
118
232
|
className: "wysiwyg-editor__toolbar-btn",
|
|
119
233
|
title: "Heading 2",
|
|
120
234
|
onClick: function() {
|
|
121
|
-
return execCommand('formatBlock', '
|
|
235
|
+
return execCommand('formatBlock', '<h2>');
|
|
122
236
|
},
|
|
123
237
|
children: /*#__PURE__*/ jsx(Heading2Icon, {})
|
|
124
238
|
}),
|
|
@@ -127,8 +241,7 @@ var WYSIWYGEditor = function(param) {
|
|
|
127
241
|
className: "wysiwyg-editor__toolbar-btn",
|
|
128
242
|
title: "Paragraph",
|
|
129
243
|
onClick: function() {
|
|
130
|
-
execCommand('
|
|
131
|
-
execCommand('removeFormat');
|
|
244
|
+
return execCommand('clearFormatting');
|
|
132
245
|
},
|
|
133
246
|
children: /*#__PURE__*/ jsx(ParagraphIcon, {})
|
|
134
247
|
}),
|
|
@@ -137,7 +250,7 @@ var WYSIWYGEditor = function(param) {
|
|
|
137
250
|
className: "wysiwyg-editor__toolbar-btn",
|
|
138
251
|
title: "Quote",
|
|
139
252
|
onClick: function() {
|
|
140
|
-
return execCommand('formatBlock', '
|
|
253
|
+
return execCommand('formatBlock', '<blockquote>');
|
|
141
254
|
},
|
|
142
255
|
children: /*#__PURE__*/ jsx(QuoteAltIcon, {})
|
|
143
256
|
}),
|
|
@@ -168,11 +281,24 @@ var WYSIWYGEditor = function(param) {
|
|
|
168
281
|
},
|
|
169
282
|
children: /*#__PURE__*/ jsx(DividerIcon, {})
|
|
170
283
|
}),
|
|
284
|
+
/*#__PURE__*/ jsx("button", {
|
|
285
|
+
type: "button",
|
|
286
|
+
className: "wysiwyg-editor__toolbar-btn",
|
|
287
|
+
title: "Hard Break",
|
|
288
|
+
onClick: function() {
|
|
289
|
+
return execCommand('hardBreak');
|
|
290
|
+
},
|
|
291
|
+
children: /*#__PURE__*/ jsx(HardBreakIcon, {})
|
|
292
|
+
}),
|
|
171
293
|
/*#__PURE__*/ jsx("button", {
|
|
172
294
|
type: "button",
|
|
173
295
|
className: "wysiwyg-editor__toolbar-btn",
|
|
174
296
|
title: "Undo",
|
|
175
297
|
onClick: function() {
|
|
298
|
+
var selection = window.getSelection();
|
|
299
|
+
if (selection && contentRef.current && !contentRef.current.contains(selection.anchorNode)) {
|
|
300
|
+
contentRef.current.focus();
|
|
301
|
+
}
|
|
176
302
|
if (document.queryCommandEnabled('undo')) {
|
|
177
303
|
document.execCommand('undo', false);
|
|
178
304
|
handleInput();
|
|
@@ -185,12 +311,25 @@ var WYSIWYGEditor = function(param) {
|
|
|
185
311
|
className: "wysiwyg-editor__toolbar-btn",
|
|
186
312
|
title: "Redo",
|
|
187
313
|
onClick: function() {
|
|
314
|
+
var selection = window.getSelection();
|
|
315
|
+
if (selection && contentRef.current && !contentRef.current.contains(selection.anchorNode)) {
|
|
316
|
+
contentRef.current.focus();
|
|
317
|
+
}
|
|
188
318
|
if (document.queryCommandEnabled('redo')) {
|
|
189
319
|
document.execCommand('redo', false);
|
|
190
320
|
handleInput();
|
|
191
321
|
}
|
|
192
322
|
},
|
|
193
323
|
children: /*#__PURE__*/ jsx(RedoIcon, {})
|
|
324
|
+
}),
|
|
325
|
+
/*#__PURE__*/ jsx("button", {
|
|
326
|
+
type: "button",
|
|
327
|
+
className: "wysiwyg-editor__toolbar-btn",
|
|
328
|
+
title: "Clear Formatting",
|
|
329
|
+
onClick: function() {
|
|
330
|
+
return execCommand('clearFormatting');
|
|
331
|
+
},
|
|
332
|
+
children: /*#__PURE__*/ jsx(ClearIcon, {})
|
|
194
333
|
})
|
|
195
334
|
]
|
|
196
335
|
}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styleInject from '/opt/atlassian/pipelines/agent/build/node_modules/style-inject/dist/style-inject.es.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ":root{--blue-50:#e7f4fc;--blue-100:#b4dbf6;--blue-200:#90caf2;--blue-300:#5eb2ec;--blue-400:#3ea3e8;--blue-500:#0e8ce2;--blue-600:#0d7fce;--blue-700:#0a63a0;--blue-800:#084d7c;--blue-900:#063b5f;--cyan-50:#eafbff;--cyan-75:#bdf3ff;--cyan-100:#aff1ff;--cyan-200:#9deeff;--cyan-300:#71e6ff;--cyan-400:#55e1ff;--cyan-500:#2bd9ff;--cyan-600:#27c5e8;--cyan-700:#1f9ab5;--cyan-800:#18778c;--cyan-900:#125b6b;--indigo-50:#efeffe;--indigo-100:#cdccfc;--indigo-200:#b4b4fa;--indigo-300:#9291f8;--indigo-400:#7c74ff;--indigo-500:#5d5bf4;--indigo-600:#5553de;--indigo-700:#4241ad;--indigo-800:#333286;--indigo-900:#272666;--green-50:#eef9ea;--green-100:#c9ecbd;--green-200:#afe39d;--green-300:#8bd671;--green-400:#75ce55;--green-500:#52c22b;--green-600:#4bb127;--green-700:#3a8a1f;--green-800:#2d6b18;--green-900:#225112;--red-50:#fceceb;--red-100:#f5c4c2;--red-200:#f1a8a4;--red-300:#ea807b;--red-400:#e66861;--red-500:#e0423a;--red-600:#cc3c35;--red-700:#9f2f29;--red-800:#7b2420;--red-900:#5e1c18;--purple-50:#efe6fd;--purple-100:#ceb0fa;--purple-200:#b78af7;--purple-300:#965ff4;--purple-400:#8133f1;--purple-500:#6200ee;--purple-600:#5900d9;--purple-700:#4600a9;--purple-800:#360083;--purple-900:#290064;--orange-50:#fff2e8;--orange-100:#fed7b6;--orange-200:#fec493;--orange-300:#fea962;--orange-400:#fd9843;--orange-500:#fd7e14;--orange-600:#e67312;--orange-700:#b4590e;--orange-800:#8b450b;--orange-900:#6a3508;--yellow-50:#fcf6e7;--yellow-100:#f6e3b4;--yellow-200:#f2d68f;--yellow-300:#ecc35c;--yellow-400:#fcc741;--yellow-500:#fbb912;--yellow-600:#e4a810;--yellow-700:#a07509;--yellow-800:#7c5b07;--yellow-900:#5f4505;--pink-50:#fdecf4;--pink-100:#f8c3db;--pink-200:#f4a6ca;--pink-300:#f07eb2;--pink-400:#ed65a3;--pink-500:#e83e8c;--pink-600:#d33874;--pink-700:#a52c63;--pink-800:#80224d;--pink-900:#611a3b;--teal-50:#e9faf7;--teal-100:#baf0e7;--teal-200:#99e8db;--teal-300:#6bdecb;--teal-400:#4ed8c1;--teal-500:#22ceb1;--teal-600:#1fbba1;--teal-700:#18927e;--teal-800:#137161;--teal-900:#0e574a;--neutral-white:#fff;--neutral-25:#f8f8fa;--neutral-50:#e8e9ef;--neutral-75:#d2d5e3;--neutral-100:#b6bacc;--neutral-200:#9399b3;--neutral-300:#626a90;--neutral-400:#433d7b;--neutral-500:#14215a;--neutral-600:#121e52;--neutral-700:#0e1740;--neutral-800:#0b1232;--neutral-900:#080e26;--neutral-black:#000;--purple-lightest:var(--purple-50);--purple-lighter:var(--purple-100);--purple-light:var(--purple-300);--purple-regular:var(--purple-500);--purple-dark:var(--purple-600);--purple-darker:var(--purple-800);--purple-darkest:var(--purple-900);--blue-lightest:var(--blue-50);--blue-lighter:var(--blue-100);--blue-light:var(--blue-300);--blue-regular:var(--blue-500);--blue-dark:var(--blue-600);--blue-darker:var(--blue-800);--blue-darkest:var(--blue-900);--indigo-lightest:var(--indigo-50);--indigo-lighter:var(--indigo-100);--indigo-light:var(--indigo-300);--indigo-regular:var(--indigo-500);--indigo-dark:var(--indigo-600);--indigo-darker:var(--indigo-800);--indigo-darkest:var(--indigo-900);--cyan-lightest:var(--cyan-50);--cyan-lighter:var(--cyan-100);--cyan-light:var(--cyan-300);--cyan-regular:var(--cyan-500);--cyan-dark:var(--cyan-700);--cyan-darker:var(--cyan-800);--cyan-darkest:var(--cyan-900);--red-lightest:var(--red-50);--red-lighter:var(--red-100);--red-light:var(--red-400);--red-regular:var(--red-500);--red-dark:var(--red-600);--red-darker:var(--red-800);--red-darkest:var(--red-900);--orange-lightest:var(--orange-50);--orange-lighter:var(--orange-100);--orange-light:var(--orange-300);--orange-regular:var(--orange-500);--orange-dark:var(--orange-600);--orange-darker:var(--orange-700);--orange-darkest:var(--orange-800);--yellow-lightest:var(--yellow-50);--yellow-lighter:var(--yellow-100);--yellow-light:var(--yellow-300);--yellow-regular:var(--yellow-500);--yellow-dark:var(--yellow-600);--yellow-darker:var(--yellow-800);--yellow-darkest:var(--yellow-900);--pink-lightest:var(--pink-50);--pink-lighter:var(--pink-100);--pink-light:var(--pink-300);--pink-regular:var(--pink-500);--pink-dark:var(--pink-600);--pink-darker:var(--pink-700);--pink-darkest:var(--pink-800);--green-lightest:var(--green-50);--green-lighter:var(--green-100);--green-light:var(--green-300);--green-regular:var(--green-500);--green-dark:var(--green-600);--green-darker:var(--green-800);--green-darkest:var(--green-900);--teal-lightest:var(--teal-50);--teal-lighter:var(--teal-100);--teal-light:var(--teal-300);--teal-regular:var(--teal-500);--teal-dark:var(--teal-600);--teal-darker:var(--teal-700);--teal-darkest:var(--teal-800);--tone-lightest:var(--neutral-white);--tone-lighter:var(--neutral-25);--tone-light:var(--neutral-50);--tone-regular:var(--neutral-75);--tone-dark:var(--neutral-100);--tone-darker:var(--neutral-200);--tone-darkest:var(--neutral-300);--shade-lightest:var(--neutral-400);--shade-lighter:var(--neutral-500);--shade-light:var(--neutral-600);--shade-regular:var(--neutral-700);--shade-dark:var(--neutral-800);--shade-darker:var(--neutral-900);--shade-darkest:var(--neutral-black);--highlight-lightest:var(--cyan-lightest);--highlight-lighter:var(--cyan-lighter);--highlight-light:var(--cyan-light);--highlight-regular:var(--blue-regular);--highlight-dark:var(--blue-dark);--highlight-darker:var(--blue-darker);--highlight-darkest:var(--blue-darkest);--success-lightest:var(--green-lightest);--success-lighter:var(--green-lighter);--success-light:var(--green-light);--success-regular:var(--green-regular);--success-dark:var(--green-dark);--success-darker:var(--green-darker);--success-darkest:var(--green-darkest);--errors-lightest:var(--red-lightest);--errors-lighter:var(--red-lighter);--errors-light:var(--red-light);--errors-regular:var(--red-regular);--errors-dark:var(--red-dark);--errors-darker:var(--red-darker);--errors-darkest:var(--red-darkest);--actions-lightest:var(--purple-50);--actions-lighter:var(--purple-lighter);--actions-light:var(--purple-light);--actions-regular:var(--purple-regular);--actions-dark:var(--purple-dark);--actions-darker:var(--purple-darker);--actions-darkest:var(--purple-darkest);--information-lightest:var(--blue-lightest);--information-lighter:var(--blue-lighter);--information-light:var(--blue-light);--information-regular:var(--blue-regular);--information-dark:var(--blue-dark);--information-darker:var(--blue-darker);--information-darkest:var(--blue-darkest);--alert-lightest:var(--yellow-lightest);--alert-lighter:var(--yellow-lighter);--alert-light:var(--orange-light);--alert-regular:var(--orange-regular);--alert-darker:var(--yellow-darker);--alert-darkest:var(--yellow-darkest);--danger-lightest:var(--red-lightest);--danger-lighter:var(--red-lighter);--danger-light:var(--red-light);--danger-regular:var(--red-regular);--danger-dark:var(--red-dark);--danger-darker:var(--red-darker);--danger-darkest:var(--red-darkest);--disabled-lightest:var(--tone-light);--disabled-lighter:var(--tone-regular);--disabled-light:var(--tone-dark);--disabled-regular:var(--tone-darker);--disabled-dark:var(--shade-lighter);--disabled-darker:var(--shade-light);--disabled-darkest:var(--shade-regular);--label-primary:var(--shade-light);--label-secondary:var(--tone-darkest);--label-secondary-hover:var(--shade-lighter);--label-white:var(--tone-lightest);--label-highlight:var(--highlight-dark);--label-action:var(--actions-regular);--label-danger:var(--danger-dark);--label-status-error:var(--errors-dark);--label-status-success:var(--success-darker);--label-status-info:var(--information-dark);--label-status-alert:var(--alert-regular);--label-status-disabled:var(--disabled-regular);--surface-primary:var(--tone-lightest);--surface-primary-hover:var(--tone-lighter);--surface-primary-pressed:var(--tone-light);--surface-secondary:var(--neutral-25);--surface-secondary-hover:var(--tone-light);--surface-secondary-pressed:var(--tone-regular);--surface-tertiary:var(--tone-light);--surface-tertiary-hover:var(--tone-lighter);--surface-tertiary-pressed:var(--tone-lightest);--surface-status-success:var(--success-lightest);--surface-status-error:var(--errors-lightest);--surface-status-alert:var(--alert-lightest);--surface-status-info:var(--information-lightest);--surface-status-disabled:var(--disabled-lighter);--surface-action-soft:var(--actions-lightest);--surface-action-soft-hover:var(--actions-lighter);--surface-action-soft-pressed:var(--actions-light);--surface-danger-soft:var(--danger-lightest);--surface-danger-soft-hover:var(--danger-lighter);--surface-danger-soft-pressed:var(--danger-light);--surface-highlight-soft:var(--highlight-lightest);--surface-colour-red-soft:var(--red-lightest);--surface-colour-green-soft:var(--green-lightest);--surface-colour-blue-soft:var(--blue-lightest);--surface-colour-orange-soft:var(--orange-lightest);--surface-colour-yellow-soft:var(--yellow-lightest);--surface-colour-purple-soft:var(--purple-lightest);--surface-colour-indigo-soft:var(--indigo-lightest);--surface-colour-cyan-soft:var(--cyan-lightest);--surface-colour-pink-soft:var(--pink-lightest);--surface-colour-teal-soft:var(--teal-lightest);--border-primary:var(--tone-light);--border-secondary:var(--tone-regular);--border-selected:var(--neutral-600);--border-action:var(--actions-regular);--border-status-error:var(--errors-lighter);--border-status-success:var(--success-lighter);--border-status-alert:var(--alert-lighter);--border-status-info:var(--information-lighter);--border-status-disabled:var(--disabled-lightest);--border-colour-overlay:#121e521a;--fill-primary:var(--shade-lighter);--fill-secondary:var(--tone-darkest);--fill-white:var(--tone-lightest);--fill-action:var(--actions-regular);--fill-highlight:var(--highlight-dark);--fill-danger:var(--danger-dark);--fill-status-success:var(--success-darker);--fill-status-error:var(--errors-dark);--fill-status-alert:var(--alert-regular);--fill-status-info:var(--information-regular);--fill-status-disabled:var(--disabled-light);--gradient-stop1:var(--purple-500);--gradient-stop2:var(--indigo-500);--gradient-stop3:var(--blue-500)}[data-theme=dark]{--label-primary:var(--tone-lighter);--label-secondary:var(--tone-darker);--label-secondary-hover:var(--tone-lighter);--label-white:var(--tone-lightest);--label-highlight:var(--highlight-light);--label-action:var(--actions-lighter);--label-danger:var(--danger-light);--label-status-error:var(--errors-light);--label-status-success:var(--success-light);--label-status-info:var(--information-light);--label-status-alert:var(--alert-light);--label-status-disabled:var(--disabled-regular);--surface-primary:var(--shade-darker);--surface-primary-hover:var(--shade-dark);--surface-primary-pressed:var(--shade-regular);--surface-secondary:var(--shade-dark);--surface-secondary-hover:var(--shade-darker);--surface-secondary-pressed:var(--shade-darkest);--surface-tertiary:var(--shade-regular);--surface-tertiary-hover:var(--shade-dark);--surface-tertiary-pressed:var(--shade-darker);--surface-status-success:var(--success-darkest);--surface-status-error:var(--errors-darkest);--surface-status-alert:var(--alert-darkest);--surface-status-info:var(--information-darkest);--surface-status-disabled:var(--disabled-darkest);--surface-action-soft:var(--actions-darkest);--surface-action-soft-hover:var(--actions-darker);--surface-action-soft-pressed:var(--actions-dark);--surface-danger-soft:var(--danger-darkest);--surface-danger-soft-hover:var(--danger-darker);--surface-danger-soft-pressed:var(--danger-dark);--surface-highlight-soft:var(--highlight-darkest);--surface-colour-red-soft:var(--red-darkest);--surface-colour-green-soft:var(--green-darkest);--surface-colour-blue-soft:var(--blue-darkest);--surface-colour-orange-soft:var(--orange-darkest);--surface-colour-yellow-soft:var(--yellow-darkest);--surface-colour-purple-soft:var(--purple-darkest);--surface-colour-indigo-soft:var(--indigo-darkest);--surface-colour-cyan-soft:var(--cyan-darkest);--surface-colour-pink-soft:var(--pink-darkest);--surface-colour-teal-soft:var(--teal-darkest);--border-primary:var(--shade-light);--border-secondary:var(--shade-dark);--border-selected:var(--tone-light);--border-action:var(--actions-light);--border-status-error:var(--errors-darker);--border-status-success:var(--success-darker);--border-status-alert:var(--alert-darker);--border-status-info:var(--information-darker);--border-status-disabled:var(--disabled-dark);--border-colour-overlay:#ffffff1a;--fill-primary:var(--tone-lighter);--fill-secondary:var(--tone-darker);--fill-white:var(--tone-lightest);--fill-action:var(--actions-lighter);--fill-highlight:var(--highlight-light);--fill-danger:var(--danger-light);--fill-status-success:var(--success-light);--fill-status-error:var(--errors-light);--fill-status-alert:var(--alert-light);--fill-status-info:var(--information-light);--fill-status-disabled:var(--disabled-dark);--gradient-stop1:var(--indigo-400);--gradient-stop2:var(--cyan-500);--gradient-stop3:var(--cyan-100)}.text-primary{color:var(--label-primary)}.text-secondary{color:var(--label-secondary)}.text-white{color:var(--label-white)}.text-action{color:var(--label-action)}.text-danger{color:var(--label-danger)}.text-success{color:var(--label-status-success)}.text-error{color:var(--label-status-error)}.text-info{color:var(--label-status-info)}.text-warning{color:var(--label-status-alert)}.text-disabled{color:var(--label-status-disabled)}.bg-primary{background-color:var(--surface-primary)}.bg-secondary{background-color:var(--surface-secondary)}.bg-tertiary{background-color:var(--surface-tertiary)}.bg-success{background-color:var(--surface-status-success)}.bg-error{background-color:var(--surface-status-error)}.bg-warning{background-color:var(--surface-status-alert)}.bg-info{background-color:var(--surface-status-info)}.bg-action-soft{background-color:var(--surface-action-soft)}.bg-danger-soft{background-color:var(--surface-danger-soft)}.border-primary{border-color:var(--border-primary)}.border-secondary{border-color:var(--border-secondary)}.border-selected{border-color:var(--border-selected)}.border-action{border-color:var(--border-action)}.border-success{border-color:var(--border-status-success)}.border-error{border-color:var(--border-status-error)}.border-warning{border-color:var(--border-status-alert)}.border-info{border-color:var(--border-status-info)}:root{--radius-zero:0px;--radius-xs:1px;--radius-sm:2px;--radius-md:4px;--radius-reg:8px;--radius-lg:16px;--radius-xl:24px;--spacing-zero:0px;--spacing-xxs:1px;--spacing-xs:2px;--spacing-sm:4px;--spacing-md:8px;--spacing-reg:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:64px;--spacing-super:128px;--opacity-0:0;--opacity-10:0.1;--opacity-20:0.2;--opacity-30:0.3;--opacity-40:0.4;--opacity-50:0.5;--opacity-60:0.6;--opacity-70:0.7;--opacity-80:0.8;--opacity-90:0.9;--opacity-100:1;--color-success-fill:#2d6b18;--color-success-background:#eef9ea;--color-success-border:#c9ecbd;--color-error-fill:#cc3c35;--color-error-background:#fceceb;--color-error-border:#f5c4c2;--color-alert-fill:#fd7e14;--color-alert-background:#fcf6e7;--color-alert-border:#f6e3b4;--color-info-fill:#0e8ce2;--color-info-background:#e7f4fc;--color-info-border:#b4dbf6;--surfaces-status-background-success:var(--color-success-background);--surfaces-status-background-error:var(--color-error-background);--surfaces-status-background-alert:var(--color-alert-background);--surfaces-status-background-info:var(--color-info-background);--borders-status-border-success:var(--color-success-border);--borders-status-border-error:var(--color-error-border);--borders-status-border-alert:var(--color-alert-border);--borders-status-border-info:var(--color-info-border);--fills-status-fill-success:var(--color-success-fill);--fills-status-fill-error:var(--color-error-fill);--fills-status-fill-alert:var(--color-alert-fill);--fills-status-fill-info:var(--color-info-fill);--font-family-sans:\"Geist\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Roboto\",\"Helvetica Neue\",Arial,sans-serif;--font-family-mono:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--heading-xxl-size:44px;--heading-xxl-line:48px;--heading-xxl-weight:600;--heading-xl-size:32px;--heading-xl-line:36px;--heading-xl-weight:700;--heading-h1-size:24px;--heading-h1-line:28px;--heading-h1-weight:600;--heading-h2-size:20px;--heading-h2-line:24px;--heading-h2-weight:600;--heading-h3-size:17px;--heading-h3-line:20px;--heading-h3-weight:600;--heading-h4-size:15px;--heading-h4-line:18px;--heading-h4-weight:600;--heading-h5-size:13px;--heading-h5-line:16px;--heading-h5-weight:500;--heading-h6-size:11px;--heading-h6-line:14px;--heading-h6-weight:500;--heading-xxl-mobile-size:32px;--heading-xxl-mobile-line:36px;--heading-xxl-mobile-weight:600;--heading-xl-mobile-size:26px;--heading-xl-mobile-line:30px;--heading-xl-mobile-weight:700;--heading-h1-mobile-size:20px;--heading-h1-mobile-line:23px;--heading-h1-mobile-weight:600;--heading-h2-mobile-size:18px;--heading-h2-mobile-line:22px;--heading-h2-mobile-weight:600;--heading-h3-mobile-size:16px;--heading-h3-mobile-line:18px;--heading-h3-mobile-weight:600;--heading-h4-mobile-size:14px;--heading-h4-mobile-line:16px;--heading-h4-mobile-weight:600;--heading-h5-mobile-size:13px;--heading-h5-mobile-line:16px;--heading-h5-mobile-weight:500;--heading-h6-mobile-size:11px;--heading-h6-mobile-line:14px;--heading-h6-mobile-weight:500;--text-xl-size:20px;--text-xl-line:26px;--text-xl-weight:400;--text-large-size:18px;--text-large-line:24px;--text-large-weight:400;--text-regular-size:15px;--text-regular-line:20px;--text-regular-weight:400;--text-small-size:13px;--text-small-line:16px;--text-small-weight:400;--text-small-emphasis-weight:500;--text-small-bold-weight:600;--text-xs-size:10px;--text-xs-line:13px;--text-xs-weight:500;--text-xs-bold-weight:600}.waiver-template-form-section{gap:var(--padding-reg,16px)}.waiver-template-form-group,.waiver-template-form-section{align-items:flex-start;align-self:stretch;display:flex;flex-direction:column}.waiver-template-form-group{gap:var(--padding-lg,24px)}.wysiwyg-editor{align-items:stretch;align-self:stretch;display:flex;flex-direction:column;gap:var(--spacing-reg);width:100%}.wysiwyg-editor__label{color:var(--label-primary);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:15px;font-style:normal;font-weight:600;line-height:20px;margin:0}.wysiwyg-editor__required{color:var(--label-status-error,#ef4444)}.wysiwyg-editor__wrapper{background-color:var(--surface-secondary,#f8f8fa);border:2px solid var(--border-primary,#e8e9ef);border-radius:var(--radius-md,4px);display:flex;flex-direction:column;overflow:hidden;transition:border-color .2s ease}.wysiwyg-editor__wrapper:focus-within{border-color:var(--border-selected,#6200ee)}.wysiwyg-editor__wrapper--error{border-color:var(--borders-status-border-error,#ef4444)}.wysiwyg-editor__toolbar{align-items:center;align-self:stretch;background:var(--surface-tertiary);border-bottom:2px solid var(--border-primary);border-radius:2px 2px 0 0;display:flex;flex-wrap:wrap;gap:0;padding:0 4px}.wysiwyg-editor__toolbar-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--label-secondary);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s ease;width:40px}.wysiwyg-editor__toolbar-btn svg{flex-shrink:0;height:24px;width:24px}.wysiwyg-editor__toolbar-btn[title=\"Heading 1\"] svg,.wysiwyg-editor__toolbar-btn[title=\"Heading 2\"] svg{transform:scale(.8)}.wysiwyg-editor__toolbar-btn:hover{background-color:var(--surface-secondary);color:var(--label-primary)}.wysiwyg-editor__toolbar-btn--active{background-color:var(--surface-action-soft,#efeffe);color:var(--label-action,#5d5bf4)}.wysiwyg-editor__toolbar-divider{background-color:var(--border-primary,#e8e9ef);display:block;height:18px;margin:0 8px;width:1px}.wysiwyg-editor__content{background-color:var(--surface-secondary,#f8f8fa);color:var(--label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px);min-height:200px;outline:none;overflow-y:auto;padding:12px;text-align:left}@media (max-width:768px){.wysiwyg-editor__content{font-size:16px}}.wysiwyg-editor__content--disabled{background-color:var(--surface-status-disabled,#f8f8fa);cursor:not-allowed;opacity:.6}.wysiwyg-editor__content:empty:before{color:var(--label-secondary,#626a90);content:attr(data-placeholder);pointer-events:none}.wysiwyg-editor__content blockquote,.wysiwyg-editor__content h1,.wysiwyg-editor__content h2,.wysiwyg-editor__content hr,.wysiwyg-editor__content ol,.wysiwyg-editor__content p,.wysiwyg-editor__content ul{color:var(--label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px);overflow-y:auto;text-align:left}@media (max-width:768px){.wysiwyg-editor__content blockquote,.wysiwyg-editor__content h1,.wysiwyg-editor__content h2,.wysiwyg-editor__content hr,.wysiwyg-editor__content ol,.wysiwyg-editor__content p,.wysiwyg-editor__content ul{font-size:16px}}.wysiwyg-editor__content blockquote:first-child,.wysiwyg-editor__content h1:first-child,.wysiwyg-editor__content h2:first-child,.wysiwyg-editor__content hr:first-child,.wysiwyg-editor__content ol:first-child,.wysiwyg-editor__content p:first-child,.wysiwyg-editor__content ul:first-child{margin-top:0}.wysiwyg-editor__content h1{font-size:22px}.wysiwyg-editor__content h2{font-size:20px}.wysiwyg-editor__content h3{font-size:18px}.wysiwyg-editor__content h4{font-size:16px}.wysiwyg-editor__content h5{font-size:14px}.wysiwyg-editor__content h6{font-size:13px}.wysiwyg-editor__content p{color:var(--label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px);margin:8px 0}.wysiwyg-editor__content p:first-child{margin-top:0}.wysiwyg-editor__content p:last-child{margin-bottom:0}.wysiwyg-editor__content ol,.wysiwyg-editor__content ul{color:var(--label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px);margin:8px 0;padding-left:24px}.wysiwyg-editor__content ol:first-child,.wysiwyg-editor__content ul:first-child{margin-top:0}.wysiwyg-editor__content ol:last-child,.wysiwyg-editor__content ul:last-child{margin-bottom:0}.wysiwyg-editor__content li{color:var(--label-primary,#121e52);margin:4px 0}.wysiwyg-editor__content blockquote,.wysiwyg-editor__content li{font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px)}.wysiwyg-editor__content blockquote{background-color:var(--surface-tertiary,#efefef);border-left:4px solid var(--border-selected,#121e52);color:var(--label-secondary,#626a90);font-style:italic;margin:12px 0;padding:8px 16px}.wysiwyg-editor__content blockquote:first-child{margin-top:0}.wysiwyg-editor__content blockquote:last-child{margin-bottom:0}.wysiwyg-editor__content hr{border:none;border-top:2px solid var(--border-primary,#e8e9ef);box-sizing:initial;display:block;height:0;margin:16px 0;opacity:1;visibility:visible}.wysiwyg-editor__content hr:first-child{margin-top:0}.wysiwyg-editor__content hr:last-child{margin-bottom:0}.wysiwyg-editor__content b,.wysiwyg-editor__content strong{color:var(--label-primary,#121e52);font-weight:600}.wysiwyg-editor__content em,.wysiwyg-editor__content i{font-style:italic}.wysiwyg-editor__content u{text-decoration:underline}.wysiwyg-editor__content s,.wysiwyg-editor__content strike{text-decoration:line-through}.wysiwyg-editor__content code{background-color:var(--surface-tertiary,#efefef);border-radius:3px;color:var(--label-primary,#121e52);font-family:Monaco,Courier New,monospace;font-size:12px;padding:2px 4px}.wysiwyg-editor__content pre{background-color:var(--surface-tertiary,#efefef);border-radius:var(--radius-sm,4px);margin:12px 0;overflow-x:auto;padding:12px}.wysiwyg-editor__content pre code{background-color:initial;padding:0}.wysiwyg-editor__content a{color:var(--label-action,#5d5bf4);cursor:pointer;text-decoration:underline}.wysiwyg-editor__content a:hover{color:var(--label-action-hover,#4a48d1)}.wysiwyg-editor__placeholder{color:var(--label-secondary,#626a90)}.wysiwyg-editor__help-text{color:var(--label-secondary);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);font-style:normal;font-weight:400;line-height:var(--text-regular-line,20px);margin-top:-5px}.wysiwyg-editor__error-text{color:var(--label-status-error,#ef4444);font-size:var(--text-xs-size,11px);margin-top:2px}";
|
|
3
|
+
var css_248z = ":root{--blue-50:#e7f4fc;--blue-100:#b4dbf6;--blue-200:#90caf2;--blue-300:#5eb2ec;--blue-400:#3ea3e8;--blue-500:#0e8ce2;--blue-600:#0d7fce;--blue-700:#0a63a0;--blue-800:#084d7c;--blue-900:#063b5f;--cyan-50:#eafbff;--cyan-75:#bdf3ff;--cyan-100:#aff1ff;--cyan-200:#9deeff;--cyan-300:#71e6ff;--cyan-400:#55e1ff;--cyan-500:#2bd9ff;--cyan-600:#27c5e8;--cyan-700:#1f9ab5;--cyan-800:#18778c;--cyan-900:#125b6b;--indigo-50:#efeffe;--indigo-100:#cdccfc;--indigo-200:#b4b4fa;--indigo-300:#9291f8;--indigo-400:#7c74ff;--indigo-500:#5d5bf4;--indigo-600:#5553de;--indigo-700:#4241ad;--indigo-800:#333286;--indigo-900:#272666;--green-50:#eef9ea;--green-100:#c9ecbd;--green-200:#afe39d;--green-300:#8bd671;--green-400:#75ce55;--green-500:#52c22b;--green-600:#4bb127;--green-700:#3a8a1f;--green-800:#2d6b18;--green-900:#225112;--red-50:#fceceb;--red-100:#f5c4c2;--red-200:#f1a8a4;--red-300:#ea807b;--red-400:#e66861;--red-500:#e0423a;--red-600:#cc3c35;--red-700:#9f2f29;--red-800:#7b2420;--red-900:#5e1c18;--purple-50:#efe6fd;--purple-100:#ceb0fa;--purple-200:#b78af7;--purple-300:#965ff4;--purple-400:#8133f1;--purple-500:#6200ee;--purple-600:#5900d9;--purple-700:#4600a9;--purple-800:#360083;--purple-900:#290064;--orange-50:#fff2e8;--orange-100:#fed7b6;--orange-200:#fec493;--orange-300:#fea962;--orange-400:#fd9843;--orange-500:#fd7e14;--orange-600:#e67312;--orange-700:#b4590e;--orange-800:#8b450b;--orange-900:#6a3508;--yellow-50:#fcf6e7;--yellow-100:#f6e3b4;--yellow-200:#f2d68f;--yellow-300:#ecc35c;--yellow-400:#fcc741;--yellow-500:#fbb912;--yellow-600:#e4a810;--yellow-700:#a07509;--yellow-800:#7c5b07;--yellow-900:#5f4505;--pink-50:#fdecf4;--pink-100:#f8c3db;--pink-200:#f4a6ca;--pink-300:#f07eb2;--pink-400:#ed65a3;--pink-500:#e83e8c;--pink-600:#d33874;--pink-700:#a52c63;--pink-800:#80224d;--pink-900:#611a3b;--teal-50:#e9faf7;--teal-100:#baf0e7;--teal-200:#99e8db;--teal-300:#6bdecb;--teal-400:#4ed8c1;--teal-500:#22ceb1;--teal-600:#1fbba1;--teal-700:#18927e;--teal-800:#137161;--teal-900:#0e574a;--neutral-white:#fff;--neutral-25:#f8f8fa;--neutral-50:#e8e9ef;--neutral-75:#d2d5e3;--neutral-100:#b6bacc;--neutral-200:#9399b3;--neutral-300:#626a90;--neutral-400:#433d7b;--neutral-500:#14215a;--neutral-600:#121e52;--neutral-700:#0e1740;--neutral-800:#0b1232;--neutral-900:#080e26;--neutral-black:#000;--purple-lightest:var(--purple-50);--purple-lighter:var(--purple-100);--purple-light:var(--purple-300);--purple-regular:var(--purple-500);--purple-dark:var(--purple-600);--purple-darker:var(--purple-800);--purple-darkest:var(--purple-900);--blue-lightest:var(--blue-50);--blue-lighter:var(--blue-100);--blue-light:var(--blue-300);--blue-regular:var(--blue-500);--blue-dark:var(--blue-600);--blue-darker:var(--blue-800);--blue-darkest:var(--blue-900);--indigo-lightest:var(--indigo-50);--indigo-lighter:var(--indigo-100);--indigo-light:var(--indigo-300);--indigo-regular:var(--indigo-500);--indigo-dark:var(--indigo-600);--indigo-darker:var(--indigo-800);--indigo-darkest:var(--indigo-900);--cyan-lightest:var(--cyan-50);--cyan-lighter:var(--cyan-100);--cyan-light:var(--cyan-300);--cyan-regular:var(--cyan-500);--cyan-dark:var(--cyan-700);--cyan-darker:var(--cyan-800);--cyan-darkest:var(--cyan-900);--red-lightest:var(--red-50);--red-lighter:var(--red-100);--red-light:var(--red-400);--red-regular:var(--red-500);--red-dark:var(--red-600);--red-darker:var(--red-800);--red-darkest:var(--red-900);--orange-lightest:var(--orange-50);--orange-lighter:var(--orange-100);--orange-light:var(--orange-300);--orange-regular:var(--orange-500);--orange-dark:var(--orange-600);--orange-darker:var(--orange-700);--orange-darkest:var(--orange-800);--yellow-lightest:var(--yellow-50);--yellow-lighter:var(--yellow-100);--yellow-light:var(--yellow-300);--yellow-regular:var(--yellow-500);--yellow-dark:var(--yellow-600);--yellow-darker:var(--yellow-800);--yellow-darkest:var(--yellow-900);--pink-lightest:var(--pink-50);--pink-lighter:var(--pink-100);--pink-light:var(--pink-300);--pink-regular:var(--pink-500);--pink-dark:var(--pink-600);--pink-darker:var(--pink-700);--pink-darkest:var(--pink-800);--green-lightest:var(--green-50);--green-lighter:var(--green-100);--green-light:var(--green-300);--green-regular:var(--green-500);--green-dark:var(--green-600);--green-darker:var(--green-800);--green-darkest:var(--green-900);--teal-lightest:var(--teal-50);--teal-lighter:var(--teal-100);--teal-light:var(--teal-300);--teal-regular:var(--teal-500);--teal-dark:var(--teal-600);--teal-darker:var(--teal-700);--teal-darkest:var(--teal-800);--tone-lightest:var(--neutral-white);--tone-lighter:var(--neutral-25);--tone-light:var(--neutral-50);--tone-regular:var(--neutral-75);--tone-dark:var(--neutral-100);--tone-darker:var(--neutral-200);--tone-darkest:var(--neutral-300);--shade-lightest:var(--neutral-400);--shade-lighter:var(--neutral-500);--shade-light:var(--neutral-600);--shade-regular:var(--neutral-700);--shade-dark:var(--neutral-800);--shade-darker:var(--neutral-900);--shade-darkest:var(--neutral-black);--highlight-lightest:var(--cyan-lightest);--highlight-lighter:var(--cyan-lighter);--highlight-light:var(--cyan-light);--highlight-regular:var(--blue-regular);--highlight-dark:var(--blue-dark);--highlight-darker:var(--blue-darker);--highlight-darkest:var(--blue-darkest);--success-lightest:var(--green-lightest);--success-lighter:var(--green-lighter);--success-light:var(--green-light);--success-regular:var(--green-regular);--success-dark:var(--green-dark);--success-darker:var(--green-darker);--success-darkest:var(--green-darkest);--errors-lightest:var(--red-lightest);--errors-lighter:var(--red-lighter);--errors-light:var(--red-light);--errors-regular:var(--red-regular);--errors-dark:var(--red-dark);--errors-darker:var(--red-darker);--errors-darkest:var(--red-darkest);--actions-lightest:var(--purple-50);--actions-lighter:var(--purple-lighter);--actions-light:var(--purple-light);--actions-regular:var(--purple-regular);--actions-dark:var(--purple-dark);--actions-darker:var(--purple-darker);--actions-darkest:var(--purple-darkest);--information-lightest:var(--blue-lightest);--information-lighter:var(--blue-lighter);--information-light:var(--blue-light);--information-regular:var(--blue-regular);--information-dark:var(--blue-dark);--information-darker:var(--blue-darker);--information-darkest:var(--blue-darkest);--alert-lightest:var(--yellow-lightest);--alert-lighter:var(--yellow-lighter);--alert-light:var(--orange-light);--alert-regular:var(--orange-regular);--alert-darker:var(--yellow-darker);--alert-darkest:var(--yellow-darkest);--danger-lightest:var(--red-lightest);--danger-lighter:var(--red-lighter);--danger-light:var(--red-light);--danger-regular:var(--red-regular);--danger-dark:var(--red-dark);--danger-darker:var(--red-darker);--danger-darkest:var(--red-darkest);--disabled-lightest:var(--tone-light);--disabled-lighter:var(--tone-regular);--disabled-light:var(--tone-dark);--disabled-regular:var(--tone-darker);--disabled-dark:var(--shade-lighter);--disabled-darker:var(--shade-light);--disabled-darkest:var(--shade-regular);--label-primary:var(--shade-light);--label-secondary:var(--tone-darkest);--label-secondary-hover:var(--shade-lighter);--label-white:var(--tone-lightest);--label-highlight:var(--highlight-dark);--label-action:var(--actions-regular);--label-danger:var(--danger-dark);--label-status-error:var(--errors-dark);--label-status-success:var(--success-darker);--label-status-info:var(--information-dark);--label-status-alert:var(--alert-regular);--label-status-disabled:var(--disabled-regular);--surface-primary:var(--tone-lightest);--surface-primary-hover:var(--tone-lighter);--surface-primary-pressed:var(--tone-light);--surface-secondary:var(--neutral-25);--surface-secondary-hover:var(--tone-light);--surface-secondary-pressed:var(--tone-regular);--surface-tertiary:var(--tone-light);--surface-tertiary-hover:var(--tone-lighter);--surface-tertiary-pressed:var(--tone-lightest);--surface-status-success:var(--success-lightest);--surface-status-error:var(--errors-lightest);--surface-status-alert:var(--alert-lightest);--surface-status-info:var(--information-lightest);--surface-status-disabled:var(--disabled-lighter);--surface-action-soft:var(--actions-lightest);--surface-action-soft-hover:var(--actions-lighter);--surface-action-soft-pressed:var(--actions-light);--surface-danger-soft:var(--danger-lightest);--surface-danger-soft-hover:var(--danger-lighter);--surface-danger-soft-pressed:var(--danger-light);--surface-highlight-soft:var(--highlight-lightest);--surface-colour-red-soft:var(--red-lightest);--surface-colour-green-soft:var(--green-lightest);--surface-colour-blue-soft:var(--blue-lightest);--surface-colour-orange-soft:var(--orange-lightest);--surface-colour-yellow-soft:var(--yellow-lightest);--surface-colour-purple-soft:var(--purple-lightest);--surface-colour-indigo-soft:var(--indigo-lightest);--surface-colour-cyan-soft:var(--cyan-lightest);--surface-colour-pink-soft:var(--pink-lightest);--surface-colour-teal-soft:var(--teal-lightest);--border-primary:var(--tone-light);--border-secondary:var(--tone-regular);--border-selected:var(--neutral-600);--border-action:var(--actions-regular);--border-status-error:var(--errors-lighter);--border-status-success:var(--success-lighter);--border-status-alert:var(--alert-lighter);--border-status-info:var(--information-lighter);--border-status-disabled:var(--disabled-lightest);--border-colour-overlay:#121e521a;--fill-primary:var(--shade-lighter);--fill-secondary:var(--tone-darkest);--fill-white:var(--tone-lightest);--fill-action:var(--actions-regular);--fill-highlight:var(--highlight-dark);--fill-danger:var(--danger-dark);--fill-status-success:var(--success-darker);--fill-status-error:var(--errors-dark);--fill-status-alert:var(--alert-regular);--fill-status-info:var(--information-regular);--fill-status-disabled:var(--disabled-light);--gradient-stop1:var(--purple-500);--gradient-stop2:var(--indigo-500);--gradient-stop3:var(--blue-500)}[data-theme=dark]{--label-primary:var(--tone-lighter);--label-secondary:var(--tone-darker);--label-secondary-hover:var(--tone-lighter);--label-white:var(--tone-lightest);--label-highlight:var(--highlight-light);--label-action:var(--actions-lighter);--label-danger:var(--danger-light);--label-status-error:var(--errors-light);--label-status-success:var(--success-light);--label-status-info:var(--information-light);--label-status-alert:var(--alert-light);--label-status-disabled:var(--disabled-regular);--surface-primary:var(--shade-darker);--surface-primary-hover:var(--shade-dark);--surface-primary-pressed:var(--shade-regular);--surface-secondary:var(--shade-dark);--surface-secondary-hover:var(--shade-darker);--surface-secondary-pressed:var(--shade-darkest);--surface-tertiary:var(--shade-regular);--surface-tertiary-hover:var(--shade-dark);--surface-tertiary-pressed:var(--shade-darker);--surface-status-success:var(--success-darkest);--surface-status-error:var(--errors-darkest);--surface-status-alert:var(--alert-darkest);--surface-status-info:var(--information-darkest);--surface-status-disabled:var(--disabled-darkest);--surface-action-soft:var(--actions-darkest);--surface-action-soft-hover:var(--actions-darker);--surface-action-soft-pressed:var(--actions-dark);--surface-danger-soft:var(--danger-darkest);--surface-danger-soft-hover:var(--danger-darker);--surface-danger-soft-pressed:var(--danger-dark);--surface-highlight-soft:var(--highlight-darkest);--surface-colour-red-soft:var(--red-darkest);--surface-colour-green-soft:var(--green-darkest);--surface-colour-blue-soft:var(--blue-darkest);--surface-colour-orange-soft:var(--orange-darkest);--surface-colour-yellow-soft:var(--yellow-darkest);--surface-colour-purple-soft:var(--purple-darkest);--surface-colour-indigo-soft:var(--indigo-darkest);--surface-colour-cyan-soft:var(--cyan-darkest);--surface-colour-pink-soft:var(--pink-darkest);--surface-colour-teal-soft:var(--teal-darkest);--border-primary:var(--shade-light);--border-secondary:var(--shade-dark);--border-selected:var(--tone-light);--border-action:var(--actions-light);--border-status-error:var(--errors-darker);--border-status-success:var(--success-darker);--border-status-alert:var(--alert-darker);--border-status-info:var(--information-darker);--border-status-disabled:var(--disabled-dark);--border-colour-overlay:#ffffff1a;--fill-primary:var(--tone-lighter);--fill-secondary:var(--tone-darker);--fill-white:var(--tone-lightest);--fill-action:var(--actions-lighter);--fill-highlight:var(--highlight-light);--fill-danger:var(--danger-light);--fill-status-success:var(--success-light);--fill-status-error:var(--errors-light);--fill-status-alert:var(--alert-light);--fill-status-info:var(--information-light);--fill-status-disabled:var(--disabled-dark);--gradient-stop1:var(--indigo-400);--gradient-stop2:var(--cyan-500);--gradient-stop3:var(--cyan-100)}.text-primary{color:var(--label-primary)}.text-secondary{color:var(--label-secondary)}.text-white{color:var(--label-white)}.text-action{color:var(--label-action)}.text-danger{color:var(--label-danger)}.text-success{color:var(--label-status-success)}.text-error{color:var(--label-status-error)}.text-info{color:var(--label-status-info)}.text-warning{color:var(--label-status-alert)}.text-disabled{color:var(--label-status-disabled)}.bg-primary{background-color:var(--surface-primary)}.bg-secondary{background-color:var(--surface-secondary)}.bg-tertiary{background-color:var(--surface-tertiary)}.bg-success{background-color:var(--surface-status-success)}.bg-error{background-color:var(--surface-status-error)}.bg-warning{background-color:var(--surface-status-alert)}.bg-info{background-color:var(--surface-status-info)}.bg-action-soft{background-color:var(--surface-action-soft)}.bg-danger-soft{background-color:var(--surface-danger-soft)}.border-primary{border-color:var(--border-primary)}.border-secondary{border-color:var(--border-secondary)}.border-selected{border-color:var(--border-selected)}.border-action{border-color:var(--border-action)}.border-success{border-color:var(--border-status-success)}.border-error{border-color:var(--border-status-error)}.border-warning{border-color:var(--border-status-alert)}.border-info{border-color:var(--border-status-info)}:root{--radius-zero:0px;--radius-xs:1px;--radius-sm:2px;--radius-md:4px;--radius-reg:8px;--radius-lg:16px;--radius-xl:24px;--spacing-zero:0px;--spacing-xxs:1px;--spacing-xs:2px;--spacing-sm:4px;--spacing-md:8px;--spacing-reg:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:64px;--spacing-super:128px;--opacity-0:0;--opacity-10:0.1;--opacity-20:0.2;--opacity-30:0.3;--opacity-40:0.4;--opacity-50:0.5;--opacity-60:0.6;--opacity-70:0.7;--opacity-80:0.8;--opacity-90:0.9;--opacity-100:1;--color-success-fill:#2d6b18;--color-success-background:#eef9ea;--color-success-border:#c9ecbd;--color-error-fill:#cc3c35;--color-error-background:#fceceb;--color-error-border:#f5c4c2;--color-alert-fill:#fd7e14;--color-alert-background:#fcf6e7;--color-alert-border:#f6e3b4;--color-info-fill:#0e8ce2;--color-info-background:#e7f4fc;--color-info-border:#b4dbf6;--surfaces-status-background-success:var(--color-success-background);--surfaces-status-background-error:var(--color-error-background);--surfaces-status-background-alert:var(--color-alert-background);--surfaces-status-background-info:var(--color-info-background);--borders-status-border-success:var(--color-success-border);--borders-status-border-error:var(--color-error-border);--borders-status-border-alert:var(--color-alert-border);--borders-status-border-info:var(--color-info-border);--fills-status-fill-success:var(--color-success-fill);--fills-status-fill-error:var(--color-error-fill);--fills-status-fill-alert:var(--color-alert-fill);--fills-status-fill-info:var(--color-info-fill);--font-family-sans:\"Geist\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Roboto\",\"Helvetica Neue\",Arial,sans-serif;--font-family-mono:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--heading-xxl-size:44px;--heading-xxl-line:48px;--heading-xxl-weight:600;--heading-xl-size:32px;--heading-xl-line:36px;--heading-xl-weight:700;--heading-h1-size:24px;--heading-h1-line:28px;--heading-h1-weight:600;--heading-h2-size:20px;--heading-h2-line:24px;--heading-h2-weight:600;--heading-h3-size:17px;--heading-h3-line:20px;--heading-h3-weight:600;--heading-h4-size:15px;--heading-h4-line:18px;--heading-h4-weight:600;--heading-h5-size:13px;--heading-h5-line:16px;--heading-h5-weight:500;--heading-h6-size:11px;--heading-h6-line:14px;--heading-h6-weight:500;--heading-xxl-mobile-size:32px;--heading-xxl-mobile-line:36px;--heading-xxl-mobile-weight:600;--heading-xl-mobile-size:26px;--heading-xl-mobile-line:30px;--heading-xl-mobile-weight:700;--heading-h1-mobile-size:20px;--heading-h1-mobile-line:23px;--heading-h1-mobile-weight:600;--heading-h2-mobile-size:18px;--heading-h2-mobile-line:22px;--heading-h2-mobile-weight:600;--heading-h3-mobile-size:16px;--heading-h3-mobile-line:18px;--heading-h3-mobile-weight:600;--heading-h4-mobile-size:14px;--heading-h4-mobile-line:16px;--heading-h4-mobile-weight:600;--heading-h5-mobile-size:13px;--heading-h5-mobile-line:16px;--heading-h5-mobile-weight:500;--heading-h6-mobile-size:11px;--heading-h6-mobile-line:14px;--heading-h6-mobile-weight:500;--text-xl-size:20px;--text-xl-line:26px;--text-xl-weight:400;--text-large-size:18px;--text-large-line:24px;--text-large-weight:400;--text-regular-size:15px;--text-regular-line:20px;--text-regular-weight:400;--text-small-size:13px;--text-small-line:16px;--text-small-weight:400;--text-small-emphasis-weight:500;--text-small-bold-weight:600;--text-xs-size:10px;--text-xs-line:13px;--text-xs-weight:500;--text-xs-bold-weight:600}.waiver-template-form-section{gap:var(--padding-reg,16px)}.waiver-template-form-group,.waiver-template-form-section{align-items:flex-start;align-self:stretch;display:flex;flex-direction:column}.waiver-template-form-group{gap:var(--padding-lg,24px)}.wysiwyg-editor{align-items:stretch;align-self:stretch;display:flex;flex-direction:column;gap:var(--spacing-reg);width:100%}.wysiwyg-editor__label{color:var(--labels-main-label-primary,#121e52);color:var(--label-primary);font-family:var(--font-family-sans);font-size:var(--text-small-size);font-weight:var(--text-small-bold-weight);line-height:var(--text-small-line);margin-bottom:var(--spacing-xs)}.wysiwyg-editor__required{color:var(--label-status-error,#ef4444)}.wysiwyg-editor__wrapper{background-color:var(--surface-secondary,#f8f8fa);border:2px solid var(--border-primary,#e8e9ef);border-radius:var(--radius-md,4px);display:flex;flex-direction:column;overflow:hidden;transition:border-color .2s ease}.wysiwyg-editor__wrapper:focus-within{border-color:var(--border-selected,#6200ee)}.wysiwyg-editor__wrapper--error{border-color:var(--borders-status-border-error,#ef4444)}.wysiwyg-editor__toolbar{align-items:center;align-self:stretch;background:var(--surface-tertiary);border-bottom:2px solid var(--border-primary);border-radius:2px 2px 0 0;display:flex;flex-wrap:wrap;gap:0;padding:0 4px}.wysiwyg-editor__toolbar-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--label-secondary);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s ease;width:40px}.wysiwyg-editor__toolbar-btn svg{flex-shrink:0;height:24px;width:24px}.wysiwyg-editor__toolbar-btn[title=\"Heading 1\"] svg,.wysiwyg-editor__toolbar-btn[title=\"Heading 2\"] svg{transform:scale(.8)}.wysiwyg-editor__toolbar-btn:hover{background-color:var(--surface-secondary);color:var(--label-primary)}.wysiwyg-editor__toolbar-btn--active{background-color:var(--surface-action-soft,#efeffe);color:var(--label-action,#5d5bf4)}.wysiwyg-editor__toolbar-divider{background-color:var(--border-primary,#e8e9ef);display:block;height:18px;margin:0 8px;width:1px}.wysiwyg-editor__content{background-color:var(--surface-secondary,#f8f8fa);color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line);min-height:200px;outline:none;overflow-wrap:break-word;overflow-y:auto;padding:12px;text-align:left;white-space:pre-wrap;word-break:break-word}.wysiwyg-editor__content--disabled{background-color:var(--surface-status-disabled,#f8f8fa);cursor:not-allowed;opacity:.6}.wysiwyg-editor__content:empty:before{color:var(--label-secondary,#626a90);content:attr(data-placeholder);pointer-events:none}.wysiwyg-editor__content .wysiwyg-editor__hard-break,.wysiwyg-editor__content blockquote,.wysiwyg-editor__content h1,.wysiwyg-editor__content h2,.wysiwyg-editor__content h3,.wysiwyg-editor__content h4,.wysiwyg-editor__content h5,.wysiwyg-editor__content h6,.wysiwyg-editor__content hr,.wysiwyg-editor__content ol,.wysiwyg-editor__content p,.wysiwyg-editor__content ul{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line);overflow-wrap:break-word;text-align:left;word-break:break-word}.wysiwyg-editor__content .wysiwyg-editor__hard-break:first-child,.wysiwyg-editor__content blockquote:first-child,.wysiwyg-editor__content h1:first-child,.wysiwyg-editor__content h2:first-child,.wysiwyg-editor__content h3:first-child,.wysiwyg-editor__content h4:first-child,.wysiwyg-editor__content h5:first-child,.wysiwyg-editor__content h6:first-child,.wysiwyg-editor__content hr:first-child,.wysiwyg-editor__content ol:first-child,.wysiwyg-editor__content p:first-child,.wysiwyg-editor__content ul:first-child{margin-top:0}.wysiwyg-editor__content h1{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h1-size);font-weight:var(--heading-h1-weight);line-height:var(--heading-h1-line)}@media (max-width:767px){.wysiwyg-editor__content h1{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h1-mobile-size);font-weight:var(--heading-h1-mobile-weight);line-height:var(--heading-h1-mobile-line)}}.wysiwyg-editor__content h1{margin:16px 0 12px}.wysiwyg-editor__content h2{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h2-size);font-weight:var(--heading-h2-weight);line-height:var(--heading-h2-line)}@media (max-width:767px){.wysiwyg-editor__content h2{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h2-mobile-size);font-weight:var(--heading-h2-mobile-weight);line-height:var(--heading-h2-mobile-line)}}.wysiwyg-editor__content h2{margin:14px 0 10px}.wysiwyg-editor__content h3{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h3-size);font-weight:var(--heading-h3-weight);line-height:var(--heading-h3-line)}@media (max-width:767px){.wysiwyg-editor__content h3{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h3-mobile-size);font-weight:var(--heading-h3-mobile-weight);line-height:var(--heading-h3-mobile-line)}}.wysiwyg-editor__content h3{margin:12px 0 8px}.wysiwyg-editor__content h4{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h4-size);font-weight:var(--heading-h4-weight);line-height:var(--heading-h4-line)}@media (max-width:767px){.wysiwyg-editor__content h4{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h4-mobile-size);font-weight:var(--heading-h4-mobile-weight);line-height:var(--heading-h4-mobile-line)}}.wysiwyg-editor__content h4{margin:10px 0 6px}.wysiwyg-editor__content h5{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h5-size);font-weight:var(--heading-h5-weight);line-height:var(--heading-h5-line)}@media (max-width:767px){.wysiwyg-editor__content h5{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h5-mobile-size);font-weight:var(--heading-h5-mobile-weight);line-height:var(--heading-h5-mobile-line)}}.wysiwyg-editor__content h5{margin:8px 0 4px}.wysiwyg-editor__content h6{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h6-size);font-weight:var(--heading-h6-weight);line-height:var(--heading-h6-line)}@media (max-width:767px){.wysiwyg-editor__content h6{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--heading-h6-mobile-size);font-weight:var(--heading-h6-mobile-weight);line-height:var(--heading-h6-mobile-line)}}.wysiwyg-editor__content h6{margin:6px 0 2px}.wysiwyg-editor__content p{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line);margin:8px 0}.wysiwyg-editor__content p:first-child{margin-top:0}.wysiwyg-editor__content p:last-child{margin-bottom:0}.wysiwyg-editor__content ol,.wysiwyg-editor__content ul{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line);margin:8px 0;padding-left:24px}.wysiwyg-editor__content ol:first-child,.wysiwyg-editor__content ul:first-child{margin-top:0}.wysiwyg-editor__content ol:last-child,.wysiwyg-editor__content ul:last-child{margin-bottom:0}.wysiwyg-editor__content li{margin:4px 0}.wysiwyg-editor__content blockquote,.wysiwyg-editor__content li{color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line)}.wysiwyg-editor__content blockquote{background-color:var(--surface-tertiary,#efefef);border-left:4px solid var(--border-selected,#121e52);color:var(--label-secondary,#626a90);font-style:italic;margin:12px 0;padding:8px 16px}.wysiwyg-editor__content blockquote:first-child{margin-top:0}.wysiwyg-editor__content blockquote:last-child{margin-bottom:0}.wysiwyg-editor__content hr{border:none;border-top:2px solid var(--border-primary,#e8e9ef);box-sizing:initial;display:block;height:0;margin:20px 0;opacity:1;visibility:visible}.wysiwyg-editor__content hr:first-of-type{margin-top:20px}.wysiwyg-editor__content b,.wysiwyg-editor__content strong{color:var(--label-primary,#121e52);font-weight:600}.wysiwyg-editor__content em,.wysiwyg-editor__content i{font-style:italic}.wysiwyg-editor__content u{text-decoration:underline}.wysiwyg-editor__content s,.wysiwyg-editor__content strike{text-decoration:line-through}.wysiwyg-editor__content code{background-color:var(--surface-tertiary,#efefef);border-radius:3px;color:var(--label-primary,#121e52);font-family:Monaco,Courier New,monospace;font-size:12px;padding:2px 4px}.wysiwyg-editor__content pre{background-color:var(--surface-tertiary,#efefef);border-radius:var(--radius-sm,4px);margin:12px 0;overflow-x:auto;padding:12px}.wysiwyg-editor__content pre code{background-color:initial;padding:0}.wysiwyg-editor__content a{color:var(--label-action,#5d5bf4);cursor:pointer;text-decoration:underline}.wysiwyg-editor__content a:hover{color:var(--label-action-hover,#4a48d1)}.wysiwyg-editor__placeholder{color:var(--label-secondary,#626a90)}.wysiwyg-editor__help-text{color:var(--labels-main-label-primary,#121e52);color:var(--label-secondary);font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line);margin-top:-5px}.wysiwyg-editor__error-text{color:var(--label-status-error,#ef4444);font-size:var(--text-xs-size,11px);margin-top:2px}.wysiwyg-editor__hard-break{display:block;height:16px;margin:0;padding:0;pointer-events:none;width:100%}";
|
|
4
4
|
styleInject(css_248z);
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* New Form Input Styles based on Figma design tokens */
|
|
2
|
+
@import '../../styles/tokens/typography';
|
|
2
3
|
|
|
3
4
|
.new-form-input {
|
|
4
5
|
display: flex;
|
|
@@ -36,9 +37,7 @@
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
&__input {
|
|
39
|
-
|
|
40
|
-
font-size: var(--text-regular-size, 15px);
|
|
41
|
-
line-height: var(--text-regular-line, 20px);
|
|
40
|
+
@include typography('text.regular');
|
|
42
41
|
flex: 1 0 0;
|
|
43
42
|
background-color: var(--surfaces-main-background-secondary);
|
|
44
43
|
border: 2px solid var(--border-primary);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styleInject from '/opt/atlassian/pipelines/agent/build/node_modules/style-inject/dist/style-inject.es.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".new-form-input{align-items:flex-start;align-self:stretch;display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.new-form-input__label{color:var(--label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:15px;font-style:normal;font-weight:600;line-height:20px}.new-form-input__label-optional{color:var(--labels-main-label-secondary,#626a90);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-xs-size,11px);font-weight:400;line-height:var(--text-xs-line,14px);text-align:right}.new-form-input__label-row{align-items:center;display:flex;gap:var(--spacing-reg,16px);justify-content:space-between;width:100%}.new-form-input__input{background-color:var(--surfaces-main-background-secondary);background:var(--surface-secondary);border:2px solid var(--border-primary);border-radius:var(--radius-md);flex:1 0 0;font-family:var(--font-family-sans
|
|
3
|
+
var css_248z = ":root{--font-family-sans:\"Geist\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Roboto\",\"Helvetica Neue\",Arial,sans-serif;--font-family-mono:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--heading-xxl-size:44px;--heading-xxl-line:48px;--heading-xxl-weight:600;--heading-xl-size:32px;--heading-xl-line:36px;--heading-xl-weight:700;--heading-h1-size:24px;--heading-h1-line:28px;--heading-h1-weight:600;--heading-h2-size:20px;--heading-h2-line:24px;--heading-h2-weight:600;--heading-h3-size:17px;--heading-h3-line:20px;--heading-h3-weight:600;--heading-h4-size:15px;--heading-h4-line:18px;--heading-h4-weight:600;--heading-h5-size:13px;--heading-h5-line:16px;--heading-h5-weight:500;--heading-h6-size:11px;--heading-h6-line:14px;--heading-h6-weight:500;--heading-xxl-mobile-size:32px;--heading-xxl-mobile-line:36px;--heading-xxl-mobile-weight:600;--heading-xl-mobile-size:26px;--heading-xl-mobile-line:30px;--heading-xl-mobile-weight:700;--heading-h1-mobile-size:20px;--heading-h1-mobile-line:23px;--heading-h1-mobile-weight:600;--heading-h2-mobile-size:18px;--heading-h2-mobile-line:22px;--heading-h2-mobile-weight:600;--heading-h3-mobile-size:16px;--heading-h3-mobile-line:18px;--heading-h3-mobile-weight:600;--heading-h4-mobile-size:14px;--heading-h4-mobile-line:16px;--heading-h4-mobile-weight:600;--heading-h5-mobile-size:13px;--heading-h5-mobile-line:16px;--heading-h5-mobile-weight:500;--heading-h6-mobile-size:11px;--heading-h6-mobile-line:14px;--heading-h6-mobile-weight:500;--text-xl-size:20px;--text-xl-line:26px;--text-xl-weight:400;--text-large-size:18px;--text-large-line:24px;--text-large-weight:400;--text-regular-size:15px;--text-regular-line:20px;--text-regular-weight:400;--text-small-size:13px;--text-small-line:16px;--text-small-weight:400;--text-small-emphasis-weight:500;--text-small-bold-weight:600;--text-xs-size:10px;--text-xs-line:13px;--text-xs-weight:500;--text-xs-bold-weight:600}.new-form-input{align-items:flex-start;align-self:stretch;display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.new-form-input__label{color:var(--label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:15px;font-style:normal;font-weight:600;line-height:20px}.new-form-input__label-optional{color:var(--labels-main-label-secondary,#626a90);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-xs-size,11px);font-weight:400;line-height:var(--text-xs-line,14px);text-align:right}.new-form-input__label-row{align-items:center;display:flex;gap:var(--spacing-reg,16px);justify-content:space-between;width:100%}.new-form-input__input{background-color:var(--surfaces-main-background-secondary);background:var(--surface-secondary);border:2px solid var(--border-primary);border-radius:var(--radius-md);color:var(--labels-main-label-primary,#121e52);flex:1 0 0;font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line);min-height:40px;padding:8px 10px;transition:all .2s ease;width:100%}@media (max-width:768px){.new-form-input__input{font-size:16px}}.new-form-input__input:focus{background-color:var(--surfaces-main-background-secondary,#f8f8fa);border-color:var(--border-selected,#6200ee);outline:none}.new-form-input__input::placeholder{color:var(--labels-main-label-secondary,#626a90)}.new-form-input__textarea{background-color:var(--surfaces-main-background-secondary,#f8f8fa);border:1px solid var(--borders-main-border-primary,#e8e9ef);border-radius:var(--radius-md,4px);color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px);min-height:120px;padding:8px 10px;resize:vertical;transition:all .2s ease;width:100%}@media (max-width:768px){.new-form-input__textarea{font-size:16px}}.new-form-input__textarea:focus{border-color:var(--border-selected,#6200ee);outline:none}.new-form-input__textarea::placeholder{color:var(--labels-main-label-secondary,#626a90)}.new-form-input__input-with-icon{align-items:center;background-color:var(--surfaces-main-background-secondary,#f8f8fa);border:2px solid var(--borders-main-border-primary,#e8e9ef);border-radius:var(--radius-md,4px);display:flex;gap:var(--spacing-sm,8px);min-height:40px;padding:5px}.new-form-input__input-with-icon input{background:#0000;border:none;color:var(--label-primary);flex:1;font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px)}@media (max-width:768px){.new-form-input__input-with-icon input{font-size:16px}}.new-form-input__input-with-icon input:focus{outline:none}.new-form-input__input-with-icon input::placeholder{color:var(--labels-main-label-secondary,#626a90)}.new-form-input__input-with-icon .icon{flex-shrink:0;height:22px;width:22px}.new-form-input__verification-code{display:flex;gap:var(--spacing-sm,8px);height:62px}.new-form-input__verification-code .code-input{background-color:var(--surfaces-main-background-secondary,#f8f8fa);border:2px solid var(--borders-main-border-primary,#e8e9ef);border-radius:var(--radius-md,4px);color:var(--labels-main-label-primary,#121e52);flex:1;font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-lg-size,18px);font-weight:var(--heading-h3-weight,600);text-align:center;transition:all .2s ease}.new-form-input__verification-code .code-input:focus{border-color:var(--border-selected,#6200ee);outline:none}.new-form-input__helper-text{color:var(--label-secondary,#626a90);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px)}.new-form-input__error-text,.new-form-input__helper-text{font-family:var(--font-family-sans,\"Geist\",sans-serif);font-style:normal;font-weight:400;margin-top:2px}.new-form-input__error-text{color:var(--labels-status-label-error,#ef4444);font-size:11px;line-height:14px}.new-form-input--active .new-form-input__input{border-color:var(--border-selected,#6200ee)}.new-form-input--error .new-form-input__input{border-color:var(--borders-status-border-error,#ef4444)}.new-form-input--disabled{opacity:var(--opacity-50,.5);pointer-events:none}";
|
|
4
4
|
styleInject(css_248z);
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@licklist/design",
|
|
3
|
-
"version": "0.78.5-dev.
|
|
3
|
+
"version": "0.78.5-dev.47",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+ssh://git@bitbucket.org/bookedit-licklist/licklist_design.git"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
]
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@licklist/core": "0.36.1-dev.
|
|
45
|
+
"@licklist/core": "0.36.1-dev.13",
|
|
46
46
|
"@licklist/eslint-config": "0.5.6",
|
|
47
47
|
"@licklist/plugins": "0.36.4-dev.13",
|
|
48
48
|
"clsx": "2.1.1",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"@dnd-kit/utilities": "2.0.0",
|
|
65
65
|
"@fortawesome/fontawesome-svg-core": "1.2.34",
|
|
66
66
|
"@fortawesome/free-solid-svg-icons": "5.15.2",
|
|
67
|
-
"@licklist/core": "0.36.1-dev.
|
|
67
|
+
"@licklist/core": "0.36.1-dev.13",
|
|
68
68
|
"@licklist/eslint-config": "0.5.6",
|
|
69
69
|
"@licklist/plugins": "0.36.4-dev.13",
|
|
70
70
|
"@mantine/core": "6.0.22",
|
|
@@ -67,10 +67,16 @@ export const DividerIcon = () => (
|
|
|
67
67
|
</svg>
|
|
68
68
|
);
|
|
69
69
|
|
|
70
|
-
export const
|
|
70
|
+
export const HardBreakIcon = () => (
|
|
71
71
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
72
72
|
<path d="M14.25 16.5H15.375C16.4105 16.5 17.25 15.6605 17.25 14.625C17.25 13.5895 16.4105 12.75 15.375 12.75H5.25V11.25H15.375C17.239 11.25 18.75 12.761 18.75 14.625C18.75 16.489 17.239 18 15.375 18H14.25V19.5L11.25 17.25L14.25 15V16.5ZM5.25 6H18.75V7.5H5.25V6ZM9.75 16.5V18H5.25V16.5H9.75Z" fill="#626A90"/>
|
|
73
73
|
</svg>
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
export const UndoIcon = () => (
|
|
77
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
78
|
+
<path d="M6.06131 6.69136C5.88684 6.85818 5.71976 7.03357 5.56136 7.21755C5.32407 7.49319 5.10569 7.78768 4.90881 8.09936C4.77746 8.30727 4.65565 8.52287 4.54421 8.7457C4.48837 8.85736 4.43524 8.9709 4.38469 9.08613C4.2839 9.31587 4.19401 9.5527 4.11539 9.796C4.07598 9.91797 4.03914 10.0416 4.00559 10.1668C3.93079 10.446 3.87328 10.7259 3.83158 11.0051C3.82934 11.0201 3.82751 11.0351 3.82536 11.05C3.81494 11.1228 3.80597 11.1955 3.79774 11.2682C3.79428 11.2986 3.79116 11.329 3.78807 11.3594C3.78326 11.4071 3.77883 11.4547 3.77495 11.5023C3.75889 11.6978 3.75077 11.8926 3.75009 12.0865C3.75003 12.1086 3.74996 12.1307 3.75009 12.1528C3.75089 12.3012 3.75571 12.449 3.76528 12.5961C3.7665 12.6146 3.76808 12.633 3.76943 12.6514C3.82014 13.3498 3.96775 14.0309 4.20377 14.6767L7.62813 11.1377L5.45502 10.5556C5.48179 10.4557 5.51129 10.3567 5.54272 10.2594C5.66865 9.8695 5.83151 9.50078 6.02609 9.15588C6.07459 9.06992 6.12494 8.9854 6.17732 8.90245C6.91264 7.73794 8.02285 6.87449 9.29715 6.43448C9.38818 6.40305 9.48005 6.37386 9.57268 6.34679C10.1284 6.18439 10.7114 6.10131 11.3052 6.10717C11.4042 6.10814 11.5034 6.11157 11.6028 6.11753C12.0008 6.14137 12.4022 6.2058 12.8023 6.31295C13.2945 6.44483 13.7566 6.63317 14.182 6.8709C14.2125 6.88794 14.2416 6.90723 14.2718 6.92476C14.7547 7.20595 15.1899 7.54933 15.5686 7.94261C15.6449 8.02185 15.7186 8.10326 15.7902 8.18637C15.9047 8.31912 16.0139 8.45605 16.1162 8.59793C16.1915 8.70249 16.2625 8.80995 16.3309 8.91903C17.1864 10.2824 17.4949 11.9837 17.0456 13.6609C16.327 16.3424 13.9009 18.1093 11.2507 18.108V19.6078C14.5636 19.6095 17.5967 17.4016 18.4951 14.0497C19.0819 11.8595 18.6347 9.6365 17.4544 7.89634L17.4558 7.89496C17.4301 7.85706 17.4028 7.81984 17.3764 7.78241C17.3604 7.75975 17.3443 7.73721 17.3281 7.71473C17.2772 7.64435 17.2253 7.57483 17.172 7.50619C17.1543 7.48339 17.1368 7.46044 17.1188 7.43783C17.0658 7.37103 17.0112 7.30536 16.9559 7.24034C16.9336 7.21424 16.9115 7.18811 16.8889 7.16231C16.8382 7.10446 16.7867 7.04739 16.7342 6.99105C16.7045 6.95913 16.6747 6.92719 16.6444 6.89576C16.4036 6.64603 16.1448 6.41195 15.869 6.19625C15.8379 6.17193 15.8052 6.14967 15.7737 6.12582C15.715 6.08143 15.657 6.03598 15.5969 5.99323C15.5586 5.96599 15.5191 5.94038 15.4802 5.91382C15.4213 5.87363 15.3622 5.83365 15.302 5.79505C15.2644 5.7709 15.2263 5.74744 15.1881 5.72393C15.1285 5.6872 15.0687 5.65066 15.0079 5.61551C14.959 5.58729 14.9097 5.55983 14.8601 5.53265C14.8028 5.50128 14.745 5.47076 14.6868 5.44081C14.6463 5.41998 14.6055 5.39949 14.5645 5.37935C14.4883 5.3419 14.4111 5.30595 14.3332 5.27093C14.3021 5.25697 14.2713 5.24238 14.24 5.22881C14.1572 5.19297 14.0732 5.15965 13.9886 5.12661C13.953 5.11267 13.9176 5.09792 13.8816 5.08449C13.8148 5.05956 13.7471 5.03652 13.6793 5.01337C13.6344 4.99807 13.5899 4.98161 13.5446 4.9671C13.4284 4.92988 13.3102 4.89544 13.1911 4.86352C12.691 4.72957 12.1893 4.6496 11.6919 4.61976C11.4431 4.60484 11.1954 4.60237 10.9496 4.61217C10.8266 4.61706 10.7042 4.62473 10.5822 4.63564C10.3388 4.65745 10.0974 4.69064 9.85925 4.73577C8.42886 5.00676 7.10753 5.69099 6.06131 6.69136Z" fill="#626A90"/>
|
|
79
|
+
</svg>
|
|
74
80
|
);
|
|
75
81
|
|
|
76
82
|
export const RedoIcon = () => (
|
|
@@ -79,3 +85,9 @@ export const RedoIcon = () => (
|
|
|
79
85
|
</svg>
|
|
80
86
|
);
|
|
81
87
|
|
|
88
|
+
export const ClearIcon = () => (
|
|
89
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
90
|
+
<path d="M12.4884 13.549L11.7035 18H10.1804L11.1935 12.2542L5.63599 6.69664L6.69664 5.63599L18.3639 17.3033L17.3032 18.3639L12.4884 13.549ZM11.8295 8.64752L12.0319 7.49995H10.6819L9.18193 5.99995H17.9999V7.49995H13.555L13.1243 9.94234L11.8295 8.64752Z" fill="#626A90"/>
|
|
91
|
+
</svg>
|
|
92
|
+
);
|
|
93
|
+
|
|
@@ -9,13 +9,9 @@
|
|
|
9
9
|
width: 100%;
|
|
10
10
|
|
|
11
11
|
&__label {
|
|
12
|
-
|
|
12
|
+
@include typography('text.small.bold');
|
|
13
13
|
color: var(--label-primary);
|
|
14
|
-
|
|
15
|
-
font-style: normal;
|
|
16
|
-
font-weight: 600;
|
|
17
|
-
line-height: 20px;
|
|
18
|
-
margin: 0;
|
|
14
|
+
margin-bottom: var(--spacing-xs);
|
|
19
15
|
}
|
|
20
16
|
|
|
21
17
|
&__required {
|
|
@@ -99,17 +95,13 @@
|
|
|
99
95
|
min-height: 200px;
|
|
100
96
|
padding: 12px;
|
|
101
97
|
outline: none;
|
|
102
|
-
|
|
103
|
-
font-size: var(--text-regular-size, 15px);
|
|
104
|
-
line-height: var(--text-regular-line, 20px);
|
|
105
|
-
color: var(--label-primary, #121e52);
|
|
98
|
+
@include typography('text.regular');
|
|
106
99
|
background-color: var(--surface-secondary, #f8f8fa);
|
|
107
100
|
overflow-y: auto;
|
|
108
101
|
text-align: left;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
102
|
+
word-break: break-word;
|
|
103
|
+
overflow-wrap: break-word;
|
|
104
|
+
white-space: pre-wrap;
|
|
113
105
|
|
|
114
106
|
&--disabled {
|
|
115
107
|
background-color: var(--surface-status-disabled, #f8f8fa);
|
|
@@ -124,17 +116,11 @@
|
|
|
124
116
|
}
|
|
125
117
|
|
|
126
118
|
// Styles for content elements
|
|
127
|
-
h1, h2, p, ul, ol, blockquote, hr {
|
|
128
|
-
|
|
129
|
-
font-size: var(--text-regular-size, 15px);
|
|
130
|
-
line-height: var(--text-regular-line, 20px);
|
|
131
|
-
color: var(--label-primary, #121e52);
|
|
132
|
-
overflow-y: auto;
|
|
119
|
+
h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, hr, .wysiwyg-editor__hard-break {
|
|
120
|
+
@include typography('text.regular');
|
|
133
121
|
text-align: left;
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
font-size: 16px;
|
|
137
|
-
}
|
|
122
|
+
word-break: break-word;
|
|
123
|
+
overflow-wrap: break-word;
|
|
138
124
|
|
|
139
125
|
&:first-child {
|
|
140
126
|
margin-top: 0;
|
|
@@ -142,35 +128,38 @@
|
|
|
142
128
|
}
|
|
143
129
|
|
|
144
130
|
h1 {
|
|
145
|
-
|
|
131
|
+
@include responsive-heading('heading.h1', 'heading.h1.mobile');
|
|
132
|
+
margin: 16px 0 12px;
|
|
146
133
|
}
|
|
147
134
|
|
|
148
135
|
h2 {
|
|
149
|
-
|
|
136
|
+
@include responsive-heading('heading.h2', 'heading.h2.mobile');
|
|
137
|
+
margin: 14px 0 10px;
|
|
150
138
|
}
|
|
151
139
|
|
|
152
140
|
h3 {
|
|
153
|
-
|
|
141
|
+
@include responsive-heading('heading.h3', 'heading.h3.mobile');
|
|
142
|
+
margin: 12px 0 8px;
|
|
154
143
|
}
|
|
155
144
|
|
|
156
145
|
h4 {
|
|
157
|
-
|
|
146
|
+
@include responsive-heading('heading.h4', 'heading.h4.mobile');
|
|
147
|
+
margin: 10px 0 6px;
|
|
158
148
|
}
|
|
159
149
|
|
|
160
150
|
h5 {
|
|
161
|
-
|
|
151
|
+
@include responsive-heading('heading.h5', 'heading.h5.mobile');
|
|
152
|
+
margin: 8px 0 4px;
|
|
162
153
|
}
|
|
163
154
|
|
|
164
155
|
h6 {
|
|
165
|
-
|
|
156
|
+
@include responsive-heading('heading.h6', 'heading.h6.mobile');
|
|
157
|
+
margin: 6px 0 2px;
|
|
166
158
|
}
|
|
167
159
|
|
|
168
160
|
p {
|
|
161
|
+
@include typography('text.regular');
|
|
169
162
|
margin: 8px 0;
|
|
170
|
-
font-family: var(--font-family-sans, 'Geist', sans-serif);
|
|
171
|
-
font-size: var(--text-regular-size, 15px);
|
|
172
|
-
line-height: var(--text-regular-line, 20px);
|
|
173
|
-
color: var(--label-primary, #121e52);
|
|
174
163
|
|
|
175
164
|
&:first-child {
|
|
176
165
|
margin-top: 0;
|
|
@@ -182,12 +171,9 @@
|
|
|
182
171
|
}
|
|
183
172
|
|
|
184
173
|
ul, ol {
|
|
174
|
+
@include typography('text.regular');
|
|
185
175
|
margin: 8px 0;
|
|
186
176
|
padding-left: 24px;
|
|
187
|
-
font-family: var(--font-family-sans, 'Geist', sans-serif);
|
|
188
|
-
font-size: var(--text-regular-size, 15px);
|
|
189
|
-
line-height: var(--text-regular-line, 20px);
|
|
190
|
-
color: var(--label-primary, #121e52);
|
|
191
177
|
|
|
192
178
|
&:first-child {
|
|
193
179
|
margin-top: 0;
|
|
@@ -199,23 +185,18 @@
|
|
|
199
185
|
}
|
|
200
186
|
|
|
201
187
|
li {
|
|
188
|
+
@include typography('text.regular');
|
|
202
189
|
margin: 4px 0;
|
|
203
|
-
font-family: var(--font-family-sans, 'Geist', sans-serif);
|
|
204
|
-
font-size: var(--text-regular-size, 15px);
|
|
205
|
-
line-height: var(--text-regular-line, 20px);
|
|
206
|
-
color: var(--label-primary, #121e52);
|
|
207
190
|
}
|
|
208
191
|
|
|
209
192
|
blockquote {
|
|
193
|
+
@include typography('text.regular');
|
|
210
194
|
margin: 12px 0;
|
|
211
195
|
padding: 8px 16px;
|
|
212
196
|
border-left: 4px solid var(--border-selected, #121e52);
|
|
213
197
|
background-color: var(--surface-tertiary, #efefef);
|
|
214
|
-
font-family: var(--font-family-sans, 'Geist', sans-serif);
|
|
215
|
-
font-size: var(--text-regular-size, 15px);
|
|
216
|
-
line-height: var(--text-regular-line, 20px);
|
|
217
|
-
color: var(--label-secondary, #626a90);
|
|
218
198
|
font-style: italic;
|
|
199
|
+
color: var(--label-secondary, #626a90);
|
|
219
200
|
|
|
220
201
|
&:first-child {
|
|
221
202
|
margin-top: 0;
|
|
@@ -228,7 +209,7 @@
|
|
|
228
209
|
|
|
229
210
|
hr {
|
|
230
211
|
display: block;
|
|
231
|
-
margin:
|
|
212
|
+
margin: 20px 0;
|
|
232
213
|
border: none;
|
|
233
214
|
border-top: 2px solid var(--border-primary, #e8e9ef);
|
|
234
215
|
height: 0;
|
|
@@ -236,12 +217,8 @@
|
|
|
236
217
|
opacity: 1;
|
|
237
218
|
visibility: visible;
|
|
238
219
|
|
|
239
|
-
&:first-
|
|
240
|
-
margin-top:
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
&:last-child {
|
|
244
|
-
margin-bottom: 0;
|
|
220
|
+
&:first-of-type {
|
|
221
|
+
margin-top: 20px;
|
|
245
222
|
}
|
|
246
223
|
}
|
|
247
224
|
|
|
@@ -300,11 +277,7 @@
|
|
|
300
277
|
}
|
|
301
278
|
|
|
302
279
|
&__help-text {
|
|
303
|
-
|
|
304
|
-
font-size: var(--text-regular-size, 15px);
|
|
305
|
-
font-style: normal;
|
|
306
|
-
font-weight: 400;
|
|
307
|
-
line-height: var(--text-regular-line, 20px);
|
|
280
|
+
@include typography('text.regular');
|
|
308
281
|
margin-top: -5px;
|
|
309
282
|
color: var(--label-secondary);
|
|
310
283
|
}
|
|
@@ -315,4 +288,13 @@
|
|
|
315
288
|
margin-top: 2px;
|
|
316
289
|
}
|
|
317
290
|
|
|
291
|
+
&__hard-break {
|
|
292
|
+
height: 16px;
|
|
293
|
+
width: 100%;
|
|
294
|
+
pointer-events: none;
|
|
295
|
+
margin: 0;
|
|
296
|
+
padding: 0;
|
|
297
|
+
display: block;
|
|
298
|
+
}
|
|
299
|
+
|
|
318
300
|
}
|
|
@@ -13,6 +13,8 @@ import {
|
|
|
13
13
|
ParagraphIcon,
|
|
14
14
|
QuoteAltIcon,
|
|
15
15
|
DividerIcon,
|
|
16
|
+
ClearIcon,
|
|
17
|
+
HardBreakIcon,
|
|
16
18
|
} from './Icons'
|
|
17
19
|
import './WYSIWYGEditor.scss'
|
|
18
20
|
|
|
@@ -22,6 +24,7 @@ export interface WYSIWYGEditorProps {
|
|
|
22
24
|
helpText?: string
|
|
23
25
|
value?: string
|
|
24
26
|
onChange?: (value: string) => void
|
|
27
|
+
onClear?: () => void
|
|
25
28
|
placeholder?: string
|
|
26
29
|
disabled?: boolean
|
|
27
30
|
}
|
|
@@ -61,16 +64,112 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
61
64
|
}
|
|
62
65
|
|
|
63
66
|
const execCommand = (command: string, value?: string) => {
|
|
67
|
+
// Ensure the command is only executed if the editor is focused or if we can force focus to it
|
|
68
|
+
const selection = window.getSelection()
|
|
69
|
+
if (!selection) return
|
|
70
|
+
|
|
71
|
+
let isWithinEditor = false
|
|
72
|
+
if (selection.rangeCount > 0) {
|
|
73
|
+
const range = selection.getRangeAt(0)
|
|
74
|
+
isWithinEditor = contentRef.current?.contains(range.commonAncestorContainer) || false
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// If not within editor, we focus the editor first to ensure the command applies to it
|
|
78
|
+
if (!isWithinEditor && contentRef.current) {
|
|
79
|
+
contentRef.current.focus()
|
|
80
|
+
|
|
81
|
+
// We need to re-get the selection after focusing as it might have changed
|
|
82
|
+
const currentSelection = window.getSelection()
|
|
83
|
+
if (currentSelection) {
|
|
84
|
+
// If the editor is empty or we want to ensure cursor is inside, we set it
|
|
85
|
+
if (contentRef.current.innerHTML === '' || contentRef.current.innerHTML === '<p><br></p>') {
|
|
86
|
+
const newRange = document.createRange()
|
|
87
|
+
newRange.selectNodeContents(contentRef.current)
|
|
88
|
+
newRange.collapse(false)
|
|
89
|
+
currentSelection.removeAllRanges()
|
|
90
|
+
currentSelection.addRange(newRange)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (command === 'clearFormatting') {
|
|
96
|
+
if (selection.rangeCount > 0) {
|
|
97
|
+
const range = selection.getRangeAt(0)
|
|
98
|
+
|
|
99
|
+
// Check if selection is inside a list
|
|
100
|
+
let container = range.commonAncestorContainer as Node | null
|
|
101
|
+
if (container.nodeType === Node.TEXT_NODE) {
|
|
102
|
+
container = container.parentNode
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
let isInsideList = false
|
|
106
|
+
let tempNode = container
|
|
107
|
+
while (tempNode && tempNode !== contentRef.current) {
|
|
108
|
+
if (tempNode.nodeName === 'UL' || tempNode.nodeName === 'OL') {
|
|
109
|
+
isInsideList = true
|
|
110
|
+
break
|
|
111
|
+
}
|
|
112
|
+
tempNode = tempNode.parentNode
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (isInsideList) {
|
|
116
|
+
// If inside a list, we need to toggle off the list first
|
|
117
|
+
// We check which type of list it is and call the corresponding command
|
|
118
|
+
let listType = '';
|
|
119
|
+
let listNode = container;
|
|
120
|
+
while (listNode && listNode !== contentRef.current) {
|
|
121
|
+
if (listNode.nodeName === 'UL') {
|
|
122
|
+
listType = 'insertUnorderedList';
|
|
123
|
+
break;
|
|
124
|
+
} else if (listNode.nodeName === 'OL') {
|
|
125
|
+
listType = 'insertOrderedList';
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
listNode = listNode.parentNode;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (listType) {
|
|
132
|
+
document.execCommand(listType, false);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// If the selection is collapsed, just apply to current block
|
|
137
|
+
if (range.collapsed) {
|
|
138
|
+
document.execCommand('formatBlock', false, '<p>')
|
|
139
|
+
document.execCommand('removeFormat', false)
|
|
140
|
+
} else {
|
|
141
|
+
// If there's a selection, we check if it contains HR
|
|
142
|
+
const fragment = range.cloneContents()
|
|
143
|
+
const hasHR = fragment.querySelector('hr')
|
|
144
|
+
|
|
145
|
+
if (hasHR) {
|
|
146
|
+
// If it contains HR, we apply removeFormat but avoid formatBlock P
|
|
147
|
+
// which would replace the whole selection including HR with a single P
|
|
148
|
+
document.execCommand('removeFormat', false)
|
|
149
|
+
} else {
|
|
150
|
+
document.execCommand('formatBlock', false, '<p>')
|
|
151
|
+
document.execCommand('removeFormat', false)
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
handleInput()
|
|
155
|
+
}
|
|
156
|
+
return
|
|
157
|
+
}
|
|
158
|
+
|
|
64
159
|
if (command === 'insertHorizontalRule') {
|
|
65
|
-
|
|
66
|
-
if (selection && selection.rangeCount > 0) {
|
|
160
|
+
if (selection.rangeCount > 0) {
|
|
67
161
|
const range = selection.getRangeAt(0)
|
|
68
|
-
range.deleteContents()
|
|
162
|
+
// range.deleteContents() // Removed to avoid clearing highlighted text
|
|
69
163
|
|
|
70
164
|
const hr = document.createElement('hr')
|
|
71
165
|
const p = document.createElement('p')
|
|
72
166
|
p.innerHTML = '<br>' // Ensure the paragraph is "typeable"
|
|
73
167
|
|
|
168
|
+
// If something is selected, we collapse to end to insert HR AFTER selection
|
|
169
|
+
if (!range.collapsed) {
|
|
170
|
+
range.collapse(false)
|
|
171
|
+
}
|
|
172
|
+
|
|
74
173
|
// Insert HR and then the paragraph after it
|
|
75
174
|
range.insertNode(p)
|
|
76
175
|
range.insertNode(hr)
|
|
@@ -87,6 +186,42 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
87
186
|
return
|
|
88
187
|
}
|
|
89
188
|
}
|
|
189
|
+
|
|
190
|
+
if (command === 'hardBreak') {
|
|
191
|
+
if (selection.rangeCount > 0) {
|
|
192
|
+
const range = selection.getRangeAt(0)
|
|
193
|
+
// range.deleteContents() // Removed to avoid clearing highlighted text
|
|
194
|
+
|
|
195
|
+
const spacer = document.createElement('div')
|
|
196
|
+
spacer.className = 'wysiwyg-editor__hard-break'
|
|
197
|
+
spacer.innerHTML = '<br>'
|
|
198
|
+
|
|
199
|
+
// If something is selected, we collapse to end to insert break AFTER selection
|
|
200
|
+
// or we can just insert it at current position.
|
|
201
|
+
// User says "it should just break to new line", usually that implies keeping the text.
|
|
202
|
+
if (!range.collapsed) {
|
|
203
|
+
range.collapse(false)
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
range.insertNode(spacer)
|
|
207
|
+
|
|
208
|
+
// Create a new paragraph after the spacer to continue typing
|
|
209
|
+
const p = document.createElement('p')
|
|
210
|
+
p.innerHTML = '<br>'
|
|
211
|
+
spacer.after(p)
|
|
212
|
+
|
|
213
|
+
// Move cursor to the new paragraph
|
|
214
|
+
const newRange = document.createRange()
|
|
215
|
+
newRange.setStart(p, 0)
|
|
216
|
+
newRange.setEnd(p, 0)
|
|
217
|
+
newRange.collapse(true)
|
|
218
|
+
selection.removeAllRanges()
|
|
219
|
+
selection.addRange(newRange)
|
|
220
|
+
|
|
221
|
+
handleInput()
|
|
222
|
+
return
|
|
223
|
+
}
|
|
224
|
+
}
|
|
90
225
|
document.execCommand(command, false, value)
|
|
91
226
|
handleInput()
|
|
92
227
|
}
|
|
@@ -136,7 +271,7 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
136
271
|
type="button"
|
|
137
272
|
className="wysiwyg-editor__toolbar-btn"
|
|
138
273
|
title="Heading 1"
|
|
139
|
-
onClick={() => execCommand('formatBlock', '
|
|
274
|
+
onClick={() => execCommand('formatBlock', '<h1>')}
|
|
140
275
|
>
|
|
141
276
|
<Heading1Icon />
|
|
142
277
|
</button>
|
|
@@ -144,7 +279,7 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
144
279
|
type="button"
|
|
145
280
|
className="wysiwyg-editor__toolbar-btn"
|
|
146
281
|
title="Heading 2"
|
|
147
|
-
onClick={() => execCommand('formatBlock', '
|
|
282
|
+
onClick={() => execCommand('formatBlock', '<h2>')}
|
|
148
283
|
>
|
|
149
284
|
<Heading2Icon />
|
|
150
285
|
</button>
|
|
@@ -152,10 +287,7 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
152
287
|
type="button"
|
|
153
288
|
className="wysiwyg-editor__toolbar-btn"
|
|
154
289
|
title="Paragraph"
|
|
155
|
-
onClick={() =>
|
|
156
|
-
execCommand('formatBlock', 'P')
|
|
157
|
-
execCommand('removeFormat')
|
|
158
|
-
}}
|
|
290
|
+
onClick={() => execCommand('clearFormatting')}
|
|
159
291
|
>
|
|
160
292
|
<ParagraphIcon />
|
|
161
293
|
</button>
|
|
@@ -163,7 +295,7 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
163
295
|
type="button"
|
|
164
296
|
className="wysiwyg-editor__toolbar-btn"
|
|
165
297
|
title="Quote"
|
|
166
|
-
onClick={() => execCommand('formatBlock', '
|
|
298
|
+
onClick={() => execCommand('formatBlock', '<blockquote>')}
|
|
167
299
|
>
|
|
168
300
|
<QuoteAltIcon />
|
|
169
301
|
</button>
|
|
@@ -191,11 +323,23 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
191
323
|
>
|
|
192
324
|
<DividerIcon />
|
|
193
325
|
</button>
|
|
326
|
+
<button
|
|
327
|
+
type="button"
|
|
328
|
+
className="wysiwyg-editor__toolbar-btn"
|
|
329
|
+
title="Hard Break"
|
|
330
|
+
onClick={() => execCommand('hardBreak')}
|
|
331
|
+
>
|
|
332
|
+
<HardBreakIcon />
|
|
333
|
+
</button>
|
|
194
334
|
<button
|
|
195
335
|
type="button"
|
|
196
336
|
className="wysiwyg-editor__toolbar-btn"
|
|
197
337
|
title="Undo"
|
|
198
338
|
onClick={() => {
|
|
339
|
+
const selection = window.getSelection()
|
|
340
|
+
if (selection && contentRef.current && !contentRef.current.contains(selection.anchorNode)) {
|
|
341
|
+
contentRef.current.focus()
|
|
342
|
+
}
|
|
199
343
|
if (document.queryCommandEnabled('undo')) {
|
|
200
344
|
document.execCommand('undo', false)
|
|
201
345
|
handleInput()
|
|
@@ -209,6 +353,10 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
209
353
|
className="wysiwyg-editor__toolbar-btn"
|
|
210
354
|
title="Redo"
|
|
211
355
|
onClick={() => {
|
|
356
|
+
const selection = window.getSelection()
|
|
357
|
+
if (selection && contentRef.current && !contentRef.current.contains(selection.anchorNode)) {
|
|
358
|
+
contentRef.current.focus()
|
|
359
|
+
}
|
|
212
360
|
if (document.queryCommandEnabled('redo')) {
|
|
213
361
|
document.execCommand('redo', false)
|
|
214
362
|
handleInput()
|
|
@@ -217,6 +365,14 @@ export const WYSIWYGEditor: React.FC<WYSIWYGEditorProps> = ({
|
|
|
217
365
|
>
|
|
218
366
|
<RedoIcon />
|
|
219
367
|
</button>
|
|
368
|
+
<button
|
|
369
|
+
type="button"
|
|
370
|
+
className="wysiwyg-editor__toolbar-btn"
|
|
371
|
+
title="Clear Formatting"
|
|
372
|
+
onClick={() => execCommand('clearFormatting')}
|
|
373
|
+
>
|
|
374
|
+
<ClearIcon />
|
|
375
|
+
</button>
|
|
220
376
|
</div>
|
|
221
377
|
<div
|
|
222
378
|
ref={contentRef}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* New Form Input Styles based on Figma design tokens */
|
|
2
|
+
@import '../../styles/tokens/typography';
|
|
2
3
|
|
|
3
4
|
.new-form-input {
|
|
4
5
|
display: flex;
|
|
@@ -36,9 +37,7 @@
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
&__input {
|
|
39
|
-
|
|
40
|
-
font-size: var(--text-regular-size, 15px);
|
|
41
|
-
line-height: var(--text-regular-line, 20px);
|
|
40
|
+
@include typography('text.regular');
|
|
42
41
|
flex: 1 0 0;
|
|
43
42
|
background-color: var(--surfaces-main-background-secondary);
|
|
44
43
|
border: 2px solid var(--border-primary);
|