playbook_ui_docs 16.3.0.pre.alpha.fixdatepickermonthsdropdownreset14888 → 16.3.0.pre.alpha.play274314771

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.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.jsx +1 -0
  3. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.html.erb +9 -18
  4. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.jsx +5 -24
  5. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +2 -2
  6. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -1
  7. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.jsx +19 -0
  8. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +0 -52
  9. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +23 -0
  10. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx +20 -0
  11. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx +34 -0
  12. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.md +1 -0
  13. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +49 -0
  14. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx +26 -0
  15. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.md +3 -0
  16. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +17 -0
  17. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +19 -0
  18. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +46 -0
  19. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +9 -0
  20. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +9 -0
  21. metadata +13 -4
  22. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.html.erb +0 -16
  23. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.md +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7529b1b3805c065b3babf542bb5dc1bfe9f124c8aec975be1c699bc7922efca
4
- data.tar.gz: 5873653cd818ea9f9375f8495dee3dd1a2ca9b44a42613b0e9105399a317e12e
3
+ metadata.gz: be9e73acaad8c3203bdb586084555f7f1a81c7a2a02d36efd6781a0de8f53812
4
+ data.tar.gz: 3cbd5073fc8a4a4148883671d1988f4ae66d913f9c1c7afcac1d4423c1554f0f
5
5
  SHA512:
6
- metadata.gz: eec564be94a0adadc025e36a2de79175b8ba7109a8daa3b2907a3556c73c9fa36dbc50f63598a56f43935cc9991d9566d5d595f0520f07ec9ac4ba11a63ca711
7
- data.tar.gz: e6c1fee448d316623f460cbca08c143db21d7871d4477afa69294ad883001aa2ba1f14fc0c610ab2a3fa7a1ff2962cfbf1ff5adc522d710eaae5a27e30ef8841
6
+ metadata.gz: c64136d8969d6ca543f996c02b21d93d15dfbc674379f8dce835f4fa12b7809675ef275d7ac737662e7e1f6409b0d71db16f773eca44d02cb5e4391aaf69b181
7
+ data.tar.gz: 21f760b33e2ba803eb7f29d570801382966532283b29daa69c5601dceec4552c88059dd928423d84c1077fadd8551de4004b75bdcbd05e31b865dccf746375be
@@ -30,6 +30,7 @@ const DialogCompound = () => {
30
30
  label="Description"
31
31
  rows={4}
32
32
  />
33
+ <Caption marginBottom="xs">{'Description'}</Caption>
33
34
  <br />
34
35
  <Caption>
35
36
  {
@@ -1,20 +1,11 @@
1
1
  <%= pb_rails("button", props: { text: "Open Dialog", data: {"open-dialog": "dialog-1"} }) %>
2
2
 
3
- <%= pb_rails("dialog", props: {
4
- id:"dialog-1",
5
- size: "md",
6
- title: "Header Title is the Title Prop"
7
- }) do %>
8
- <%= pb_rails("dialog/dialog_body") do %>
9
- <%= pb_rails("button", props: { aria: { label: "Loading" }, loading: true, margin_right: "lg", text: "Button Primary" }) %>
10
- <div style="height: 800px; background-color: lightgray;"></div>
11
- <%= pb_rails("button", props: { loading: true, text: "Loading..." }) %>
12
- <% end %>
13
-
14
- <%= pb_rails("dialog/dialog_footer") do %>
15
- <%= pb_rails("flex", props: { spacing: "between", padding_x: "md", padding_bottom: "md", padding: "sm" }) do %>
16
- <%= pb_rails("button", props: { loading: true, text: "Send My Issue" }) %>
17
- <%= pb_rails("button", props: { text: "Back", variant: "link", data: {"close-dialog": "dialog-1"} }) %>
18
- <% end %>
19
- <% end %>
20
- <% end %>
3
+ <%= pb_rails("dialog", props: {
4
+ id:"dialog-1",
5
+ size: "sm",
6
+ title: "Header Title is the Title Prop",
7
+ text: "Hello Body Text, Nice to meet ya.",
8
+ cancel_button: "Cancel Button",
9
+ confirm_button: "Okay",
10
+ confirm_button_id: "confirm-button-1"
11
+ }) %>
@@ -12,35 +12,16 @@ const DialogDefault = () => {
12
12
  <>
13
13
  <Button onClick={open}>{'Open Dialog'}</Button>
14
14
  <Dialog
15
+ cancelButton="Cancel Button"
16
+ confirmButton="Okay"
15
17
  onCancel={close}
16
18
  onClose={close}
17
19
  onConfirm={close}
18
20
  opened={isOpen}
19
- size="md"
21
+ size="sm"
22
+ text="Hello Body Text, Nice to meet ya."
20
23
  title="Header Title is the Title Prop"
21
- >
22
- <Dialog.Body>
23
- <Button
24
- aria={{ label: 'Loading' }}
25
- loading
26
- text="Button Primary"
27
- />
28
- <div style={{height: '800px', backgroundColor: 'lightgray'}} />
29
- <Button
30
- loading
31
- text="Loading..."
32
- />
33
- </Dialog.Body>
34
- <Dialog.Footer>
35
- <Button
36
- loading
37
- text="Send My Issue"
38
- />
39
- <Button variant="link">
40
- {"Back"}
41
- </Button>
42
- </Dialog.Footer>
43
- </Dialog>
24
+ />
44
25
  </>
45
26
  )
46
27
  }
@@ -5,7 +5,7 @@ import Button from '../../pb_button/_button'
5
5
  import Dialog from '../../pb_dialog/_dialog'
6
6
  import Flex from '../../pb_flex/_flex'
7
7
  import Caption from '../../pb_caption/_caption'
8
- import Textarea from "../../pb_textarea/_textarea";
8
+ import Textarea from "../../pb_textarea";
9
9
  import Typeahead from '../../pb_typeahead/_typeahead'
10
10
 
11
11
  const useDialog = (visible = false) => {
@@ -77,7 +77,7 @@ const DialogFullHeightPlacement = () => {
77
77
  </Dialog.Header>
78
78
  <Dialog.Body>
79
79
  <Textarea
80
- id={`default-example-2-${index}`}
80
+ id="default-example-2"
81
81
  label="Description"
82
82
  rows={4}
83
83
  />
@@ -25,7 +25,6 @@ examples:
25
25
  - dropdown_separators_hidden: Separators Hidden
26
26
  - dropdown_with_clearable: Clearable
27
27
  - dropdown_with_constrain_height_rails: Constrain Height
28
- - dropdown_closing_options_rails: Closing Options
29
28
  - dropdown_quickpick_rails: Quick Pick Variant
30
29
  - dropdown_quickpick_range_end_rails: Quick Pick Variant (Range Ends Today)
31
30
  - dropdown_quickpick_default_dates: Quick Pick Variant (Default Dates)
@@ -0,0 +1,19 @@
1
+ import React from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import { TrixEditor } from 'react-trix'
4
+ import Trix from 'trix'
5
+
6
+ const RichTextEditorAttributes = (props) => (
7
+ <div>
8
+ <RichTextEditor
9
+ TrixEditor={TrixEditor}
10
+ aria={{ label: 'rich textarea' }}
11
+ data={{ key: 'value', key2: 'value2' }}
12
+ name="name-attribute"
13
+ trixInstance={Trix}
14
+ {...props}
15
+ />
16
+ </div>
17
+ )
18
+
19
+ export default RichTextEditorAttributes
@@ -1,8 +1,5 @@
1
1
  import React, { useState } from 'react'
2
2
  import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
- import Caption from '../../pb_caption/_caption'
4
- // The TrixEditor and Trix imports are required for the Legacy RichTextEditor to work
5
- // They are passed as props to the RichTextEditor kit
6
3
  import { TrixEditor } from 'react-trix'
7
4
  import Trix from 'trix'
8
5
 
@@ -12,9 +9,6 @@ const RichTextEditorDefault = (props) => {
12
9
 
13
10
  return (
14
11
  <div>
15
- <Caption marginBottom="xs"
16
- text="Default"
17
- />
18
12
  <RichTextEditor
19
13
  TrixEditor={TrixEditor}
20
14
  onChange={handleOnChange}
@@ -22,52 +16,6 @@ const RichTextEditorDefault = (props) => {
22
16
  value={value}
23
17
  {...props}
24
18
  />
25
- <br/>
26
- <Caption marginBottom="xs"
27
- text="Simple"
28
- />
29
- <RichTextEditor
30
- TrixEditor={TrixEditor}
31
- simple
32
- trixInstance={Trix}
33
- {...props}
34
- />
35
- <br/>
36
- <Caption marginBottom="xs"
37
- text="Focus"
38
- />
39
- <RichTextEditor
40
- TrixEditor={TrixEditor}
41
- focus
42
- trixInstance={Trix}
43
- {...props}
44
- />
45
- <br/>
46
- <Caption marginBottom="xs"
47
- text="Inline"
48
- />
49
- <RichTextEditor
50
- TrixEditor={TrixEditor}
51
- id="inline"
52
- inline
53
- toolbarBottom
54
- trixInstance={Trix}
55
- value="Try hovering over this text. Then try modifying it or adding more of your own text."
56
- {...props}
57
- />
58
- <br/>
59
- <Caption marginBottom="xs"
60
- text="Sticky"
61
- />
62
- <RichTextEditor
63
- TrixEditor={TrixEditor}
64
- id="sticky"
65
- sticky
66
- trixInstance={Trix}
67
- 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."
68
- {...props}
69
- />
70
-
71
19
  </div>
72
20
  )
73
21
  }
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import { TrixEditor } from 'react-trix'
4
+ import Trix from 'trix'
5
+
6
+ const RichTextEditorFocus = (props) => (
7
+ <>
8
+ <RichTextEditor
9
+ TrixEditor={TrixEditor}
10
+ focus
11
+ trixInstance={Trix}
12
+ {...props}
13
+ />
14
+ <br />
15
+ <RichTextEditor
16
+ TrixEditor={TrixEditor}
17
+ focus
18
+ trixInstance={Trix}
19
+ {...props}
20
+ />
21
+ </>
22
+ )
23
+ export default RichTextEditorFocus
@@ -0,0 +1,20 @@
1
+ import React from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import { TrixEditor } from 'react-trix'
4
+ import Trix from 'trix'
5
+
6
+ const RichTextEditorInline = (props) => (
7
+ <div>
8
+ <RichTextEditor
9
+ TrixEditor={TrixEditor}
10
+ id="inline"
11
+ inline
12
+ toolbarBottom
13
+ trixInstance={Trix}
14
+ value="Try hovering over this text. Then try modifying it or adding more of your own text."
15
+ {...props}
16
+ />
17
+ </div>
18
+ )
19
+
20
+ export default RichTextEditorInline
@@ -0,0 +1,34 @@
1
+ import React, { useState } from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import { TrixEditor } from 'react-trix'
4
+ import Trix from 'trix'
5
+
6
+ const RichTextEditorLabel = (props) => {
7
+ const [value, setValue] = useState(''),
8
+ handleOnChange = (html) => setValue(html)
9
+
10
+ return (
11
+ <div>
12
+ <RichTextEditor
13
+ TrixEditor={TrixEditor}
14
+ id="example"
15
+ label="Example Label"
16
+ onChange={handleOnChange}
17
+ trixInstance={Trix}
18
+ value={value}
19
+ {...props}
20
+ />
21
+ <br/>
22
+ <RichTextEditor
23
+ TrixEditor={TrixEditor}
24
+ label="Example Label No ID"
25
+ onChange={handleOnChange}
26
+ trixInstance={Trix}
27
+ value={value}
28
+ {...props}
29
+ />
30
+ </div>
31
+ )
32
+ }
33
+
34
+ export default RichTextEditorLabel
@@ -0,0 +1 @@
1
+ The optional `label` prop adds a visible label to the editor. Passing in the `id` prop associates the `label` with the editor for accessibility, enabling screen reader support and label-based focus behavior.
@@ -0,0 +1,49 @@
1
+ import React, { useState } from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import Button from '../../pb_button/_button'
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'
8
+
9
+ const RichTextEditorPreview = (props) => {
10
+ const [showPreview, setShowPreview] = useState(false)
11
+ const [previewText, setPreviewText] = useState(<div />)
12
+
13
+ const handleChange = (event) => setPreviewText(event)
14
+ const handleClick = () => {
15
+ setShowPreview(true)
16
+ }
17
+
18
+ return (
19
+ <div>
20
+ <RichTextEditor
21
+ TrixEditor={TrixEditor}
22
+ id="content-preview-editor"
23
+ onChange={handleChange}
24
+ {...props}
25
+ />
26
+ {showPreview && (
27
+ <Card marginTop="md">
28
+ <div
29
+ className="trix-content"
30
+ // eslint-disable-next-line react/no-danger
31
+ dangerouslySetInnerHTML={{ __html: previewText }}
32
+ id="preview-content"
33
+ />
34
+ </Card>
35
+ )}
36
+ {!showPreview && (
37
+ <div />
38
+ )}
39
+ <Button
40
+ id="preview-button"
41
+ marginTop="md"
42
+ onClick={handleClick}
43
+ text="Preview Output"
44
+ variant="secondary"
45
+ />
46
+ </div>
47
+ )
48
+ }
49
+ export default RichTextEditorPreview
@@ -0,0 +1,26 @@
1
+ import React, { useState } from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import { TrixEditor } from 'react-trix'
4
+ import Trix from 'trix'
5
+
6
+ const RichTextEditorRequiredIndicator = (props) => {
7
+ const [value, setValue] = useState('Add your text here. You can format your text, add links, quotes, and bullets.'),
8
+ handleOnChange = (html) => setValue(html)
9
+
10
+ return (
11
+ <div>
12
+ <RichTextEditor
13
+ TrixEditor={TrixEditor}
14
+ inputOptions = {{ id: "required" }}
15
+ label="Label"
16
+ onChange={handleOnChange}
17
+ requiredIndicator
18
+ trixInstance={Trix}
19
+ value={value}
20
+ {...props}
21
+ />
22
+ </div>
23
+ )
24
+ }
25
+
26
+ export default RichTextEditorRequiredIndicator
@@ -0,0 +1,3 @@
1
+ The `requiredIndicator`/`required_indicator` prop displays a red asterisk (*) next to the label, visually indicating that the field is required. This is purely visual and does not enforce validation.
2
+
3
+ You can use `requiredIndicator`/`required_indicator` with any validation approach: HTML5 validation via the `required` prop, client-side validation, or backend validation. For this reason, it works independently and doesn't need to be paired with the `required` prop.
@@ -0,0 +1,17 @@
1
+ import React from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import { TrixEditor } from 'react-trix'
4
+ import Trix from 'trix'
5
+
6
+ const RichTextEditorSimple = (props) => (
7
+ <div>
8
+ <RichTextEditor
9
+ TrixEditor={TrixEditor}
10
+ simple
11
+ trixInstance={Trix}
12
+ {...props}
13
+ />
14
+ </div>
15
+ )
16
+
17
+ export default RichTextEditorSimple
@@ -0,0 +1,19 @@
1
+ import React from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import { TrixEditor } from 'react-trix'
4
+ import Trix from 'trix'
5
+
6
+ const RichTextEditorSticky = (props) => (
7
+ <div>
8
+ <RichTextEditor
9
+ TrixEditor={TrixEditor}
10
+ id="sticky"
11
+ sticky
12
+ trixInstance={Trix}
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."
14
+ {...props}
15
+ />
16
+ </div>
17
+ )
18
+
19
+ export default RichTextEditorSticky
@@ -0,0 +1,46 @@
1
+ import React, { useState } from 'react'
2
+ import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
+ import Select from '../../pb_select/_select'
4
+ import { changelog, release } from './templates.js'
5
+ import { TrixEditor } from 'react-trix'
6
+ import Trix from 'trix'
7
+
8
+ const RichTextEditorTemplates = (props) => {
9
+ const [editorContent, setEditorContent] = useState('')
10
+
11
+ const handleChange = (event) => {
12
+ setEditorContent(event.target.value)
13
+ }
14
+
15
+ const options = [
16
+ {
17
+ value: release,
18
+ text: 'Playbook Release',
19
+ },
20
+ {
21
+ value: changelog,
22
+ text: 'Changelog',
23
+ },
24
+ ]
25
+
26
+ return (
27
+ <div>
28
+ <Select
29
+ blankSelection="Select a template..."
30
+ label="Template"
31
+ onChange={handleChange}
32
+ options={options}
33
+ {...props}
34
+ />
35
+ <RichTextEditor
36
+ TrixEditor={TrixEditor}
37
+ id="template"
38
+ template={editorContent}
39
+ trixInstance={Trix}
40
+ {...props}
41
+ />
42
+ </div>
43
+ )
44
+ }
45
+
46
+ export default RichTextEditorTemplates
@@ -18,6 +18,15 @@ examples:
18
18
  - rich_text_editor_advanced_required_indicator: Advanced Required Indicator
19
19
  - rich_text_editor_advanced_preview: Advanced Preview
20
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)
21
30
 
22
31
 
23
32
 
@@ -1,4 +1,11 @@
1
1
  export { default as RichTextEditorDefault } from './_rich_text_editor_default.jsx'
2
+ export { default as RichTextEditorSimple } from './_rich_text_editor_simple.jsx'
3
+ export { default as RichTextEditorAttributes } from './_rich_text_editor_attributes.jsx'
4
+ export { default as RichTextEditorFocus } from './_rich_text_editor_focus.jsx'
5
+ export { default as RichTextEditorSticky } from './_rich_text_editor_sticky.jsx'
6
+ export { default as RichTextEditorTemplates } from './_rich_text_editor_templates.jsx'
7
+ export { default as RichTextEditorInline } from './_rich_text_editor_inline.jsx'
8
+ export { default as RichTextEditorPreview } from './_rich_text_editor_preview.jsx'
2
9
  export { default as RichTextEditorAdvancedDefault } from './_rich_text_editor_advanced_default.jsx'
3
10
  export { default as RichTextEditorMoreExtensions } from './_rich_text_editor_more_extensions.jsx'
4
11
  export { default as RichTextEditorToolbarDisabled } from './_rich_text_editor_toolbar_disabled.jsx'
@@ -11,5 +18,7 @@ export { default as RichTextEditorAdvancedSticky } from './_rich_text_editor_adv
11
18
  export { default as RichTextEditorAdvancedInline } from './_rich_text_editor_advanced_inline.jsx'
12
19
  export { default as RichTextEditorAdvancedHeight } from './_rich_text_editor_advanced_height.jsx'
13
20
  export { default as RichTextEditorAdvancedMinHeight } from './_rich_text_editor_advanced_min_height.jsx'
21
+ export { default as RichTextEditorRequiredIndicator } from './_rich_text_editor_required_indicator.jsx'
14
22
  export { default as RichTextEditorAdvancedRequiredIndicator } from './_rich_text_editor_advanced_required_indicator.jsx'
23
+ export { default as RichTextEditorLabel } from './_rich_text_editor_label.jsx'
15
24
  export { default as RichTextEditorAdvancedLabel } from './_rich_text_editor_advanced_label.jsx'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui_docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.3.0.pre.alpha.fixdatepickermonthsdropdownreset14888
4
+ version: 16.3.0.pre.alpha.play274314771
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-03-10 00:00:00.000000000 Z
12
+ date: 2026-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: playbook_ui
@@ -861,8 +861,6 @@ files:
861
861
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.md
862
862
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options.jsx
863
863
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options.md
864
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.html.erb
865
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.md
866
864
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx
867
865
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.md
868
866
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb
@@ -1972,10 +1970,21 @@ files:
1972
1970
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md
1973
1971
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx
1974
1972
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md
1973
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.jsx
1975
1974
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx
1976
1975
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.md
1976
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx
1977
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx
1978
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx
1979
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.md
1977
1980
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_more_extensions.jsx
1978
1981
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_more_extensions.md
1982
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx
1983
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx
1984
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.md
1985
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx
1986
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx
1987
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx
1979
1988
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_disabled.jsx
1980
1989
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_disabled.md
1981
1990
  - app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml
@@ -1,16 +0,0 @@
1
- <%
2
- options = [
3
- { label: "United States", value: "unitedStates", id: "us" },
4
- { label: "Canada", value: "canada", id: "ca" },
5
- { label: "Pakistan", value: "pakistan", id: "pk" },
6
- ]
7
- %>
8
-
9
- <%= pb_rails("caption", props: { margin_bottom: "xs", text: "Any" }) %>
10
- <%= pb_rails("dropdown", props: { options: options, close_on_click: "any", margin_bottom: "md" }) %>
11
-
12
- <%= pb_rails("caption", props: { margin_bottom: "xs", text: "Outside" }) %>
13
- <%= pb_rails("dropdown", props: { options: options, close_on_click: "outside", margin_bottom: "md" }) %>
14
-
15
- <%= pb_rails("caption", props: { margin_bottom: "xs", text: "Inside" }) %>
16
- <%= pb_rails("dropdown", props: { options: options, close_on_click: "inside" }) %>
@@ -1 +0,0 @@
1
- The `close_on_click` prop allows you to control when the Dropdown closes in response to click interactions. The value `any` reflects the default behavior, where the dropdown will close after any click. Set it to `outside` to ensure interactive elements as dropdown options are able to be interacted with or modified. Set it to `inside` for a dropdown that only closes when the input or dropdown menu is clicked.