playbook_ui 7.7.0 → 7.8.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/{sample_screenshot.svg → full_page_samples.svg} +0 -0
  3. data/app/pb_kits/playbook/_playbook.scss +4 -2
  4. data/app/pb_kits/playbook/data/menu.yml +3 -0
  5. data/app/pb_kits/playbook/index.js +4 -1
  6. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +1 -1
  7. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +27 -0
  8. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +8 -2
  9. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +9 -2
  10. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +17 -6
  11. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +15 -5
  12. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +2 -1
  13. data/app/pb_kits/playbook/pb_filter/Filter/ResultsCount.jsx +4 -1
  14. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +9 -4
  15. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +0 -1
  16. data/app/pb_kits/playbook/pb_filter/_filter.scss +44 -23
  17. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +3 -2
  18. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +5 -4
  19. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +6 -4
  20. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +73 -28
  21. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +3 -7
  22. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +4 -3
  23. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +1 -2
  24. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +3 -3
  25. data/app/pb_kits/playbook/pb_filter/docs/example.yml +4 -5
  26. data/app/pb_kits/playbook/pb_form_group/_form_group.html.erb +7 -0
  27. data/app/pb_kits/playbook/pb_form_group/_form_group.jsx +41 -0
  28. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +123 -0
  29. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_button.html.erb +12 -0
  30. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_button.jsx +39 -0
  31. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_date_picker.html.erb +6 -0
  32. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_date_picker.jsx +21 -0
  33. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_default.html.erb +7 -0
  34. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_default.jsx +26 -0
  35. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +19 -0
  36. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +35 -0
  37. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card.html.erb +21 -0
  38. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card.jsx +42 -0
  39. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card_icon.html.erb +19 -0
  40. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card_icon.jsx +35 -0
  41. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_typeahead.html.erb +42 -0
  42. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_typeahead.jsx +31 -0
  43. data/app/pb_kits/playbook/pb_form_group/docs/example.yml +20 -0
  44. data/app/pb_kits/playbook/pb_form_group/docs/index.js +7 -0
  45. data/app/pb_kits/playbook/pb_form_group/form_group.rb +15 -0
  46. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.html.erb +24 -0
  47. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.jsx +105 -0
  48. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.scss +64 -0
  49. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +49 -0
  50. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +67 -0
  51. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.html.erb +11 -0
  52. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.jsx +25 -0
  53. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.html.erb +20 -0
  54. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.jsx +35 -0
  55. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.html.erb +7 -0
  56. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.jsx +19 -0
  57. data/app/pb_kits/playbook/pb_icon_stat_value/docs/example.yml +15 -0
  58. data/app/pb_kits/playbook/pb_icon_stat_value/docs/index.js +4 -0
  59. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +52 -0
  60. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.html.erb +1 -0
  61. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.jsx +123 -0
  62. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +216 -0
  63. data/app/pb_kits/playbook/pb_rich_text_editor/_trix_styles.scss +375 -0
  64. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb +1 -0
  65. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +10 -0
  66. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.html.erb +3 -0
  67. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +11 -0
  68. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.html.erb +1 -0
  69. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +10 -0
  70. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.html.erb +1 -0
  71. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +14 -0
  72. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.html.erb +115 -0
  73. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +39 -0
  74. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +15 -0
  75. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +5 -0
  76. data/app/pb_kits/playbook/pb_rich_text_editor/docs/templates.js +75 -0
  77. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +55 -0
  78. data/app/pb_kits/playbook/pb_rich_text_editor/useFocus.js +20 -0
  79. data/app/pb_kits/playbook/pb_table/_table.scss +45 -13
  80. data/app/pb_kits/playbook/pb_table/docs/_description.md +1 -0
  81. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.html.erb +34 -0
  82. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.jsx +43 -0
  83. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.md +2 -0
  84. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.html.erb +34 -0
  85. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.jsx +43 -0
  86. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.md +2 -0
  87. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.html.erb +63 -0
  88. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.jsx +70 -0
  89. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.md +2 -0
  90. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +52 -0
  91. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +61 -0
  92. data/app/pb_kits/playbook/pb_table/docs/example.yml +9 -1
  93. data/app/pb_kits/playbook/pb_table/docs/index.js +4 -1
  94. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.html.erb +3 -6
  95. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +15 -21
  96. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +0 -17
  97. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.html.erb +4 -1
  98. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.jsx +12 -1
  99. data/app/pb_kits/playbook/pb_time_stacked/docs/example.yml +1 -4
  100. data/app/pb_kits/playbook/pb_time_stacked/docs/index.js +0 -1
  101. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.rb +7 -11
  102. data/app/pb_kits/playbook/react_rails_kits.js +1 -0
  103. data/app/pb_kits/playbook/utilities/globalProps.js +9 -0
  104. data/app/pb_kits/playbook/utilities/test-utils.js +24 -0
  105. data/app/pb_kits/playbook/vendor.js +2 -0
  106. data/lib/playbook/version.rb +1 -1
  107. metadata +73 -10
  108. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_caption.html.erb +0 -2
  109. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_caption.jsx +0 -15
@@ -0,0 +1 @@
1
+ <%= pb_rails("rich_text_editor", props: {id: "default"}) %>
@@ -0,0 +1,10 @@
1
+ import React from 'react'
2
+ import { RichTextEditor } from '../../'
3
+
4
+ const RichTextEditorDefault = () => (
5
+ <div>
6
+ <RichTextEditor />
7
+ </div>
8
+ )
9
+
10
+ export default RichTextEditorDefault
@@ -0,0 +1,3 @@
1
+ <%= pb_rails("rich_text_editor", props: {focus: true}) %>
2
+ <br>
3
+ <%= pb_rails("rich_text_editor", props: {focus: true}) %>
@@ -0,0 +1,11 @@
1
+ import React from 'react'
2
+ import { RichTextEditor } from '../../'
3
+
4
+ const RichTextEditorFocus = () => (
5
+ <>
6
+ <RichTextEditor focus />
7
+ <br />
8
+ <RichTextEditor focus />
9
+ </>
10
+ )
11
+ export default RichTextEditorFocus
@@ -0,0 +1 @@
1
+ <%= pb_rails("rich_text_editor", props: {simple: true, id: "simple"}) %>
@@ -0,0 +1,10 @@
1
+ import React from 'react'
2
+ import { RichTextEditor } from '../../'
3
+
4
+ const RichTextEditorSimple = () => (
5
+ <div>
6
+ <RichTextEditor simple />
7
+ </div>
8
+ )
9
+
10
+ export default RichTextEditorSimple
@@ -0,0 +1 @@
1
+ <%= pb_rails("rich_text_editor", props: {id: "sticky", sticky: true, 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."}) %>
@@ -0,0 +1,14 @@
1
+ import React from 'react'
2
+ import { RichTextEditor } from '../../'
3
+
4
+ const RichTextEditorSticky = () => (
5
+ <div>
6
+ <RichTextEditor
7
+ id="sticky"
8
+ sticky
9
+ 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."
10
+ />
11
+ </div>
12
+ )
13
+
14
+ export default RichTextEditorSticky
@@ -0,0 +1,115 @@
1
+ <% changelog = "<div>
2
+ <strong>Changelog:<br></strong>
3
+ [INSERT LINK]<br><br>
4
+ You can test the normal spots of Playbook rails and react on
5
+ dev docs plus the following:
6
+ </div>
7
+ <div>
8
+ <br>
9
+ </div>" %>
10
+
11
+ <% release = "<div>
12
+ <div>
13
+ <strong>Story Background</strong>
14
+ </div>
15
+ <div>
16
+ Follow the{' '}
17
+ <a href='https://github.com/powerhome/playbook/wiki/Release-Team-Guide'>
18
+ release process
19
+ </a>{' '}
20
+ to create a new version, create a gem, and package. Create a Ninja testing
21
+ plan, then update Nitro with the new version.
22
+ </div>
23
+ <div>
24
+ <br />
25
+ </div>
26
+ <div>
27
+ <strong>Timeline / Due Date</strong>
28
+ </div>
29
+ <div>
30
+ <em>Release End of business Thursday</em>
31
+ </div>
32
+ <div>
33
+ <em>Testing on Nitro End of business Friday</em>
34
+ </div>
35
+ <div>
36
+ <br />
37
+ </div>
38
+ <div>
39
+ <strong>Definition of done</strong>
40
+ </div>
41
+ <ol>
42
+ <li>Merge all PR’s</li>
43
+ <li>Update the final CHANGELOG</li>
44
+ <li>Version up and generate NPM, and RubyGem</li>
45
+ <li>Create next version branch and milestone</li>
46
+ <li>Update default branch and branch protection rules&nbsp;</li>
47
+ <li>Notify Everyone of new version</li>
48
+ <li>
49
+ Generate testing plan and pages to test for Ninjas (update runway
50
+ ticket)
51
+ </li>
52
+ <li>Update version on Nitro and get on Demo</li>
53
+ <li>Send Ninjas demo and runway ticket for testing</li>
54
+ <li>Ninja Approved + PR Approved</li>
55
+ </ol>
56
+ <div>
57
+ <br />
58
+ </div>
59
+ <div>
60
+ <strong>Stakeholders / Sign-off</strong>
61
+ </div>
62
+ <ul>
63
+ <li>Code Owners</li>
64
+ </ul>
65
+ <div>
66
+ <br />
67
+ <strong>Cadence</strong>
68
+ <br />
69
+ Jason, Jon, Stephen, Jasper, Brendan, Cole
70
+ </div>
71
+ </div>" %>
72
+
73
+ <%= pb_rails("select", props: {
74
+ id: "rails-select-dropdown",
75
+ label: "",
76
+ name: "",
77
+ blank_selection: "Select a template",
78
+ options: [
79
+ {
80
+ value: release,
81
+ value_text: "Playbook Release",
82
+ },
83
+ {
84
+ value: changelog,
85
+ value_text: "Changelog",
86
+ },
87
+ ]
88
+ }) %>
89
+
90
+
91
+
92
+
93
+
94
+ <%= pb_rails("rich_text_editor", props: {classname: 'template-test', id: "template", template: '' }) %>
95
+
96
+
97
+ <script>
98
+ const updateContent = (template) => {
99
+ const trix = document.querySelector('.template-test trix-editor');
100
+ const editor = trix.editor;
101
+ console.log(editor)
102
+ editor.loadHTML("")
103
+ editor.setSelectedRange([0, 0])
104
+ editor.insertHTML(template)
105
+ }
106
+
107
+ window.addEventListener('DOMContentLoaded', () => {
108
+ const editor = document.querySelector("#rails-select-dropdown")
109
+ editor.addEventListener('change', function() {
110
+ console.log('You selected: ', this.value);
111
+ const template = this.value
112
+ updateContent(template);
113
+ });
114
+ });
115
+ </script>
@@ -0,0 +1,39 @@
1
+ import React, { useState } from 'react'
2
+ import { RichTextEditor, Select } from '../../'
3
+ import { changelog, release } from './templates.js'
4
+
5
+ const RichTextEditorTemplates = () => {
6
+ const [editorContent, setEditorContent] = useState('')
7
+
8
+ const handleChange = (event) => {
9
+ setEditorContent(event.target.value)
10
+ }
11
+
12
+ const options = [
13
+ {
14
+ value: release,
15
+ text: 'Playbook Release',
16
+ },
17
+ {
18
+ value: changelog,
19
+ text: 'Changelog',
20
+ },
21
+ ]
22
+
23
+ return (
24
+ <div>
25
+ <Select
26
+ blankSelection="Select a template..."
27
+ label="Template"
28
+ onChange={handleChange}
29
+ options={options}
30
+ />
31
+ <RichTextEditor
32
+ id="template"
33
+ template={editorContent}
34
+ />
35
+ </div>
36
+ )
37
+ }
38
+
39
+ export default RichTextEditorTemplates
@@ -0,0 +1,15 @@
1
+ examples:
2
+
3
+ rails:
4
+ - rich_text_editor_default: Default
5
+ - rich_text_editor_simple: Simple
6
+ - rich_text_editor_focus: Focus
7
+ - rich_text_editor_sticky: Sticky
8
+ - rich_text_editor_templates: Templates
9
+
10
+ react:
11
+ - rich_text_editor_default: Default
12
+ - rich_text_editor_simple: Simple
13
+ - rich_text_editor_focus: Focus
14
+ - rich_text_editor_sticky: Sticky
15
+ - rich_text_editor_templates: Templates
@@ -0,0 +1,5 @@
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 RichTextEditorFocus } from './_rich_text_editor_focus.jsx'
4
+ export { default as RichTextEditorSticky } from './_rich_text_editor_sticky.jsx'
5
+ export { default as RichTextEditorTemplates } from './_rich_text_editor_templates.jsx'
@@ -0,0 +1,75 @@
1
+ export const release = `
2
+ <div>
3
+ <div>
4
+ <strong>Story Background</strong>
5
+ </div>
6
+ <div>
7
+ Follow the{" "}
8
+ <a href='https://github.com/powerhome/playbook/wiki/Release-Team-Guide'>
9
+ release process
10
+ </a>{" "}
11
+ to create a new version, create a gem, and package. Create a Ninja testing
12
+ plan, then update Nitro with the new version.
13
+ </div>
14
+ <div>
15
+ <br />
16
+ </div>
17
+ <div>
18
+ <strong>Timeline / Due Date</strong>
19
+ </div>
20
+ <div>
21
+ <em>Release End of business Thursday</em>
22
+ </div>
23
+ <div>
24
+ <em>Testing on Nitro End of business Friday</em>
25
+ </div>
26
+ <div>
27
+ <br />
28
+ </div>
29
+ <div>
30
+ <strong>Definition of done</strong>
31
+ </div>
32
+ <ol>
33
+ <li>Merge all PR’s</li>
34
+ <li>Update the final CHANGELOG</li>
35
+ <li>Version up and generate NPM, and RubyGem</li>
36
+ <li>Create next version branch and milestone</li>
37
+ <li>Update default branch and branch protection rules&nbsp;</li>
38
+ <li>Notify Everyone of new version</li>
39
+ <li>
40
+ Generate testing plan and pages to test for Ninjas (update runway
41
+ ticket)
42
+ </li>
43
+ <li>Update version on Nitro and get on Demo</li>
44
+ <li>Send Ninjas demo and runway ticket for testing</li>
45
+ <li>Ninja Approved + PR Approved</li>
46
+ </ol>
47
+ <div>
48
+ <br />
49
+ </div>
50
+ <div>
51
+ <strong>Stakeholders / Sign-off</strong>
52
+ </div>
53
+ <ul>
54
+ <li>Code Owners</li>
55
+ </ul>
56
+ <div>
57
+ <br />
58
+ <strong>Cadence</strong>
59
+ <br />
60
+ Jason, Jon, Stephen, Jasper, Brendan, Cole
61
+ </div>
62
+ </div>
63
+ `
64
+
65
+ export const changelog = `
66
+ <div>
67
+ <strong>Changelog:<br></strong>
68
+ [INSERT LINK]<br><br>
69
+ You can test the normal spots of Playbook rails and react on
70
+ dev docs plus the following:
71
+ </div>
72
+ <div>
73
+ <br>
74
+ </div>
75
+ `
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbRichTextEditor
5
+ class RichTextEditor
6
+ include Playbook::Props
7
+ partial "pb_rich_text_editor/rich_text_editor"
8
+
9
+
10
+ prop :focus, type: Playbook::Props::Boolean,
11
+ default: false
12
+
13
+ prop :simple, type: Playbook::Props::Boolean,
14
+ default: false
15
+
16
+ prop :sticky, type: Playbook::Props::Boolean,
17
+ default: false
18
+
19
+ prop :value
20
+ prop :template
21
+ prop :placeholder
22
+
23
+ def classname
24
+ generate_classname("pb_rich_text_editor_kit", simple_class, focus_class, sticky_class, separator: " ")
25
+ end
26
+
27
+ def focus_class
28
+ focus ? "focus-editor-targets" : nil
29
+ end
30
+
31
+ def simple_class
32
+ simple ? "simple" : nil
33
+ end
34
+
35
+ def sticky_class
36
+ sticky ? "sticky" : nil
37
+ end
38
+
39
+ def rich_text_options
40
+ {
41
+ id: id,
42
+ className: classname,
43
+ focus: focus,
44
+ simple: simple,
45
+ sticky: sticky,
46
+ value: value,
47
+ template: template,
48
+ placeholder: placeholder
49
+ }
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+
@@ -0,0 +1,20 @@
1
+ const useFocus = () => {
2
+ const allTrixEditors = document.querySelectorAll(
3
+ '.focus-editor-targets trix-editor'
4
+ )
5
+ allTrixEditors.forEach((editorElement) => {
6
+ const toolbarElement = editorElement.toolbarElement
7
+ if (editorElement == document.activeElement) {
8
+ editorElement.classList.add('focused-editor')
9
+ toolbarElement.style.display = 'block'
10
+ } else {
11
+ // don't hide the toolbar if we've unfocused to focus on the link dialog.
12
+ if (!toolbarElement.contains(document.activeElement)) {
13
+ editorElement.classList.remove('focused-editor')
14
+ toolbarElement.style.display = 'none'
15
+ }
16
+ }
17
+ })
18
+ }
19
+
20
+ export default useFocus
@@ -4,22 +4,54 @@
4
4
  $pb_table_row_kit_side_highlight_colors: map-merge(map-merge($status_colors, $product_colors), $category_colors);
5
5
 
6
6
  @mixin pb_table_row_kit_side_highlight($background) {
7
- box-shadow: inset 4px 0 0 0 $background;
8
- border-top: 0px;
7
+ box-shadow: inset 4px 0 0 0 $background;
8
+ border-top: 0px;
9
9
  }
10
10
 
11
11
  [class^=pb_table] {
12
- tbody {
13
- [class^=pb_table_row_kit] {
14
- @each $color_name, $color_value in $pb_table_row_kit_side_highlight_colors {
15
- &[class*=_side_highlight_#{$color_name}] {
16
- td {
17
- &:first-child {
18
- @include pb_table_row_kit_side_highlight($color_value);
19
- }
20
- }
21
- }
12
+ tbody {
13
+ [class^=pb_table_row_kit] {
14
+ @each $color_name, $color_value in $pb_table_row_kit_side_highlight_colors {
15
+ &[class*=_side_highlight_#{$color_name}] {
16
+ td {
17
+ &:first-child {
18
+ @include pb_table_row_kit_side_highlight($color_value);
22
19
  }
20
+ }
23
21
  }
22
+ }
24
23
  }
25
- }
24
+ }
25
+ tr[align=center] th,
26
+ tr th[align=center] {
27
+ text-align: center !important;
28
+ }
29
+
30
+ tr[align=right] th,
31
+ tr th[align=right] {
32
+ text-align: right !important;
33
+ }
34
+
35
+ tr[shift=up] {
36
+ vertical-align: top;
37
+ }
38
+ tr[shift=down] {
39
+ vertical-align: bottom;
40
+ }
41
+
42
+ td[shift=up] {
43
+ vertical-align: top;
44
+ }
45
+ td[shift=down] {
46
+ vertical-align: bottom;
47
+ }
48
+
49
+ th[shift=up] {
50
+ vertical-align: top;
51
+ }
52
+
53
+ th[shift=down] {
54
+ vertical-align: bottom;
55
+ }
56
+ }
57
+