playbook_ui 7.0.1.pre.alpha12 → 7.0.1.pre.alpha14

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 (156) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -6
  3. data/app/pb_kits/playbook/_playbook.scss +1 -0
  4. data/app/pb_kits/playbook/data/menu.yml +1 -1
  5. data/app/pb_kits/playbook/index.js +3 -0
  6. data/app/pb_kits/playbook/packs/examples.js +6 -0
  7. data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +22 -6
  8. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +5 -1
  9. data/app/pb_kits/playbook/pb_background/_background.html.erb +14 -0
  10. data/app/pb_kits/playbook/pb_background/_background.jsx +64 -0
  11. data/app/pb_kits/playbook/pb_background/_background.scss +15 -0
  12. data/app/pb_kits/playbook/pb_background/background.rb +36 -0
  13. data/app/pb_kits/playbook/pb_background/docs/_background_default.html.erb +41 -0
  14. data/app/pb_kits/playbook/pb_background/docs/_background_default.jsx +75 -0
  15. data/app/pb_kits/playbook/pb_background/docs/example.yml +8 -0
  16. data/app/pb_kits/playbook/pb_background/docs/index.js +1 -0
  17. data/app/pb_kits/playbook/pb_badge/_badge.jsx +4 -2
  18. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +1 -1
  19. data/app/pb_kits/playbook/pb_button/_button.jsx +5 -1
  20. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.jsx +5 -1
  21. data/app/pb_kits/playbook/pb_caption/_caption.jsx +2 -2
  22. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +5 -2
  23. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +3 -1
  24. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_options.html.erb +10 -0
  25. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +1 -0
  26. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.html.erb +1 -1
  27. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.jsx +130 -0
  28. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.scss +1 -1
  29. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +39 -0
  30. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -0
  31. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +28 -0
  32. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +117 -0
  33. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +53 -0
  34. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -0
  35. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +45 -0
  36. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +30 -0
  37. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +45 -0
  38. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +11 -0
  39. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +9 -0
  40. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +5 -1
  41. data/app/pb_kits/playbook/pb_contact/_contact.jsx +5 -1
  42. data/app/pb_kits/playbook/pb_currency/_currency.jsx +5 -1
  43. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +5 -1
  44. data/app/pb_kits/playbook/pb_date/date.rb +2 -1
  45. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +8 -1
  46. data/app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb +51 -0
  47. data/app/pb_kits/playbook/pb_date/docs/_date_timezone.md +6 -0
  48. data/app/pb_kits/playbook/pb_date/docs/_description.md +2 -0
  49. data/app/pb_kits/playbook/pb_date/docs/example.yml +1 -0
  50. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +7 -4
  51. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +0 -4
  52. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +3 -3
  53. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +8 -10
  54. data/app/pb_kits/playbook/pb_date_picker/docs/{_date_picker_read_only.html.erb → _date_picker_allow_input.html.erb} +1 -1
  55. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.jsx +13 -0
  56. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.md +1 -0
  57. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.jsx +34 -0
  58. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.md +3 -0
  59. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +3 -2
  60. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +2 -1
  61. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +1 -0
  62. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +5 -1
  63. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +2 -2
  64. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +5 -1
  65. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +2 -2
  66. data/app/pb_kits/playbook/pb_flex/_flex.jsx +2 -2
  67. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +1 -1
  68. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +6 -1
  69. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +3 -2
  70. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +1 -1
  71. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +1 -1
  72. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +2 -2
  73. data/app/pb_kits/playbook/pb_icon/_icon.jsx +2 -2
  74. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +5 -1
  75. data/app/pb_kits/playbook/pb_image/_image.jsx +5 -1
  76. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +5 -1
  77. data/app/pb_kits/playbook/pb_layout/_layout.jsx +4 -4
  78. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +1 -1
  79. data/app/pb_kits/playbook/pb_list/_list.jsx +3 -2
  80. data/app/pb_kits/playbook/pb_list/_list_item.jsx +3 -2
  81. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +5 -1
  82. data/app/pb_kits/playbook/pb_message/_message.jsx +5 -1
  83. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +5 -2
  84. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -2
  85. data/app/pb_kits/playbook/pb_person/_person.jsx +5 -1
  86. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +5 -1
  87. data/app/pb_kits/playbook/pb_popover/_popover.jsx +5 -1
  88. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +4 -4
  89. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +1 -1
  90. data/app/pb_kits/playbook/pb_radio/_radio.html.erb +1 -1
  91. data/app/pb_kits/playbook/pb_radio/docs/_radio_options.html.erb +9 -0
  92. data/app/pb_kits/playbook/pb_radio/docs/example.yml +1 -0
  93. data/app/pb_kits/playbook/pb_radio/radio.rb +2 -4
  94. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +1 -1
  95. data/app/pb_kits/playbook/pb_select/_select.scss +1 -1
  96. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +2 -2
  97. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +3 -3
  98. data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_default.jsx +6 -1
  99. data/app/pb_kits/playbook/pb_table/_table.jsx +2 -2
  100. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +1 -1
  101. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +17 -8
  102. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +1 -1
  103. data/app/pb_kits/playbook/pb_time/_time.html.erb +23 -17
  104. data/app/pb_kits/playbook/pb_time/_time.jsx +22 -13
  105. data/app/pb_kits/playbook/pb_time/_time.scss +16 -8
  106. data/app/pb_kits/playbook/pb_time/docs/_time_align.html.erb +18 -0
  107. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +3 -3
  108. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +47 -3
  109. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +33 -4
  110. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.html.erb +11 -0
  111. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +19 -0
  112. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb +3 -1
  113. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +0 -7
  114. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.html.erb +38 -0
  115. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +12 -14
  116. data/app/pb_kits/playbook/pb_time/docs/example.yml +6 -2
  117. data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
  118. data/app/pb_kits/playbook/pb_time/time.rb +14 -2
  119. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +1 -1
  120. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +3 -3
  121. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +1 -1
  122. data/app/pb_kits/playbook/pb_title/_title.jsx +5 -1
  123. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +5 -1
  124. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +1 -1
  125. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +3 -3
  126. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +41 -43
  127. data/app/pb_kits/playbook/pb_toggle/docs/example.yml +0 -2
  128. data/app/pb_kits/playbook/pb_toggle/docs/index.js +0 -1
  129. data/app/pb_kits/playbook/pb_toggle/toggle.rb +2 -2
  130. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +60 -0
  131. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +20 -3
  132. data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +30 -0
  133. data/app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx +13 -0
  134. data/app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx +12 -0
  135. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +51 -0
  136. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +34 -0
  137. data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.jsx +13 -0
  138. data/app/pb_kits/playbook/pb_typeahead/components/ValueContainer.jsx +13 -0
  139. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.jsx +22 -0
  140. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +29 -0
  141. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +84 -0
  142. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_summary.jsx +45 -0
  143. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +101 -0
  144. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_summary.jsx +27 -0
  145. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +8 -2
  146. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +4 -0
  147. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +5 -2
  148. data/app/pb_kits/playbook/plugins/pb_chart.js +1 -1
  149. data/app/pb_kits/playbook/tokens/_typography.scss +3 -3
  150. data/lib/generators/kit/templates/kit_jsx.erb.tt +1 -1
  151. data/lib/playbook/version.rb +1 -1
  152. metadata +50 -8
  153. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.jsx +0 -13
  154. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.md +0 -1
  155. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.html.erb +0 -11
  156. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.jsx +0 -44
@@ -31,7 +31,3 @@
31
31
  }
32
32
  }
33
33
  }
34
- // Ensures picker remains visible inside filter kit
35
- .pb_popover_body {
36
- overflow: visible !important;
37
- }
@@ -7,6 +7,8 @@ module Playbook
7
7
 
8
8
  partial "pb_date_picker/date_picker"
9
9
 
10
+ prop :allow_input, type: Playbook::Props::Boolean,
11
+ default: false
10
12
  prop :dark, type: Playbook::Props::Boolean,
11
13
  default: false
12
14
  prop :default_date, type: Playbook::Props::String,
@@ -40,8 +42,6 @@ module Playbook
40
42
  prop :picker_id, type: Playbook::Props::String,
41
43
  required: true
42
44
  prop :placeholder, type: Playbook::Props::String
43
- prop :read_only, type: Playbook::Props::Boolean,
44
- default: false
45
45
  prop :required, type: Playbook::Props::Boolean,
46
46
  default: false
47
47
  prop :type, type: Playbook::Props::String
@@ -54,6 +54,7 @@ module Playbook
54
54
 
55
55
  def date_picker_config
56
56
  {
57
+ allowInput: allow_input,
57
58
  defaultDate: default_date,
58
59
  disableDate: disable_date,
59
60
  disableRange: disable_range,
@@ -64,7 +65,6 @@ module Playbook
64
65
  minDate: min_date,
65
66
  mode: mode,
66
67
  pickerId: picker_id,
67
- readOnly: read_only,
68
68
  yearRange: year_range,
69
69
  }.to_json.html_safe
70
70
  end
@@ -2,17 +2,17 @@ import flatpickr from 'flatpickr'
2
2
 
3
3
  const datePickerHelper = (config) => {
4
4
  const {
5
+ allowInput,
5
6
  defaultDate,
6
7
  disableDate,
7
8
  disableRange,
8
9
  disableWeekdays,
9
10
  format,
10
- hideIcon,
11
11
  maxDate,
12
12
  minDate,
13
13
  mode,
14
+ onChange,
14
15
  pickerId,
15
- readOnly,
16
16
  yearRange,
17
17
  } = config
18
18
 
@@ -65,7 +65,6 @@ const datePickerHelper = (config) => {
65
65
 
66
66
  flatpickr(`#${pickerId}`, {
67
67
  disableMobile: true,
68
- allowInput: !readOnly,
69
68
  dateFormat: format,
70
69
  defaultDate: defaultDateGetter(),
71
70
  disable: disableWeekdays && disableWeekdays.length > 0 ? [
@@ -101,6 +100,9 @@ const datePickerHelper = (config) => {
101
100
  onClose: [() => {
102
101
  window.removeEventListener('resize', calendarResizer)
103
102
  }],
103
+ onChange: [(selectedDates, dateStr) => {
104
+ onChange(dateStr, selectedDates)
105
+ }],
104
106
  onYearChange: [],
105
107
  prevArrow: '<i class="far fa-angle-left"></i>',
106
108
  static: true,
@@ -141,13 +143,6 @@ const datePickerHelper = (config) => {
141
143
  }
142
144
  picker.config.onYearChange.push(yearChangeHook)
143
145
 
144
- // click handling for Calendar Icon
145
- if (!hideIcon){
146
- document.querySelector(`#cal-icon-${pickerId}`).addEventListener('click', () => {
147
- picker.toggle()
148
- })
149
- }
150
-
151
146
  // Adding dropdown icons to year and month selects
152
147
  picker.monthElements[0].insertAdjacentHTML('afterend', '<i class="far fa-angle-down month-dropdown-icon"></i>')
153
148
  dropdown.insertAdjacentHTML('afterend', '<i class="far fa-angle-down year-dropdown-icon" id="test-id"></i>')
@@ -166,6 +161,9 @@ const datePickerHelper = (config) => {
166
161
  dropdown.value = picker.currentYear
167
162
  }
168
163
  })
164
+ if (allowInput){
165
+ picker.input.removeAttribute('readonly')
166
+ }
169
167
  }
170
168
 
171
169
  export default datePickerHelper
@@ -1,4 +1,4 @@
1
1
  <%= pb_rails("date_picker", props: {
2
- read_only: true,
2
+ allow_input: true,
3
3
  picker_id: "date-picker-read-only"
4
4
  }) %>
@@ -0,0 +1,13 @@
1
+ import React from 'react'
2
+ import { DatePicker } from '../..'
3
+
4
+ const DatePickerAllowInput = () => (
5
+ <div>
6
+ <DatePicker
7
+ allowInput
8
+ pickerId="date-picker-read-only"
9
+ />
10
+ </div>
11
+ )
12
+
13
+ export default DatePickerAllowInput
@@ -0,0 +1 @@
1
+ By default the date picker input can only be modified by picking a date on the calendar. This prop allows your users to manually type in the date.
@@ -0,0 +1,34 @@
1
+ import React, { useState } from 'react'
2
+ import { DatePicker, LabelValue } from '../..'
3
+
4
+ const DatePickerOnChange = () => {
5
+ const today = new Date()
6
+ const [dateString, setDateString] = useState(today.toLocaleDateString())
7
+ const [dateObj, setDateObj] = useState([today])
8
+
9
+ const changeHandler = (dateStr, selectedDates) => {
10
+ setDateString(dateStr)
11
+ setDateObj(selectedDates)
12
+ }
13
+
14
+ return (
15
+ <div>
16
+ <DatePicker
17
+ defaultDate={dateString}
18
+ marginBottom="lg"
19
+ onChange={changeHandler}
20
+ pickerId="date-picker-onchange"
21
+ />
22
+ <LabelValue
23
+ label="Date Object"
24
+ marginBottom="lg"
25
+ value={dateObj[0] ? dateObj[0].toString() : ''}
26
+ />
27
+ <LabelValue
28
+ label="Date String"
29
+ value={dateString}
30
+ />
31
+ </div>
32
+ )
33
+ }
34
+ export default DatePickerOnChange
@@ -0,0 +1,3 @@
1
+ Your change handler function has access to two arguments: `dateStr` and `selectedDates`.
2
+
3
+ The first, `dateStr`, is a string of the chosen date. The second, `selectedDates`, is an array of selected date objects. In many use cases `selectedDates` will have only one value but you'll still need to access it from index 0.
@@ -12,7 +12,7 @@ examples:
12
12
  - date_picker_min_max: Min Max
13
13
  - date_picker_error: Error
14
14
  - date_picker_hooks: Hooks
15
- - date_picker_read_only: Read Only
15
+ # - date_picker_allow_input: Allow Input
16
16
  - date_picker_year_range: Year Range
17
17
  - date_picker_dark: Dark
18
18
 
@@ -23,13 +23,14 @@ examples:
23
23
  - date_picker_default_date: Default Date
24
24
  - date_picker_input: Input Field
25
25
  - date_picker_label: Label
26
+ - date_picker_on_change: onChange
26
27
  - date_picker_range: Range
27
28
  - date_picker_format: Format
28
29
  - date_picker_disabled: Disabled Dates
29
30
  - date_picker_min_max: Min Max
30
31
  - date_picker_error: Error
31
32
  - date_picker_hooks: Hooks
32
- - date_picker_read_only: Read Only
33
+ # - date_picker_allow_input: Allow Input
33
34
  - date_picker_year_range: Year Range
34
35
  - date_picker_dark: Dark
35
36
 
@@ -3,12 +3,13 @@ export { default as DatePickerHideIcon } from './_date_picker_hide_icon.jsx'
3
3
  export { default as DatePickerInput } from './_date_picker_input.jsx'
4
4
  export { default as DatePickerDefaultDate } from './_date_picker_default_date.jsx'
5
5
  export { default as DatePickerLabel } from './_date_picker_label.jsx'
6
+ export { default as DatePickerOnChange } from './_date_picker_on_change.jsx'
6
7
  export { default as DatePickerRange } from './_date_picker_range.jsx'
7
8
  export { default as DatePickerFormat } from './_date_picker_format.jsx'
8
9
  export { default as DatePickerDisabled } from './_date_picker_disabled.jsx'
9
10
  export { default as DatePickerMinMax } from './_date_picker_min_max.jsx'
10
11
  export { default as DatePickerError } from './_date_picker_error.jsx'
11
12
  export { default as DatePickerHooks } from './_date_picker_hooks.jsx'
12
- export { default as DatePickerReadOnly } from './_date_picker_read_only.jsx'
13
+ // export { default as DatePickerAllowInput } from './_date_picker_allow_input.jsx'
13
14
  export { default as DatePickerYearRange } from './_date_picker_year_range.jsx'
14
15
  export { default as DatePickerDark } from './_date_picker_dark.jsx'
@@ -1,5 +1,6 @@
1
1
  // Calendar Icon Styles
2
2
  .cal_icon_wrapper {
3
+ pointer-events: none;
3
4
  position: absolute;
4
5
  top: $space_md + 2;
5
6
  right: 0;
@@ -18,7 +18,11 @@ type DateRangeStackedProps = {
18
18
 
19
19
  const DateRangeStacked = (props: DateRangeStackedProps) => {
20
20
  const { className, dark = false, endDate, startDate } = props
21
- const css = classnames(className, buildCss('pb_date_range_stacked'), globalProps(props))
21
+ const css = classnames(
22
+ buildCss('pb_date_range_stacked'),
23
+ globalProps(props),
24
+ className
25
+ )
22
26
 
23
27
  return (
24
28
  <div className={css}>
@@ -33,12 +33,12 @@ const DateStacked = (props: DateStackedProps) => {
33
33
  size = 'sm',
34
34
  } = props
35
35
  const classes = classnames(
36
- className,
37
36
  buildCss('pb_date_stacked_kit', align, size, {
38
37
  dark: dark,
39
38
  reverse: reverse,
40
39
  }),
41
- globalProps(props)
40
+ globalProps(props),
41
+ className
42
42
  )
43
43
 
44
44
  const currentYear = new Date().getFullYear().toString()
@@ -20,7 +20,11 @@ type DateYearStackedProps = {
20
20
  const DateYearStacked = (props: DateYearStackedProps) => {
21
21
  const { align = 'left', className, dark = false, date } = props
22
22
  const dateTimestamp = new DateTime({ value: date })
23
- const css = classnames(className, buildCss('pb_date_year_stacked', align), globalProps(props))
23
+ const css = classnames(
24
+ buildCss('pb_date_year_stacked', align),
25
+ globalProps(props),
26
+ className
27
+ )
24
28
 
25
29
  return (
26
30
  <div className={css}>
@@ -23,9 +23,9 @@ type FixedConfirmationToastProps = {
23
23
  const FixedConfirmationToast = (props: FixedConfirmationToastProps) => {
24
24
  const { className, status = 'neutral', text } = props
25
25
  const css = classnames(
26
- className,
27
26
  `pb_fixed_confirmation_toast_kit_${status}`,
28
- globalProps(props)
27
+ globalProps(props),
28
+ className
29
29
  )
30
30
  const icon = iconMap[status]
31
31
 
@@ -51,8 +51,8 @@ const Flex = (props: FlexProps) => {
51
51
  reverseClass,
52
52
  wrapClass
53
53
  ),
54
- className,
55
- globalProps(props)
54
+ globalProps(props),
55
+ className
56
56
  )}
57
57
  >
58
58
  {children}
@@ -18,7 +18,7 @@ const FlexItem = (props: FlexItemPropTypes) => {
18
18
 
19
19
  return (
20
20
  <div
21
- className={classnames(buildCss('pb_flex_item_kit', growClass), className, globalProps(props))}
21
+ className={classnames(buildCss('pb_flex_item_kit', growClass), globalProps(props), className)}
22
22
  style={fixedStyle}
23
23
  >
24
24
  {children}
@@ -24,7 +24,12 @@
24
24
  <%= form.text_area :example_text_area, props: { label: true } %>
25
25
  <%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true } %>
26
26
  <%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
27
- <%= form.check_box :example_checkbox, data: { field1: "value1", field2: "value2" }, props: { text: "Example Checkbox", label: true } %>
27
+ <%= form.check_box :example_checkbox,
28
+ data: { field1: "value1", field2: "value2" },
29
+ props: { text: "Example Checkbox", label: true },
30
+ id: "checkbox-id",
31
+ name: "checkbox-name",
32
+ class: "checkbox-class" %>
28
33
  <%= form.date_picker :example_date_picker1, props: { default_date: "blank" } %>
29
34
 
30
35
  <%= form.actions do |action| %>
@@ -18,8 +18,9 @@ type FormPillProps = {
18
18
  const FormPill = (props: FormPillProps) => {
19
19
  const { className, text, name, onClick = () => {}, avatarUrl } = props
20
20
  const css = classnames(
21
- [`pb_form_pill_kit_${'primary'}`, className],
22
- globalProps(props)
21
+ `pb_form_pill_kit_${'primary'}`,
22
+ globalProps(props),
23
+ className
23
24
  )
24
25
  return (
25
26
  <div className={css}>
@@ -101,7 +101,7 @@ const Gauge = (props: GaugeProps) => {
101
101
  <div
102
102
  {...ariaProps}
103
103
  {...dataProps}
104
- className={classnames(css, className, globalProps(props))}
104
+ className={classnames(css, globalProps(props), className)}
105
105
  id={id}
106
106
  />
107
107
  )
@@ -27,7 +27,7 @@ const Highlight = (props: HighlightProps) => {
27
27
  <Highlighter
28
28
  autoEscape
29
29
  data={data}
30
- highlightClassName={classnames(className, globalProps(props))}
30
+ highlightClassName={classnames(globalProps(props), className)}
31
31
  highlightTag="span"
32
32
  id={id}
33
33
  searchWords={highlightedText}
@@ -40,12 +40,12 @@ const HomeAddressStreet = (props: HomeAddressStreetProps) => {
40
40
 
41
41
  const classes = (className, dark) =>
42
42
  classnames(
43
- className,
44
43
  {
45
44
  'pb_home_address_street': !dark,
46
45
  'pb_home_address_street_dark': dark,
47
46
  },
48
- globalProps(props)
47
+ globalProps(props),
48
+ className
49
49
  )
50
50
  return (
51
51
  <div className={classes(className, dark)}>
@@ -56,7 +56,6 @@ const Icon = (props: IconProps) => {
56
56
  spin = false,
57
57
  } = props
58
58
  const classes = classnames(
59
- className,
60
59
  flipMap[flip],
61
60
  'pb_icon_kit',
62
61
  'far',
@@ -72,7 +71,8 @@ const Icon = (props: IconProps) => {
72
71
  [`fa-pull-${pull}`]: pull,
73
72
  [`fa-rotate-${rotation}`]: rotation,
74
73
  },
75
- globalProps(props)
74
+ globalProps(props),
75
+ className
76
76
  )
77
77
 
78
78
  return (
@@ -32,7 +32,11 @@ const IconValue = (props: IconValueProps) => {
32
32
  } = props
33
33
  const ariaProps = buildAriaProps(aria)
34
34
  const dataProps = buildDataProps(data)
35
- const classes = classnames(buildCss('pb_icon_value_kit', align), className, globalProps(props))
35
+ const classes = classnames(
36
+ buildCss('pb_icon_value_kit', align),
37
+ globalProps(props),
38
+ className
39
+ )
36
40
 
37
41
  return (
38
42
  <div
@@ -25,7 +25,11 @@ const Image = (props: ImageProps) => {
25
25
  } = props
26
26
 
27
27
  const ariaProps = buildAriaProps(aria)
28
- const classes = classnames(buildCss('pb_image lazyload blur_up'), className, globalProps(props))
28
+ const classes = classnames(
29
+ buildCss('pb_image lazyload blur_up'),
30
+ globalProps(props),
31
+ className
32
+ )
29
33
  const dataProps = buildDataProps(data)
30
34
 
31
35
  return (
@@ -30,7 +30,11 @@ const LabelPill = (props: LabelPillProps) => {
30
30
  } = props
31
31
  const ariaProps = buildAriaProps(aria)
32
32
  const dataProps = buildDataProps(data)
33
- const css = classnames(['pb_label_pill_kit', className], globalProps(props))
33
+ const css = classnames(
34
+ 'pb_label_pill_kit',
35
+ globalProps(props),
36
+ className
37
+ )
34
38
 
35
39
  return (
36
40
  <div
@@ -46,7 +46,7 @@ type LayoutFooterProps = {
46
46
  const Side = (props: LayoutSideProps) => {
47
47
  const { children, className } = props
48
48
  return (
49
- <div className={classnames('layout_sidebar', className, globalProps(props))}>
49
+ <div className={classnames('layout_sidebar', globalProps(props), className)}>
50
50
  {children}
51
51
  </div>
52
52
  )
@@ -56,7 +56,7 @@ const Side = (props: LayoutSideProps) => {
56
56
  const Body = (props: LayoutBodyProps) => {
57
57
  const { children, className } = props
58
58
  return (
59
- <div className={classnames('layout_body', className, globalProps(props))}>
59
+ <div className={classnames('layout_body', globalProps(props), className)}>
60
60
  {children}
61
61
  </div>
62
62
  )
@@ -66,7 +66,7 @@ const Body = (props: LayoutBodyProps) => {
66
66
  const Header = (props: LayoutHeaderProps) => {
67
67
  const { children, className } = props
68
68
  return (
69
- <div className={classnames('layout_header', className, globalProps(props))}>
69
+ <div className={classnames('layout_header', globalProps(props), className)}>
70
70
  {children}
71
71
  </div>
72
72
  )
@@ -76,7 +76,7 @@ const Header = (props: LayoutHeaderProps) => {
76
76
  const Footer = (props: LayoutFooterProps) => {
77
77
  const { children, className } = props
78
78
  return (
79
- <div className={classnames('layout_footer', className, globalProps(props))}>
79
+ <div className={classnames('layout_footer', globalProps(props), className)}>
80
80
  {children}
81
81
  </div>
82
82
  )