playbook_ui 6.4.2 → 6.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -4
- data/app/pb_kits/playbook/_playbook.scss +1 -0
- data/app/pb_kits/playbook/data/menu.yml +1 -0
- data/app/pb_kits/playbook/index.js +3 -0
- data/app/pb_kits/playbook/packs/examples.js +4 -1
- data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +6 -0
- data/app/pb_kits/playbook/pb_button/_button.jsx +1 -0
- data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -1
- data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +3 -7
- data/app/pb_kits/playbook/pb_button/docs/_button_default_dark.jsx +3 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +2 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +2 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.html.erb +2 -1
- data/app/pb_kits/playbook/pb_date/date.rb +2 -1
- data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +8 -1
- data/app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb +51 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_timezone.md +6 -0
- data/app/pb_kits/playbook/pb_date/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_date/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +39 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +149 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +33 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +85 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +165 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.md +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +12 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +24 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +30 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +43 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +48 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +19 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +25 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.md +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.html.erb +37 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.jsx +37 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.md +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.html.erb +26 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.jsx +32 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.md +3 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb +9 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +17 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.md +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +14 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +22 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.html.erb +7 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.jsx +16 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.md +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +7 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +35 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +14 -0
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +33 -0
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_day_styles.scss +53 -0
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_flatpickr_styles.scss +785 -0
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_header_styles.scss +108 -0
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_overrides.scss +44 -0
- data/app/pb_kits/playbook/pb_filter/_filter.scss +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +2 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +2 -0
- data/app/pb_kits/playbook/pb_form/form_builder.rb +1 -0
- data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +20 -0
- data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +2 -2
- data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +0 -1
- data/app/pb_kits/playbook/pb_table/table.rb +3 -3
- data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +1 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +21 -17
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +17 -8
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -0
- data/app/pb_kits/playbook/pb_time/_time.html.erb +23 -17
- data/app/pb_kits/playbook/pb_time/_time.jsx +20 -11
- data/app/pb_kits/playbook/pb_time/_time.scss +16 -8
- data/app/pb_kits/playbook/pb_time/docs/_time_align.html.erb +18 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +3 -3
- data/app/pb_kits/playbook/pb_time/docs/_time_dark.html.erb +70 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_dark.jsx +1 -6
- data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +47 -3
- data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +33 -4
- data/app/pb_kits/playbook/pb_time/docs/_time_sizes.html.erb +11 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +19 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb +3 -1
- data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +0 -7
- data/app/pb_kits/playbook/pb_time/docs/_time_timezone.html.erb +37 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +12 -14
- data/app/pb_kits/playbook/pb_time/docs/example.yml +7 -2
- data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_time/time.rb +14 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +60 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +20 -3
- data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +30 -0
- data/app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx +13 -0
- data/app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx +12 -0
- data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +51 -0
- data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +34 -0
- data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.jsx +13 -0
- data/app/pb_kits/playbook/pb_typeahead/components/ValueContainer.jsx +13 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.jsx +22 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +29 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +84 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_summary.jsx +45 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +101 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_summary.jsx +27 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +8 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +4 -0
- data/app/pb_kits/playbook/tokens/_typography.scss +3 -3
- data/app/pb_kits/playbook/vendor.js +6 -0
- data/lib/playbook/version.rb +1 -1
- metadata +73 -3
@@ -0,0 +1,48 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerDisabled = () => (
|
5
|
+
<div>
|
6
|
+
<DatePicker
|
7
|
+
disableDate={[new Date().fp_incr(1)]}
|
8
|
+
label="Disable Single Date"
|
9
|
+
pickerId="single-disabled-date"
|
10
|
+
/>
|
11
|
+
<DatePicker
|
12
|
+
disableDate={[new Date().fp_incr(1), new Date().fp_incr(3)]}
|
13
|
+
label="Disable Multiple Dates"
|
14
|
+
pickerId="multiple-disabled-dates"
|
15
|
+
/>
|
16
|
+
<DatePicker
|
17
|
+
disableRange={[
|
18
|
+
{
|
19
|
+
from: new Date().fp_incr(1),
|
20
|
+
to: new Date().fp_incr(7),
|
21
|
+
},
|
22
|
+
]}
|
23
|
+
label="Disable Single Range"
|
24
|
+
pickerId="single-date-range"
|
25
|
+
/>
|
26
|
+
<DatePicker
|
27
|
+
disableRange={[
|
28
|
+
{
|
29
|
+
from: new Date().fp_incr(1),
|
30
|
+
to: new Date().fp_incr(3),
|
31
|
+
},
|
32
|
+
{
|
33
|
+
from: new Date().fp_incr(7),
|
34
|
+
to: new Date().fp_incr(14),
|
35
|
+
},
|
36
|
+
]}
|
37
|
+
label="Disable Multiple Ranges"
|
38
|
+
pickerId="multiple-date-ranges"
|
39
|
+
/>
|
40
|
+
<DatePicker
|
41
|
+
disableWeekdays={['Sunday', 'Saturday']}
|
42
|
+
label="Disable Specific Weekdays"
|
43
|
+
pickerId="disabled-weekdays"
|
44
|
+
/>
|
45
|
+
</div>
|
46
|
+
)
|
47
|
+
|
48
|
+
export default DatePickerDisabled
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerError = () => (
|
5
|
+
<div>
|
6
|
+
<DatePicker
|
7
|
+
error="Invalid date. Please pick a valid date."
|
8
|
+
pickerId="date-picker-error"
|
9
|
+
/>
|
10
|
+
</div>
|
11
|
+
)
|
12
|
+
|
13
|
+
export default DatePickerError
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
2
|
+
format: "m-d-Y",
|
3
|
+
picker_id: "date-picker-format1"
|
4
|
+
}) %>
|
5
|
+
|
6
|
+
<%= pb_rails("date_picker", props: {
|
7
|
+
format: "m/d/y",
|
8
|
+
picker_id: "date-picker-format2"
|
9
|
+
}) %>
|
10
|
+
|
11
|
+
<%= pb_rails("date_picker", props: {
|
12
|
+
format: "n-j-y",
|
13
|
+
picker_id: "date-picker-format3"
|
14
|
+
}) %>
|
15
|
+
|
16
|
+
<%= pb_rails("date_picker", props: {
|
17
|
+
format: "Y-d-m",
|
18
|
+
picker_id: "date-picker-format4"
|
19
|
+
}) %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerFormat = () => (
|
5
|
+
<div>
|
6
|
+
<DatePicker
|
7
|
+
format="m-d-Y"
|
8
|
+
pickerId="date-picker-format1"
|
9
|
+
/>
|
10
|
+
<DatePicker
|
11
|
+
format="m/d/y"
|
12
|
+
pickerId="date-picker-format2"
|
13
|
+
/>
|
14
|
+
<DatePicker
|
15
|
+
format="n-j-y"
|
16
|
+
pickerId="date-picker-format3"
|
17
|
+
/>
|
18
|
+
<DatePicker
|
19
|
+
format="Y-d-m"
|
20
|
+
pickerId="date-picker-format4"
|
21
|
+
/>
|
22
|
+
</div>
|
23
|
+
)
|
24
|
+
|
25
|
+
export default DatePickerFormat
|
@@ -0,0 +1 @@
|
|
1
|
+
A full list of formatting tokens, i.e. `"m/d/Y"` can be found [here](https://flatpickr.js.org/formatting/).
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
2
|
+
label: "onChange",
|
3
|
+
picker_id: "date-picker-hooks-onchange"
|
4
|
+
}) %>
|
5
|
+
|
6
|
+
<%= javascript_tag do %>
|
7
|
+
window.addEventListener("DOMContentLoaded", () => {
|
8
|
+
<%# Access flatpickr instance with picker id and assign it a variable %>
|
9
|
+
const fp = document.querySelector("#date-picker-hooks-onchange")._flatpickr
|
10
|
+
|
11
|
+
<%# Define Hook %>
|
12
|
+
const changeHook = () => {
|
13
|
+
alert('date changed')
|
14
|
+
}
|
15
|
+
<%# Push one or more hooks to onChange config array %>
|
16
|
+
fp.config.onChange.push(changeHook)
|
17
|
+
})
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<%= pb_rails("date_picker", props: {
|
21
|
+
label: "onOpen",
|
22
|
+
picker_id: "date-picker-hooks-onopen"
|
23
|
+
}) %>
|
24
|
+
|
25
|
+
<%= javascript_tag do %>
|
26
|
+
window.addEventListener("DOMContentLoaded", () => {
|
27
|
+
<%# Access flatpickr instance with picker id and assign it a variable %>
|
28
|
+
const fp = document.querySelector("#date-picker-hooks-onopen")._flatpickr
|
29
|
+
|
30
|
+
<%# Define Hook %>
|
31
|
+
const openHook = () => {
|
32
|
+
alert('calendar opened')
|
33
|
+
}
|
34
|
+
<%# Push one or more hooks to onOpen config array %>
|
35
|
+
fp.config.onOpen.push(openHook)
|
36
|
+
})
|
37
|
+
<% end %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerHooks = () => {
|
5
|
+
// Define hooks
|
6
|
+
const changeHook = () => {
|
7
|
+
alert('date changed')
|
8
|
+
}
|
9
|
+
const openHook = () => {
|
10
|
+
alert('calendar opened')
|
11
|
+
}
|
12
|
+
|
13
|
+
// Access flatpickr instances with picker ids and assign them variables
|
14
|
+
window.addEventListener('DOMContentLoaded', () => {
|
15
|
+
const fpChange = document.querySelector('#date-picker-hooks-onchange')._flatpickr
|
16
|
+
const fpOpen = document.querySelector('#date-picker-hooks-onopen')._flatpickr
|
17
|
+
|
18
|
+
// Push one or more hooks to flatpickr instance's Event config arrays
|
19
|
+
fpChange.config.onChange.push(changeHook)
|
20
|
+
fpOpen.config.onOpen.push(openHook)
|
21
|
+
})
|
22
|
+
|
23
|
+
return (
|
24
|
+
<div>
|
25
|
+
<DatePicker
|
26
|
+
label="onChange"
|
27
|
+
pickerId="date-picker-hooks-onchange"
|
28
|
+
/>
|
29
|
+
<DatePicker
|
30
|
+
label="onOpen"
|
31
|
+
pickerId="date-picker-hooks-onopen"
|
32
|
+
/>
|
33
|
+
</div>
|
34
|
+
)
|
35
|
+
}
|
36
|
+
|
37
|
+
export default DatePickerHooks
|
@@ -0,0 +1 @@
|
|
1
|
+
You can find a full list of flatpickr events and hooks in their [documentation](https://flatpickr.js.org/events/).
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
2
|
+
input_aria: { label: "input-field" },
|
3
|
+
input_data: { key: "value", key2: "value2" },
|
4
|
+
name: "date-field",
|
5
|
+
picker_id: "date-picker-input1",
|
6
|
+
type: "date"
|
7
|
+
}) %>
|
8
|
+
|
9
|
+
<%= pb_rails("date_picker", props: {
|
10
|
+
default_date: "blank",
|
11
|
+
picker_id: "date-picker-input2",
|
12
|
+
placeholder: "Select Date",
|
13
|
+
}) %>
|
14
|
+
|
15
|
+
<%= pb_rails("date_picker", props: {
|
16
|
+
default_date: "blank",
|
17
|
+
disable_input: true,
|
18
|
+
picker_id: "date-picker-input3",
|
19
|
+
placeholder: "Disabled Input"
|
20
|
+
}) %>
|
21
|
+
|
22
|
+
<%= pb_rails("date_picker", props: {
|
23
|
+
dark: true,
|
24
|
+
hide_label: true,
|
25
|
+
picker_id: "date-picker-input4"
|
26
|
+
}) %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerInput = () => (
|
5
|
+
<div>
|
6
|
+
<DatePicker
|
7
|
+
inputAria={{ label: 'input-field' }}
|
8
|
+
inputData={{ key: 'value', key2: 'value2' }}
|
9
|
+
name="date-field"
|
10
|
+
pickerId="date-picker-input1"
|
11
|
+
type="date"
|
12
|
+
/>
|
13
|
+
<DatePicker
|
14
|
+
defaultDate="blank"
|
15
|
+
pickerId="date-picker-input2"
|
16
|
+
placeholder="Select Date"
|
17
|
+
/>
|
18
|
+
<DatePicker
|
19
|
+
defaultDate="blank"
|
20
|
+
disableInput
|
21
|
+
pickerId="date-picker-input3"
|
22
|
+
placeholder="Disabled Input"
|
23
|
+
/>
|
24
|
+
<DatePicker
|
25
|
+
dark
|
26
|
+
hideLabel
|
27
|
+
pickerId="date-picker-input4"
|
28
|
+
/>
|
29
|
+
</div>
|
30
|
+
)
|
31
|
+
|
32
|
+
export default DatePickerInput
|
@@ -0,0 +1,3 @@
|
|
1
|
+
The date picker is built with the text input kit. Text input props you pass to the date picker kit will be forwarded to the input, with a few exceptions. The `value` attribute is automatically handled and bound to whatever date string is contained by the input field. You cannot pass a custom value prop. `id` props passed to the date picker kit will be assigned to it's parent/wrapper div. The `pickerId` prop is passed directly to the input and is required to instatiate the date picker.
|
2
|
+
|
3
|
+
You must use `inputAria` or `input_aria` and `inputData` or `input_data` props if you wish to pass data or aria attributes to the text input kit. If you use `data` or `aria` props they will be passed to the date picker kit itself instead. Also be aware the default behavior of text input aria and data props is to pass those props to attributes on the wrapping div not on the input itself.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerLabel = () => (
|
5
|
+
<div>
|
6
|
+
<DatePicker
|
7
|
+
label="Your Label Here"
|
8
|
+
pickerId="date-picker-label"
|
9
|
+
/>
|
10
|
+
<DatePicker
|
11
|
+
hideLabel
|
12
|
+
pickerId="date-picker-hide-label"
|
13
|
+
/>
|
14
|
+
</div>
|
15
|
+
)
|
16
|
+
|
17
|
+
export default DatePickerLabel
|
@@ -0,0 +1 @@
|
|
1
|
+
Default label prop is `"Date Picker"`. To remove the label set the `hideLabel` prop in React or the `hide_label` prop in Rails to `true`.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
2
|
+
label: "Dynamic dates",
|
3
|
+
max_date: (Date.today + 3).httpdate,
|
4
|
+
min_date: (Date.today - 3).httpdate,
|
5
|
+
picker_id: "date-picker-min-max1"
|
6
|
+
}) %>
|
7
|
+
|
8
|
+
<%= pb_rails("date_picker", props: {
|
9
|
+
format: "m/d/Y",
|
10
|
+
label: "Absolute formatted dates",
|
11
|
+
max_date: "10/20/2020",
|
12
|
+
min_date: "10/10/2020",
|
13
|
+
picker_id: "date-picker-min-max2"
|
14
|
+
}) %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerMinMax = () => (
|
5
|
+
<div>
|
6
|
+
<DatePicker
|
7
|
+
label="Dynamic dates using flatpickr increment function"
|
8
|
+
maxDate={new Date().fp_incr(3)}
|
9
|
+
minDate={new Date().fp_incr(-3)}
|
10
|
+
pickerId="date-picker-min-max1"
|
11
|
+
/>
|
12
|
+
<DatePicker
|
13
|
+
format="m/d/Y"
|
14
|
+
label="Absolute formatted dates"
|
15
|
+
maxDate="10/20/2020"
|
16
|
+
minDate="10/10/2020"
|
17
|
+
pickerId="date-picker-min-max2"
|
18
|
+
/>
|
19
|
+
</div>
|
20
|
+
)
|
21
|
+
|
22
|
+
export default DatePickerMinMax
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { DatePicker } from '../../'
|
3
|
+
|
4
|
+
const DatePickerYearRange = () => (
|
5
|
+
<div>
|
6
|
+
<DatePicker
|
7
|
+
defaultDate="05/05/2015"
|
8
|
+
maxDate="12/31/2018"
|
9
|
+
minDate="01/01/2015"
|
10
|
+
pickerId="date-picker-year-range"
|
11
|
+
yearRange={[2015, 2018]}
|
12
|
+
/>
|
13
|
+
</div>
|
14
|
+
)
|
15
|
+
|
16
|
+
export default DatePickerYearRange
|
@@ -0,0 +1 @@
|
|
1
|
+
Defaults to `[1900, 2100]`. Combine with min-max prop for best results.
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Playbook's date picker is built using [flatpickr](https://flatpickr.js.org/), a vanilla js library. Common date picker use cases and features have been adapted into simple prop based configuration detailed in the docs below. You can implement additional features and functionality by accessing a flatpickr instance directly. This is done with the following code.
|
2
|
+
|
3
|
+
`const fpInstance = document.querySelector('#pickerId')._flatpickr`
|
4
|
+
|
5
|
+
`pickerId` is a prop passed to the date picker kit. Flatpickr uses this id to target an input and attach a flatpickr instance to that input.
|
6
|
+
|
7
|
+
To learn more [visit flatpickr's docs](https://flatpickr.js.org/instance-methods-properties-elements/) or see the hook doc section below for an applied example.
|
@@ -0,0 +1,35 @@
|
|
1
|
+
examples:
|
2
|
+
|
3
|
+
rails:
|
4
|
+
- date_picker_default: Default
|
5
|
+
- date_picker_hide_icon: Hide Input Icon
|
6
|
+
- date_picker_default_date: Default Date
|
7
|
+
- date_picker_input: Input Field
|
8
|
+
- date_picker_label: Label
|
9
|
+
- date_picker_range: Range
|
10
|
+
- date_picker_format: Format
|
11
|
+
- date_picker_disabled: Disabled Dates
|
12
|
+
- date_picker_min_max: Min Max
|
13
|
+
- date_picker_error: Error
|
14
|
+
- date_picker_hooks: Hooks
|
15
|
+
# - date_picker_allow_input: Allow Input
|
16
|
+
- date_picker_year_range: Year Range
|
17
|
+
- date_picker_dark: Dark
|
18
|
+
|
19
|
+
|
20
|
+
react:
|
21
|
+
- date_picker_default: Default
|
22
|
+
- date_picker_hide_icon: Hide Input Icon
|
23
|
+
- date_picker_default_date: Default Date
|
24
|
+
- date_picker_input: Input Field
|
25
|
+
- date_picker_label: Label
|
26
|
+
- date_picker_range: Range
|
27
|
+
- date_picker_format: Format
|
28
|
+
- date_picker_disabled: Disabled Dates
|
29
|
+
- date_picker_min_max: Min Max
|
30
|
+
- date_picker_error: Error
|
31
|
+
- date_picker_hooks: Hooks
|
32
|
+
# - date_picker_allow_input: Allow Input
|
33
|
+
- date_picker_year_range: Year Range
|
34
|
+
- date_picker_dark: Dark
|
35
|
+
|