playbook_ui 16.7.0 → 16.8.0.pre.rc.0
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/docs/_playground.json +13 -17
- data/app/pb_kits/playbook/pb_date/docs/_playground.overrides.json +13 -16
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +22 -3
- data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +10 -7
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +14 -1
- data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +57 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.html.erb +0 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.jsx +0 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +136 -42
- data/app/pb_kits/playbook/pb_date_picker/docs/_playground.overrides.json +113 -45
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.json +48 -6
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.overrides.json +57 -0
- data/app/pb_kits/playbook/pb_date_range_stacked/docs/_playground.json +28 -5
- data/app/pb_kits/playbook/pb_date_range_stacked/docs/_playground.overrides.json +38 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_playground.json +1 -1
- data/app/pb_kits/playbook/pb_date_stacked/docs/_playground.overrides.json +1 -1
- data/app/pb_kits/playbook/pb_date_time/docs/_playground.json +16 -3
- data/app/pb_kits/playbook/pb_date_time/docs/_playground.overrides.json +16 -3
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.json +11 -15
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.overrides.json +11 -15
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_playground.json +4 -4
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_playground.overrides.json +4 -4
- data/app/pb_kits/playbook/pb_detail/docs/_playground.json +12 -18
- data/app/pb_kits/playbook/pb_detail/docs/_playground.overrides.json +13 -12
- data/app/pb_kits/playbook/pb_dialog/docs/_playground.json +108 -42
- data/app/pb_kits/playbook/pb_dialog/docs/_playground.overrides.json +88 -40
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.json +65 -7
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.overrides.json +45 -0
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +58 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +318 -21
- data/app/pb_kits/playbook/pb_dropdown/docs/_playground.overrides.json +192 -19
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +2 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +7 -1
- data/app/pb_kits/playbook/pb_empty_state/docs/_playground.json +77 -12
- data/app/pb_kits/playbook/pb_empty_state/docs/_playground.overrides.json +79 -0
- data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +98 -13
- data/app/pb_kits/playbook/pb_file_upload/docs/_playground.overrides.json +99 -0
- data/app/pb_kits/playbook/pb_link/docs/_playground.json +81 -40
- data/app/pb_kits/playbook/pb_link/docs/_playground.overrides.json +88 -30
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +4 -2
- data/app/pb_kits/playbook/pb_select/select.rb +9 -0
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +9 -0
- data/app/pb_kits/playbook/pb_title/docs/_playground.json +72 -23
- data/app/pb_kits/playbook/pb_title/docs/_playground.overrides.json +80 -16
- data/dist/chunks/{_pb_line_graph-CIWJe3Gr.js → _pb_line_graph-D7f-RfJJ.js} +1 -1
- data/dist/chunks/_typeahead-Cl5cZ7Hz.js +1 -0
- data/dist/chunks/{globalProps-CqO4Tko1.js → globalProps-BwwZkfTI.js} +1 -1
- data/dist/chunks/{lib-czQnE40X.js → lib-Ch18RlJa.js} +2 -2
- data/dist/chunks/vendor.js +4 -4
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/lib/playbook/version.rb +2 -2
- metadata +11 -6
- data/dist/chunks/_typeahead-B_Ac4z84.js +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bf26b3a5bc84db3c0723985d97147839159d420ec7ea3041a24ce948eb307702
|
|
4
|
+
data.tar.gz: 6aabd8a4a3b3d75c8fd5bdf423caefbfbee870867a44efd283cd5e5300a13ad0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 183ca9c2fc15ecde3a04ccb900578161d4a6941c096fb7ccac1fd122f4bb9873058d510a56be5fa775504b0da702b3a65ea7f9c8f3f84b37ab5e9d0242f2a563
|
|
7
|
+
data.tar.gz: 5d44fe619ba3ab8ac29b60e45d0d365a13314c4928bf9de29128179cf6fc18ed747b1e91864c27bcb6223fd9d21d87a6a35f31345a202d98de5ff579da747ff0
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"template": "<
|
|
2
|
+
"template": "<FormattedDate{{props}} />",
|
|
3
3
|
"propTargets": {},
|
|
4
4
|
"defaults": {
|
|
5
5
|
"alignment": "left",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"groups": [
|
|
13
13
|
{
|
|
14
|
-
"name": "
|
|
14
|
+
"name": "Date Config",
|
|
15
15
|
"props": [
|
|
16
16
|
"value",
|
|
17
17
|
"showDayOfWeek",
|
|
@@ -32,21 +32,20 @@
|
|
|
32
32
|
{
|
|
33
33
|
"name": "Default",
|
|
34
34
|
"props": {
|
|
35
|
-
"value": "2026-04-
|
|
35
|
+
"value": "2026-04-09"
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
"name": "
|
|
39
|
+
"name": "centered",
|
|
40
40
|
"props": {
|
|
41
|
-
"value": "2026-04-
|
|
42
|
-
"size": "lg",
|
|
41
|
+
"value": "2026-04-09",
|
|
43
42
|
"alignment": "center"
|
|
44
43
|
}
|
|
45
44
|
},
|
|
46
45
|
{
|
|
47
46
|
"name": "Small with weekday",
|
|
48
47
|
"props": {
|
|
49
|
-
"value": "2026-06-
|
|
48
|
+
"value": "2026-06-18",
|
|
50
49
|
"size": "sm",
|
|
51
50
|
"showDayOfWeek": true
|
|
52
51
|
}
|
|
@@ -54,20 +53,17 @@
|
|
|
54
53
|
{
|
|
55
54
|
"name": "With icon & year",
|
|
56
55
|
"props": {
|
|
57
|
-
"value": "2024-11-
|
|
56
|
+
"value": "2024-11-02",
|
|
58
57
|
"showIcon": true,
|
|
59
58
|
"showCurrentYear": true
|
|
60
59
|
}
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"name": "Unstyled",
|
|
64
|
-
"props": {
|
|
65
|
-
"value": "2026-04-09T15:30:00.000Z",
|
|
66
|
-
"unstyled": true,
|
|
67
|
-
"showDayOfWeek": true
|
|
68
|
-
}
|
|
69
60
|
}
|
|
70
61
|
],
|
|
71
62
|
"conditionals": {},
|
|
72
|
-
"hints": {
|
|
63
|
+
"hints": {
|
|
64
|
+
"default": {
|
|
65
|
+
"message": "Use as FormattedDate to avoid naming collisions with global Date object",
|
|
66
|
+
"type": "info"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
73
69
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
+
"template": "<FormattedDate{{props}} />",
|
|
2
3
|
"groups": [
|
|
3
4
|
{
|
|
4
|
-
"name": "
|
|
5
|
+
"name": "Date Config",
|
|
5
6
|
"props": ["value", "showDayOfWeek", "showCurrentYear", "showIcon"]
|
|
6
7
|
},
|
|
7
8
|
{
|
|
@@ -13,21 +14,20 @@
|
|
|
13
14
|
{
|
|
14
15
|
"name": "Default",
|
|
15
16
|
"props": {
|
|
16
|
-
"value": "2026-04-
|
|
17
|
+
"value": "2026-04-09"
|
|
17
18
|
}
|
|
18
19
|
},
|
|
19
20
|
{
|
|
20
|
-
"name": "
|
|
21
|
+
"name": "centered",
|
|
21
22
|
"props": {
|
|
22
|
-
"value": "2026-04-
|
|
23
|
-
"size": "lg",
|
|
23
|
+
"value": "2026-04-09",
|
|
24
24
|
"alignment": "center"
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
"name": "Small with weekday",
|
|
29
29
|
"props": {
|
|
30
|
-
"value": "2026-06-
|
|
30
|
+
"value": "2026-06-18",
|
|
31
31
|
"size": "sm",
|
|
32
32
|
"showDayOfWeek": true
|
|
33
33
|
}
|
|
@@ -35,20 +35,17 @@
|
|
|
35
35
|
{
|
|
36
36
|
"name": "With icon & year",
|
|
37
37
|
"props": {
|
|
38
|
-
"value": "2024-11-
|
|
38
|
+
"value": "2024-11-02",
|
|
39
39
|
"showIcon": true,
|
|
40
40
|
"showCurrentYear": true
|
|
41
41
|
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"name": "Unstyled",
|
|
45
|
-
"props": {
|
|
46
|
-
"value": "2026-04-09T15:30:00.000Z",
|
|
47
|
-
"unstyled": true,
|
|
48
|
-
"showDayOfWeek": true
|
|
49
|
-
}
|
|
50
42
|
}
|
|
51
43
|
],
|
|
52
44
|
"conditionals": {},
|
|
53
|
-
"hints": {
|
|
45
|
+
"hints": {
|
|
46
|
+
"default": {
|
|
47
|
+
"message": "Use as FormattedDate to avoid naming collisions with global Date object",
|
|
48
|
+
"type": "info"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
54
51
|
}
|
|
@@ -12,6 +12,20 @@ import Caption from '../pb_caption/_caption'
|
|
|
12
12
|
import Body from '../pb_body/_body'
|
|
13
13
|
import colors from "../tokens/exports/_colors.module.scss"
|
|
14
14
|
|
|
15
|
+
function serializeDefaultDateForFilterReset(defaultDate: unknown): string | undefined {
|
|
16
|
+
if (defaultDate === '' || defaultDate == null) return undefined
|
|
17
|
+
if (Array.isArray(defaultDate)) {
|
|
18
|
+
const parts = defaultDate.map((d) => {
|
|
19
|
+
if (d == null || d === '') return ''
|
|
20
|
+
if (d instanceof Date) return d.toISOString()
|
|
21
|
+
return String(d)
|
|
22
|
+
}).filter(Boolean)
|
|
23
|
+
return parts.length ? parts.join(',') : undefined
|
|
24
|
+
}
|
|
25
|
+
if (defaultDate instanceof Date) return defaultDate.toISOString()
|
|
26
|
+
return String(defaultDate)
|
|
27
|
+
}
|
|
28
|
+
|
|
15
29
|
type DatePickerProps = {
|
|
16
30
|
allowInput?: boolean,
|
|
17
31
|
aria?: { [key: string]: string },
|
|
@@ -113,7 +127,11 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
113
127
|
} = props
|
|
114
128
|
|
|
115
129
|
const ariaProps = buildAriaProps(aria)
|
|
116
|
-
const
|
|
130
|
+
const filterResetDefaultSerialized = serializeDefaultDateForFilterReset(defaultDate)
|
|
131
|
+
const dataProps = buildDataProps({
|
|
132
|
+
...data,
|
|
133
|
+
...(filterResetDefaultSerialized ? { 'default-value': filterResetDefaultSerialized } : {}),
|
|
134
|
+
})
|
|
117
135
|
const htmlProps = buildHtmlProps(htmlOptions)
|
|
118
136
|
const inputAriaProps = buildAriaProps(inputAria)
|
|
119
137
|
const inputDataProps = buildDataProps(inputData)
|
|
@@ -180,6 +198,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
180
198
|
//@ts-ignore
|
|
181
199
|
globalProps(filteredProps),
|
|
182
200
|
error ? 'error' : null,
|
|
201
|
+
inLine && 'inline-date-picker',
|
|
183
202
|
className
|
|
184
203
|
)
|
|
185
204
|
|
|
@@ -262,7 +281,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
262
281
|
}
|
|
263
282
|
</div>
|
|
264
283
|
|
|
265
|
-
{!hideIcon &&
|
|
284
|
+
{!hideIcon && !inLine &&
|
|
266
285
|
<div
|
|
267
286
|
className={iconWrapperClass()}
|
|
268
287
|
id={`cal-icon-${pickerId}`}
|
|
@@ -274,7 +293,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
274
293
|
</div>
|
|
275
294
|
}
|
|
276
295
|
|
|
277
|
-
{
|
|
296
|
+
{inLine ?
|
|
278
297
|
<div>
|
|
279
298
|
<div
|
|
280
299
|
className={`${iconWrapperClass()} date-picker-inline-icon-plus`}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
<% date_picker_root_attrs = {
|
|
2
|
+
class: object.classname + object.error_class,
|
|
3
|
+
'data-pb-date-picker' => true,
|
|
4
|
+
'data-validation-message' => object.validation_message,
|
|
5
|
+
}
|
|
6
|
+
date_picker_root_attrs['data-default-value'] = object.serialized_default_date_for_dom if object.serialized_default_date_for_dom.present?
|
|
7
|
+
%>
|
|
8
|
+
<%= pb_content_tag(:div, date_picker_root_attrs) do %>
|
|
6
9
|
<div class="input_wrapper">
|
|
7
10
|
<% if !object.hide_label && object.label %>
|
|
8
11
|
<label for="<%= object.picker_id %>">
|
|
@@ -39,7 +42,7 @@
|
|
|
39
42
|
<input type="hidden" id="<%= "#{object.end_date_id}" %>" name="<%= "#{object.end_date_name}" %>">
|
|
40
43
|
<% end %>
|
|
41
44
|
|
|
42
|
-
<% if !object.hide_icon %>
|
|
45
|
+
<% if !object.hide_icon && !object.inline %>
|
|
43
46
|
<div
|
|
44
47
|
class="<%= object.icon_wrapper_class %>"
|
|
45
48
|
id="cal-icon-<%= object.picker_id %>"
|
|
@@ -52,7 +55,7 @@
|
|
|
52
55
|
<% end %>
|
|
53
56
|
|
|
54
57
|
<!-- Inline -->
|
|
55
|
-
<% if object.
|
|
58
|
+
<% if object.inline %>
|
|
56
59
|
<!-- Plus Icon -->
|
|
57
60
|
<div
|
|
58
61
|
class="<%= object.icon_wrapper_class %> date-picker-inline-icon-plus"
|
|
@@ -92,7 +92,8 @@ module Playbook
|
|
|
92
92
|
|
|
93
93
|
def classname
|
|
94
94
|
default_margin_bottom = margin_bottom.present? ? "" : " mb_sm"
|
|
95
|
-
|
|
95
|
+
inline_class = inline ? " inline-date-picker" : ""
|
|
96
|
+
generate_classname("pb_date_picker_kit") + default_margin_bottom + inline_class
|
|
96
97
|
end
|
|
97
98
|
|
|
98
99
|
def date_picker_config
|
|
@@ -144,6 +145,18 @@ module Playbook
|
|
|
144
145
|
def angle_down_path
|
|
145
146
|
"app/pb_kits/playbook/utilities/icons/angle-down.svg"
|
|
146
147
|
end
|
|
148
|
+
|
|
149
|
+
# Serialized business default for opt-in smart filter reset (Nitro / data-default-value).
|
|
150
|
+
def serialized_default_date_for_dom
|
|
151
|
+
case default_date
|
|
152
|
+
when nil, ""
|
|
153
|
+
nil
|
|
154
|
+
when Array
|
|
155
|
+
default_date.compact_blank.map(&:to_s).join(",")
|
|
156
|
+
else
|
|
157
|
+
default_date.to_s.presence
|
|
158
|
+
end
|
|
159
|
+
end
|
|
147
160
|
end
|
|
148
161
|
end
|
|
149
162
|
end
|
|
@@ -40,6 +40,63 @@ describe('DatePicker Kit', () => {
|
|
|
40
40
|
expect(kit).toHaveClass('pb_date_picker_kit mb_sm')
|
|
41
41
|
})
|
|
42
42
|
|
|
43
|
+
test('exposes data-default-value on kit root when defaultDate is set', () => {
|
|
44
|
+
const testId = 'datepicker-def-attr'
|
|
45
|
+
render(
|
|
46
|
+
<DatePicker
|
|
47
|
+
data={{ testid: testId }}
|
|
48
|
+
defaultDate={DEFAULT_DATE}
|
|
49
|
+
pickerId="date-picker-def-attr"
|
|
50
|
+
/>
|
|
51
|
+
)
|
|
52
|
+
const kit = screen.getByTestId(testId)
|
|
53
|
+
expect(kit).toHaveAttribute('data-default-value', DEFAULT_DATE.toISOString())
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
test('omits data-default-value when defaultDate is empty', () => {
|
|
57
|
+
const testId = 'datepicker-no-def-attr'
|
|
58
|
+
render(
|
|
59
|
+
<DatePicker
|
|
60
|
+
data={{ testid: testId }}
|
|
61
|
+
defaultDate=""
|
|
62
|
+
pickerId="date-picker-no-def-attr"
|
|
63
|
+
/>
|
|
64
|
+
)
|
|
65
|
+
const kit = screen.getByTestId(testId)
|
|
66
|
+
expect(kit).not.toHaveAttribute('data-default-value')
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
test('inLine alone adds inline-date-picker class and inline control icons, not the calendar icon', () => {
|
|
70
|
+
const testId = 'datepicker-inline-only'
|
|
71
|
+
render(
|
|
72
|
+
<DatePicker
|
|
73
|
+
data={{ testid: testId }}
|
|
74
|
+
inLine
|
|
75
|
+
pickerId="date-picker-inline-only"
|
|
76
|
+
/>
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
const kit = screen.getByTestId(testId)
|
|
80
|
+
expect(kit).toHaveClass('inline-date-picker')
|
|
81
|
+
expect(kit.querySelector('#cal-icon-date-picker-inline-only')).not.toBeInTheDocument()
|
|
82
|
+
expect(kit.querySelector('#date-picker-inline-only-icon-plus')).toBeInTheDocument()
|
|
83
|
+
expect(kit.querySelector('#date-picker-inline-only-angle-down')).toBeInTheDocument()
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
test('hideIcon without inLine does not render inline control icons', () => {
|
|
87
|
+
const testId = 'datepicker-hide-icon-only'
|
|
88
|
+
render(
|
|
89
|
+
<DatePicker
|
|
90
|
+
data={{ testid: testId }}
|
|
91
|
+
hideIcon
|
|
92
|
+
pickerId="date-picker-hide-icon-only"
|
|
93
|
+
/>
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
const kit = screen.getByTestId(testId)
|
|
97
|
+
expect(kit.querySelector('#date-picker-hide-icon-only-icon-plus')).not.toBeInTheDocument()
|
|
98
|
+
})
|
|
99
|
+
|
|
43
100
|
test('shows DatePicker date format m/d/Y', async () => {
|
|
44
101
|
const testId = 'datepicker-date'
|
|
45
102
|
render(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"template": "<DatePicker{{props}} />",
|
|
2
|
+
"template": "<DatePicker {{props}} />",
|
|
3
3
|
"propTargets": {},
|
|
4
4
|
"defaults": {
|
|
5
5
|
"allowInput": false,
|
|
@@ -19,11 +19,23 @@
|
|
|
19
19
|
"controlsStartId": "",
|
|
20
20
|
"controlsEndId": "",
|
|
21
21
|
"syncStartWith": "",
|
|
22
|
-
"syncEndWith": ""
|
|
22
|
+
"syncEndWith": "",
|
|
23
|
+
"customQuickPickDates": {
|
|
24
|
+
"override": false,
|
|
25
|
+
"dates": []
|
|
26
|
+
},
|
|
27
|
+
"pickerId": "playground-date-picker",
|
|
28
|
+
"disableDate": [],
|
|
29
|
+
"disableRange": [],
|
|
30
|
+
"disableWeekdays": [],
|
|
31
|
+
"yearRange": [
|
|
32
|
+
1900,
|
|
33
|
+
2100
|
|
34
|
+
]
|
|
23
35
|
},
|
|
24
36
|
"groups": [
|
|
25
37
|
{
|
|
26
|
-
"name": "
|
|
38
|
+
"name": "Date Picker Config",
|
|
27
39
|
"props": [
|
|
28
40
|
"label",
|
|
29
41
|
"placeholder",
|
|
@@ -36,11 +48,18 @@
|
|
|
36
48
|
{
|
|
37
49
|
"name": "Appearance",
|
|
38
50
|
"props": [
|
|
51
|
+
"dark",
|
|
39
52
|
"hideIcon",
|
|
40
53
|
"hideLabel",
|
|
41
|
-
"inLine"
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
"inLine"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "Quick pick",
|
|
59
|
+
"props": [
|
|
60
|
+
"selectionType",
|
|
61
|
+
"customQuickPickDates",
|
|
62
|
+
"thisRangesEndToday"
|
|
44
63
|
]
|
|
45
64
|
},
|
|
46
65
|
{
|
|
@@ -69,20 +88,12 @@
|
|
|
69
88
|
{
|
|
70
89
|
"name": "Advanced",
|
|
71
90
|
"props": [
|
|
72
|
-
"customQuickPickDates",
|
|
73
|
-
"positionElement",
|
|
74
|
-
"scrollContainer",
|
|
75
91
|
"inputValue",
|
|
76
92
|
"inputOnChange",
|
|
77
93
|
"inputAria",
|
|
78
94
|
"inputData",
|
|
79
95
|
"type",
|
|
80
|
-
"timeFormat"
|
|
81
|
-
"thisRangesEndToday",
|
|
82
|
-
"controlsStartId",
|
|
83
|
-
"controlsEndId",
|
|
84
|
-
"syncStartWith",
|
|
85
|
-
"syncEndWith"
|
|
96
|
+
"timeFormat"
|
|
86
97
|
]
|
|
87
98
|
}
|
|
88
99
|
],
|
|
@@ -93,20 +104,57 @@
|
|
|
93
104
|
"name": "event_date",
|
|
94
105
|
"pickerId": "playground-date-picker",
|
|
95
106
|
"label": "Event date",
|
|
96
|
-
"placeholder": "Select date"
|
|
97
|
-
"defaultDate": "04/09/2026",
|
|
98
|
-
"format": "m/d/Y"
|
|
107
|
+
"placeholder": "Select date"
|
|
99
108
|
}
|
|
100
109
|
},
|
|
101
110
|
{
|
|
102
|
-
"name": "Inline
|
|
111
|
+
"name": "Inline",
|
|
103
112
|
"props": {
|
|
104
113
|
"name": "inline_date",
|
|
105
114
|
"pickerId": "playground-date-inline",
|
|
106
115
|
"label": "Inline",
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
|
|
116
|
+
"inLine": true
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "Quick pick",
|
|
121
|
+
"props": {
|
|
122
|
+
"name": "quickpick_range",
|
|
123
|
+
"pickerId": "playground-quickpick",
|
|
124
|
+
"label": "Date range",
|
|
125
|
+
"placeholder": "mm/dd/yyyy to mm/dd/yyyy",
|
|
126
|
+
"allowInput": true,
|
|
127
|
+
"selectionType": "quickpick"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "Quick pick with Custom Dates",
|
|
132
|
+
"props": {
|
|
133
|
+
"name": "quickpick_range",
|
|
134
|
+
"pickerId": "playground-quickpick",
|
|
135
|
+
"label": "Date range",
|
|
136
|
+
"placeholder": "mm/dd/yyyy to mm/dd/yyyy",
|
|
137
|
+
"allowInput": true,
|
|
138
|
+
"selectionType": "quickpick",
|
|
139
|
+
"customQuickPickDates": {
|
|
140
|
+
"override": false,
|
|
141
|
+
"dates": [
|
|
142
|
+
{
|
|
143
|
+
"label": "Last 15 months",
|
|
144
|
+
"value": {
|
|
145
|
+
"timePeriod": "months",
|
|
146
|
+
"amount": 15
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"label": "First week of June 2022",
|
|
151
|
+
"value": [
|
|
152
|
+
"06/01/2022",
|
|
153
|
+
"06/07/2022"
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
110
158
|
}
|
|
111
159
|
},
|
|
112
160
|
{
|
|
@@ -115,7 +163,6 @@
|
|
|
115
163
|
"name": "starts_at",
|
|
116
164
|
"pickerId": "playground-datetime",
|
|
117
165
|
"label": "Starts at",
|
|
118
|
-
"defaultDate": "04/09/2026",
|
|
119
166
|
"enableTime": true,
|
|
120
167
|
"format": "m/d/Y H:i"
|
|
121
168
|
}
|
|
@@ -126,8 +173,7 @@
|
|
|
126
173
|
"name": "typed_date",
|
|
127
174
|
"pickerId": "playground-allow-input",
|
|
128
175
|
"label": "Start date",
|
|
129
|
-
"allowInput": true
|
|
130
|
-
"defaultDate": "04/09/2026"
|
|
176
|
+
"allowInput": true
|
|
131
177
|
}
|
|
132
178
|
},
|
|
133
179
|
{
|
|
@@ -136,8 +182,25 @@
|
|
|
136
182
|
"name": "month_only",
|
|
137
183
|
"pickerId": "playground-month",
|
|
138
184
|
"label": "Month",
|
|
139
|
-
"selectionType": "month"
|
|
140
|
-
|
|
185
|
+
"selectionType": "month"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "Week picker",
|
|
190
|
+
"props": {
|
|
191
|
+
"name": "week_only",
|
|
192
|
+
"pickerId": "playground-week",
|
|
193
|
+
"label": "Week",
|
|
194
|
+
"selectionType": "week"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"name": "Dark",
|
|
199
|
+
"props": {
|
|
200
|
+
"name": "dark_picker",
|
|
201
|
+
"pickerId": "playground-dark",
|
|
202
|
+
"label": "Event date",
|
|
203
|
+
"dark": true
|
|
141
204
|
}
|
|
142
205
|
},
|
|
143
206
|
{
|
|
@@ -146,7 +209,6 @@
|
|
|
146
209
|
"name": "bounded",
|
|
147
210
|
"pickerId": "playground-bounded",
|
|
148
211
|
"label": "Within range",
|
|
149
|
-
"defaultDate": "04/09/2026",
|
|
150
212
|
"minDate": "01/01/2026",
|
|
151
213
|
"maxDate": "12/31/2026"
|
|
152
214
|
}
|
|
@@ -157,22 +219,54 @@
|
|
|
157
219
|
"name": "invalid_date",
|
|
158
220
|
"pickerId": "playground-error",
|
|
159
221
|
"label": "Due date",
|
|
160
|
-
"error": "Please choose a valid date"
|
|
161
|
-
|
|
222
|
+
"error": "Please choose a valid date"
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
"conditionals": {
|
|
227
|
+
"customQuickPickDates": {
|
|
228
|
+
"requires": {
|
|
229
|
+
"selectionType": "quickpick"
|
|
162
230
|
}
|
|
163
231
|
},
|
|
164
|
-
{
|
|
165
|
-
"
|
|
166
|
-
|
|
167
|
-
"name": "compact_date",
|
|
168
|
-
"pickerId": "playground-minimal",
|
|
169
|
-
"label": "",
|
|
170
|
-
"hideLabel": true,
|
|
171
|
-
"hideIcon": true,
|
|
172
|
-
"defaultDate": "04/09/2026"
|
|
232
|
+
"thisRangesEndToday": {
|
|
233
|
+
"requires": {
|
|
234
|
+
"selectionType": "quickpick"
|
|
173
235
|
}
|
|
174
236
|
}
|
|
175
|
-
|
|
176
|
-
"
|
|
177
|
-
|
|
237
|
+
},
|
|
238
|
+
"hints": {
|
|
239
|
+
"pickerId": {
|
|
240
|
+
"message": "The pickerId is used to identify the date picker in the DOM. It is required and must be unique.",
|
|
241
|
+
"type": "info"
|
|
242
|
+
},
|
|
243
|
+
"defaultDate": {
|
|
244
|
+
"when": {
|
|
245
|
+
"defaultDate": "04/09/2026"
|
|
246
|
+
},
|
|
247
|
+
"message": "The default date is the date that will be selected when the date picker is first rendered. It is required and must be a valid date.",
|
|
248
|
+
"type": "info"
|
|
249
|
+
},
|
|
250
|
+
"quickPick": {
|
|
251
|
+
"when": {
|
|
252
|
+
"selectionType": "quickpick"
|
|
253
|
+
},
|
|
254
|
+
"message": "Quick pick shows preset ranges (relative periods or explicit date pairs). Use thisRangesEndToday when the plugin should treat ranges as ending today.",
|
|
255
|
+
"type": "info"
|
|
256
|
+
},
|
|
257
|
+
"customQuickPickDates": {
|
|
258
|
+
"presetName": "Quick pick with Custom Dates",
|
|
259
|
+
"message": "Custom quick pick dates are used to override the default quick pick dates. It must be an object with a dates array.",
|
|
260
|
+
"type": "info"
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"hiddenProps": [
|
|
264
|
+
"staticPosition",
|
|
265
|
+
"scrollContainer",
|
|
266
|
+
"controlsStartId",
|
|
267
|
+
"controlsEndId",
|
|
268
|
+
"syncStartWith",
|
|
269
|
+
"syncEndWith",
|
|
270
|
+
"positionElement"
|
|
271
|
+
]
|
|
178
272
|
}
|