playbook_ui_docs 16.3.0 → 16.4.0.pre.alpha.displaybreakpoints15091

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.jsx +50 -0
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.md +1 -0
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_parent_only.jsx +175 -0
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_parent_only.md +5 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +3 -1
  8. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.html.erb +1 -1
  9. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.jsx +6 -3
  10. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.html.erb +3 -3
  11. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx +6 -3
  12. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.html.erb +3 -3
  13. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +6 -3
  14. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.html.erb +16 -0
  15. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.md +1 -0
  16. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_event_type.html.erb +224 -0
  17. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_event_type.md +7 -0
  18. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +2 -0
  19. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin.html.erb +46 -0
  20. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin.jsx +42 -0
  21. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin_rails.md +1 -0
  22. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin_react.md +1 -0
  23. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +2 -0
  24. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +2 -1
  25. data/app/pb_kits/playbook/pb_popover/docs/_popover_placement.jsx +81 -0
  26. data/app/pb_kits/playbook/pb_popover/docs/_popover_placement_react.md +1 -0
  27. data/app/pb_kits/playbook/pb_popover/docs/_popover_position.html.erb +128 -0
  28. data/app/pb_kits/playbook/pb_popover/docs/_popover_position_rails.md +1 -0
  29. data/app/pb_kits/playbook/pb_popover/docs/example.yml +2 -0
  30. data/app/pb_kits/playbook/pb_popover/docs/index.js +2 -1
  31. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +56 -0
  32. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.md +1 -0
  33. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +13 -21
  34. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +0 -10
  35. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props.jsx +152 -0
  36. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props.md +17 -0
  37. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props_rails.html.erb +121 -0
  38. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props_rails.md +17 -0
  39. data/app/pb_kits/playbook/pb_table/docs/example.yml +2 -0
  40. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -0
  41. metadata +23 -24
  42. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.html.erb +0 -5
  43. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.jsx +0 -15
  44. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb +0 -1
  45. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.html.erb +0 -3
  46. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +0 -17
  47. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.html.erb +0 -6
  48. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx +0 -16
  49. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx +0 -28
  50. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.md +0 -1
  51. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +0 -35
  52. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +0 -45
  53. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.html.erb +0 -10
  54. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx +0 -22
  55. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.md +0 -3
  56. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.html.erb +0 -1
  57. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +0 -13
  58. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.html.erb +0 -1
  59. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +0 -15
  60. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.html.erb +0 -115
  61. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +0 -42
  62. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.html.erb +0 -4
  63. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.jsx +0 -14
@@ -0,0 +1,152 @@
1
+ import React, { useState } from "react"
2
+ import { Button, Date as DateKit, DatePicker, Dropdown, Select, Table, TextInput, Typeahead, Flex } from "playbook-ui"
3
+
4
+ // Mock Data for Table
5
+ const users = [
6
+ { id: 1, name: "Jennifer", title: "Associate Scrum Master", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-01" },
7
+ { id: 2, name: "Nick", title: "UX Engineer II", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-02" },
8
+ { id: 3, name: "Nida", title: "Senior UX Engineer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-03" },
9
+ { id: 4, name: "Justin", title: "Director of User Experience Engineering", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-04" },
10
+ { id: 5, name: "Edward", title: "UX Designer II", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-05" },
11
+ { id: 6, name: "Elisa", title: "UX Engineer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-06" },
12
+ { id: 7, name: "Gary", title: "UX Engineer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-07" },
13
+ { id: 8, name: "Barkley", title: "Nitro Quality Ninja", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-08" },
14
+ { id: 9, name: "Aaron", title: "Associate Nitro Quality Ninja", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-09" },
15
+ ]
16
+
17
+ const TableWithFilterWithCardTitleProps = () => {
18
+ const [territory, setTerritory] = useState("")
19
+
20
+ // --------Filter content example ------
21
+ const filterContent = ({ closePopover }) => (
22
+ <>
23
+ <TextInput
24
+ label="Territory ID"
25
+ onChange={event => setTerritory(event.target.value)}
26
+ value={territory}
27
+ />
28
+
29
+ <Typeahead
30
+ label="Title"
31
+ options={[
32
+ { key: "senior-ux-engineer", label: "Senior UX Engineer", value: "senior-ux-engineer" },
33
+ { key: "ux-engineer", label: "UX Engineer", value: "ux-engineer" },
34
+ { key: "ux-designer", label: "UX Designer", value: "ux-designer" }
35
+ ]}
36
+ />
37
+
38
+ <Select
39
+ blankSelection="All Departments"
40
+ label="Department"
41
+ options={[
42
+ { value: "Business Technology", label: "Business Technology", key: "business-technology" },
43
+ { value: "Customer Development", label: "Customer Development", key: "customer-development" },
44
+ { value: "Talent Acquisition", label: "Talent Acquisition", key: "talent-acquisition" }
45
+ ]}
46
+ />
47
+
48
+ <Dropdown
49
+ label="Branch"
50
+ options={[
51
+ { key: "Philadelphia", label: "Philadelphia", value: "philadelphia" },
52
+ { key: "New York", label: "New York", value: "new-york" },
53
+ { key: "Austin", label: "Austin", value: "austin" }
54
+ ]}
55
+ />
56
+
57
+ <DatePicker
58
+ label="Start Date"
59
+ paddingY="sm"
60
+ pickerId="startedOn"
61
+ />
62
+ <Flex spacing="between">
63
+ <Button
64
+ onClick={() => {
65
+ alert("No filtering functionality - just a pattern demo!")
66
+ closePopover()
67
+ }}
68
+ text="Filter"
69
+ />
70
+ <Button
71
+ text="Defaults"
72
+ variant="secondary"
73
+ />
74
+ </Flex>
75
+ </>
76
+ )
77
+ // -------End Filter content example ------
78
+
79
+ return (
80
+ <Table
81
+ cardProps={{marginX: {
82
+ xs: "sm",
83
+ sm: "sm",
84
+ md: "xl",
85
+ lg: "xl",
86
+ xl: "xl",
87
+ default: "xl",
88
+ }}}
89
+ filterContent={filterContent}
90
+ filterProps={{
91
+ results: 50,
92
+ sortOptions: {
93
+ territory_id: "Territory ID",
94
+ first_name: "Name",
95
+ started_on: "Start Date",
96
+ department_name: "Department",
97
+ title_name: "Title",
98
+ branch_branch_name: "Branch",
99
+ },
100
+ sortValue: [{ name: 'started_on', dir: 'asc' }],
101
+ }}
102
+ title="Table Title Here"
103
+ titleProps={{
104
+ paddingLeft:{
105
+ xs: "sm",
106
+ sm: "sm",
107
+ md: "xl",
108
+ lg: "xl",
109
+ xl: "xl",
110
+ default: "xl",
111
+ }
112
+ }}
113
+ variant="withFilter"
114
+ >
115
+ <Table.Head>
116
+ <Table.Row>
117
+ <Table.Header>{'Territory ID'}</Table.Header>
118
+ <Table.Header>{'Name'}</Table.Header>
119
+ <Table.Header>{'Title'}</Table.Header>
120
+ <Table.Header>{'Department'}</Table.Header>
121
+ <Table.Header>{'Branch'}</Table.Header>
122
+ <Table.Header textAlign="right">{'Start Date'}</Table.Header>
123
+ </Table.Row>
124
+ </Table.Head>
125
+ <Table.Body>
126
+ {users.map((user) => (
127
+ <Table.Row key={user.id}>
128
+ <Table.Cell
129
+ marginX={{ xs: "sm" }}
130
+ numberSpacing="tabular"
131
+ >
132
+ {user.id}
133
+ </Table.Cell>
134
+ <Table.Cell marginX={{ xs: "sm" }}>{user.name}</Table.Cell>
135
+ <Table.Cell marginX={{ xs: "sm" }}>{user.title}</Table.Cell>
136
+ <Table.Cell marginX={{ xs: "sm" }}>{user.department}</Table.Cell>
137
+ <Table.Cell marginX={{ xs: "sm" }}>{user.branch}</Table.Cell>
138
+ <Table.Cell marginX={{ xs: "sm" }}>
139
+ <DateKit
140
+ alignment="right"
141
+ showCurrentYear
142
+ value={user.startDate}
143
+ />
144
+ </Table.Cell>
145
+ </Table.Row>
146
+ ))}
147
+ </Table.Body>
148
+ </Table>
149
+ )
150
+ }
151
+
152
+ export default TableWithFilterWithCardTitleProps
@@ -0,0 +1,17 @@
1
+ The `withFilter` variant also offers 2 additional optional props:
2
+
3
+ `cardProps`: An object containing Card-specific props.
4
+ `titleProps`: An object containing Title-specific props.
5
+
6
+ #### Default Card Props
7
+
8
+ The Table kit automatically sets these Card defaults (which you can override via `cardProps`):
9
+
10
+ - `padding="none"`
11
+
12
+ #### Default Title Props
13
+
14
+ The Table kit automatically sets these Title defaults (which you can override via `titleProps`):
15
+
16
+ - `size={3}`
17
+ - `paddingY="md"`
@@ -0,0 +1,121 @@
1
+ <% users = [
2
+ { id: 1, name: "Jennifer", title: "Associate Scrum Master", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 1) },
3
+ { id: 2, name: "Nick", title: "UX Engineer II", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 2) },
4
+ { id: 3, name: "Nida", title: "Senior UX Engineer", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 3) },
5
+ { id: 4, name: "Justin", title: "Director of User Experience Engineering", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 4) },
6
+ { id: 5, name: "Edward", title: "UX Designer II", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 5) },
7
+ { id: 6, name: "Elisa", title: "UX Engineer", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 6) },
8
+ { id: 7, name: "Gary", title: "UX Engineer", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 7) },
9
+ { id: 8, name: "Barkley", title: "Nitro Quality Ninja", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 8) },
10
+ { id: 9, name: "Aaron", title: "Associate Nitro Quality Ninja", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 9) },
11
+ ] %>
12
+
13
+ <% filter_content =
14
+ pb_rails("text_input", props: {
15
+ label: "Territory ID",
16
+ placeholder: "Enter Territory ID"
17
+ }) +
18
+ pb_rails("typeahead", props: {
19
+ label: "Title",
20
+ options: [
21
+ { label: "Senior UX Engineer", value: "senior-ux-engineer" },
22
+ { label: "UX Engineer", value: "ux-engineer" },
23
+ { label: "UX Designer", value: "ux-designer" }
24
+ ]
25
+ }) +
26
+ pb_rails("select", props: {
27
+ blank_selection: "All Departments",
28
+ label: "Department",
29
+ options: [
30
+ { value: "Business Technology", text: "Business Technology" },
31
+ { value: "Customer Development", text: "Customer Development" },
32
+ { value: "Talent Acquisition", text: "Talent Acquisition" }
33
+ ]
34
+ }) +
35
+ pb_rails("dropdown", props: {
36
+ label: "Branch",
37
+ options: [
38
+ { label: "Philadelphia", value: "philadelphia" },
39
+ { label: "New York", value: "new-york" },
40
+ { label: "Austin", value: "austin" }
41
+ ]
42
+ }) +
43
+ pb_rails("date_picker", props: {
44
+ label: "Start Date",
45
+ padding_y: "sm",
46
+ picker_id: "startedOn"
47
+ }) +
48
+ pb_rails("flex", props: { spacing: "between" }) do
49
+ pb_rails("button", props: {
50
+ text: "Filter",
51
+ }) +
52
+ pb_rails("button", props: {
53
+ text: "Defaults",
54
+ variant: "secondary"
55
+ })
56
+ end
57
+ %>
58
+
59
+ <%= pb_rails("table", props: {
60
+ card_props: {
61
+ margin_x: {
62
+ xs: "sm",
63
+ sm: "sm",
64
+ md: "xl",
65
+ lg: "xl",
66
+ xl: "xl",
67
+ default: "xl",
68
+ }
69
+ },
70
+ variant: "with_filter",
71
+ title: "Table Title Here",
72
+ title_props: {
73
+ padding_left:{
74
+ xs: "sm",
75
+ sm: "sm",
76
+ md: "xl",
77
+ lg: "xl",
78
+ xl: "xl",
79
+ default: "xl",
80
+ }
81
+ },
82
+ filter_content: filter_content,
83
+ filter_props: {
84
+ id: "user-table-filters-1",
85
+ results: 9,
86
+ sort_menu: [
87
+ { item: "Start Date", link: "?q[sorts]=started_on+asc", active: true, direction: "asc" },
88
+ { item: "First Name", link: "?q[sorts]=name+asc", active: false },
89
+ { item: "Title", link: "?q[sorts]=title+asc", active: false },
90
+ { item: "Department", link: "?q[sorts]=department+asc", active: false },
91
+ { item: "Branch", link: "?q[sorts]=branch+asc", active: false },
92
+ { item: "Territory ID", link: "?q[sorts]=territory_id+asc", active: false },
93
+ ],
94
+ }
95
+ }) do %>
96
+ <%= pb_rails("table/table_head") do %>
97
+ <%= pb_rails("table/table_row") do %>
98
+ <%= pb_rails("table/table_header", props: { text: "Territory ID" }) %>
99
+ <%= pb_rails("table/table_header", props: { text: "Name" }) %>
100
+ <%= pb_rails("table/table_header", props: { text: "Title" }) %>
101
+ <%= pb_rails("table/table_header", props: { text: "Department" }) %>
102
+ <%= pb_rails("table/table_header", props: { text: "Branch" }) %>
103
+ <%= pb_rails("table/table_header", props: { text: "Start Date", text_align: "right" }) %>
104
+ <% end %>
105
+ <% end %>
106
+
107
+ <%= pb_rails("table/table_body") do %>
108
+ <% users.each do |user| %>
109
+ <%= pb_rails("table/table_row") do %>
110
+ <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" }, number_spacing: "tabular" }) { user[:id].to_s } %>
111
+ <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:name] } %>
112
+ <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:title] } %>
113
+ <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:department] } %>
114
+ <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:branch] } %>
115
+ <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) do %>
116
+ <%= pb_rails("date", props: {alignment: "right", date: user[:start_date].to_s, show_current_year: true } ) %>
117
+ <% end %>
118
+ <% end %>
119
+ <% end %>
120
+ <% end %>
121
+ <% end %>
@@ -0,0 +1,17 @@
1
+ The `with_filter` variant also offers 2 additional optional props:
2
+
3
+ `card_props`: An object containing Card-specific props.
4
+ `title_props`: An object containing Title-specific props.
5
+
6
+ #### Default Card Props
7
+
8
+ The Table kit automatically sets these Card defaults (which you can override via `card_props`):
9
+
10
+ - `padding:"none"`
11
+
12
+ #### Default Title Props
13
+
14
+ The Table kit automatically sets these Title defaults (which you can override via `title_props`):
15
+
16
+ - `size:3`
17
+ - `paddingY:"md"`
@@ -42,6 +42,7 @@ examples:
42
42
  - table_with_header_style_floating: Header Style Floating
43
43
  - table_with_filter_variant_rails: Variant with Filter
44
44
  - table_with_filter_variant_with_pagination_rails: Variant with Filter and Pagination
45
+ - table_with_filter_with_card_title_props_rails: Variant with Filter (with Card and Title Props)
45
46
 
46
47
  react:
47
48
  - table_sm: Small
@@ -85,3 +86,4 @@ examples:
85
86
  - table_with_header_style_floating: Header Style Floating
86
87
  - table_with_filter_variant: Variant with Filter
87
88
  - table_with_filter_variant_with_pagination: Variant with Filter and Pagination
89
+ - table_with_filter_with_card_title_props: Variant with Filter (with Card and Title Props)
@@ -40,3 +40,4 @@ export { default as TableWithHeaderStyleBorderless } from './_table_with_header_
40
40
  export { default as TableWithHeaderStyleFloating } from './_table_with_header_style_floating.jsx'
41
41
  export { default as TableWithFilterVariant } from './_table_with_filter_variant.jsx'
42
42
  export { default as TableWithFilterVariantWithPagination } from './_table_with_filter_variant_with_pagination.jsx'
43
+ export { default as TableWithFilterWithCardTitleProps } from './_table_with_filter_with_card_title_props.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
4
+ version: 16.4.0.pre.alpha.displaybreakpoints15091
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-02-25 00:00:00.000000000 Z
12
+ date: 2026-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: playbook_ui
@@ -43,6 +43,8 @@ files:
43
43
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.md
44
44
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb
45
45
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.md
46
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.jsx
47
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.md
46
48
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx
47
49
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.md
48
50
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb
@@ -153,6 +155,8 @@ files:
153
155
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.md
154
156
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx
155
157
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.md
158
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_parent_only.jsx
159
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_parent_only.md
156
160
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.jsx
157
161
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.md
158
162
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column_for_multi_column.jsx
@@ -859,6 +863,10 @@ files:
859
863
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.md
860
864
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options.jsx
861
865
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options.md
866
+ - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.html.erb
867
+ - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.md
868
+ - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_event_type.html.erb
869
+ - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_event_type.md
862
870
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx
863
871
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.md
864
872
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb
@@ -1049,6 +1057,10 @@ files:
1049
1057
  - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.jsx
1050
1058
  - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.md
1051
1059
  - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_swift.md
1060
+ - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin.html.erb
1061
+ - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin.jsx
1062
+ - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin_rails.md
1063
+ - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin_react.md
1052
1064
  - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.html.erb
1053
1065
  - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.jsx
1054
1066
  - app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.md
@@ -1857,6 +1869,10 @@ files:
1857
1869
  - app/pb_kits/playbook/pb_popover/docs/_popover_list.html.erb
1858
1870
  - app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx
1859
1871
  - app/pb_kits/playbook/pb_popover/docs/_popover_list.md
1872
+ - app/pb_kits/playbook/pb_popover/docs/_popover_placement.jsx
1873
+ - app/pb_kits/playbook/pb_popover/docs/_popover_placement_react.md
1874
+ - app/pb_kits/playbook/pb_popover/docs/_popover_position.html.erb
1875
+ - app/pb_kits/playbook/pb_popover/docs/_popover_position_rails.md
1860
1876
  - app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.html.erb
1861
1877
  - app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx
1862
1878
  - app/pb_kits/playbook/pb_popover/docs/_popover_z_index.html.erb
@@ -1968,31 +1984,10 @@ files:
1968
1984
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md
1969
1985
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx
1970
1986
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md
1971
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.html.erb
1972
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.jsx
1973
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb
1974
1987
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx
1975
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.html.erb
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.html.erb
1978
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx
1979
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx
1980
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.md
1988
+ - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.md
1981
1989
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_more_extensions.jsx
1982
1990
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_more_extensions.md
1983
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb
1984
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx
1985
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.html.erb
1986
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx
1987
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.md
1988
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.html.erb
1989
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx
1990
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.html.erb
1991
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx
1992
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.html.erb
1993
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx
1994
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.html.erb
1995
- - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.jsx
1996
1991
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_disabled.jsx
1997
1992
  - app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_disabled.md
1998
1993
  - app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml
@@ -2309,6 +2304,10 @@ files:
2309
2304
  - app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_with_pagination.md
2310
2305
  - app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_with_pagination_rails.html.erb
2311
2306
  - app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_with_pagination_rails.md
2307
+ - app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props.jsx
2308
+ - app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props.md
2309
+ - app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props_rails.html.erb
2310
+ - app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props_rails.md
2312
2311
  - app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless.html.erb
2313
2312
  - app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless.jsx
2314
2313
  - app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless_rails.md
@@ -1,5 +0,0 @@
1
- <%= pb_rails("rich_text_editor", props: {
2
- aria: { label: "rich-textarea" },
3
- data: { key: "value", key2: "value2" },
4
- name: "textarea-label",
5
- }) %>
@@ -1,15 +0,0 @@
1
- import React from 'react'
2
- import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
-
4
- const RichTextEditorAttributes = (props) => (
5
- <div>
6
- <RichTextEditor
7
- aria={{ label: 'rich textarea' }}
8
- data={{ key: 'value', key2: 'value2' }}
9
- name="name-attribute"
10
- {...props}
11
- />
12
- </div>
13
- )
14
-
15
- export default RichTextEditorAttributes
@@ -1 +0,0 @@
1
- <%= pb_rails("rich_text_editor", props: {input_options: { id: 'hidden_input_id', name: "hidden_input_name" }, value: "Add your text here. You can format your text, add links, quotes, and bullets."}) %>
@@ -1,3 +0,0 @@
1
- <%= pb_rails("rich_text_editor", props: {focus: true}) %>
2
- <br>
3
- <%= pb_rails("rich_text_editor", props: {focus: true}) %>
@@ -1,17 +0,0 @@
1
- import React from 'react'
2
- import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
-
4
- const RichTextEditorFocus = (props) => (
5
- <>
6
- <RichTextEditor
7
- focus
8
- {...props}
9
- />
10
- <br />
11
- <RichTextEditor
12
- focus
13
- {...props}
14
- />
15
- </>
16
- )
17
- export default RichTextEditorFocus
@@ -1,6 +0,0 @@
1
- <%= pb_rails("rich_text_editor", props: {
2
- id: "inline",
3
- inline: true,
4
- toolbar_bottom: true,
5
- value: "Try hovering over this text. Then try modifying it or adding more of your own text."
6
- }) %>
@@ -1,16 +0,0 @@
1
- import React from 'react'
2
- import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
-
4
- const RichTextEditorInline = (props) => (
5
- <div>
6
- <RichTextEditor
7
- id="inline"
8
- inline
9
- toolbarBottom
10
- value="Try hovering over this text. Then try modifying it or adding more of your own text."
11
- {...props}
12
- />
13
- </div>
14
- )
15
-
16
- export default RichTextEditorInline
@@ -1,28 +0,0 @@
1
- import React, { useState } from 'react'
2
- import RichTextEditor from '../../pb_rich_text_editor/_rich_text_editor'
3
-
4
- const RichTextEditorLabel = (props) => {
5
- const [value, setValue] = useState(''),
6
- handleOnChange = (html) => setValue(html)
7
-
8
- return (
9
- <div>
10
- <RichTextEditor
11
- id="example"
12
- label="Example Label"
13
- onChange={handleOnChange}
14
- value={value}
15
- {...props}
16
- />
17
- <br/>
18
- <RichTextEditor
19
- label="Example Label No ID"
20
- onChange={handleOnChange}
21
- value={value}
22
- {...props}
23
- />
24
- </div>
25
- )
26
- }
27
-
28
- export default RichTextEditorLabel
@@ -1 +0,0 @@
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.
@@ -1,35 +0,0 @@
1
-
2
- <%= pb_rails("rich_text_editor", props: { id: "content-preview-editor" }) %>
3
- <div id="card-obfuscation" style="display:none">
4
- <%= pb_rails("card", props: { margin_top: "md", max_width: "md", padding: "sm" }) do %>
5
- <div id="content-preview" class="trix-content">
6
- </div>
7
- <% end %>
8
- </div>
9
- <%= pb_rails("button", props: { id: "preview-button", variant: "secondary", margin_top: "md" }) do %>
10
- <span>Preview Output</span>
11
- <% end %>
12
-
13
- <script>
14
- document.addEventListener('DOMContentLoaded', () => {
15
- function handleButtonClick() {
16
- const editorContainer = [...document.querySelectorAll('[data-pb-react-props]')]
17
- .find(element => element.getAttribute('data-pb-react-props')?.includes('"id":"content-preview-editor"'))
18
-
19
- const editorElement = editorContainer?.querySelector('trix-editor')
20
- const inputId = editorElement?.getAttribute('input')
21
- const inputElement = inputId && document.getElementById(inputId)
22
-
23
- const editorContent = inputElement?.value || ''
24
- const previewArea = document.getElementById('content-preview')
25
- const cardDiv = document.getElementById('card-obfuscation')
26
-
27
- if (previewArea && cardDiv) {
28
- previewArea.innerHTML = editorContent
29
- cardDiv.style.display = 'block'
30
- }
31
- }
32
-
33
- document.getElementById('preview-button')?.addEventListener('click', handleButtonClick)
34
- })
35
- </script>
@@ -1,45 +0,0 @@
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
-
6
- const RichTextEditorPreview = (props) => {
7
- const [showPreview, setShowPreview] = useState(false)
8
- const [previewText, setPreviewText] = useState(<div />)
9
-
10
- const handleChange = (event) => setPreviewText(event)
11
- const handleClick = () => {
12
- setShowPreview(true)
13
- }
14
-
15
- return (
16
- <div>
17
- <RichTextEditor
18
- id="content-preview-editor"
19
- onChange={handleChange}
20
- {...props}
21
- />
22
- {showPreview && (
23
- <Card marginTop="md">
24
- <div
25
- className="trix-content"
26
- // eslint-disable-next-line react/no-danger
27
- dangerouslySetInnerHTML={{ __html: previewText }}
28
- id="preview-content"
29
- />
30
- </Card>
31
- )}
32
- {!showPreview && (
33
- <div />
34
- )}
35
- <Button
36
- id="preview-button"
37
- marginTop="md"
38
- onClick={handleClick}
39
- text="Preview Output"
40
- variant="secondary"
41
- />
42
- </div>
43
- )
44
- }
45
- export default RichTextEditorPreview
@@ -1,10 +0,0 @@
1
- <%= pb_rails("rich_text_editor", props: {
2
- id: "required-indicator",
3
- input_options: {
4
- id: 'hidden_input_id',
5
- name: "hidden_input_name"
6
- },
7
- label: "Label",
8
- required_indicator: true,
9
- value: "Add your text here. You can format your text, add links, quotes, and bullets."
10
- }) %>