playbook_ui 16.1.0.pre.alpha.play273614090 → 16.1.0.pre.alpha.play274314102
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +8 -8
- data/app/pb_kits/playbook/pb_dropdown/index.js +10 -11
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +20 -18
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +5 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx +5 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +22 -21
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +0 -1
- data/dist/chunks/_typeahead-Cx2lp7TD.js +1 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +2 -15
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.html.erb +0 -5
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.html.erb +0 -3
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.html.erb +0 -6
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +0 -35
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.html.erb +0 -10
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.html.erb +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.html.erb +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.html.erb +0 -115
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.html.erb +0 -4
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.jsx +0 -14
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb +0 -5
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +0 -63
- data/dist/chunks/_typeahead-BKSzddAX.js +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 55c0e17fe1c9ebc070555123e048fad21174f1103ff7c924a70ef6fcbaf10f67
|
|
4
|
+
data.tar.gz: 7e49dfd207ef248a867883cbd4d2dc3c39f93dbb872578493a6732d2906097bf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: df84055b7fa9e7ba93d1e94fe8c4944033897e8841c05ef21c52191a91083856c072cb1d67a53c184d6cb39e28276eb862eb37818d12b200936b4e6e252d7c2e
|
|
7
|
+
data.tar.gz: 3ad38213a67a4a3c9440db8558c75728d4a6df072070420d1ef93a14efd5f13416addd58c165e5dc92e300ac1c3613870f0812f5bd6896fd10e8323d4eaed27d
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
const option = e.detail;
|
|
77
77
|
const dropdown = e.target;
|
|
78
78
|
|
|
79
|
-
const display = dropdown.querySelector("
|
|
79
|
+
const display = dropdown.querySelector("#dropdown_trigger_custom_display");
|
|
80
80
|
if (!display) return;
|
|
81
81
|
|
|
82
82
|
const nameEl = display.querySelector("#dropdown-avatar-name");
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<div class="dropdown_wrapper<%= error_class %>" style="position: relative">
|
|
8
8
|
<input
|
|
9
9
|
data-default-value="<%= input_default_value %>"
|
|
10
|
-
|
|
10
|
+
id="dropdown-selected-option"
|
|
11
11
|
name="<%= object.name %><%= '[]' if object.multi_select %>"
|
|
12
12
|
style="display: none"
|
|
13
13
|
<%= object.required ? "required" : ""%>
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
<%= pb_rails("flex", props: {align: "center"}) do %>
|
|
24
24
|
<% if object.custom_display.present? %>
|
|
25
25
|
<%= pb_rails("flex", props: {align: "center"}) do %>
|
|
26
|
-
<div
|
|
26
|
+
<div id="dropdown_trigger_custom_display" style="display: none;">
|
|
27
27
|
<%= object.custom_display %>
|
|
28
28
|
</div>
|
|
29
|
-
<%= pb_rails("body", props: {text: object.default_display_placeholder,
|
|
29
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display"}) %>
|
|
30
30
|
<% end %>
|
|
31
31
|
<% else %>
|
|
32
32
|
<% if object.multi_select %>
|
|
33
33
|
<%= pb_rails("flex", props: { align: "center", wrap: true }) do %>
|
|
34
|
-
<%= pb_rails("flex", props: {
|
|
34
|
+
<%= pb_rails("flex", props: { id:"dropdown_pills_wrapper", wrap: true }) do %>
|
|
35
35
|
<% end %>
|
|
36
36
|
<% if object.autocomplete %>
|
|
37
37
|
<input
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
autocomplete="off"
|
|
43
43
|
/>
|
|
44
44
|
<% else %>
|
|
45
|
-
<%= pb_rails("body", props: {text: object.default_display_placeholder,
|
|
45
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display_multi_select"}) %>
|
|
46
46
|
<% end %>
|
|
47
47
|
<% end %>
|
|
48
48
|
<% else %>
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
autocomplete="off"
|
|
56
56
|
/>
|
|
57
57
|
<% else %>
|
|
58
|
-
<%= pb_rails("body", props: {text: object.default_display_placeholder,
|
|
58
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display"}) %>
|
|
59
59
|
<% end %>
|
|
60
60
|
<% end %>
|
|
61
61
|
<% end %>
|
|
@@ -63,9 +63,9 @@
|
|
|
63
63
|
<% end %>
|
|
64
64
|
<%= pb_rails("flex/flex_item") do %>
|
|
65
65
|
<%= pb_rails("body", props: {display: "flex", align_items:"center" }) do %>
|
|
66
|
-
<%= pb_rails("icon", props: {icon: "times", cursor: "pointer", size:"sm",
|
|
67
|
-
<%= pb_rails("icon", props: {icon: "chevron-down", cursor: "pointer", size:"sm",
|
|
68
|
-
<%= pb_rails("icon", props: {icon: "chevron-up", cursor: "pointer", size:"sm",
|
|
66
|
+
<%= pb_rails("icon", props: {icon: "times", cursor: "pointer", size:"sm", id: "dropdown_clear_icon", padding_right:"xs" }) %>
|
|
67
|
+
<%= pb_rails("icon", props: {icon: "chevron-down", cursor: "pointer", size:"sm", id: "dropdown_open_icon"}) %>
|
|
68
|
+
<%= pb_rails("icon", props: {icon: "chevron-up", cursor: "pointer", size:"sm", id: "dropdown_close_icon"}) %>
|
|
69
69
|
<% end %>
|
|
70
70
|
<% end %>
|
|
71
71
|
<% end %>
|
|
@@ -4,19 +4,18 @@ import { PbDropdownKeyboard } from "./keyboard_accessibility";
|
|
|
4
4
|
const DROPDOWN_SELECTOR = "[data-pb-dropdown]";
|
|
5
5
|
const TRIGGER_SELECTOR = "[data-dropdown-trigger]";
|
|
6
6
|
const CONTAINER_SELECTOR = "[data-dropdown-container]";
|
|
7
|
-
const DOWN_ARROW_SELECTOR = "
|
|
8
|
-
const UP_ARROW_SELECTOR = "
|
|
7
|
+
const DOWN_ARROW_SELECTOR = "#dropdown_open_icon";
|
|
8
|
+
const UP_ARROW_SELECTOR = "#dropdown_close_icon";
|
|
9
9
|
const OPTION_SELECTOR = "[data-dropdown-option-label]";
|
|
10
10
|
const CUSTOM_DISPLAY_SELECTOR = "[data-dropdown-custom-trigger]";
|
|
11
|
-
const DROPDOWN_TRIGGER_DISPLAY = "
|
|
11
|
+
const DROPDOWN_TRIGGER_DISPLAY = "#dropdown_trigger_display";
|
|
12
12
|
const DROPDOWN_PLACEHOLDER = "[data-dropdown-placeholder]";
|
|
13
|
-
const DROPDOWN_INPUT = "
|
|
13
|
+
const DROPDOWN_INPUT = "#dropdown-selected-option";
|
|
14
14
|
const SEARCH_INPUT_SELECTOR = "[data-dropdown-autocomplete]";
|
|
15
15
|
const SEARCH_BAR_SELECTOR = "[data-dropdown-search]";
|
|
16
|
-
const CLEAR_ICON_SELECTOR = "
|
|
16
|
+
const CLEAR_ICON_SELECTOR = "#dropdown_clear_icon";
|
|
17
17
|
const LABEL_SELECTOR = '[data-dropdown="pb-dropdown-label"]';
|
|
18
18
|
|
|
19
|
-
|
|
20
19
|
export default class PbDropdown extends PbEnhancedElement {
|
|
21
20
|
static get selector() {
|
|
22
21
|
return DROPDOWN_SELECTOR;
|
|
@@ -306,7 +305,7 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
306
305
|
onOptionSelected(value, selectedOption) {
|
|
307
306
|
const triggerElement = this.element.querySelector(DROPDOWN_TRIGGER_DISPLAY);
|
|
308
307
|
const customDisplayElement = this.element.querySelector(
|
|
309
|
-
|
|
308
|
+
"#dropdown_trigger_custom_display",
|
|
310
309
|
);
|
|
311
310
|
|
|
312
311
|
if (triggerElement) {
|
|
@@ -694,9 +693,9 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
694
693
|
updatePills() {
|
|
695
694
|
if (!this.isMultiSelect) return;
|
|
696
695
|
|
|
697
|
-
const wrapper = this.element.querySelector(
|
|
696
|
+
const wrapper = this.element.querySelector("#dropdown_pills_wrapper");
|
|
698
697
|
const placeholder = this.element.querySelector(
|
|
699
|
-
|
|
698
|
+
"#dropdown_trigger_display_multi_select",
|
|
700
699
|
);
|
|
701
700
|
if (!wrapper) return;
|
|
702
701
|
|
|
@@ -774,7 +773,7 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
774
773
|
}
|
|
775
774
|
}
|
|
776
775
|
const customDisplay = this.element.querySelector(
|
|
777
|
-
|
|
776
|
+
"#dropdown_trigger_custom_display",
|
|
778
777
|
);
|
|
779
778
|
if (customDisplay) {
|
|
780
779
|
customDisplay.style.display = "none";
|
|
@@ -830,7 +829,7 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
830
829
|
}
|
|
831
830
|
|
|
832
831
|
const customDisplay = this.element.querySelector(
|
|
833
|
-
|
|
832
|
+
"#dropdown_trigger_custom_display",
|
|
834
833
|
);
|
|
835
834
|
if (customDisplay) {
|
|
836
835
|
customDisplay.style.display = "none";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useState, useRef } from 'react'
|
|
2
2
|
import classnames from 'classnames'
|
|
3
|
-
import
|
|
3
|
+
// The user must import and pass TrixEditor as a prop if using the default editor
|
|
4
4
|
|
|
5
5
|
import inlineFocus from './inlineFocus'
|
|
6
6
|
import useFocus from './useFocus'
|
|
@@ -9,14 +9,6 @@ import colors from '../tokens/exports/_colors.module.scss'
|
|
|
9
9
|
import { globalProps, GlobalProps } from '../utilities/globalProps'
|
|
10
10
|
import { buildAriaProps, buildDataProps, noop, buildHtmlProps } from '../utilities/props'
|
|
11
11
|
|
|
12
|
-
import Trix from 'trix'
|
|
13
|
-
import './_dedupe_trix_toolbar'
|
|
14
|
-
|
|
15
|
-
Trix.config.textAttributes.inlineCode = {
|
|
16
|
-
tagName: 'code',
|
|
17
|
-
inheritable: true,
|
|
18
|
-
}
|
|
19
|
-
|
|
20
12
|
import EditorToolbar from './TipTap/Toolbar'
|
|
21
13
|
|
|
22
14
|
type Editor = {
|
|
@@ -55,6 +47,7 @@ type RichTextEditorProps = {
|
|
|
55
47
|
template: string,
|
|
56
48
|
value?: string,
|
|
57
49
|
maxWidth?: string
|
|
50
|
+
TrixEditor?: React.ComponentType<any>,
|
|
58
51
|
} & GlobalProps
|
|
59
52
|
|
|
60
53
|
const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
@@ -84,6 +77,7 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
84
77
|
maxWidth = "md",
|
|
85
78
|
requiredIndicator = false,
|
|
86
79
|
label,
|
|
80
|
+
TrixEditor,
|
|
87
81
|
} = props
|
|
88
82
|
|
|
89
83
|
const ariaProps = buildAriaProps(aria),
|
|
@@ -295,15 +289,23 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
295
289
|
{ children }
|
|
296
290
|
</div>
|
|
297
291
|
) : (
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
292
|
+
TrixEditor ? (
|
|
293
|
+
<TrixEditor
|
|
294
|
+
className=""
|
|
295
|
+
fileParamName={name}
|
|
296
|
+
mergeTags={[]}
|
|
297
|
+
onChange={onChange}
|
|
298
|
+
onEditorReady={handleOnEditorReady}
|
|
299
|
+
placeholder={placeholder}
|
|
300
|
+
value={value}
|
|
301
|
+
/>
|
|
302
|
+
) : (
|
|
303
|
+
<div style={{ color: 'red', padding: '1em', border: '1px solid #f00', background: '#fff0f0' }}>
|
|
304
|
+
<strong>Trix Editor is not available.</strong><br />
|
|
305
|
+
Please import <code>TrixEditor</code> from <code>react-trix</code> and pass it as a prop to <code>RichTextEditor</code>.<br />
|
|
306
|
+
<pre>{`import { TrixEditor } from 'react-trix';\n<RichTextEditor TrixEditor={TrixEditor} ... />`}</pre>
|
|
307
|
+
</div>
|
|
308
|
+
)
|
|
307
309
|
)
|
|
308
310
|
}
|
|
309
311
|
</div>
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorAttributes = (props) => (
|
|
5
8
|
<div>
|
|
6
9
|
<RichTextEditor
|
|
10
|
+
TrixEditor={TrixEditor}
|
|
7
11
|
aria={{ label: 'rich textarea' }}
|
|
8
12
|
data={{ key: 'value', key2: 'value2' }}
|
|
9
13
|
name="name-attribute"
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorDefault = (props) => {
|
|
5
8
|
const [value, setValue] = useState('Add your text here. You can format your text, add links, quotes, and bullets.'),
|
|
@@ -8,6 +11,7 @@ const RichTextEditorDefault = (props) => {
|
|
|
8
11
|
return (
|
|
9
12
|
<div>
|
|
10
13
|
<RichTextEditor
|
|
14
|
+
TrixEditor={TrixEditor}
|
|
11
15
|
onChange={handleOnChange}
|
|
12
16
|
value={value}
|
|
13
17
|
{...props}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorFocus = (props) => (
|
|
5
8
|
<>
|
|
6
9
|
<RichTextEditor
|
|
10
|
+
TrixEditor={TrixEditor}
|
|
7
11
|
focus
|
|
8
12
|
{...props}
|
|
9
13
|
/>
|
|
10
14
|
<br />
|
|
11
15
|
<RichTextEditor
|
|
16
|
+
TrixEditor={TrixEditor}
|
|
12
17
|
focus
|
|
13
18
|
{...props}
|
|
14
19
|
/>
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorInline = (props) => (
|
|
5
8
|
<div>
|
|
6
9
|
<RichTextEditor
|
|
10
|
+
TrixEditor={TrixEditor}
|
|
7
11
|
id="inline"
|
|
8
12
|
inline
|
|
9
13
|
toolbarBottom
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorLabel = (props) => {
|
|
5
8
|
const [value, setValue] = useState(''),
|
|
@@ -8,6 +11,7 @@ const RichTextEditorLabel = (props) => {
|
|
|
8
11
|
return (
|
|
9
12
|
<div>
|
|
10
13
|
<RichTextEditor
|
|
14
|
+
TrixEditor={TrixEditor}
|
|
11
15
|
id="example"
|
|
12
16
|
label="Example Label"
|
|
13
17
|
onChange={handleOnChange}
|
|
@@ -16,6 +20,7 @@ const RichTextEditorLabel = (props) => {
|
|
|
16
20
|
/>
|
|
17
21
|
<br/>
|
|
18
22
|
<RichTextEditor
|
|
23
|
+
TrixEditor={TrixEditor}
|
|
19
24
|
label="Example Label No ID"
|
|
20
25
|
onChange={handleOnChange}
|
|
21
26
|
value={value}
|
|
@@ -2,6 +2,9 @@ import React, { useState } from 'react'
|
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
3
|
import Button from '../../pb_button/_button'
|
|
4
4
|
import Card from '../../pb_card/_card'
|
|
5
|
+
import { TrixEditor } from 'react-trix'
|
|
6
|
+
// eslint-disable-next-line no-unused-vars
|
|
7
|
+
import Trix from 'trix'
|
|
5
8
|
|
|
6
9
|
const RichTextEditorPreview = (props) => {
|
|
7
10
|
const [showPreview, setShowPreview] = useState(false)
|
|
@@ -15,6 +18,7 @@ const RichTextEditorPreview = (props) => {
|
|
|
15
18
|
return (
|
|
16
19
|
<div>
|
|
17
20
|
<RichTextEditor
|
|
21
|
+
TrixEditor={TrixEditor}
|
|
18
22
|
id="content-preview-editor"
|
|
19
23
|
onChange={handleChange}
|
|
20
24
|
{...props}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorRequiredIndicator = (props) => {
|
|
5
8
|
const [value, setValue] = useState('Add your text here. You can format your text, add links, quotes, and bullets.'),
|
|
@@ -8,6 +11,7 @@ const RichTextEditorRequiredIndicator = (props) => {
|
|
|
8
11
|
return (
|
|
9
12
|
<div>
|
|
10
13
|
<RichTextEditor
|
|
14
|
+
TrixEditor={TrixEditor}
|
|
11
15
|
inputOptions = {{ id: "required" }}
|
|
12
16
|
label="Label"
|
|
13
17
|
onChange={handleOnChange}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorSimple = (props) => (
|
|
5
8
|
<div>
|
|
6
9
|
<RichTextEditor
|
|
10
|
+
TrixEditor={TrixEditor}
|
|
7
11
|
simple
|
|
8
12
|
{...props}
|
|
9
13
|
/>
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
|
+
import { TrixEditor } from 'react-trix'
|
|
4
|
+
// eslint-disable-next-line no-unused-vars
|
|
5
|
+
import Trix from 'trix'
|
|
3
6
|
|
|
4
7
|
const RichTextEditorSticky = (props) => (
|
|
5
8
|
<div>
|
|
6
9
|
<RichTextEditor
|
|
10
|
+
TrixEditor={TrixEditor}
|
|
7
11
|
id="sticky"
|
|
8
12
|
sticky
|
|
9
13
|
value="In this example, when you scroll down, the rich text editor's toolbar will scroll along with the page and it will no longer be visible at the top of the page. Dummy text to enable scroll.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis."
|
|
@@ -2,6 +2,9 @@ import React, { useState } from 'react'
|
|
|
2
2
|
import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
|
|
3
3
|
import Select from '../../pb_select/_select'
|
|
4
4
|
import { changelog, release } from './templates.js'
|
|
5
|
+
import { TrixEditor } from 'react-trix'
|
|
6
|
+
// eslint-disable-next-line no-unused-vars
|
|
7
|
+
import Trix from 'trix'
|
|
5
8
|
|
|
6
9
|
const RichTextEditorTemplates = (props) => {
|
|
7
10
|
const [editorContent, setEditorContent] = useState('')
|
|
@@ -31,6 +34,7 @@ const RichTextEditorTemplates = (props) => {
|
|
|
31
34
|
{...props}
|
|
32
35
|
/>
|
|
33
36
|
<RichTextEditor
|
|
37
|
+
TrixEditor={TrixEditor}
|
|
34
38
|
id="template"
|
|
35
39
|
template={editorContent}
|
|
36
40
|
{...props}
|
|
@@ -1,40 +1,41 @@
|
|
|
1
1
|
examples:
|
|
2
2
|
|
|
3
3
|
rails:
|
|
4
|
-
- rich_text_editor_default: Default
|
|
5
|
-
- rich_text_editor_simple: Simple
|
|
6
|
-
- rich_text_editor_attributes: Attributes
|
|
7
|
-
- rich_text_editor_focus: Focus
|
|
8
|
-
- rich_text_editor_sticky: Sticky
|
|
9
|
-
- rich_text_editor_templates: Templates
|
|
10
|
-
# - rich_text_editor_toolbar_bottom: Toolbar Bottom
|
|
11
|
-
- rich_text_editor_inline: Inline
|
|
12
|
-
- rich_text_editor_required_indicator: Required Indicator
|
|
13
|
-
- rich_text_editor_preview: Preview
|
|
14
4
|
|
|
15
5
|
react:
|
|
16
|
-
- rich_text_editor_default: Default
|
|
17
6
|
- rich_text_editor_advanced_default: Advanced Default
|
|
18
7
|
- rich_text_editor_more_extensions: Advanced (Extra Extensions)
|
|
19
8
|
- rich_text_editor_toolbar_disabled: Advanced (Toolbar disabled)
|
|
20
|
-
- rich_text_editor_simple: Simple
|
|
21
9
|
- rich_text_editor_advanced_simple: Advanced (Simple)
|
|
22
|
-
- rich_text_editor_attributes: Attributes
|
|
23
10
|
- rich_text_editor_advanced_attributes: Advanced (Attributes)
|
|
24
|
-
- rich_text_editor_focus: Focus
|
|
25
11
|
- rich_text_editor_advanced_focus: Advanced (Focus)
|
|
26
|
-
- rich_text_editor_sticky: Sticky
|
|
27
12
|
- rich_text_editor_advanced_sticky: Advanced (Sticky)
|
|
28
|
-
- rich_text_editor_templates: Templates
|
|
29
13
|
- rich_text_editor_advanced_templates: Advanced (Templates)
|
|
30
|
-
# - rich_text_editor_toolbar_bottom: Toolbar Bottom
|
|
31
|
-
- rich_text_editor_inline: Inline
|
|
32
14
|
- rich_text_editor_advanced_inline: Advanced (Inline)
|
|
33
15
|
- rich_text_editor_advanced_height: Advanced Height
|
|
34
16
|
- rich_text_editor_advanced_min_height: Advanced Min Height
|
|
35
|
-
- rich_text_editor_label: Label
|
|
36
17
|
- rich_text_editor_advanced_label: Advanced (Label)
|
|
37
|
-
- rich_text_editor_required_indicator: Required Indicator
|
|
38
18
|
- rich_text_editor_advanced_required_indicator: Advanced Required Indicator
|
|
39
|
-
- rich_text_editor_preview: Preview
|
|
40
19
|
- rich_text_editor_advanced_preview: Advanced Preview
|
|
20
|
+
- rich_text_editor_default: Legacy Default (Trix)
|
|
21
|
+
- rich_text_editor_simple: Legacy Simple (Trix)
|
|
22
|
+
- rich_text_editor_attributes: Legacy Attributes (Trix)
|
|
23
|
+
- rich_text_editor_focus: Legacy Focus (Trix)
|
|
24
|
+
- rich_text_editor_sticky: Legacy Sticky (Trix)
|
|
25
|
+
- rich_text_editor_templates: Legacy Templates (Trix)
|
|
26
|
+
- rich_text_editor_inline: Legacy Inline (Trix)
|
|
27
|
+
- rich_text_editor_label: Legacy Label (Trix)
|
|
28
|
+
- rich_text_editor_required_indicator: Legacy Required Indicator (Trix)
|
|
29
|
+
- rich_text_editor_preview: Legacy Preview (Trix)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
@@ -4,7 +4,6 @@ export { default as RichTextEditorAttributes } from './_rich_text_editor_attribu
|
|
|
4
4
|
export { default as RichTextEditorFocus } from './_rich_text_editor_focus.jsx'
|
|
5
5
|
export { default as RichTextEditorSticky } from './_rich_text_editor_sticky.jsx'
|
|
6
6
|
export { default as RichTextEditorTemplates } from './_rich_text_editor_templates.jsx'
|
|
7
|
-
export { default as RichTextEditorToolbarBottom } from './_rich_text_editor_toolbar_bottom.jsx'
|
|
8
7
|
export { default as RichTextEditorInline } from './_rich_text_editor_inline.jsx'
|
|
9
8
|
export { default as RichTextEditorPreview } from './_rich_text_editor_preview.jsx'
|
|
10
9
|
export { default as RichTextEditorAdvancedDefault } from './_rich_text_editor_advanced_default.jsx'
|