playbook_ui_docs 16.8.0.pre.alpha.play293416882 → 16.8.0.pre.alpha.play299216890
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.jsx +15 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.md +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.json +4 -1
- metadata +4 -5
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.html.erb +0 -116
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.md +0 -12
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.jsx +0 -153
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.md +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 860db9f3755d911abe0dbbf5a3efa317aabff549cc33ab18696e49a3c275f713
|
|
4
|
+
data.tar.gz: 65d029647372cd161c84f763dd327dfee5f4fec16b4da44c5b5e1c6e27672fd5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a0b94e4292ba942d55c30f1fdda6fe8f11d89d7a1f80ae6e9c4301b3b8aa6b2a067f2caddf91b3671da1fab487394c210b2fd70dace43ac057f79cbfeee82281
|
|
7
|
+
data.tar.gz: d45397a811bf0630f68b1b1d657db195b71f5d6119b39409aeac2a8c84f0b1ddcce7ee4476625c52d292964d454e3754e96aa31739ab726df7e0c04642472730
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= pb_rails("date_picker", props: { picker_id: "date-picker-date-asc", year_ascending: true}) %>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import DatePicker from '../_date_picker'
|
|
4
|
+
|
|
5
|
+
const DatePickerYearAsc = (props) => (
|
|
6
|
+
<div>
|
|
7
|
+
<DatePicker
|
|
8
|
+
pickerId="date-picker-date-asc"
|
|
9
|
+
yearAscending
|
|
10
|
+
{...props}
|
|
11
|
+
/>
|
|
12
|
+
</div>
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
export default DatePickerYearAsc
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
`yearAscending`/`year_ascending` is a boolean prop that if set to true, will render the years in the year dropdown in chronological order. This prop is set to false by default.
|
|
@@ -23,6 +23,7 @@ examples:
|
|
|
23
23
|
- date_picker_flatpickr_methods: Flatpickr Methods
|
|
24
24
|
- date_picker_hooks: Hooks
|
|
25
25
|
- date_picker_year_range: Year Range
|
|
26
|
+
- date_picker_year_asc: Year Ascending
|
|
26
27
|
- date_picker_anti_patterns: Anti-Patterns
|
|
27
28
|
- date_picker_margin_bottom: Margin Bottom
|
|
28
29
|
- date_picker_inline: Inline
|
|
@@ -58,6 +59,7 @@ examples:
|
|
|
58
59
|
- date_picker_flatpickr_methods: Flatpickr Methods
|
|
59
60
|
- date_picker_hooks: Hooks
|
|
60
61
|
- date_picker_year_range: Year Range
|
|
62
|
+
- date_picker_year_asc: Year Ascending
|
|
61
63
|
- date_picker_margin_bottom: Margin Bottom
|
|
62
64
|
- date_picker_inline: Inline
|
|
63
65
|
- date_picker_month_and_year: Month & Year Only
|
|
@@ -30,3 +30,4 @@ export { default as DatePickerRangePattern } from './_date_picker_range_pattern'
|
|
|
30
30
|
export { default as DatePickerAndDropdownRange } from './_date_picker_and_dropdown_range.jsx'
|
|
31
31
|
export { default as DatePickerRequiredIndicator } from "./_date_picker_required_indicator.jsx";
|
|
32
32
|
export { default as DatePickerDialogSubmission } from "./_date_picker_dialog_submission.jsx";
|
|
33
|
+
export { default as DatePickerYearAsc } from './_date_picker_year_asc.jsx'
|
|
@@ -12,7 +12,6 @@ examples:
|
|
|
12
12
|
- filter_placement: Filter Placement
|
|
13
13
|
- filter_popover_props: Popover Props
|
|
14
14
|
- filter_within_turbo_frames: Within Turbo Frames
|
|
15
|
-
- filter_interactive: Interactive Applied Filters
|
|
16
15
|
|
|
17
16
|
react:
|
|
18
17
|
- filter_default: Default
|
|
@@ -26,5 +25,4 @@ examples:
|
|
|
26
25
|
- filter_placement: Filter Placement
|
|
27
26
|
- filter_popover_props: Popover Props
|
|
28
27
|
- filter_sidebar: Sidebar
|
|
29
|
-
- filter_interactive_react: Interactive Applied Filters
|
|
30
28
|
|
|
@@ -8,5 +8,4 @@ export { default as FilterMaxWidth } from './_filter_max_width.jsx'
|
|
|
8
8
|
export { default as FilterMaxHeight } from './_filter_max_height.jsx'
|
|
9
9
|
export { default as FilterPlacement } from './_filter_placement.jsx'
|
|
10
10
|
export { default as FilterPopoverProps } from './_filter_popover_props.jsx'
|
|
11
|
-
export { default as FilterSidebar } from './_filter_sidebar.jsx'
|
|
12
|
-
export { default as FilterInteractiveReact } from './_filter_interactive_react.jsx'
|
|
11
|
+
export { default as FilterSidebar } from './_filter_sidebar.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.8.0.pre.alpha.
|
|
4
|
+
version: 16.8.0.pre.alpha.play299216890
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Power UX
|
|
@@ -723,6 +723,9 @@ files:
|
|
|
723
723
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_week.html.erb
|
|
724
724
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_week.jsx
|
|
725
725
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_week.md
|
|
726
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.html.erb
|
|
727
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.jsx
|
|
728
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.md
|
|
726
729
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.html.erb
|
|
727
730
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.jsx
|
|
728
731
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.md
|
|
@@ -1090,10 +1093,6 @@ files:
|
|
|
1090
1093
|
- app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb
|
|
1091
1094
|
- app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx
|
|
1092
1095
|
- app/pb_kits/playbook/pb_filter/docs/_filter_default.md
|
|
1093
|
-
- app/pb_kits/playbook/pb_filter/docs/_filter_interactive.html.erb
|
|
1094
|
-
- app/pb_kits/playbook/pb_filter/docs/_filter_interactive.md
|
|
1095
|
-
- app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.jsx
|
|
1096
|
-
- app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.md
|
|
1097
1096
|
- app/pb_kits/playbook/pb_filter/docs/_filter_max_height.html.erb
|
|
1098
1097
|
- app/pb_kits/playbook/pb_filter/docs/_filter_max_height.jsx
|
|
1099
1098
|
- app/pb_kits/playbook/pb_filter/docs/_filter_max_width.html.erb
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
<%
|
|
2
|
-
territory_options = [
|
|
3
|
-
{ value: "USA", label: "USA" },
|
|
4
|
-
{ value: "Canada", label: "Canada" },
|
|
5
|
-
{ value: "Brazil", label: "Brazil" },
|
|
6
|
-
{ value: "Philippines", label: "Philippines" },
|
|
7
|
-
]
|
|
8
|
-
|
|
9
|
-
status_options = [
|
|
10
|
-
{ value: "open", label: "Open", id: "open" },
|
|
11
|
-
{ value: "in_progress", label: "In progress", id: "in_progress" },
|
|
12
|
-
{ value: "resolved", label: "Resolved", id: "resolved" },
|
|
13
|
-
{ value: "closed", label: "Closed", id: "closed" },
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
raw_example = params[:example]
|
|
17
|
-
example_params =
|
|
18
|
-
if raw_example.respond_to?(:permit)
|
|
19
|
-
raw_example.permit(:territory, :status, :date_range, :start_date)
|
|
20
|
-
else
|
|
21
|
-
raw_example || {}
|
|
22
|
-
end
|
|
23
|
-
current_territory = example_params[:territory].presence || "USA"
|
|
24
|
-
current_status = example_params[:status].presence || "open"
|
|
25
|
-
current_date_range = example_params[:date_range].presence || "quickpick-this-week"
|
|
26
|
-
current_start = example_params[:start_date].presence || "05/01/2026"
|
|
27
|
-
status_default = status_options.find { |o| o[:value] == current_status }
|
|
28
|
-
%>
|
|
29
|
-
|
|
30
|
-
<%=
|
|
31
|
-
pb_rails("filter", props: {
|
|
32
|
-
id: "filter-interactive-demo",
|
|
33
|
-
min_width: "360px",
|
|
34
|
-
margin_bottom: "xl",
|
|
35
|
-
template: "default",
|
|
36
|
-
results: 546,
|
|
37
|
-
filters: [
|
|
38
|
-
{ name: "Territory", value: current_territory },
|
|
39
|
-
{ name: "Status", value: current_status },
|
|
40
|
-
{ name: "Date range", value: current_date_range },
|
|
41
|
-
{ name: "Start date", value: current_start },
|
|
42
|
-
],
|
|
43
|
-
interactive_filters: [
|
|
44
|
-
{
|
|
45
|
-
name: "Territory",
|
|
46
|
-
type: "select",
|
|
47
|
-
options: territory_options,
|
|
48
|
-
target_input: "filter-interactive-territory",
|
|
49
|
-
auto_submit: true,
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
name: "Status",
|
|
53
|
-
type: "dropdown",
|
|
54
|
-
options: status_options,
|
|
55
|
-
target_input: "filter-interactive-status",
|
|
56
|
-
auto_submit: true,
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "Date range",
|
|
60
|
-
type: "dropdown",
|
|
61
|
-
variant: "quickpick",
|
|
62
|
-
target_input: "filter-interactive-date-range",
|
|
63
|
-
auto_submit: true,
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: "Start date",
|
|
67
|
-
type: "date-picker",
|
|
68
|
-
target_input: "filter-interactive-start",
|
|
69
|
-
format: "m/d/Y",
|
|
70
|
-
auto_submit: true,
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
sort_menu: [
|
|
74
|
-
{ item: "Popularity", link: "?q[sorts]=managers_popularity+asc", active: true, direction: "desc" },
|
|
75
|
-
],
|
|
76
|
-
}) do
|
|
77
|
-
%>
|
|
78
|
-
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
|
79
|
-
<%= pb_rails("select", props: {
|
|
80
|
-
label: "Territory",
|
|
81
|
-
name: "territory",
|
|
82
|
-
options: territory_options.map { |o| { value: o[:value], text: o[:label] } },
|
|
83
|
-
value: current_territory,
|
|
84
|
-
input_options: { id: "filter-interactive-territory" }
|
|
85
|
-
}) %>
|
|
86
|
-
|
|
87
|
-
<%= pb_rails("dropdown", props: {
|
|
88
|
-
id: "filter-interactive-status",
|
|
89
|
-
label: "Status",
|
|
90
|
-
name: "status",
|
|
91
|
-
options: status_options,
|
|
92
|
-
default_value: status_default,
|
|
93
|
-
margin_bottom: "sm",
|
|
94
|
-
}) %>
|
|
95
|
-
|
|
96
|
-
<%= pb_rails("dropdown", props: {
|
|
97
|
-
id: "filter-interactive-date-range",
|
|
98
|
-
label: "Date range",
|
|
99
|
-
name: "date_range",
|
|
100
|
-
variant: "quickpick",
|
|
101
|
-
margin_bottom: "sm",
|
|
102
|
-
}) %>
|
|
103
|
-
|
|
104
|
-
<%= pb_rails("date_picker", props: {
|
|
105
|
-
label: "Start date",
|
|
106
|
-
name: "start_date",
|
|
107
|
-
picker_id: "filter-interactive-start",
|
|
108
|
-
default_date: current_start,
|
|
109
|
-
}) %>
|
|
110
|
-
|
|
111
|
-
<%= form.actions do |action| %>
|
|
112
|
-
<%= action.submit props: { text: "Apply" } %>
|
|
113
|
-
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
|
114
|
-
<% end %>
|
|
115
|
-
<% end %>
|
|
116
|
-
<% end %>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Click an applied filter chip to edit it inline. `interactive_filters` supports:
|
|
2
|
-
|
|
3
|
-
- `type: 'select'` / `'dropdown'`: pick from a list of options.
|
|
4
|
-
- `type: 'date-picker'`: inline calendar. Supports `format`, `min_date`, `max_date`, and `mode`.
|
|
5
|
-
|
|
6
|
-
Each entry needs a `target_input` that points to the form control it updates. For `select` and `date-picker`, use the input's `id`. For `dropdown`, use the Dropdown kit's `id`.
|
|
7
|
-
|
|
8
|
-
For date ranges, use `type: 'dropdown'` with `variant: 'quickpick'`. The Filter kit generates the same quickpick options as Dropdown, so no `options` are needed. Values are quickpick ids, such as `quickpick-this-week`.
|
|
9
|
-
|
|
10
|
-
Chip edits update the linked control inside the filter popover. Click **Apply** to submit, then pass the submitted values back into `filters` so chips re-render with the latest labels.
|
|
11
|
-
|
|
12
|
-
Optional `auto_submit: true` on a chip entry submits the form immediately when a chip value is picked.
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
|
|
3
|
-
import Filter from "../_filter";
|
|
4
|
-
|
|
5
|
-
import Button from "../../pb_button/_button";
|
|
6
|
-
import DatePicker from "../../pb_date_picker/_date_picker";
|
|
7
|
-
import Dropdown from "../../pb_dropdown/_dropdown";
|
|
8
|
-
import Flex from "../../pb_flex/_flex";
|
|
9
|
-
import Select from "../../pb_select/_select";
|
|
10
|
-
|
|
11
|
-
const territorySelectOptions = [
|
|
12
|
-
{ value: "USA" },
|
|
13
|
-
{ value: "Canada" },
|
|
14
|
-
{ value: "Brazil" },
|
|
15
|
-
{ value: "Philippines" },
|
|
16
|
-
];
|
|
17
|
-
|
|
18
|
-
const statusDropdownOptions = [
|
|
19
|
-
{ id: "open", label: "Open", value: "open" },
|
|
20
|
-
{ id: "in_progress", label: "In progress", value: "in_progress" },
|
|
21
|
-
{ id: "resolved", label: "Resolved", value: "resolved" },
|
|
22
|
-
{ id: "closed", label: "Closed", value: "closed" },
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
const INITIAL_FILTERS = {
|
|
26
|
-
territory: "USA",
|
|
27
|
-
status: "open",
|
|
28
|
-
dateRange: "quickpick-this-week",
|
|
29
|
-
startDate: "05/01/2026",
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const statusOptionForValue = (value) =>
|
|
33
|
-
value
|
|
34
|
-
? statusDropdownOptions.find((opt) => opt.value === value)
|
|
35
|
-
: undefined;
|
|
36
|
-
|
|
37
|
-
const FilterInteractive = (props) => {
|
|
38
|
-
const [filters, setFilters] = useState(INITIAL_FILTERS);
|
|
39
|
-
|
|
40
|
-
const updateFilter = (key) => (value) =>
|
|
41
|
-
setFilters((prev) => ({ ...prev, [key]: value }));
|
|
42
|
-
|
|
43
|
-
const handleClear = () => {
|
|
44
|
-
setFilters(INITIAL_FILTERS);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
return (
|
|
48
|
-
<Filter
|
|
49
|
-
{...props}
|
|
50
|
-
filters={{
|
|
51
|
-
Territory: filters.territory,
|
|
52
|
-
Status: filters.status,
|
|
53
|
-
"Date range": filters.dateRange,
|
|
54
|
-
"Start date": filters.startDate,
|
|
55
|
-
}}
|
|
56
|
-
interactiveFilters={{
|
|
57
|
-
Territory: {
|
|
58
|
-
type: "select",
|
|
59
|
-
options: territorySelectOptions,
|
|
60
|
-
value: filters.territory,
|
|
61
|
-
onChange: updateFilter("territory"),
|
|
62
|
-
},
|
|
63
|
-
Status: {
|
|
64
|
-
type: "dropdown",
|
|
65
|
-
options: statusDropdownOptions,
|
|
66
|
-
value: filters.status,
|
|
67
|
-
onChange: updateFilter("status"),
|
|
68
|
-
},
|
|
69
|
-
"Date range": {
|
|
70
|
-
type: "dropdown",
|
|
71
|
-
variant: "quickpick",
|
|
72
|
-
value: filters.dateRange,
|
|
73
|
-
onChange: updateFilter("dateRange"),
|
|
74
|
-
},
|
|
75
|
-
"Start date": {
|
|
76
|
-
type: "date-picker",
|
|
77
|
-
value: filters.startDate,
|
|
78
|
-
onChange: updateFilter("startDate"),
|
|
79
|
-
format: "m/d/Y",
|
|
80
|
-
},
|
|
81
|
-
}}
|
|
82
|
-
minWidth="360px"
|
|
83
|
-
results={546}
|
|
84
|
-
sortOptions={{
|
|
85
|
-
popularity: "Popularity",
|
|
86
|
-
}}
|
|
87
|
-
sortValue={[{ name: "popularity", dir: "desc" }]}
|
|
88
|
-
>
|
|
89
|
-
{({ closePopover }) => (
|
|
90
|
-
<form>
|
|
91
|
-
<Select
|
|
92
|
-
{...props}
|
|
93
|
-
label="Territory"
|
|
94
|
-
name="location"
|
|
95
|
-
onChange={(e) => updateFilter("territory")(e.target.value)}
|
|
96
|
-
options={territorySelectOptions}
|
|
97
|
-
value={filters.territory}
|
|
98
|
-
/>
|
|
99
|
-
<Dropdown
|
|
100
|
-
{...props}
|
|
101
|
-
blankSelection="Select status..."
|
|
102
|
-
defaultValue={statusOptionForValue(filters.status)}
|
|
103
|
-
key={filters.status || "cleared"}
|
|
104
|
-
label="Status"
|
|
105
|
-
marginBottom="sm"
|
|
106
|
-
onSelect={(option) =>
|
|
107
|
-
updateFilter("status")(option ? option.value : "")
|
|
108
|
-
}
|
|
109
|
-
options={statusDropdownOptions}
|
|
110
|
-
/>
|
|
111
|
-
|
|
112
|
-
<Dropdown
|
|
113
|
-
{...props}
|
|
114
|
-
key={filters.dateRange || "cleared"}
|
|
115
|
-
label="Date range"
|
|
116
|
-
marginBottom="sm"
|
|
117
|
-
onSelect={(option) =>
|
|
118
|
-
updateFilter("dateRange")(option ? option.id : "")
|
|
119
|
-
}
|
|
120
|
-
variant="quickpick"
|
|
121
|
-
/>
|
|
122
|
-
|
|
123
|
-
<DatePicker
|
|
124
|
-
{...props}
|
|
125
|
-
inputValue={filters.startDate}
|
|
126
|
-
label="Start date"
|
|
127
|
-
onChange={updateFilter("startDate")}
|
|
128
|
-
pickerId="filter-panel-start-date"
|
|
129
|
-
/>
|
|
130
|
-
|
|
131
|
-
<Flex
|
|
132
|
-
{...props}
|
|
133
|
-
spacing="between"
|
|
134
|
-
>
|
|
135
|
-
<Button
|
|
136
|
-
{...props}
|
|
137
|
-
onClick={closePopover}
|
|
138
|
-
text="Apply"
|
|
139
|
-
/>
|
|
140
|
-
<Button
|
|
141
|
-
{...props}
|
|
142
|
-
onClick={handleClear}
|
|
143
|
-
text="Clear"
|
|
144
|
-
variant="secondary"
|
|
145
|
-
/>
|
|
146
|
-
</Flex>
|
|
147
|
-
</form>
|
|
148
|
-
)}
|
|
149
|
-
</Filter>
|
|
150
|
-
);
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
export default FilterInteractive;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Click an applied filter chip to edit it inline. `interactiveFilters` supports:
|
|
2
|
-
|
|
3
|
-
- `type: 'select'` / `'dropdown'`: pick from a list of options.
|
|
4
|
-
- `type: 'date-picker'`: inline calendar. Supports `format`, `minDate`, `maxDate`, and `mode`.
|
|
5
|
-
|
|
6
|
-
For date ranges, use `type: 'dropdown'` with `variant: 'quickpick'`. The Filter kit generates the same quickpick options as Dropdown, so no `options` are needed. Values are quickpick ids, such as `quickpick-this-week`.
|
|
7
|
-
|
|
8
|
-
Keep `filters`, `interactiveFilters.value`, and the filter popover fields backed by the same state so chip labels and form controls stay in sync.
|
|
9
|
-
|
|
10
|
-
On Rails, pass `interactive_filters` with `target_input` so chip picks update the linked form control. Re-read submitted params in your view after Apply so `filters` reflects the new values.
|