playbook_ui 15.6.0.pre.alpha.PLAY2686contactkittextonly13049 → 15.6.0.pre.alpha.draggableask12898

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -1
  3. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.md +1 -1
  4. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +2 -2
  5. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleIcon.tsx +8 -10
  6. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +1 -0
  7. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_state.jsx +3 -0
  8. data/app/pb_kits/playbook/pb_contact/_contact.tsx +24 -51
  9. data/app/pb_kits/playbook/pb_contact/contact.html.erb +19 -53
  10. data/app/pb_kits/playbook/pb_contact/contact.rb +1 -11
  11. data/app/pb_kits/playbook/pb_contact/contact.test.js +0 -76
  12. data/app/pb_kits/playbook/pb_contact/docs/example.yml +0 -2
  13. data/app/pb_kits/playbook/pb_contact/docs/index.js +0 -1
  14. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +0 -24
  15. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +3 -181
  16. data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.md +1 -1
  17. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +88 -91
  18. data/app/pb_kits/playbook/pb_draggable/context/types.ts +1 -1
  19. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.tsx +3 -3
  20. data/app/pb_kits/playbook/pb_radio/docs/_radio_error.md +1 -1
  21. data/app/pb_kits/playbook/pb_select/_select.tsx +3 -8
  22. data/app/pb_kits/playbook/pb_select/docs/_select_error.md +1 -1
  23. data/app/pb_kits/playbook/pb_select/docs/example.yml +0 -2
  24. data/app/pb_kits/playbook/pb_select/docs/index.js +0 -1
  25. data/app/pb_kits/playbook/pb_select/select.html.erb +2 -2
  26. data/app/pb_kits/playbook/pb_select/select.rb +1 -3
  27. data/app/pb_kits/playbook/pb_select/select.test.js +0 -23
  28. data/app/pb_kits/playbook/pb_table/_table.tsx +33 -187
  29. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -4
  30. data/app/pb_kits/playbook/pb_table/docs/index.js +0 -2
  31. data/app/pb_kits/playbook/pb_table/table.html.erb +12 -68
  32. data/app/pb_kits/playbook/pb_table/table.rb +3 -22
  33. data/app/pb_kits/playbook/pb_table/table.test.js +0 -143
  34. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.md +1 -1
  35. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.md +1 -1
  36. data/app/pb_kits/playbook/pb_timeline/_item.tsx +0 -3
  37. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.md +1 -1
  38. data/app/pb_kits/playbook/pb_timeline/docs/example.yml +0 -2
  39. data/app/pb_kits/playbook/pb_timeline/docs/index.js +0 -1
  40. data/app/pb_kits/playbook/pb_timeline/item.html.erb +1 -1
  41. data/app/pb_kits/playbook/pb_timeline/item.rb +0 -2
  42. data/app/pb_kits/playbook/pb_timeline/label.html.erb +1 -2
  43. data/app/pb_kits/playbook/pb_timeline/label.rb +0 -2
  44. data/app/pb_kits/playbook/pb_timeline/subcomponents/Label.tsx +0 -3
  45. data/app/pb_kits/playbook/pb_timeline/timeline.test.js +0 -51
  46. data/app/pb_kits/playbook/tokens/_colors.scss +1 -2
  47. data/dist/chunks/_typeahead-319r1pyq.js +6 -0
  48. data/dist/chunks/lib-CgpqUb6l.js +29 -0
  49. data/dist/chunks/vendor.js +3 -3
  50. data/dist/playbook-rails-react-bindings.js +1 -1
  51. data/dist/playbook-rails.js +1 -1
  52. data/dist/playbook.css +1 -1
  53. data/lib/playbook/forms/builder/collection_select_field.rb +1 -9
  54. data/lib/playbook/forms/builder/select_field.rb +1 -9
  55. data/lib/playbook/forms/builder/time_zone_select_field.rb +1 -9
  56. data/lib/playbook/pb_kit_helper.rb +0 -35
  57. data/lib/playbook/version.rb +1 -1
  58. metadata +4 -23
  59. data/app/pb_kits/playbook/pb_contact/docs/_contact_unstyled.html.erb +0 -33
  60. data/app/pb_kits/playbook/pb_contact/docs/_contact_unstyled.jsx +0 -46
  61. data/app/pb_kits/playbook/pb_contact/docs/_contact_unstyled_rails.md +0 -2
  62. data/app/pb_kits/playbook/pb_contact/docs/_contact_unstyled_react.md +0 -2
  63. data/app/pb_kits/playbook/pb_select/docs/_select_input_options.html.erb +0 -16
  64. data/app/pb_kits/playbook/pb_select/docs/_select_input_options.jsx +0 -30
  65. data/app/pb_kits/playbook/pb_select/docs/_select_input_options.md +0 -1
  66. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant.jsx +0 -134
  67. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant.md +0 -34
  68. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_rails.html.erb +0 -101
  69. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_rails.md +0 -33
  70. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_with_pagination.jsx +0 -180
  71. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_with_pagination.md +0 -3
  72. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_with_pagination_rails.html.erb +0 -122
  73. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_with_pagination_rails.md +0 -3
  74. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_show_current_year.html.erb +0 -60
  75. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_show_current_year.jsx +0 -118
  76. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_show_current_year.md +0 -1
  77. data/app/pb_kits/playbook/utilities/deprecated.ts +0 -73
  78. data/dist/chunks/_typeahead-CHwm9MTE.js +0 -6
  79. data/dist/chunks/lib-Cugvy62C.js +0 -29
@@ -1,180 +0,0 @@
1
- import React, { useState } from "react"
2
- import { Button, Date as DateKit, DatePicker, Dropdown, Pagination, Select, Table, TextInput, Typeahead, Flex } from "playbook-ui"
3
-
4
-
5
- // Mock Data for Table
6
- const users = [
7
- { id: 1, name: "Jennifer", title: "Associate Scrum Master", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-01" },
8
- { id: 2, name: "Nick", title: "UX Engineer II", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-02" },
9
- { id: 3, name: "Nida", title: "Senior UX Engineer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-03" },
10
- { id: 4, name: "Justin", title: "Director of User Experience Engineering", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-04" },
11
- { id: 5, name: "Edward", title: "UX Designer II", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-05" },
12
- { id: 6, name: "Elisa", title: "UX Engineer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-06" },
13
- { id: 7, name: "Gary", title: "UX Engineer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-07" },
14
- { id: 8, name: "Barkley", title: "Nitro Quality Ninja", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-08" },
15
- { id: 9, name: "Aaron", title: "Associate Nitro Quality Ninja", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-09" },
16
- { id: 10, name: "Sarah", title: "Senior Product Manager", department: "Business Technology", branch: "New York", startDate: "2025-01-10" },
17
- { id: 11, name: "Michael", title: "Software Engineer III", department: "Business Technology", branch: "Austin", startDate: "2025-01-11" },
18
- { id: 12, name: "Emma", title: "Data Analyst II", department: "Customer Development", branch: "Philadelphia", startDate: "2025-01-12" },
19
- { id: 13, name: "David", title: "QA Engineer", department: "Business Technology", branch: "New York", startDate: "2025-01-13" },
20
- { id: 14, name: "Lisa", title: "UX Researcher", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-14" },
21
- { id: 15, name: "James", title: "DevOps Engineer", department: "Business Technology", branch: "Austin", startDate: "2025-01-15" },
22
- { id: 16, name: "Anna", title: "Product Designer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-16" },
23
- { id: 17, name: "Robert", title: "Backend Engineer", department: "Business Technology", branch: "New York", startDate: "2025-01-17" },
24
- { id: 18, name: "Maria", title: "Frontend Developer", department: "Business Technology", branch: "Austin", startDate: "2025-01-18" },
25
- { id: 19, name: "William", title: "Tech Lead", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-19" },
26
- { id: 20, name: "Jessica", title: "Scrum Master", department: "Business Technology", branch: "New York", startDate: "2025-01-20" },
27
- { id: 21, name: "Daniel", title: "Software Architect", department: "Business Technology", branch: "Austin", startDate: "2025-01-21" },
28
- { id: 22, name: "Laura", title: "Business Analyst", department: "Customer Development", branch: "Philadelphia", startDate: "2025-01-22" },
29
- { id: 23, name: "Chris", title: "Security Engineer", department: "Business Technology", branch: "New York", startDate: "2025-01-23" },
30
- { id: 24, name: "Ashley", title: "UX Engineer III", department: "Business Technology", branch: "Austin", startDate: "2025-01-24" },
31
- { id: 25, name: "Kevin", title: "Platform Engineer", department: "Business Technology", branch: "Philadelphia", startDate: "2025-01-25" },
32
- { id: 26, name: "Michelle", title: "Content Designer", department: "Business Technology", branch: "New York", startDate: "2025-01-26" },
33
- ]
34
-
35
-
36
- const TableWithFilterVariantWithPagination = () => {
37
- const [territory, setTerritory] = useState("")
38
- // ------Pagination-----
39
- const [activePage, setActivePage] = useState(1)
40
- // Calculate pagination
41
- const itemsPerPage = 20
42
- const totalPages = Math.ceil(users.length / itemsPerPage)
43
- const startIndex = (activePage - 1) * itemsPerPage
44
- const endIndex = startIndex + itemsPerPage
45
- const currentData = users.slice(startIndex, endIndex)
46
-
47
- const onPageChange = (page) => {
48
- setActivePage(page)
49
- }
50
- // ------End Pagination-----
51
-
52
- // -------Filter content example ------
53
- const filterContent = ({ closePopover }) => (
54
- <>
55
- <TextInput
56
- label="Territory ID"
57
- onChange={event => setTerritory(event.target.value)}
58
- value={territory}
59
- />
60
- <Typeahead
61
- label="Title"
62
- options={[
63
- { key: "senior-ux-engineer", label: "Senior UX Engineer", value: "senior-ux-engineer" },
64
- { key: "ux-engineer", label: "UX Engineer", value: "ux-engineer" },
65
- { key: "ux-designer", label: "UX Designer", value: "ux-designer" }
66
- ]}
67
- />
68
-
69
- <Select
70
- blankSelection="All Departments"
71
- label="Department"
72
- options={[
73
- { value: "Business Technology", label: "Business Technology", key: "business-technology" },
74
- { value: "Customer Development", label: "Customer Development", key: "customer-development" },
75
- { value: "Talent Acquisition", label: "Talent Acquisition", key: "talent-acquisition" }
76
- ]}
77
- />
78
-
79
- <Dropdown
80
- label="Branch"
81
- options={[
82
- { key: "Philadelphia", label: "Philadelphia", value: "philadelphia" },
83
- { key: "New York", label: "New York", value: "new-york" },
84
- { key: "Austin", label: "Austin", value: "austin" }
85
- ]}
86
- />
87
-
88
- <DatePicker
89
- label="Start Date"
90
- paddingY="sm"
91
- pickerId="startedOn"
92
- />
93
- <Flex spacing="between">
94
- <Button
95
- onClick={() => {
96
- alert("No filtering functionality - just a pattern demo!")
97
- closePopover()
98
- }}
99
- text="Filter"
100
- />
101
- <Button
102
- text="Defaults"
103
- variant="secondary"
104
- />
105
- </Flex>
106
- </>
107
- )
108
- // -------End Filter content example ------
109
-
110
- // -------Pagination element example ------
111
- const paginationElement = (
112
- <Pagination
113
- current={activePage}
114
- key={`pagination-${activePage}`}
115
- marginLeft="lg"
116
- onChange={onPageChange}
117
- paddingY="xs"
118
- range={5}
119
- total={totalPages}
120
- />
121
- )
122
- // -------End Pagination element example ------
123
-
124
- return (
125
- <Table
126
- filterContent={filterContent}
127
- filterProps={{
128
- results: 50,
129
- sortOptions: {
130
- territory_id: "Territory ID",
131
- first_name: "Name",
132
- started_on: "Start Date",
133
- department_name: "Department",
134
- title_name: "Title",
135
- branch_branch_name: "Branch",
136
- },
137
- sortValue: [{ name: 'started_on', dir: 'asc' }],
138
- }}
139
- pagination={paginationElement}
140
- title="Table Title Here"
141
- variant="withFilter"
142
- >
143
- <Table.Head>
144
- <Table.Row>
145
- <Table.Header>{'Territory ID'}</Table.Header>
146
- <Table.Header>{'Name'}</Table.Header>
147
- <Table.Header>{'Title'}</Table.Header>
148
- <Table.Header>{'Department'}</Table.Header>
149
- <Table.Header>{'Branch'}</Table.Header>
150
- <Table.Header textAlign="right">{'Start Date'}</Table.Header>
151
- </Table.Row>
152
- </Table.Head>
153
- <Table.Body>
154
- {currentData.map((user) => (
155
- <Table.Row key={user.id}>
156
- <Table.Cell
157
- marginX={{ xs: "sm" }}
158
- numberSpacing="tabular"
159
- >
160
- {user.id}
161
- </Table.Cell>
162
- <Table.Cell marginX={{ xs: "sm" }}>{user.name}</Table.Cell>
163
- <Table.Cell marginX={{ xs: "sm" }}>{user.title}</Table.Cell>
164
- <Table.Cell marginX={{ xs: "sm" }}>{user.department}</Table.Cell>
165
- <Table.Cell marginX={{ xs: "sm" }}>{user.branch}</Table.Cell>
166
- <Table.Cell marginX={{ xs: "sm" }}>
167
- <DateKit
168
- alignment="right"
169
- showCurrentYear
170
- value={user.startDate}
171
- />
172
- </Table.Cell>
173
- </Table.Row>
174
- ))}
175
- </Table.Body>
176
- </Table>
177
- )
178
- }
179
-
180
- export default TableWithFilterVariantWithPagination
@@ -1,3 +0,0 @@
1
- The `withFilter` variant can also be used with the Pagination kit as shown here. Simply set up your Pagination as normal, and pass the Pagination kit to the prop `pagination` as shown.
2
-
3
- For more information on the Pagination Kit and how to use it, see the documentation [here](https://playbook.powerapp.cloud/kits/pagination/react)
@@ -1,122 +0,0 @@
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
- { id: 10, name: "Sarah", title: "Senior Product Manager", department: "Business Technology", branch: "New York", start_date: Date.new(2025, 1, 10) },
12
- { id: 11, name: "Michael", title: "Software Engineer III", department: "Business Technology", branch: "Austin", start_date: Date.new(2025, 1, 11) },
13
- { id: 12, name: "Emma", title: "Data Analyst II", department: "Customer Development", branch: "Philadelphia", start_date: Date.new(2025, 1, 12) },
14
- { id: 13, name: "David", title: "QA Engineer", department: "Business Technology", branch: "New York", start_date: Date.new(2025, 1, 13) },
15
- { id: 14, name: "Lisa", title: "UX Researcher", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 14) },
16
- { id: 15, name: "James", title: "DevOps Engineer", department: "Business Technology", branch: "Austin", start_date: Date.new(2025, 1, 15) },
17
- { id: 16, name: "Anna", title: "Product Designer", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 16) },
18
- { id: 17, name: "Robert", title: "Backend Engineer", department: "Business Technology", branch: "New York", start_date: Date.new(2025, 1, 17) },
19
- { id: 18, name: "Maria", title: "Frontend Developer", department: "Business Technology", branch: "Austin", start_date: Date.new(2025, 1, 18) },
20
- { id: 19, name: "William", title: "Tech Lead", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 19) },
21
- { id: 20, name: "Jessica", title: "Scrum Master", department: "Business Technology", branch: "New York", start_date: Date.new(2025, 1, 20) },
22
- { id: 21, name: "Daniel", title: "Software Architect", department: "Business Technology", branch: "Austin", start_date: Date.new(2025, 1, 21) },
23
- { id: 22, name: "Laura", title: "Business Analyst", department: "Customer Development", branch: "Philadelphia", start_date: Date.new(2025, 1, 22) },
24
- { id: 23, name: "Chris", title: "Security Engineer", department: "Business Technology", branch: "New York", start_date: Date.new(2025, 1, 23) },
25
- { id: 24, name: "Ashley", title: "UX Engineer III", department: "Business Technology", branch: "Austin", start_date: Date.new(2025, 1, 24) },
26
- { id: 25, name: "Kevin", title: "Platform Engineer", department: "Business Technology", branch: "Philadelphia", start_date: Date.new(2025, 1, 25) },
27
- { id: 26, name: "Michelle", title: "Content Designer", department: "Business Technology", branch: "New York", start_date: Date.new(2025, 1, 26) },
28
- ] %>
29
-
30
- <% filter_content =
31
- pb_rails("text_input", props: {
32
- label: "Territory ID",
33
- placeholder: "Enter Territory ID"
34
- }) +
35
- pb_rails("typeahead", props: {
36
- label: "Title",
37
- options: [
38
- { label: "Senior UX Engineer", value: "senior-ux-engineer" },
39
- { label: "UX Engineer", value: "ux-engineer" },
40
- { label: "UX Designer", value: "ux-designer" }
41
- ]
42
- }) +
43
- pb_rails("select", props: {
44
- blank_selection: "All Departments",
45
- label: "Department",
46
- options: [
47
- { value: "Business Technology", text: "Business Technology" },
48
- { value: "Customer Development", text: "Customer Development" },
49
- { value: "Talent Acquisition", text: "Talent Acquisition" }
50
- ]
51
- }) +
52
- pb_rails("dropdown", props: {
53
- label: "Branch",
54
- options: [
55
- { label: "Philadelphia", value: "philadelphia" },
56
- { label: "New York", value: "new-york" },
57
- { label: "Austin", value: "austin" }
58
- ]
59
- }) +
60
- pb_rails("date_picker", props: {
61
- label: "Start Date",
62
- padding_y: "sm",
63
- picker_id: "startedOn"
64
- }) +
65
- pb_rails("flex", props: { spacing: "between" }) do
66
- pb_rails("button", props: {
67
- text: "Filter",
68
- }) +
69
- pb_rails("button", props: {
70
- text: "Defaults",
71
- variant: "secondary"
72
- })
73
- end
74
- %>
75
-
76
- <%# Replace "model" in pagination here with your specific data source %>
77
- <% pagination_element = pb_rails("pagination", props: { model: @users, view: self, padding_y:"xs", margin_left:"lg" }) %>
78
-
79
- <%= pb_rails("table", props: {
80
- variant: "with_filter",
81
- title: "Table Title Here",
82
- filter_content: filter_content,
83
- pagination: pagination_element,
84
- filter_props: {
85
- id: "user-table-filters-2",
86
- results: users.length,
87
- sort_menu: [
88
- { item: "Start Date", link: "?q[sorts]=started_on+asc", active: true, direction: "asc" },
89
- { item: "First Name", link: "?q[sorts]=name+asc", active: false },
90
- { item: "Title", link: "?q[sorts]=title+asc", active: false },
91
- { item: "Department", link: "?q[sorts]=department+asc", active: false },
92
- { item: "Branch", link: "?q[sorts]=branch+asc", active: false },
93
- { item: "Territory ID", link: "?q[sorts]=territory_id+asc", active: false },
94
- ],
95
- }
96
- }) do %>
97
- <%= pb_rails("table/table_head") do %>
98
- <%= pb_rails("table/table_row") do %>
99
- <%= pb_rails("table/table_header", props: { text: "Territory ID" }) %>
100
- <%= pb_rails("table/table_header", props: { text: "Name" }) %>
101
- <%= pb_rails("table/table_header", props: { text: "Title" }) %>
102
- <%= pb_rails("table/table_header", props: { text: "Department" }) %>
103
- <%= pb_rails("table/table_header", props: { text: "Branch" }) %>
104
- <%= pb_rails("table/table_header", props: { text: "Start Date", text_align: "right" }) %>
105
- <% end %>
106
- <% end %>
107
-
108
- <%= pb_rails("table/table_body") do %>
109
- <% users.each do |user| %>
110
- <%= pb_rails("table/table_row") do %>
111
- <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" }, number_spacing: "tabular" }) { user[:id].to_s } %>
112
- <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:name] } %>
113
- <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:title] } %>
114
- <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:department] } %>
115
- <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) { user[:branch] } %>
116
- <%= pb_rails("table/table_cell", props: { margin_x: { xs: "sm" } }) do %>
117
- <%= pb_rails("date", props: {alignment: "right", date: user[:start_date].to_s, show_current_year: true } ) %>
118
- <% end %>
119
- <% end %>
120
- <% end %>
121
- <% end %>
122
- <% end %>
@@ -1,3 +0,0 @@
1
- The `with_filter` variant can also be used with the Pagination kit as shown here. Simply set up your Pagination as normal, and pass the Pagination kit to the prop `pagination` as shown.
2
-
3
- **IMPORTANT NOTE**: This is NOT a working example of pagination, please set up your use case with the relevant data in your controller. For more information on the Pagination Kit and how to use it, see the documentation [here](https://playbook.powerapp.cloud/kits/pagination/rails)
@@ -1,60 +0,0 @@
1
- <%= pb_rails("timeline", props: {orientation: "horizontal", show_date: true}) do %>
2
- <%= pb_rails("timeline/item", props: {icon: "user", icon_color: "royal", line_style: "solid", date: Date.today, show_current_year: true }) do %>
3
- <%= pb_rails("title_detail", props: {
4
- title: "Jackson Heights",
5
- detail: "37-27 74th Street"
6
- }) %>
7
- <% end %>
8
- <%= pb_rails("timeline/item", props: {icon: "check", icon_color: "teal", line_style: "dotted" }) do %>
9
- <%= pb_rails("title_detail", props: {
10
- title: "Greenpoint",
11
- detail: "81 Gate St Brooklyn"
12
- }) %>
13
- <% end %>
14
- <%= pb_rails("timeline/item", props: { line_style: "solid"}) do |item| %>
15
- <% item.label do %>
16
- <%= pb_rails("timeline/label", props: { date: Date.today, show_current_year: true }) %>
17
- <% end %>
18
- <% item.step do %>
19
- <%= pb_rails("timeline/step", props: { icon: 'map-marker-alt', icon_color: 'purple' }) %>
20
- <% end %>
21
- <% item.detail do %>
22
- <%= pb_rails("title_detail", props: {
23
- title: "Society Hill",
24
- detail: "72 E St Astoria"
25
- }) %>
26
- <% end %>
27
- <% end %>
28
- <% end %>
29
-
30
- <br /><br /><br />
31
-
32
- <%= pb_rails("timeline", props: {orientation: "vertical", show_date: true}) do %>
33
- <%= pb_rails("timeline/item", props: {icon: "user", icon_color: "royal", line_style: "solid", date: Date.today, show_current_year: true }) do %>
34
- <%= pb_rails("title_detail", props: {
35
- title: "Jackson Heights",
36
- detail: "37-27 74th Street"
37
- }) %>
38
- <% end %>
39
- <%= pb_rails("timeline/item", props: {icon: "check", icon_color: "teal", line_style: "dotted" }) do %>
40
- <%= pb_rails("title_detail", props: {
41
- title: "Greenpoint",
42
- detail: "81 Gate St Brooklyn"
43
- }) %>
44
- <% end %>
45
- <%= pb_rails("timeline/item", props: { line_style: "solid"}) do |item| %>
46
- <% item.label do %>
47
- <%= pb_rails("timeline/label", props: { date: Date.today, show_current_year: true }) %>
48
- <% end %>
49
- <% item.step do %>
50
- <%= pb_rails("timeline/step", props: { icon: 'map-marker-alt', icon_color: 'purple' }) %>
51
- <% end %>
52
- <% item.detail do %>
53
- <%= pb_rails("title_detail", props: {
54
- title: "Society Hill",
55
- detail: "72 E St Astoria"
56
- }) %>
57
- <% end %>
58
- <% end %>
59
- <% end %>
60
-
@@ -1,118 +0,0 @@
1
- import React from 'react'
2
-
3
- import Timeline from '../_timeline'
4
- import TitleDetail from '../../pb_title_detail/_title_detail'
5
-
6
- const TimelineShowCurrentYear = (props) => (
7
- <div>
8
- <Timeline
9
- orientation="horizontal"
10
- showDate
11
- {...props}
12
- >
13
- <Timeline.Item
14
- date={new Date()}
15
- icon="user"
16
- iconColor="royal"
17
- showCurrentYear
18
- {...props}
19
- >
20
- <TitleDetail
21
- detail="37-27 74th Street"
22
- title="Jackson Heights"
23
- {...props}
24
- />
25
- </Timeline.Item>
26
- <Timeline.Item
27
- icon="check"
28
- iconColor="teal"
29
- lineStyle="dotted"
30
- {...props}
31
- >
32
- <TitleDetail
33
- detail="81 Gate St Brooklyn"
34
- title="Greenpoint"
35
- {...props}
36
- />
37
- </Timeline.Item>
38
- <Timeline.Item
39
- lineStyle="solid"
40
- {...props}
41
- >
42
- <Timeline.Label
43
- date={new Date()}
44
- showCurrentYear
45
- />
46
- <Timeline.Step
47
- icon="map-marker-alt"
48
- iconColor="purple"
49
- />
50
- <Timeline.Detail>
51
- <TitleDetail
52
- detail="72 E St Astoria"
53
- title="Society Hill"
54
- {...props}
55
- />
56
- </Timeline.Detail>
57
- </Timeline.Item>
58
- </Timeline>
59
-
60
- <br />
61
- <br />
62
- <br />
63
-
64
- <Timeline
65
- orientation="vertical"
66
- showDate
67
- {...props}
68
- >
69
- <Timeline.Item
70
- date={new Date()}
71
- icon="user"
72
- iconColor="royal"
73
- showCurrentYear
74
- {...props}
75
- >
76
- <TitleDetail
77
- detail="37-27 74th Street"
78
- title="Jackson Heights"
79
- {...props}
80
- />
81
- </Timeline.Item>
82
- <Timeline.Item
83
- icon="check"
84
- iconColor="teal"
85
- lineStyle="dotted"
86
- {...props}
87
- >
88
- <TitleDetail
89
- detail="81 Gate St Brooklyn"
90
- title="Greenpoint"
91
- {...props}
92
- />
93
- </Timeline.Item>
94
- <Timeline.Item
95
- lineStyle="solid"
96
- {...props}
97
- >
98
- <Timeline.Label
99
- date={new Date()}
100
- showCurrentYear
101
- />
102
- <Timeline.Step
103
- icon="map-marker-alt"
104
- iconColor="purple"
105
- />
106
- <Timeline.Detail>
107
- <TitleDetail
108
- detail="72 E St Astoria"
109
- title="Society Hill"
110
- {...props}
111
- />
112
- </Timeline.Detail>
113
- </Timeline.Item>
114
- </Timeline>
115
- </div>
116
- )
117
-
118
- export default TimelineShowCurrentYear
@@ -1 +0,0 @@
1
- By default, the Timeline kit does NOT display the year if it is the current year. If you want to display the current year you can do so by setting `showCurrentYear`/`show_current_year` to true. Pass it to `Timeline.Item`/`timeline/item` when using its `date` prop, or to `Timeline.Label`/`timeline/label` if following the "With Children" pattern.
@@ -1,73 +0,0 @@
1
- /**
2
- * Tracks which deprecated kits have already logged warnings in this session
3
- * to ensure we only log once per page load per kit
4
- */
5
- const warnedKits = new Set<string>();
6
-
7
- /**
8
- * Logs a deprecation warning for a Playbook kit
9
- * - Only logs once per kit per page load (prevents spam on re-renders)
10
- * - Only logs in development mode (not in production or test environments)
11
- *
12
- * @param kitName - The name of the deprecated kit (e.g., 'BarGraph', 'RichTextEditor')
13
- * @param message - Optional custom deprecation message. If not provided, uses a default message.
14
- *
15
- * @example
16
- * // In your kit component:
17
- * useEffect(() => {
18
- * deprecatedKitWarning('BarGraph');
19
- * }, []);
20
- */
21
- export const deprecatedKitWarning = (
22
- kitName: string,
23
- message?: string
24
- ): void => {
25
- // Skip in test environments (Jest sets NODE_ENV to 'test')
26
- if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'test') {
27
- return;
28
- }
29
-
30
- // In browser environments, check if we're on localhost/dev
31
- if (typeof window !== 'undefined') {
32
- const hostname = window.location?.hostname;
33
- const isLocalDev = hostname === 'localhost' ||
34
- hostname === '127.0.0.1' ||
35
- hostname?.endsWith('.local') ||
36
- hostname?.includes('local.') ||
37
- !hostname; // file:// protocol
38
-
39
- // Only show warnings in local development
40
- if (!isLocalDev) {
41
- return;
42
- }
43
- }
44
-
45
- // Only warn once per kit per page load
46
- if (warnedKits.has(kitName)) {
47
- return;
48
- }
49
-
50
- // Mark this kit as warned
51
- warnedKits.add(kitName);
52
-
53
- // Build the warning message
54
- const baseMessage = `PLAYBOOK DEPRECATION WARNING
55
- ----------------------------
56
- The "${kitName}" kit is deprecated and will be removed in a future version.`;
57
-
58
- const fullMessage = message
59
- ? `${baseMessage} ${message}`
60
- : `${baseMessage} Please migrate to the recommended alternative
61
-
62
- `;
63
-
64
- console.warn(fullMessage);
65
- };
66
-
67
- /**
68
- * Resets the warned kits tracker (useful for testing)
69
- * @internal
70
- */
71
- export const resetDeprecationWarnings = (): void => {
72
- warnedKits.clear();
73
- };