playbook_ui 7.8.2 → 7.11.0.pre.alpha1

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 (110) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/playbook/application_controller.rb +5 -3
  3. data/app/helpers/playbook/application_helper.rb +13 -19
  4. data/app/helpers/playbook/pb_doc_helper.rb +41 -20
  5. data/app/helpers/playbook/pb_kit_helper.rb +1 -25
  6. data/app/helpers/playbook/pb_sample_helper.rb +24 -23
  7. data/app/pb_kits/playbook/config/_kit_example.html.erb +18 -4
  8. data/app/pb_kits/playbook/config/_kit_ui.html.erb +21 -21
  9. data/app/pb_kits/playbook/pb_currency/_currency.html.erb +1 -1
  10. data/app/pb_kits/playbook/pb_currency/_currency.jsx +16 -1
  11. data/app/pb_kits/playbook/pb_currency/_currency.scss +23 -1
  12. data/app/pb_kits/playbook/pb_currency/currency.rb +22 -0
  13. data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.html.erb → _currency_alignment.html.erb} +3 -3
  14. data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.jsx → _currency_alignment.jsx} +5 -5
  15. data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.html.erb +7 -0
  16. data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.jsx +17 -0
  17. data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.html.erb → _currency_size.html.erb} +8 -7
  18. data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.jsx → _currency_size.jsx} +9 -8
  19. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +24 -0
  20. data/app/pb_kits/playbook/pb_currency/docs/{_currency_medium.jsx → _currency_variants.jsx} +13 -10
  21. data/app/pb_kits/playbook/pb_currency/docs/example.yml +8 -6
  22. data/app/pb_kits/playbook/pb_currency/docs/index.js +4 -3
  23. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_anti_patterns.html.erb +23 -0
  24. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +4 -4
  25. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +2 -2
  26. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +3 -1
  27. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +8 -8
  28. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.html.erb +27 -0
  29. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.jsx +44 -0
  30. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +4 -4
  31. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +2 -2
  32. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +1 -1
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +1 -1
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +4 -2
  35. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +3 -1
  36. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
  37. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +1 -0
  38. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +2 -2
  39. data/app/pb_kits/playbook/pb_filter/_filter.scss +0 -2
  40. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +0 -41
  41. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.md +1 -0
  42. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.html.erb +35 -0
  43. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.jsx +47 -0
  44. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +1 -1
  45. data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
  46. data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
  47. data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +7 -9
  48. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +22 -0
  49. data/app/pb_kits/playbook/pb_nav/_item.jsx +3 -0
  50. data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +47 -0
  51. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +2 -46
  52. data/app/pb_kits/playbook/pb_nav/docs/_new_tab.html.erb +6 -0
  53. data/app/pb_kits/playbook/pb_nav/docs/_new_tab.jsx +34 -0
  54. data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.html.erb +6 -0
  55. data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.jsx +33 -0
  56. data/app/pb_kits/playbook/pb_nav/docs/example.yml +4 -1
  57. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  58. data/app/pb_kits/playbook/pb_nav/item.rb +5 -2
  59. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +1 -1
  60. data/app/pb_kits/playbook/pb_rich_text_editor/_trix_styles.scss +375 -0
  61. data/app/pb_kits/playbook/pb_stat_change/_stat_change.html.erb +1 -1
  62. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +8 -4
  63. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
  64. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.html.erb +17 -0
  65. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.jsx +28 -0
  66. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.html.erb +20 -0
  67. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.jsx +31 -0
  68. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.md +1 -0
  69. data/app/pb_kits/playbook/pb_stat_change/docs/example.yml +6 -4
  70. data/app/pb_kits/playbook/pb_stat_change/docs/index.js +2 -0
  71. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +12 -7
  72. data/app/pb_kits/playbook/pb_table/_table.scss +1 -57
  73. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +1 -1
  74. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +1 -1
  75. data/app/pb_kits/playbook/pb_table/styles/_alignment.scss +32 -0
  76. data/app/pb_kits/playbook/pb_table/styles/_all.scss +4 -3
  77. data/app/pb_kits/playbook/pb_table/styles/_side_highlight.scss +24 -0
  78. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +0 -1
  79. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +1 -1
  80. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_with_icon_circle.html.erb +10 -0
  81. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
  82. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +5 -1
  83. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +2 -3
  84. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.html.erb +19 -3
  85. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +4 -2
  86. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.md +10 -2
  87. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +5 -0
  88. data/app/pb_kits/playbook/react_rails_kits.js +1 -0
  89. data/lib/playbook.rb +7 -17
  90. data/lib/playbook/engine.rb +0 -3
  91. data/lib/playbook/markdown/template_handler.rb +45 -0
  92. data/{app/pb_kits → lib}/playbook/props.rb +0 -0
  93. data/{app/pb_kits → lib}/playbook/props/array.rb +0 -0
  94. data/{app/pb_kits → lib}/playbook/props/base.rb +19 -3
  95. data/{app/pb_kits → lib}/playbook/props/boolean.rb +0 -0
  96. data/{app/pb_kits → lib}/playbook/props/date.rb +0 -0
  97. data/{app/pb_kits → lib}/playbook/props/enum.rb +0 -0
  98. data/{app/pb_kits → lib}/playbook/props/hash.rb +0 -0
  99. data/{app/pb_kits → lib}/playbook/props/hash_array.rb +0 -0
  100. data/{app/pb_kits → lib}/playbook/props/number.rb +0 -0
  101. data/{app/pb_kits → lib}/playbook/props/number_array.rb +0 -0
  102. data/{app/pb_kits → lib}/playbook/props/numeric.rb +0 -0
  103. data/{app/pb_kits → lib}/playbook/props/percentage.rb +0 -0
  104. data/{app/pb_kits → lib}/playbook/props/proc.rb +0 -0
  105. data/{app/pb_kits → lib}/playbook/props/string.rb +0 -0
  106. data/lib/playbook/version.rb +1 -1
  107. metadata +52 -30
  108. data/app/helpers/playbook/layout_helper.rb +0 -9
  109. data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.html.erb +0 -21
  110. data/app/pb_kits/playbook/pb_table/styles/_mixins.scss +0 -0
@@ -28,6 +28,13 @@ module Playbook
28
28
  prop :unit, type: Playbook::Props::String,
29
29
  required: false
30
30
 
31
+ prop :emphasized, type: Playbook::Props::Boolean,
32
+ default: true
33
+
34
+ prop :variant, type: Playbook::Props::Enum,
35
+ values: %w[default light bold],
36
+ default: "default"
37
+
31
38
  prop :dark, type: Playbook::Props::Boolean,
32
39
  default: false
33
40
 
@@ -61,6 +68,21 @@ module Playbook
61
68
  }
62
69
  end
63
70
 
71
+ def emphasized_class
72
+ emphasized ? "" : "_deemphasized"
73
+ end
74
+
75
+ def variant_class
76
+ return unless size == "sm"
77
+
78
+ case variant
79
+ when "light"
80
+ "_light"
81
+ when "bold"
82
+ "_bold"
83
+ end
84
+ end
85
+
64
86
  private
65
87
 
66
88
  def whole_value
@@ -1,13 +1,13 @@
1
1
  <%= pb_rails("currency", props: {
2
- label: "Caption",
3
2
  amount: "2,000.50",
3
+ label: "Left",
4
4
  size: "sm",
5
5
  }) %>
6
6
 
7
7
  <%= pb_rails("currency", props: {
8
8
  align: "center",
9
9
  amount: "342",
10
- label: "Caption",
10
+ label: "Center",
11
11
  size: "sm",
12
12
  symbol: "€",
13
13
  }) %>
@@ -15,7 +15,7 @@
15
15
  <%= pb_rails("currency", props: {
16
16
  align: "right",
17
17
  amount: "45",
18
- label: "Caption",
18
+ label: "Right",
19
19
  unit: "/mo",
20
20
  size: "sm",
21
21
  }) %>
@@ -1,20 +1,20 @@
1
1
  import React from 'react'
2
2
  import { Currency } from '../../'
3
3
 
4
- const CurrencySmall = (props) => {
4
+ const CurrencyAlignment = (props) => {
5
5
  return (
6
6
  <>
7
7
  <Currency
8
8
  {...props}
9
9
  amount="2,000.50"
10
- label="Caption"
10
+ label="Left"
11
11
  size="sm"
12
12
  />
13
13
  <Currency
14
14
  {...props}
15
15
  align="center"
16
16
  amount="342"
17
- label="Caption"
17
+ label="Center"
18
18
  size="sm"
19
19
  symbol="€"
20
20
  />
@@ -22,7 +22,7 @@ const CurrencySmall = (props) => {
22
22
  {...props}
23
23
  align="right"
24
24
  amount="45"
25
- label="Caption"
25
+ label="Right"
26
26
  size="sm"
27
27
  unit="/mo"
28
28
  />
@@ -30,4 +30,4 @@ const CurrencySmall = (props) => {
30
30
  )
31
31
  }
32
32
 
33
- export default CurrencySmall
33
+ export default CurrencyAlignment
@@ -0,0 +1,7 @@
1
+ <%= pb_rails("currency", props: {
2
+ amount: "309",
3
+ label: "Sales",
4
+ size: "md",
5
+ symbol: "",
6
+ unit: "/week"
7
+ }) %>
@@ -0,0 +1,17 @@
1
+ import React from 'react'
2
+ import { Currency } from '../../'
3
+
4
+ const CurrencyNoSymbol = (props) => {
5
+ return (
6
+ <Currency
7
+ {...props}
8
+ amount="309"
9
+ label="Sales"
10
+ size="md"
11
+ symbol=""
12
+ unit="/week"
13
+ />
14
+ )
15
+ }
16
+
17
+ export default CurrencyNoSymbol
@@ -1,20 +1,21 @@
1
1
  <%= pb_rails("currency", props: {
2
2
  amount: "2,000.50",
3
- size: "lg"
3
+ label: "Small",
4
+ margin_bottom: "md",
5
+ size: "sm",
4
6
  }) %>
5
7
 
6
8
  <%= pb_rails("currency", props: {
7
- align: "center",
8
9
  amount: "342",
9
- label: "Caption",
10
- size: "lg",
10
+ label: "Medium",
11
+ margin_bottom: "md",
12
+ size: "md",
11
13
  symbol: "€",
12
14
  }) %>
13
15
 
14
16
  <%= pb_rails("currency", props: {
15
- align: "right",
16
17
  amount: "45",
17
- label: "Caption",
18
- unit: "/mo",
18
+ label: "Large",
19
19
  size: "lg",
20
+ unit: "/mo",
20
21
  }) %>
@@ -1,27 +1,28 @@
1
1
  import React from 'react'
2
2
  import { Currency } from '../../'
3
3
 
4
- const CurrencyLarge = (props) => {
4
+ const CurrencySize = (props) => {
5
5
  return (
6
6
  <>
7
7
  <Currency
8
8
  {...props}
9
9
  amount="2,000.50"
10
- size="lg"
10
+ label="Small"
11
+ marginBottom="md"
12
+ size="sm"
11
13
  />
12
14
  <Currency
13
15
  {...props}
14
- align="center"
15
16
  amount="342"
16
- label="Caption"
17
- size="lg"
17
+ label="Medium"
18
+ marginBottom="md"
19
+ size="md"
18
20
  symbol="€"
19
21
  />
20
22
  <Currency
21
23
  {...props}
22
- align="right"
23
24
  amount="45"
24
- label="Caption"
25
+ label="Large"
25
26
  size="lg"
26
27
  unit="/mo"
27
28
  />
@@ -29,4 +30,4 @@ const CurrencyLarge = (props) => {
29
30
  )
30
31
  }
31
32
 
32
- export default CurrencyLarge
33
+ export default CurrencySize
@@ -0,0 +1,24 @@
1
+ <%= pb_rails("currency", props: {
2
+ amount: "2,000.50",
3
+ emphasized: false,
4
+ label: "Emphasized False",
5
+ margin_bottom: "md",
6
+ size: "sm",
7
+ }) %>
8
+
9
+ <%= pb_rails("currency", props: {
10
+ amount: "342",
11
+ label: "Light",
12
+ margin_bottom: "md",
13
+ size: "sm",
14
+ symbol: "€",
15
+ variant: "light",
16
+ }) %>
17
+
18
+ <%= pb_rails("currency", props: {
19
+ amount: "45",
20
+ label: "Bold",
21
+ size: "sm",
22
+ unit: "/mo",
23
+ variant: "bold",
24
+ }) %>
@@ -1,33 +1,36 @@
1
1
  import React from 'react'
2
2
  import { Currency } from '../../'
3
3
 
4
- const CurrencyMedium = (props) => {
4
+ const CurrencyVariants = (props) => {
5
5
  return (
6
6
  <>
7
7
  <Currency
8
8
  {...props}
9
9
  amount="2,000.50"
10
- label="Caption"
11
- size="md"
10
+ emphasized={false}
11
+ label="Emphasized False"
12
+ marginBottom="md"
13
+ size="sm"
12
14
  />
13
15
  <Currency
14
16
  {...props}
15
- align="center"
16
17
  amount="342"
17
- label="Caption"
18
- size="md"
18
+ label="Light"
19
+ marginBottom="md"
20
+ size="sm"
19
21
  symbol="€"
22
+ variant="light"
20
23
  />
21
24
  <Currency
22
25
  {...props}
23
- align="right"
24
26
  amount="45"
25
- label="Caption"
26
- size="md"
27
+ label="Bold"
28
+ size="sm"
27
29
  unit="/mo"
30
+ variant="bold"
28
31
  />
29
32
  </>
30
33
  )
31
34
  }
32
35
 
33
- export default CurrencyMedium
36
+ export default CurrencyVariants
@@ -1,11 +1,13 @@
1
1
  examples:
2
2
 
3
3
  rails:
4
- - currency_small: Small
5
- - currency_medium: Medium
6
- - currency_large: Large
4
+ - currency_variants: Variants
5
+ - currency_size: Size
6
+ - currency_alignment: Alignment
7
+ - currency_no_symbol: No Symbol
7
8
 
8
9
  react:
9
- - currency_small: Small
10
- - currency_medium: Medium
11
- - currency_large: Large
10
+ - currency_variants: Variants
11
+ - currency_size: Size
12
+ - currency_alignment: Alignment
13
+ - currency_no_symbol: No Symbol
@@ -1,3 +1,4 @@
1
- export { default as CurrencySmall } from './_currency_small.jsx'
2
- export { default as CurrencyLarge } from './_currency_large.jsx'
3
- export { default as CurrencyMedium } from './_currency_medium.jsx'
1
+ export { default as CurrencyVariants } from './_currency_variants.jsx'
2
+ export { default as CurrencySize } from './_currency_size.jsx'
3
+ export { default as CurrencyAlignment } from './_currency_alignment.jsx'
4
+ export { default as CurrencyNoSymbol } from './_currency_no_symbol.jsx'
@@ -0,0 +1,23 @@
1
+ <%= pb_rails("date_picker", props: {
2
+ label: "Unformatted Date Object",
3
+ default_date: Date.today,
4
+ picker_id: "date-picker-anti-pattern1"
5
+ }) %>
6
+
7
+ <%= pb_rails("date_picker", props: {
8
+ label: "Date Object Without Time - Displays Yesterday's Date",
9
+ default_date: Date.today.to_datetime.utc.iso8601,
10
+ picker_id: "date-picker-anti-pattern2"
11
+ }) %>
12
+
13
+ <%= pb_rails("date_picker", props: {
14
+ label: "Unformatted DateTime Object",
15
+ default_date: DateTime.current,
16
+ picker_id: "date-picker-anti-pattern3"
17
+ }) %>
18
+
19
+ <%= pb_rails("date_picker", props: {
20
+ label: "String Conversion Without ISO Formatting",
21
+ default_date: DateTime.current.utc.to_s,
22
+ picker_id: "date-picker-anti-pattern5"
23
+ }) %>
@@ -1,17 +1,17 @@
1
1
  <%= pb_rails("date_picker", props: {
2
- default_date: "07/31/2020",
2
+ default_date: "07/25/2020",
3
3
  label: "Default Date String",
4
4
  picker_id: "date-picker-default-date1"
5
5
  }) %>
6
6
 
7
7
  <%= pb_rails("date_picker", props: {
8
- default_date: (Date.today + 2).httpdate,
8
+ default_date: DateTime.current.utc.iso8601,
9
9
  label: "Default Date Dynamic",
10
10
  picker_id: "date-picker-default-date2"
11
11
  }) %>
12
12
 
13
13
  <%= pb_rails("date_picker", props: {
14
- default_date: [(Date.today).httpdate, (Date.today + 7).httpdate],
14
+ default_date: [DateTime.current.utc.iso8601, (DateTime.current + 7.day).utc.iso8601],
15
15
  label: "Default Date Range",
16
16
  mode: "range",
17
17
  picker_id: "date-picker-default-date3"
@@ -20,4 +20,4 @@
20
20
  <%= pb_rails("date_picker", props: {
21
21
  label: "Default Behavior",
22
22
  picker_id: "date-picker-default-date4"
23
- }) %>
23
+ }) %>
@@ -9,12 +9,12 @@ const DatePickerDefaultDate = () => (
9
9
  pickerId="date-picker-default-date1"
10
10
  />
11
11
  <DatePicker
12
- defaultDate={new Date().fp_incr(1)}
12
+ defaultDate={new Date()}
13
13
  label="Default Date Dynamic"
14
14
  pickerId="date-picker-default-date2"
15
15
  />
16
16
  <DatePicker
17
- defaultDate={[new Date(), new Date().fp_incr(6)]}
17
+ defaultDate={[new Date(), new Date().fp_incr(7)]}
18
18
  label="Default Date Range"
19
19
  mode="range"
20
20
  pickerId="date-picker-default-date3"
@@ -1 +1,3 @@
1
- The `defaultDate`/`default_date` prop has a null or empty string value by default. You can pass a string or date object if you want a default value on page load.
1
+ The `defaultDate`/`default_date` prop has a null or empty string value by default. You can pass an ISO date string (preferred rails method) or date object (preferred JS method) if you want a default value on page load. Use Ruby UTC DateTime objects and convert them to ISO date strings with `DateTime.now.utc.iso8601`.
2
+
3
+ If you use a Date object without UTC time standardization the Date Picker kit may misinterpret that date as yesterdays date (consequence of timezone differentials and the Javascript Date Object constructor). See [this GitHub issue for more information](https://github.com/powerhome/playbook/issues/1167) and the anti-pattern examples below.
@@ -1,11 +1,11 @@
1
1
  <%= pb_rails("date_picker", props: {
2
- disable_date: [(Date.today + 1).httpdate],
2
+ disable_date: [(DateTime.current + 1.day).utc.iso8601],
3
3
  label: "Disable Single Date",
4
4
  picker_id: "single-disabled-date"
5
5
  }) %>
6
6
 
7
7
  <%= pb_rails("date_picker", props: {
8
- disable_date: [(Date.today + 1).httpdate, (Date.today + 3).httpdate],
8
+ disable_date: [(DateTime.current + 1.day).utc.iso8601, (DateTime.current + 2.day).utc.iso8601],
9
9
  label: "Disable Multiple Dates",
10
10
  picker_id: "multiple-disabled-dates"
11
11
  }) %>
@@ -13,8 +13,8 @@
13
13
  <%= pb_rails("date_picker", props: {
14
14
  disable_range: [
15
15
  {
16
- from: (Date.today + 1).httpdate,
17
- to: (Date.today + 7).httpdate,
16
+ from: DateTime.current.utc.iso8601,
17
+ to: (DateTime.current + 7.day).utc.iso8601,
18
18
  },
19
19
  ],
20
20
  label: "Disable Single Range",
@@ -24,12 +24,12 @@
24
24
  <%= pb_rails("date_picker", props: {
25
25
  disable_range: [
26
26
  {
27
- from: (Date.today + 1).httpdate,
28
- to: (Date.today + 3).httpdate,
27
+ from: (DateTime.current + 1.day).utc.iso8601,
28
+ to: (DateTime.current + 2.day).utc.iso8601,
29
29
  },
30
30
  {
31
- from: (Date.today + 7).httpdate,
32
- to: (Date.today + 14).httpdate,
31
+ from: (DateTime.current + 7.day).utc.iso8601,
32
+ to: (DateTime.current + 14.day).utc.iso8601,
33
33
  },
34
34
  ],
35
35
  label: "Disable Multiple Ranges",
@@ -0,0 +1,27 @@
1
+ <%= pb_rails("button", props: { id: "close-btn", margin_right: "sm", text: "Close" }) %>
2
+ <%= pb_rails("button", props: { id: "clear-btn", margin_right: "sm", text: "Clear" }) %>
3
+ <%= pb_rails("button", props: { id: "today-btn", text: "Today" }) %>
4
+ <%= pb_rails("date_picker", props: {
5
+ hide_label: true,
6
+ margin_top: "sm",
7
+ picker_id: "fp-methods"
8
+ }) %>
9
+
10
+ <%= javascript_tag do %>
11
+ window.addEventListener("DOMContentLoaded", () => {
12
+ const fp = document.querySelector("#fp-methods")._flatpickr
13
+ const closeBtn = document.querySelector("#close-btn")
14
+ const clearBtn = document.querySelector("#clear-btn")
15
+ const todayBtn = document.querySelector("#today-btn")
16
+
17
+ closeBtn.addEventListener("click", () => {
18
+ fp.close()
19
+ })
20
+ clearBtn.addEventListener("click", () => {
21
+ fp.clear()
22
+ })
23
+ todayBtn.addEventListener("click", () => {
24
+ fp.setDate(new Date(), true)
25
+ })
26
+ })
27
+ <% end %>
@@ -0,0 +1,44 @@
1
+ import React, { useEffect } from 'react'
2
+ import { Button, DatePicker } from '../../'
3
+
4
+ const DatePickerFlatpickrMethods = () => {
5
+ let fpInstance
6
+ useEffect(() => {
7
+ fpInstance = document.querySelector('#fp-methods')._flatpickr
8
+ }, [])
9
+ const clickHandlerClear = () => {
10
+ fpInstance.clear()
11
+ }
12
+ const clickHandlerClose = () => {
13
+ fpInstance.close()
14
+ }
15
+ const clickHandlerToday = () => {
16
+ fpInstance.setDate(new Date(), true)
17
+ }
18
+
19
+ return (
20
+ <div>
21
+ <Button
22
+ marginRight="sm"
23
+ onClick={clickHandlerClose}
24
+ text="Close"
25
+ />
26
+ <Button
27
+ marginRight="sm"
28
+ onClick={clickHandlerClear}
29
+ text="Clear"
30
+ />
31
+ <Button
32
+ onClick={clickHandlerToday}
33
+ text="Today"
34
+ />
35
+ <DatePicker
36
+ hideLabel
37
+ marginTop="sm"
38
+ pickerId="fp-methods"
39
+ />
40
+ </div>
41
+ )
42
+ }
43
+
44
+ export default DatePickerFlatpickrMethods