playbook_ui 16.1.0.pre.alpha.play277814027 → 16.1.0.pre.rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +2 -12
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +0 -4
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +0 -33
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +1 -51
- data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +0 -34
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +0 -19
- data/app/pb_kits/playbook/pb_background/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_background/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +5 -14
- data/app/pb_kits/playbook/pb_dialog/_dialog.scss +6 -8
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +0 -6
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +2 -37
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +1 -4
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +2 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +0 -6
- data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +0 -94
- data/app/pb_kits/playbook/pb_dropdown/dropdown_container.rb +1 -5
- data/app/pb_kits/playbook/pb_dropdown/index.js +4 -59
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +0 -3
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +1 -2
- data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.tsx +1 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +2 -2
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +9 -16
- data/app/pb_kits/playbook/pb_filter/filter.rb +2 -2
- data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +1 -5
- data/app/pb_kits/playbook/pb_form/pb_form_validation.js +2 -9
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.html.erb +5 -5
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +4 -4
- data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +0 -4
- data/app/pb_kits/playbook/pb_icon/icon.rb +1 -6
- data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +33 -35
- data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.jsx +1 -1
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.md +1 -1
- data/app/pb_kits/playbook/pb_multiple_users/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_multiple_users/multiple_users.html.erb +7 -51
- data/app/pb_kits/playbook/pb_multiple_users/multiple_users.rb +0 -1
- data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +5 -20
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.jsx +0 -1
- data/app/pb_kits/playbook/pb_passphrase/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_passphrase/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +0 -2
- data/app/pb_kits/playbook/pb_passphrase/passphrase.test.jsx +1 -30
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +0 -3
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +3 -34
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +6 -33
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +0 -3
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +0 -5
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.test.js +18 -33
- data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +11 -39
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.html.erb +3 -3
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.jsx +0 -3
- data/app/pb_kits/playbook/pb_textarea/docs/example.yml +1 -4
- data/app/pb_kits/playbook/pb_textarea/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_textarea/index.ts +5 -12
- data/app/pb_kits/playbook/pb_textarea/textarea.html.erb +14 -30
- data/app/pb_kits/playbook/pb_textarea/textarea.rb +0 -36
- data/app/pb_kits/playbook/pb_textarea/textarea.test.js +1 -18
- data/app/pb_kits/playbook/pb_time_picker/_time_picker.tsx +11 -97
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_on_handler.jsx +2 -5
- data/app/pb_kits/playbook/pb_time_picker/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_time_picker/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_time_picker/time_picker.rb +0 -3
- data/app/pb_kits/playbook/pb_time_picker/time_picker.test.jsx +1 -47
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +1 -24
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +1 -2
- data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.tsx +1 -4
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.jsx +1 -1
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +0 -4
- data/dist/chunks/{_pb_line_graph-BgKF_zz1.js → _pb_line_graph-hxi01lk7.js} +1 -1
- data/dist/chunks/_typeahead-BgLnlhzP.js +1 -0
- data/dist/chunks/{globalProps-BhVYCqRf.js → globalProps-DgYwLYNx.js} +1 -1
- data/dist/chunks/{lib-DD34ZrWL.js → lib-NLxTo8OB.js} +1 -1
- data/dist/chunks/vendor.js +3 -3
- data/dist/menu.yml +2 -2
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/align_content.rb +3 -13
- data/lib/playbook/align_items.rb +3 -13
- data/lib/playbook/align_self.rb +3 -13
- data/lib/playbook/display.rb +0 -5
- data/lib/playbook/flex.rb +3 -13
- data/lib/playbook/flex_direction.rb +3 -13
- data/lib/playbook/flex_grow.rb +3 -13
- data/lib/playbook/flex_shrink.rb +3 -13
- data/lib/playbook/flex_wrap.rb +3 -13
- data/lib/playbook/forms/builder/phone_number_field.rb +0 -9
- data/lib/playbook/justify_content.rb +3 -13
- data/lib/playbook/justify_self.rb +3 -13
- data/lib/playbook/order.rb +3 -13
- data/lib/playbook/spacing.rb +9 -39
- data/lib/playbook/text_align.rb +3 -13
- data/lib/playbook/truncate.rb +1 -1
- data/lib/playbook/version.rb +2 -2
- data/lib/playbook/vertical_align.rb +3 -13
- data/lib/playbook/z_index.rb +0 -5
- metadata +6 -72
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_background_custom.jsx +0 -71
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_background_custom.md +0 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading_rails.html.erb +0 -64
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading_rails.md +0 -18
- data/app/pb_kits/playbook/pb_background/docs/_background_responsive.jsx +0 -30
- data/app/pb_kits/playbook/pb_background/docs/_background_responsive.md +0 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.md +0 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection_rails.md +0 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection_react.md +0 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.html.erb +0 -52
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.jsx +0 -72
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.md +0 -5
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height.jsx +0 -33
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_rails.html.erb +0 -20
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_rails.md +0 -8
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_react.md +0 -8
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.html.erb +0 -9
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.jsx +0 -33
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.md +0 -3
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_input_display.html.erb +0 -74
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_input_display.jsx +0 -87
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_input_display.md +0 -3
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.html.erb +0 -30
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.html.erb +0 -7
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.jsx +0 -24
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.html.erb +0 -5
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.jsx +0 -14
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_required_indicator.jsx +0 -35
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_required_indicator.md +0 -3
- 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_required_indicator.jsx +0 -21
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_table/docs/_sections.yml +0 -68
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.md +0 -1
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.html.erb +0 -39
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.md +0 -3
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_required_indicator.html.erb +0 -5
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_required_indicator.jsx +0 -25
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.html.erb +0 -6
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.jsx +0 -16
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.md +0 -3
- data/app/pb_kits/playbook/utilities/test/globalProps/borderRadius.test.js +0 -33
- data/app/pb_kits/playbook/utilities/test/globalProps/bottom.test.js +0 -60
- data/app/pb_kits/playbook/utilities/test/globalProps/cursor.test.js +0 -42
- data/app/pb_kits/playbook/utilities/test/globalProps/dark.test.js +0 -33
- data/app/pb_kits/playbook/utilities/test/globalProps/gap.test.js +0 -87
- data/app/pb_kits/playbook/utilities/test/globalProps/globalProps.integration.test.js +0 -936
- data/app/pb_kits/playbook/utilities/test/globalProps/height.test.js +0 -68
- data/app/pb_kits/playbook/utilities/test/globalProps/htmlOptions.test.js +0 -510
- data/app/pb_kits/playbook/utilities/test/globalProps/left.test.js +0 -60
- data/app/pb_kits/playbook/utilities/test/globalProps/lineHeight.test.js +0 -33
- data/app/pb_kits/playbook/utilities/test/globalProps/margin.test.js +0 -95
- data/app/pb_kits/playbook/utilities/test/globalProps/numberSpacing.test.js +0 -33
- data/app/pb_kits/playbook/utilities/test/globalProps/overflow.test.js +0 -68
- data/app/pb_kits/playbook/utilities/test/globalProps/padding.test.js +0 -95
- data/app/pb_kits/playbook/utilities/test/globalProps/position.test.js +0 -33
- data/app/pb_kits/playbook/utilities/test/globalProps/right.test.js +0 -60
- data/app/pb_kits/playbook/utilities/test/globalProps/shadow.test.js +0 -33
- data/app/pb_kits/playbook/utilities/test/globalProps/textAlign.test.js +0 -41
- data/app/pb_kits/playbook/utilities/test/globalProps/top.test.js +0 -60
- data/app/pb_kits/playbook/utilities/test/globalProps/verticalAlign.test.js +0 -40
- data/app/pb_kits/playbook/utilities/test/globalProps/width.test.js +0 -66
- data/app/pb_kits/playbook/utilities/test/globalProps/zIndex.test.js +0 -50
- data/dist/chunks/_typeahead-CWA5wlah.js +0 -1
|
@@ -1,55 +1,11 @@
|
|
|
1
1
|
<%= pb_content_tag do %>
|
|
2
|
-
<%
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<div id="<%= user_id %>" class="pb_multiple_users_item">
|
|
6
|
-
<%= pb_rails("avatar", props: user.except(:tooltip).merge({size: object.size, dark: object.dark})) %>
|
|
7
|
-
</div>
|
|
8
|
-
<% end %>
|
|
9
|
-
|
|
10
|
-
<% if object.more_than_four %>
|
|
11
|
-
<% badge_id = "multiple-users-#{object.object_id}-badge" %>
|
|
12
|
-
<div id="<%= badge_id %>" class="pb_multiple_users_item multiple_users_badge_<%= object.size %><%= object.dark ? " dark" : "" %>">
|
|
13
|
-
<%= "+#{object.users.count - object.display_count}" %>
|
|
14
|
-
</div>
|
|
15
|
-
<% end %>
|
|
16
|
-
|
|
17
|
-
<% object.users.take(object.display_count).each_with_index do |user, index| %>
|
|
18
|
-
<% if user[:tooltip].present? %>
|
|
19
|
-
<% user_id = "multiple-users-#{object.object_id}-user-#{index}" %>
|
|
20
|
-
<%= pb_rails("tooltip", props: {
|
|
21
|
-
trigger_element_selector: "##{user_id}",
|
|
22
|
-
tooltip_id: "#{user_id}-tooltip",
|
|
23
|
-
position: "top",
|
|
24
|
-
z_index: "10"
|
|
25
|
-
}) do %>
|
|
26
|
-
<%= user[:tooltip] %>
|
|
27
|
-
<% end %>
|
|
28
|
-
<% end %>
|
|
29
|
-
<% end %>
|
|
30
|
-
|
|
31
|
-
<% if object.more_than_four %>
|
|
32
|
-
<% badge_id = "multiple-users-#{object.object_id}-badge" %>
|
|
33
|
-
<%= pb_rails("tooltip", props: {
|
|
34
|
-
trigger_element_selector: "##{badge_id}",
|
|
35
|
-
tooltip_id: "#{badge_id}-tooltip",
|
|
36
|
-
position: "top",
|
|
37
|
-
z_index: "10"
|
|
38
|
-
}) do %>
|
|
39
|
-
<% object.users.drop(object.display_count).each do |user| %>
|
|
40
|
-
<div><%= user[:tooltip] || user[:name] %></div>
|
|
41
|
-
<% end %>
|
|
42
|
-
<% end %>
|
|
43
|
-
<% end %>
|
|
44
|
-
<% else %>
|
|
45
|
-
<% object.users.take(object.display_count).each do |user| %>
|
|
46
|
-
<%= pb_rails("avatar", props: user.merge({size: object.size, classname: "pb_multiple_users_item", dark: object.dark})) %>
|
|
47
|
-
<% end %>
|
|
2
|
+
<% object.users.take(object.display_count).each do |user| %>
|
|
3
|
+
<%= pb_rails("avatar", props: user.merge({size: object.size, classname: "pb_multiple_users_item", dark: object.dark}) ) %>
|
|
4
|
+
<% end %>
|
|
48
5
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<% end %>
|
|
6
|
+
<% if object.more_than_four %>
|
|
7
|
+
<div class="pb_multiple_users_item multiple_users_badge_<%= object.size %><%= object.dark ? " dark" : "" %>">
|
|
8
|
+
<%= "+#{object.users.count - object.display_count}" %>
|
|
9
|
+
</div>
|
|
54
10
|
<% end %>
|
|
55
11
|
<% end %>
|
|
@@ -7,7 +7,6 @@ import { globalProps } from "../utilities/globalProps"
|
|
|
7
7
|
import Body from '../pb_body/_body'
|
|
8
8
|
import Caption from '../pb_caption/_caption'
|
|
9
9
|
import CircleIconButton from '../pb_circle_icon_button/_circle_icon_button'
|
|
10
|
-
import colors from '../tokens/exports/_colors.module.scss'
|
|
11
10
|
import Flex from '../pb_flex/_flex'
|
|
12
11
|
import Icon from '../pb_icon/_icon'
|
|
13
12
|
import PbReactPopover from '../pb_popover/_popover'
|
|
@@ -26,7 +25,6 @@ type PassphraseProps = {
|
|
|
26
25
|
inputProps?: GenericObject,
|
|
27
26
|
label?: string,
|
|
28
27
|
onChange: (inputValue: string) => void,
|
|
29
|
-
requiredIndicator?: boolean,
|
|
30
28
|
showTipsBelow?: "always" | "xs" | "sm" | "md" | "lg" | "xl",
|
|
31
29
|
tips?: Array<string>,
|
|
32
30
|
uncontrolled?: boolean,
|
|
@@ -45,7 +43,6 @@ const Passphrase = (props: PassphraseProps): React.ReactElement => {
|
|
|
45
43
|
inputProps = {},
|
|
46
44
|
label = confirmation ? "Confirm Passphrase" : "Passphrase",
|
|
47
45
|
onChange = () => undefined,
|
|
48
|
-
requiredIndicator = false,
|
|
49
46
|
showTipsBelow = "always",
|
|
50
47
|
tips = [],
|
|
51
48
|
uncontrolled = false,
|
|
@@ -102,7 +99,6 @@ const Passphrase = (props: PassphraseProps): React.ReactElement => {
|
|
|
102
99
|
|
|
103
100
|
const shieldIcon = getAllIcons()["shieldCheck"]
|
|
104
101
|
const eyeIcon = getAllIcons()["eye"]
|
|
105
|
-
const hasLabel = label && label !== ""
|
|
106
102
|
|
|
107
103
|
return (
|
|
108
104
|
<div
|
|
@@ -113,22 +109,11 @@ const Passphrase = (props: PassphraseProps): React.ReactElement => {
|
|
|
113
109
|
id={id}
|
|
114
110
|
>
|
|
115
111
|
<label>
|
|
116
|
-
<Flex
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<Caption
|
|
122
|
-
className="passphrase-label"
|
|
123
|
-
>
|
|
124
|
-
{label} <span style={{ color: `${colors.error}` }}>*</span>
|
|
125
|
-
</Caption>
|
|
126
|
-
) : (
|
|
127
|
-
<Caption
|
|
128
|
-
className="passphrase-label"
|
|
129
|
-
text={label}
|
|
130
|
-
/>
|
|
131
|
-
))}
|
|
112
|
+
<Flex align="baseline">
|
|
113
|
+
<Caption
|
|
114
|
+
className="passphrase-label"
|
|
115
|
+
text={label}
|
|
116
|
+
/>
|
|
132
117
|
{tips.length > 0 && !confirmation &&
|
|
133
118
|
<PbReactPopover
|
|
134
119
|
className="passphrase-tips"
|
|
@@ -120,7 +120,6 @@ const PassphraseMeterSettings = (props) => {
|
|
|
120
120
|
"These examples will all share the same input value. Type in any of the inputs to see how the strength meter changes in response to different settings."
|
|
121
121
|
}
|
|
122
122
|
</Body>
|
|
123
|
-
<br/>
|
|
124
123
|
<Passphrase
|
|
125
124
|
label={"Type your passphrase"}
|
|
126
125
|
onChange={handleChange}
|
|
@@ -9,7 +9,6 @@ examples:
|
|
|
9
9
|
- passphrase_strength_change: Strength Change
|
|
10
10
|
- passphrase_common: Common Passphrases
|
|
11
11
|
- passphrase_breached: Breached Passphrases
|
|
12
|
-
- passphrase_required_indicator: Required Indicator
|
|
13
12
|
|
|
14
13
|
react:
|
|
15
14
|
- passphrase_default: Default
|
|
@@ -20,4 +19,3 @@ examples:
|
|
|
20
19
|
- passphrase_strength_change: Strength Change
|
|
21
20
|
- passphrase_common: Common Passphrases
|
|
22
21
|
- passphrase_breached: Breached Passphrases
|
|
23
|
-
- passphrase_required_indicator: Required Indicator
|
|
@@ -6,4 +6,3 @@ export { default as PassphraseTips } from './_passphrase_tips'
|
|
|
6
6
|
export { default as PassphraseStrengthChange } from './_passphrase_strength_change'
|
|
7
7
|
export { default as PassphraseCommon } from './_passphrase_common'
|
|
8
8
|
export { default as PassphraseBreached } from './_passphrase_breached'
|
|
9
|
-
export { default as PassphraseRequiredIndicator } from './_passphrase_required_indicator.jsx'
|
|
@@ -10,7 +10,6 @@ module Playbook
|
|
|
10
10
|
values: %w[always xs sm md lg xl],
|
|
11
11
|
default: "always"
|
|
12
12
|
prop :tips, type: Playbook::Props::Array, default: []
|
|
13
|
-
prop :required_indicator, type: Playbook::Props::Boolean, default: false
|
|
14
13
|
prop :value, type: Playbook::Props::String
|
|
15
14
|
|
|
16
15
|
def classname
|
|
@@ -24,7 +23,6 @@ module Playbook
|
|
|
24
23
|
confirmation: confirmation,
|
|
25
24
|
inputProps: input_props,
|
|
26
25
|
label: label,
|
|
27
|
-
requiredIndicator: required_indicator,
|
|
28
26
|
showTipsBelow: show_tips_below,
|
|
29
27
|
tips: tips,
|
|
30
28
|
uncontrolled: true,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { render, screen
|
|
2
|
+
import { render, screen } from '../utilities/test-utils'
|
|
3
3
|
import { Passphrase } from 'playbook-ui'
|
|
4
4
|
|
|
5
5
|
const testId = 'text-input1',
|
|
@@ -86,32 +86,3 @@ test('popover target does not show when tips are not given', () => {
|
|
|
86
86
|
const kit = screen.getByTestId(testId)
|
|
87
87
|
expect(kit.querySelector('[class^=pb_popover_reference_wrapper]')).toBeNull()
|
|
88
88
|
})
|
|
89
|
-
|
|
90
|
-
test('renders required indicator asterisk when requiredIndicator is true', () => {
|
|
91
|
-
render(
|
|
92
|
-
<Passphrase
|
|
93
|
-
data={{ testid: testId }}
|
|
94
|
-
label="Passphrase"
|
|
95
|
-
requiredIndicator
|
|
96
|
-
/>
|
|
97
|
-
)
|
|
98
|
-
|
|
99
|
-
const kit = screen.getByTestId(testId)
|
|
100
|
-
const label = within(kit).getByText(/Passphrase/)
|
|
101
|
-
expect(label).toBeInTheDocument()
|
|
102
|
-
expect(kit).toHaveTextContent('*')
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
test('does not render required indicator asterisk when requiredIndicator is false', () => {
|
|
106
|
-
render(
|
|
107
|
-
<Passphrase
|
|
108
|
-
data={{ testid: testId }}
|
|
109
|
-
label="Passphrase"
|
|
110
|
-
/>
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
const kit = screen.getByTestId(testId)
|
|
114
|
-
const label = within(kit).getByText(/Passphrase/)
|
|
115
|
-
expect(label).toBeInTheDocument()
|
|
116
|
-
expect(kit).not.toHaveTextContent('*')
|
|
117
|
-
})
|
|
@@ -36,7 +36,6 @@ type PhoneNumberInputProps = {
|
|
|
36
36
|
excludeCountries: string[],
|
|
37
37
|
preferredCountries?: string[],
|
|
38
38
|
required?: boolean,
|
|
39
|
-
requiredIndicator?: boolean,
|
|
40
39
|
value?: string,
|
|
41
40
|
formatAsYouType?: boolean,
|
|
42
41
|
strictMode?: boolean,
|
|
@@ -92,7 +91,6 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
|
|
|
92
91
|
onlyCountries = [],
|
|
93
92
|
excludeCountries = [],
|
|
94
93
|
required = false,
|
|
95
|
-
requiredIndicator = false,
|
|
96
94
|
preferredCountries = [],
|
|
97
95
|
value = "",
|
|
98
96
|
formatAsYouType = false,
|
|
@@ -535,7 +533,6 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
|
|
|
535
533
|
validateErrors()
|
|
536
534
|
},
|
|
537
535
|
onChange: formatAsYouType ? undefined : handleOnChange,
|
|
538
|
-
requiredIndicator,
|
|
539
536
|
value: inputValue
|
|
540
537
|
}
|
|
541
538
|
|
|
@@ -12,7 +12,6 @@ examples:
|
|
|
12
12
|
- phone_number_input_format: Format as You Type
|
|
13
13
|
- phone_number_input_strict_mode: Strict Mode
|
|
14
14
|
- phone_number_input_country_search: Country Search
|
|
15
|
-
- phone_number_input_required_indicator: Required Indicator
|
|
16
15
|
|
|
17
16
|
rails:
|
|
18
17
|
- phone_number_input_default: Default
|
|
@@ -25,4 +24,3 @@ examples:
|
|
|
25
24
|
- phone_number_input_strict_mode: Strict Mode
|
|
26
25
|
- phone_number_input_hidden_inputs: Hidden Inputs
|
|
27
26
|
- phone_number_input_country_search: Country Search
|
|
28
|
-
- phone_number_input_required_indicator: Required Indicator
|
|
@@ -9,4 +9,3 @@ export { default as PhoneNumberInputAccessInputElement } from './_phone_number_i
|
|
|
9
9
|
export { default as PhoneNumberInputFormat } from './_phone_number_input_format'
|
|
10
10
|
export { default as PhoneNumberInputStrictMode } from './_phone_number_input_strict_mode'
|
|
11
11
|
export { default as PhoneNumberInputCountrySearch } from './_phone_number_input_country_search'
|
|
12
|
-
export { default as PhoneNumberInputRequiredIndicator } from './_phone_number_input_required_indicator.jsx'
|
|
@@ -7,8 +7,6 @@ module Playbook
|
|
|
7
7
|
default: false
|
|
8
8
|
prop :required, type: Playbook::Props::Boolean,
|
|
9
9
|
default: false
|
|
10
|
-
prop :required_indicator, type: Playbook::Props::Boolean,
|
|
11
|
-
default: false
|
|
12
10
|
prop :initial_country, type: Playbook::Props::String,
|
|
13
11
|
default: ""
|
|
14
12
|
prop :label, type: Playbook::Props::String,
|
|
@@ -54,7 +52,6 @@ module Playbook
|
|
|
54
52
|
excludeCountries: exclude_countries,
|
|
55
53
|
preferredCountries: preferred_countries,
|
|
56
54
|
required: required,
|
|
57
|
-
requiredIndicator: required_indicator,
|
|
58
55
|
value: value,
|
|
59
56
|
countrySearch: country_search,
|
|
60
57
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { render, screen, act
|
|
2
|
+
import { render, screen, act } from "../utilities/test-utils";
|
|
3
3
|
import PhoneNumberInput from "./_phone_number_input";
|
|
4
4
|
|
|
5
5
|
const testId = "phoneNumberInput";
|
|
@@ -129,7 +129,7 @@ test("should format phone number as '555-555-5555' with formatAsYouType and 'us'
|
|
|
129
129
|
};
|
|
130
130
|
|
|
131
131
|
render(<PhoneNumberInput {...props} />);
|
|
132
|
-
|
|
132
|
+
|
|
133
133
|
const input = screen.getByRole("textbox");
|
|
134
134
|
|
|
135
135
|
act(() => {
|
|
@@ -154,38 +154,7 @@ test("should pass countrySearch prop to component", () => {
|
|
|
154
154
|
};
|
|
155
155
|
|
|
156
156
|
render(<PhoneNumberInput {...props} />);
|
|
157
|
-
|
|
157
|
+
|
|
158
158
|
const wrapper = screen.getByTestId('phone-input-with-search');
|
|
159
159
|
expect(wrapper).toBeInTheDocument();
|
|
160
160
|
});
|
|
161
|
-
|
|
162
|
-
test("renders required indicator asterisk when requiredIndicator is true", () => {
|
|
163
|
-
const props = {
|
|
164
|
-
data: { testid: testId },
|
|
165
|
-
id: testId,
|
|
166
|
-
label: "Required Phone Number",
|
|
167
|
-
requiredIndicator: true,
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
render(<PhoneNumberInput {...props} />);
|
|
171
|
-
|
|
172
|
-
const kit = screen.getByTestId(testId);
|
|
173
|
-
const label = within(kit).getByText(/Required Phone Number/);
|
|
174
|
-
expect(label).toBeInTheDocument();
|
|
175
|
-
expect(kit).toHaveTextContent("*");
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
test("does not render required indicator asterisk when requiredIndicator is false", () => {
|
|
179
|
-
const props = {
|
|
180
|
-
data: { testid: testId },
|
|
181
|
-
id: testId,
|
|
182
|
-
label: "Phone Number",
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
render(<PhoneNumberInput {...props} />);
|
|
186
|
-
|
|
187
|
-
const kit = screen.getByTestId(testId);
|
|
188
|
-
const label = within(kit).getByText(/Phone Number/);
|
|
189
|
-
expect(label).toBeInTheDocument();
|
|
190
|
-
expect(kit).not.toHaveTextContent("*");
|
|
191
|
-
});
|
|
@@ -4,8 +4,6 @@ import { TrixEditor } from 'react-trix'
|
|
|
4
4
|
|
|
5
5
|
import inlineFocus from './inlineFocus'
|
|
6
6
|
import useFocus from './useFocus'
|
|
7
|
-
import Caption from '../pb_caption/_caption'
|
|
8
|
-
import colors from '../tokens/exports/_colors.module.scss'
|
|
9
7
|
import { globalProps, GlobalProps } from '../utilities/globalProps'
|
|
10
8
|
import { buildAriaProps, buildDataProps, noop, buildHtmlProps } from '../utilities/props'
|
|
11
9
|
|
|
@@ -42,14 +40,12 @@ type RichTextEditorProps = {
|
|
|
42
40
|
inputOptions?: { [key: string]: string | number | boolean | (() => void) },
|
|
43
41
|
id?: string,
|
|
44
42
|
inline?: boolean,
|
|
45
|
-
label?: string,
|
|
46
43
|
extensions?: { [key: string]: string }[],
|
|
47
44
|
name?: string,
|
|
48
45
|
onChange: (html: string, text: string) => void,
|
|
49
46
|
placeholder?: string,
|
|
50
47
|
inputHeight?: "sm" | "md" | "lg",
|
|
51
48
|
inputMinHeight?: "sm" | "md" | "lg",
|
|
52
|
-
requiredIndicator?: boolean,
|
|
53
49
|
simple?: boolean,
|
|
54
50
|
sticky?: boolean,
|
|
55
51
|
template: string,
|
|
@@ -68,7 +64,6 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
68
64
|
data = {},
|
|
69
65
|
focus = false,
|
|
70
66
|
htmlOptions = {},
|
|
71
|
-
id,
|
|
72
67
|
inputOptions = {},
|
|
73
68
|
inline = false,
|
|
74
69
|
extensions,
|
|
@@ -81,9 +76,7 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
81
76
|
sticky = false,
|
|
82
77
|
template = '',
|
|
83
78
|
value = '',
|
|
84
|
-
maxWidth = "md"
|
|
85
|
-
requiredIndicator = false,
|
|
86
|
-
label,
|
|
79
|
+
maxWidth = "md"
|
|
87
80
|
} = props
|
|
88
81
|
|
|
89
82
|
const ariaProps = buildAriaProps(aria),
|
|
@@ -93,7 +86,7 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
93
86
|
containerRef = useRef<HTMLDivElement>(null)
|
|
94
87
|
|
|
95
88
|
const htmlProps = buildHtmlProps(htmlOptions)
|
|
96
|
-
|
|
89
|
+
|
|
97
90
|
const handleOnEditorReady = (editorInstance: Editor) => {
|
|
98
91
|
setEditor(editorInstance)
|
|
99
92
|
setTimeout(() => {
|
|
@@ -101,7 +94,7 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
101
94
|
if (oldId) {
|
|
102
95
|
const hiddenInput = document.getElementById(oldId)
|
|
103
96
|
if (hiddenInput) {
|
|
104
|
-
const newId = (inputOptions.id as string) || oldId
|
|
97
|
+
const newId = (inputOptions.id as string) || oldId
|
|
105
98
|
hiddenInput.id = newId
|
|
106
99
|
editorInstance.element.setAttribute('input', newId)
|
|
107
100
|
|
|
@@ -126,7 +119,7 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
126
119
|
// set button attributes
|
|
127
120
|
inlineCodeButton.dataset.trixAttribute = 'inlineCode'
|
|
128
121
|
blockCodeButton.insertAdjacentElement('afterend', inlineCodeButton)
|
|
129
|
-
}
|
|
122
|
+
}
|
|
130
123
|
|
|
131
124
|
if (toolbarBottom) editor.element.after(toolbarElement)
|
|
132
125
|
|
|
@@ -154,7 +147,7 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
154
147
|
if (!advancedEditor || !focus) return
|
|
155
148
|
|
|
156
149
|
const handleFocus = () => setShowToolbarOnFocus(true)
|
|
157
|
-
|
|
150
|
+
|
|
158
151
|
const handleClickOutside = (event: Event) => {
|
|
159
152
|
if (isClickInContainer(event) || isClickInPopover(event)) return
|
|
160
153
|
setShowToolbarOnFocus(false)
|
|
@@ -222,29 +215,9 @@ const RichTextEditor = (props: RichTextEditorProps): React.ReactElement => {
|
|
|
222
215
|
className={css}
|
|
223
216
|
ref={focus ? containerRef : undefined}
|
|
224
217
|
>
|
|
225
|
-
{label && (
|
|
226
|
-
<label htmlFor={id}>
|
|
227
|
-
{
|
|
228
|
-
requiredIndicator ? (
|
|
229
|
-
<Caption className="pb_text_input_kit_label"
|
|
230
|
-
marginBottom="xs"
|
|
231
|
-
>
|
|
232
|
-
{label} <span style={{ color: `${colors.error}` }}>*</span>
|
|
233
|
-
</Caption>
|
|
234
|
-
) : (
|
|
235
|
-
<Caption
|
|
236
|
-
className="pb_text_input_kit_label"
|
|
237
|
-
marginBottom="xs"
|
|
238
|
-
text={label}
|
|
239
|
-
/>
|
|
240
|
-
)
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
</label>
|
|
244
|
-
)}
|
|
245
218
|
{
|
|
246
219
|
advancedEditor ? (
|
|
247
|
-
<div
|
|
220
|
+
<div
|
|
248
221
|
className={classnames(
|
|
249
222
|
"pb_rich_text_editor_advanced_container",
|
|
250
223
|
{ [`input_height_${inputHeight}`]: !!inputHeight,[`input_min_height_${inputMinHeight}`]: !!inputMinHeight ,["toolbar-active"]: shouldShowToolbar }
|
|
@@ -9,7 +9,6 @@ examples:
|
|
|
9
9
|
- rich_text_editor_templates: Templates
|
|
10
10
|
# - rich_text_editor_toolbar_bottom: Toolbar Bottom
|
|
11
11
|
- rich_text_editor_inline: Inline
|
|
12
|
-
- rich_text_editor_required_indicator: Required Indicator
|
|
13
12
|
- rich_text_editor_preview: Preview
|
|
14
13
|
|
|
15
14
|
react:
|
|
@@ -32,7 +31,5 @@ examples:
|
|
|
32
31
|
- rich_text_editor_advanced_inline: Advanced (Inline)
|
|
33
32
|
- rich_text_editor_advanced_height: Advanced Height
|
|
34
33
|
- rich_text_editor_advanced_min_height: Advanced Min Height
|
|
35
|
-
- rich_text_editor_required_indicator: Required Indicator
|
|
36
|
-
- rich_text_editor_advanced_required_indicator: Advanced Required Indicator
|
|
37
34
|
- rich_text_editor_preview: Preview
|
|
38
35
|
- rich_text_editor_advanced_preview: Advanced Preview
|
|
@@ -19,5 +19,3 @@ export { default as RichTextEditorAdvancedSticky } from './_rich_text_editor_adv
|
|
|
19
19
|
export { default as RichTextEditorAdvancedInline } from './_rich_text_editor_advanced_inline.jsx'
|
|
20
20
|
export { default as RichTextEditorAdvancedHeight } from './_rich_text_editor_advanced_height.jsx'
|
|
21
21
|
export { default as RichTextEditorAdvancedMinHeight } from './_rich_text_editor_advanced_min_height.jsx'
|
|
22
|
-
export { default as RichTextEditorRequiredIndicator } from './_rich_text_editor_required_indicator.jsx'
|
|
23
|
-
export { default as RichTextEditorAdvancedRequiredIndicator } from './_rich_text_editor_advanced_required_indicator.jsx'
|
|
@@ -21,9 +21,6 @@ module Playbook
|
|
|
21
21
|
prop :template
|
|
22
22
|
prop :placeholder
|
|
23
23
|
prop :input_options
|
|
24
|
-
prop :label
|
|
25
|
-
prop :required_indicator, type: Playbook::Props::Boolean,
|
|
26
|
-
default: false
|
|
27
24
|
|
|
28
25
|
def classname
|
|
29
26
|
generate_classname("pb_rich_text_editor_kit", simple_class, focus_class, sticky_class, separator: " ")
|
|
@@ -54,8 +51,6 @@ module Playbook
|
|
|
54
51
|
template: template,
|
|
55
52
|
placeholder: placeholder,
|
|
56
53
|
inputOptions: input_options,
|
|
57
|
-
label: label,
|
|
58
|
-
requiredIndicator: required_indicator,
|
|
59
54
|
}
|
|
60
55
|
end
|
|
61
56
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { render, screen, fireEvent, waitFor
|
|
2
|
+
import { render, screen, fireEvent, waitFor } from '../utilities/test-utils'
|
|
3
3
|
import { useEditor, EditorContent } from "@tiptap/react"
|
|
4
4
|
import StarterKit from "@tiptap/starter-kit"
|
|
5
5
|
|
|
@@ -89,14 +89,14 @@ const TestAdvancedEditor = ({ toolbarOnFocus = false, ...props }) => {
|
|
|
89
89
|
describe('Advanced TipTap Editor works as expected', () => {
|
|
90
90
|
test('renders advanced editor with toolbar', () => {
|
|
91
91
|
render(<TestAdvancedEditor />)
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
const kit = screen.getByTestId(testId)
|
|
94
94
|
expect(kit).toHaveClass(kitClass)
|
|
95
|
-
|
|
95
|
+
|
|
96
96
|
// Check for advanced container
|
|
97
97
|
const advancedContainer = kit.querySelector('.pb_rich_text_editor_advanced_container')
|
|
98
98
|
expect(advancedContainer).toBeInTheDocument()
|
|
99
|
-
|
|
99
|
+
|
|
100
100
|
// Check for toolbar
|
|
101
101
|
const toolbar = kit.querySelector('.toolbar')
|
|
102
102
|
expect(toolbar).toBeInTheDocument()
|
|
@@ -104,7 +104,7 @@ describe('Advanced TipTap Editor works as expected', () => {
|
|
|
104
104
|
|
|
105
105
|
test('renders advanced editor without toolbar when advancedEditorToolbar is false', () => {
|
|
106
106
|
render(<TestAdvancedEditor advancedEditorToolbar={false} />)
|
|
107
|
-
|
|
107
|
+
|
|
108
108
|
const kit = screen.getByTestId(testId)
|
|
109
109
|
const toolbar = kit.querySelector('.toolbar')
|
|
110
110
|
expect(toolbar).not.toBeInTheDocument()
|
|
@@ -112,17 +112,17 @@ describe('Advanced TipTap Editor works as expected', () => {
|
|
|
112
112
|
|
|
113
113
|
test('shows/hides toolbar on focus when focus is enabled', async () => {
|
|
114
114
|
render(<TestAdvancedEditor focus />)
|
|
115
|
-
|
|
115
|
+
|
|
116
116
|
const kit = screen.getByTestId(testId)
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
// Initially toolbar should be hidden
|
|
119
119
|
let toolbar = kit.querySelector('.toolbar')
|
|
120
120
|
expect(toolbar).not.toBeInTheDocument()
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
const editorElement = kit.querySelector('.ProseMirror')
|
|
123
123
|
// Focus the editor
|
|
124
124
|
fireEvent.focus(editorElement)
|
|
125
|
-
|
|
125
|
+
|
|
126
126
|
// Toolbar should now be visible
|
|
127
127
|
await waitFor(() => {
|
|
128
128
|
toolbar = kit.querySelector('.toolbar')
|
|
@@ -133,7 +133,7 @@ describe('Advanced TipTap Editor works as expected', () => {
|
|
|
133
133
|
|
|
134
134
|
test('supports simple prop with advanced editor', () => {
|
|
135
135
|
render(<TestAdvancedEditor simple />)
|
|
136
|
-
|
|
136
|
+
|
|
137
137
|
const kit = screen.getByTestId(testId)
|
|
138
138
|
const toolbar = kit.querySelector('.toolbar')
|
|
139
139
|
expect(toolbar).toBeInTheDocument()
|
|
@@ -144,7 +144,7 @@ describe('Advanced TipTap Editor works as expected', () => {
|
|
|
144
144
|
|
|
145
145
|
test('supports sticky prop with advanced editor', () => {
|
|
146
146
|
render(<TestAdvancedEditor sticky />)
|
|
147
|
-
|
|
147
|
+
|
|
148
148
|
const kit = screen.getByTestId(testId)
|
|
149
149
|
const stickyToolbar = kit.querySelector('.pb_rich_text_editor_tiptap_toolbar_sticky')
|
|
150
150
|
expect(stickyToolbar).toBeInTheDocument()
|
|
@@ -154,52 +154,37 @@ describe('Advanced TipTap Editor works as expected', () => {
|
|
|
154
154
|
test('applies aria-label when provided', () => {
|
|
155
155
|
const ariaLabel = 'Rich Text Editor'
|
|
156
156
|
render(<TestAdvancedEditor aria={{ label: ariaLabel }} />)
|
|
157
|
-
|
|
157
|
+
|
|
158
158
|
const kit = screen.getByTestId(testId)
|
|
159
159
|
expect(kit).toHaveAttribute('aria-label', ariaLabel)
|
|
160
160
|
})
|
|
161
161
|
|
|
162
162
|
test('supports inline prop with advanced editor', () => {
|
|
163
163
|
render(<TestAdvancedEditor inline />)
|
|
164
|
-
|
|
164
|
+
|
|
165
165
|
const kit = screen.getByTestId(testId)
|
|
166
166
|
const toolbar = kit.querySelector('.toolbar')
|
|
167
167
|
expect(toolbar).toBeInTheDocument()
|
|
168
168
|
expect(kit).toHaveClass(`${kitClass} inline`)
|
|
169
169
|
})
|
|
170
170
|
|
|
171
|
-
test('renders required indicator asterisk when requiredIndicator is true', () => {
|
|
172
|
-
render(
|
|
173
|
-
<RichTextEditor
|
|
174
|
-
data={{ testid: testId }}
|
|
175
|
-
label="Label"
|
|
176
|
-
requiredIndicator
|
|
177
|
-
/>
|
|
178
|
-
)
|
|
179
|
-
|
|
180
|
-
const kit = screen.getByTestId(testId)
|
|
181
|
-
const label = within(kit).getByText(/Label/)
|
|
182
|
-
|
|
183
|
-
expect(label).toBeInTheDocument()
|
|
184
|
-
expect(kit).toHaveTextContent('*')
|
|
185
|
-
})
|
|
186
|
-
|
|
187
171
|
describe('TipTap Editor Functionality', () => {
|
|
188
172
|
test('can type and update content', async () => {
|
|
189
173
|
render(<TestAdvancedEditor />)
|
|
190
|
-
|
|
174
|
+
|
|
191
175
|
const kit = screen.getByTestId(testId)
|
|
192
176
|
const editorContent = kit.querySelector('.ProseMirror')
|
|
193
|
-
|
|
177
|
+
|
|
194
178
|
// Focus and type in the editor
|
|
195
179
|
fireEvent.focus(editorContent)
|
|
196
|
-
fireEvent.input(editorContent, {
|
|
180
|
+
fireEvent.input(editorContent, {
|
|
197
181
|
target: { textContent: 'New content' }
|
|
198
182
|
})
|
|
199
|
-
|
|
183
|
+
|
|
200
184
|
await waitFor(() => {
|
|
201
185
|
expect(editorContent).toHaveTextContent('New content')
|
|
202
186
|
})
|
|
203
187
|
})
|
|
204
188
|
})
|
|
205
189
|
})
|
|
190
|
+
|