playbook_ui 13.14.0.pre.alpha.play1106filter1751 → 13.14.0.pre.alpha.play1120lintdatepicker1797

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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +5 -5
  4. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.tsx +3 -3
  5. data/app/pb_kits/playbook/pb_background/_background.tsx +9 -9
  6. data/app/pb_kits/playbook/pb_badge/_badge.tsx +2 -2
  7. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.tsx +3 -3
  8. data/app/pb_kits/playbook/pb_body/_body.scss +0 -5
  9. data/app/pb_kits/playbook/pb_body/_body.tsx +5 -9
  10. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +0 -20
  11. data/app/pb_kits/playbook/pb_body/body.rb +1 -8
  12. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumb_item.tsx +3 -4
  13. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.tsx +3 -3
  14. data/app/pb_kits/playbook/pb_button/_button.tsx +40 -37
  15. data/app/pb_kits/playbook/pb_button/docs/_button_props_swift.md +11 -0
  16. data/app/pb_kits/playbook/pb_button/docs/_button_reaction_swift.md +26 -0
  17. data/app/pb_kits/playbook/pb_button/docs/example.yml +1 -0
  18. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.tsx +3 -3
  19. data/app/pb_kits/playbook/pb_caption/_caption.tsx +1 -1
  20. data/app/pb_kits/playbook/pb_card/_card.tsx +2 -2
  21. data/app/pb_kits/playbook/pb_card/docs/_card_background.jsx +5 -4
  22. data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +3 -3
  23. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +9 -9
  24. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.tsx +1 -1
  25. data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +5 -7
  26. data/app/pb_kits/playbook/pb_collapsible/_helper_functions.ts +2 -2
  27. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx +5 -4
  28. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +16 -12
  29. data/app/pb_kits/playbook/pb_contact/_contact.tsx +3 -3
  30. data/app/pb_kits/playbook/pb_currency/_currency.tsx +2 -2
  31. data/app/pb_kits/playbook/pb_dashboard/pbChartsColorsHelper.ts +1 -1
  32. data/app/pb_kits/playbook/pb_dashboard/pbChartsDarkTheme.ts +4 -57
  33. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.ts +4 -57
  34. data/app/pb_kits/playbook/pb_dashboard/themeTypes.ts +20 -16
  35. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.tsx +1 -1
  36. data/app/pb_kits/playbook/pb_date/_date.tsx +7 -7
  37. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -1
  38. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +40 -33
  39. data/app/pb_kits/playbook/pb_date_picker/plugins/quickPick.tsx +4 -4
  40. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +2 -2
  41. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.tsx +2 -2
  42. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.tsx +8 -8
  43. data/app/pb_kits/playbook/pb_date_time/_date_time.tsx +2 -2
  44. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.tsx +1 -1
  45. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.tsx +2 -2
  46. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +6 -3
  47. data/app/pb_kits/playbook/pb_detail/_detail.scss +2 -2
  48. data/app/pb_kits/playbook/pb_detail/_detail.tsx +5 -5
  49. data/app/pb_kits/playbook/pb_detail/detail.rb +1 -1
  50. data/app/pb_kits/playbook/pb_detail/detail.test.jsx +2 -2
  51. data/app/pb_kits/playbook/pb_dialog/_close_icon.tsx +2 -2
  52. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +42 -34
  53. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_body.tsx +1 -1
  54. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_footer.tsx +4 -5
  55. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_header.tsx +4 -4
  56. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default_swift.md +11 -0
  57. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx +8 -4
  58. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +8 -4
  59. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_props_table.md +13 -0
  60. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.jsx +4 -2
  61. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes_swift.md +18 -0
  62. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.jsx +1 -1
  63. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status_swift.md +14 -0
  64. data/app/pb_kits/playbook/pb_dialog/docs/example.yml +7 -0
  65. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.tsx +5 -5
  66. data/app/pb_kits/playbook/pb_file_upload/_file_upload.tsx +1 -1
  67. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -1
  68. data/app/pb_kits/playbook/pb_flex/_flex.tsx +1 -1
  69. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +1 -1
  70. data/app/pb_kits/playbook/pb_form_group/_form_group.tsx +1 -1
  71. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +1 -1
  72. data/app/pb_kits/playbook/pb_gauge/_gauge.tsx +1 -1
  73. data/app/pb_kits/playbook/pb_hashtag/_hashtag.tsx +1 -1
  74. data/app/pb_kits/playbook/pb_highlight/_highlight.tsx +1 -1
  75. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +1 -1
  76. data/app/pb_kits/playbook/pb_icon/_icon.tsx +1 -1
  77. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx +1 -1
  78. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.tsx +1 -1
  79. data/app/pb_kits/playbook/pb_icon_value/_icon_value.tsx +1 -1
  80. data/app/pb_kits/playbook/pb_image/_image.tsx +1 -1
  81. data/app/pb_kits/playbook/pb_label_pill/_label_pill.tsx +1 -1
  82. data/app/pb_kits/playbook/pb_label_value/_label_value.tsx +1 -1
  83. data/app/pb_kits/playbook/pb_layout/_layout.tsx +1 -1
  84. data/app/pb_kits/playbook/pb_legend/_legend.tsx +1 -1
  85. data/app/pb_kits/playbook/pb_lightbox/Header/_lightbox_header.tsx +1 -1
  86. data/app/pb_kits/playbook/pb_lightbox/_lightbox.tsx +1 -1
  87. data/app/pb_kits/playbook/pb_line_graph/_line_graph.tsx +1 -1
  88. data/app/pb_kits/playbook/pb_list/_list.tsx +1 -1
  89. data/app/pb_kits/playbook/pb_list/_list_item.tsx +1 -1
  90. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +1 -1
  91. data/app/pb_kits/playbook/pb_map/_map.tsx +1 -1
  92. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -1
  93. data/app/pb_kits/playbook/pb_message/_message_mention.tsx +1 -1
  94. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +1 -1
  95. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.tsx +1 -1
  96. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.tsx +1 -1
  97. data/app/pb_kits/playbook/pb_nav/_item.tsx +1 -1
  98. data/app/pb_kits/playbook/pb_nav/_nav.tsx +1 -1
  99. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  100. data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +1 -1
  101. data/app/pb_kits/playbook/pb_person/_person.tsx +1 -1
  102. data/app/pb_kits/playbook/pb_person/docs/_person_default_swift.md +8 -0
  103. data/app/pb_kits/playbook/pb_person/docs/_person_props_swift.md +5 -0
  104. data/app/pb_kits/playbook/pb_person/docs/example.yml +4 -0
  105. data/app/pb_kits/playbook/pb_person_contact/_person_contact.tsx +1 -1
  106. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +1 -1
  107. data/app/pb_kits/playbook/pb_pill/_pill.tsx +1 -1
  108. data/app/pb_kits/playbook/pb_popover/_popover.tsx +1 -1
  109. data/app/pb_kits/playbook/pb_popover/index.ts +1 -1
  110. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.tsx +1 -1
  111. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.tsx +1 -1
  112. data/app/pb_kits/playbook/pb_progress_step/_progress_step.tsx +1 -1
  113. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.tsx +1 -1
  114. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  115. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +1 -1
  116. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +1 -1
  117. data/app/pb_kits/playbook/pb_select/_select.tsx +1 -1
  118. data/app/pb_kits/playbook/pb_select/docs/_select_default_swift.md +15 -0
  119. data/app/pb_kits/playbook/pb_select/docs/_select_error_swift.md +18 -0
  120. data/app/pb_kits/playbook/pb_select/docs/_select_props_table.md +8 -0
  121. data/app/pb_kits/playbook/pb_select/docs/example.yml +5 -0
  122. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.tsx +1 -1
  123. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.tsx +1 -1
  124. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.tsx +1 -1
  125. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +1 -1
  126. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.tsx +1 -1
  127. data/app/pb_kits/playbook/pb_source/_source.tsx +1 -1
  128. data/app/pb_kits/playbook/pb_star_rating/_star_rating.tsx +1 -1
  129. data/app/pb_kits/playbook/pb_stat_change/_stat_change.tsx +1 -1
  130. data/app/pb_kits/playbook/pb_stat_value/_stat_value.tsx +1 -1
  131. data/app/pb_kits/playbook/pb_table/_table.tsx +1 -1
  132. data/app/pb_kits/playbook/pb_table/_table_row.tsx +1 -1
  133. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +1 -1
  134. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +1 -1
  135. data/app/pb_kits/playbook/pb_time/_time.tsx +1 -1
  136. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +1 -1
  137. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.tsx +1 -1
  138. data/app/pb_kits/playbook/pb_timeline/_item.tsx +1 -1
  139. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
  140. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +1 -1
  141. data/app/pb_kits/playbook/pb_title/_title.scss +0 -5
  142. data/app/pb_kits/playbook/pb_title/_title.tsx +2 -5
  143. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +0 -19
  144. data/app/pb_kits/playbook/pb_title/title.rb +2 -9
  145. data/app/pb_kits/playbook/pb_title_count/_title_count.tsx +1 -1
  146. data/app/pb_kits/playbook/pb_title_detail/_title_detail.tsx +1 -1
  147. data/app/pb_kits/playbook/pb_toggle/_toggle.tsx +1 -1
  148. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +1 -1
  149. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +1 -1
  150. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +1 -1
  151. data/app/pb_kits/playbook/pb_user/_user.tsx +1 -1
  152. data/app/pb_kits/playbook/pb_user/docs/_user_horizontal_swift.md +37 -0
  153. data/app/pb_kits/playbook/pb_user/docs/_user_props_table.md +10 -0
  154. data/app/pb_kits/playbook/pb_user/docs/_user_size_swift.md +35 -0
  155. data/app/pb_kits/playbook/pb_user/docs/_user_text_only_swift.md +27 -0
  156. data/app/pb_kits/playbook/pb_user/docs/_user_vertical_size_swift.md +35 -0
  157. data/app/pb_kits/playbook/pb_user/docs/example.yml +7 -0
  158. data/app/pb_kits/playbook/pb_user_badge/_user_badge.tsx +1 -1
  159. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +1 -1
  160. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +1 -1
  161. data/app/pb_kits/playbook/tokens/exports/exports.d.ts +1 -0
  162. data/app/pb_kits/playbook/utilities/_truncate.scss +20 -0
  163. data/app/pb_kits/playbook/utilities/globalProps.ts +13 -2
  164. data/app/pb_kits/playbook/utilities/props.ts +2 -2
  165. data/app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js +21 -0
  166. data/dist/playbook-rails.js +5 -5
  167. data/lib/playbook/classnames.rb +1 -0
  168. data/lib/playbook/kit_base.rb +2 -0
  169. data/lib/playbook/truncate.rb +29 -0
  170. data/lib/playbook/version.rb +1 -1
  171. metadata +21 -2
@@ -12,22 +12,20 @@ import { IconSizes } from "../pb_icon/_icon"
12
12
 
13
13
 
14
14
  type CollapsibleProps = {
15
- children?: JSX.Element | [] | any,
15
+ children?: React.ReactElement | [] | any,
16
16
  aria?: {[key: string]: string},
17
17
  className?: string,
18
18
  collapsed?: boolean,
19
- data?: object,
19
+ data?: {[key: string]: string},
20
20
  icon?: string | string[],
21
21
  iconColor?: 'default' | 'light' | 'lighter' | 'link' | 'error' | 'success',
22
22
  iconSize?: IconSizes,
23
23
  onIconClick?: ()=> void,
24
24
  onClick?: ()=> void,
25
- htmlOptions?: {[key: string]: string | number | boolean | Function},
25
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
26
26
  id?: string,
27
27
  }
28
28
 
29
-
30
-
31
29
  const Collapsible = ({
32
30
  aria = {},
33
31
  className,
@@ -42,14 +40,14 @@ const Collapsible = ({
42
40
  onClick,
43
41
  id,
44
42
  ...props
45
- }: CollapsibleProps) => {
43
+ }: CollapsibleProps): React.ReactElement => {
46
44
  const [isCollapsed, toggle, setIsCollapsed] = useCollapsible(collapsed)
47
45
 
48
46
  useEffect(()=> {
49
47
  setIsCollapsed(collapsed)
50
48
  },[collapsed])
51
49
 
52
- const CollapsibleParent = React.Children.toArray(children) as JSX.Element[]
50
+ const CollapsibleParent = React.Children.toArray(children) as React.ReactElement[]
53
51
 
54
52
  if (CollapsibleParent.length !== 2) {
55
53
  throw new Error('Collapsible requires <CollapsibleMain> and <CollapsibleContent> to function properly.')
@@ -1,4 +1,4 @@
1
- export const showElement = (elem:any) => {
1
+ export const showElement = (elem: HTMLElement) => {
2
2
  elem.style.display = 'block';
3
3
  const height = elem.scrollHeight + 'px'; // Get its height
4
4
  elem.style.height = height; // Update the max-height
@@ -11,7 +11,7 @@ export const showElement = (elem:any) => {
11
11
  }, 300);
12
12
  };
13
13
 
14
- export const hideElement = (elem:any) => {
14
+ export const hideElement = (elem: HTMLElement) => {
15
15
  elem.style.height = elem.scrollHeight + 'px';
16
16
 
17
17
  window.setTimeout(() => {
@@ -15,7 +15,7 @@ const CollapsibleContent = ({
15
15
  children,
16
16
  className,
17
17
  ...props
18
- }: CollapsibleContentProps) => {
18
+ }: CollapsibleContentProps): React.ReactElement => {
19
19
  const context: {[key: string]: boolean | string} = useContext(CollapsibleContext)
20
20
  const contentCSS = buildCss('pb_collapsible_content_kit')
21
21
  const contentSpacing = globalProps(props)
@@ -33,9 +33,10 @@ const CollapsibleContent = ({
33
33
  }, [context.collapsed]);
34
34
 
35
35
  return (
36
- <div ref={contentRef}
37
- data-collapsible-content="true"
38
- className={classnames(contentCSS, contentSpacing, "toggle-content", className)}>
36
+ <div className={classnames(contentCSS, contentSpacing, "toggle-content", className)}
37
+ data-collapsible-content="true"
38
+ ref={contentRef}
39
+ >
39
40
  {children}
40
41
  </div>
41
42
  )
@@ -56,7 +56,7 @@ const ToggleIcon = ({ collapsed, icon, iconSize, iconColor, onIconClick }: IconP
56
56
  return icon
57
57
  }
58
58
 
59
- const handleIconClick = (e:any) => {
59
+ const handleIconClick = (e: React.MouseEvent<HTMLElement>) => {
60
60
  if (onIconClick) {
61
61
  e.stopPropagation();
62
62
  onIconClick()
@@ -67,21 +67,25 @@ const ToggleIcon = ({ collapsed, icon, iconSize, iconColor, onIconClick }: IconP
67
67
  <>
68
68
  {collapsed ? (
69
69
  <div
70
- className="icon_wrapper"
71
- key={icon ? showIcon(icon)[0] : "chevron-down"}
72
- style={{ verticalAlign: "middle", color: color }}
73
- onClick={(e)=> handleIconClick(e)}
70
+ className="icon_wrapper"
71
+ key={icon ? showIcon(icon)[0] : "chevron-down"}
72
+ onClick={(e)=> handleIconClick(e)}
73
+ style={{ verticalAlign: "middle", color: color }}
74
74
  >
75
- <Icon icon={icon ? showIcon(icon)[0] : "chevron-down"} size={iconSize} />
75
+ <Icon icon={icon ? showIcon(icon)[0] : "chevron-down"}
76
+ size={iconSize}
77
+ />
76
78
  </div>
77
79
  ) : (
78
80
  <div
79
- className="icon_wrapper"
80
- key={icon ? showIcon(icon)[1] : "chevron-up"}
81
- style={{ verticalAlign: "middle", color: color }}
82
- onClick={(e)=> handleIconClick(e)}
81
+ className="icon_wrapper"
82
+ key={icon ? showIcon(icon)[1] : "chevron-up"}
83
+ onClick={(e)=> handleIconClick(e)}
84
+ style={{ verticalAlign: "middle", color: color }}
83
85
  >
84
- <Icon icon={icon ? showIcon(icon)[1] : "chevron-up"} size={iconSize} />
86
+ <Icon icon={icon ? showIcon(icon)[1] : "chevron-up"}
87
+ size={iconSize}
88
+ />
85
89
  </div>
86
90
  )}
87
91
  </>
@@ -118,9 +122,9 @@ const CollapsibleMain = ({
118
122
  <FlexItem>
119
123
  <ToggleIcon
120
124
  collapsed={collapsed as () => void}
125
+ icon={icon as string[] | string}
121
126
  iconColor={iconColor as IconColors}
122
127
  iconSize={iconSize as IconSizes}
123
- icon={icon as string[] | string}
124
128
  onIconClick={onIconClick}
125
129
  />
126
130
  </FlexItem>
@@ -50,12 +50,12 @@ type ContactProps = {
50
50
  contactDetail?: string,
51
51
  contactType?: string,
52
52
  contactValue: string,
53
- data?: object,
54
- htmlOptions?: {[key: string]: string | number | boolean | Function},
53
+ data?: {[key: string]: string},
54
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
55
55
  id?: string,
56
56
  }
57
57
 
58
- const Contact = (props: ContactProps) => {
58
+ const Contact = (props: ContactProps): React.ReactElement => {
59
59
  const {
60
60
  aria = {},
61
61
  className,
@@ -18,7 +18,7 @@ type CurrencyProps = {
18
18
  data?: {[key:string]:string},
19
19
  decimals?: 'default' | 'matching',
20
20
  emphasized?: boolean,
21
- htmlOptions?: {[key: string]: string | number | boolean | Function},
21
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
22
22
  id?: string,
23
23
  label?: string,
24
24
  size?: 'sm' | 'md' | 'lg',
@@ -34,7 +34,7 @@ const sizes: {lg: 1, md: 3, sm: 4} = {
34
34
  sm: 4,
35
35
  }
36
36
 
37
- const Currency = (props: CurrencyProps) => {
37
+ const Currency = (props: CurrencyProps): React.ReactElement => {
38
38
  const {
39
39
  abbreviate = false,
40
40
  align = 'left',
@@ -2,7 +2,7 @@ import colors from "../tokens/exports/_colors.scss";
2
2
 
3
3
 
4
4
  // Map Data Color String Props to our SCSS Variables
5
- const mapColors = (array: string[]) => {
5
+ const mapColors = (array: string[]): string[] => {
6
6
  const regex = /(data)\-[1-8]/; //eslint-disable-line
7
7
 
8
8
  const newArray = array.map((item) => {
@@ -3,9 +3,6 @@ import typography from '../tokens/exports/_typography.scss'
3
3
 
4
4
  import { ThemeProps } from './themeTypes'
5
5
 
6
- import Highcharts from 'highcharts'
7
-
8
- const pbButtonHoverColor = '#004ebb'
9
6
  const highchartsDarkTheme: ThemeProps = {
10
7
  lang: {
11
8
  thousandsSep: ',',
@@ -22,7 +19,7 @@ const highchartsDarkTheme: ThemeProps = {
22
19
  chart: {
23
20
  borderWidth: 0,
24
21
  borderRadius: 0,
25
- plotBackgroundColor: null,
22
+ plotBackgroundColor: undefined,
26
23
  plotShadow: false,
27
24
  plotBorderWidth: 0,
28
25
  },
@@ -64,7 +61,7 @@ const highchartsDarkTheme: ThemeProps = {
64
61
  },
65
62
  },
66
63
  yAxis: {
67
- alternateGridColor: null,
64
+ alternateGridColor: undefined,
68
65
  minorTickInterval: null,
69
66
  gridLineColor: colors.border_dark,
70
67
  minorGridLineColor: colors.border_dark,
@@ -104,11 +101,6 @@ const highchartsDarkTheme: ThemeProps = {
104
101
  color: colors.text_dk_lighter,
105
102
  },
106
103
  },
107
- labels: {
108
- style: {
109
- color: colors.primary,
110
- },
111
- },
112
104
  tooltip: {
113
105
  backgroundColor: {
114
106
  linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
@@ -130,29 +122,15 @@ const highchartsDarkTheme: ThemeProps = {
130
122
  // specific to gauge
131
123
  // unfilled gauge color
132
124
  pane: {
133
- background: {
125
+ background: [{
134
126
  borderColor: colors.border_dark,
135
- },
127
+ }],
136
128
  },
137
129
 
138
130
  plotOptions: {
139
131
  series: {
140
132
  borderColor: colors.bg_dark_card,
141
133
  borderWidth: 2,
142
- type: 'area',
143
- nullColor: colors.text_dk_lighter,
144
- fillColor: {
145
- linearGradient: {
146
- x1: 0,
147
- y1: 0,
148
- x2: 0,
149
- y2: 1,
150
- },
151
- stops: [
152
- [0, Highcharts.getOptions().colors[0]],
153
- [1, 'white'],
154
- ],
155
- },
156
134
  threshold: null,
157
135
  },
158
136
  // PIE STYLES
@@ -184,15 +162,6 @@ const highchartsDarkTheme: ThemeProps = {
184
162
  marker: {
185
163
  lineColor: colors.border_dark,
186
164
  },
187
- area: {
188
- shadow: false,
189
- states: {
190
- hover: {
191
- lineWidth: 1,
192
- },
193
- },
194
- threshold: null,
195
- },
196
165
  },
197
166
 
198
167
  //TREEMAP CHART STYLES
@@ -210,7 +179,6 @@ const highchartsDarkTheme: ThemeProps = {
210
179
  colors.data_7,
211
180
  colors.data_8,
212
181
  ],
213
- colorByPoint: true,
214
182
  dataLabels: {
215
183
  enabled: true,
216
184
  style: {
@@ -229,27 +197,6 @@ const highchartsDarkTheme: ThemeProps = {
229
197
  ],
230
198
  traverseUpButton: {
231
199
  position: { y: -50 },
232
- text: '< Back',
233
- theme: {
234
- r: 4,
235
- states: {
236
- hover: {
237
- style: {
238
- fill: pbButtonHoverColor,
239
- },
240
- },
241
- },
242
- style: {
243
- fill: colors.royal,
244
- color: colors.white,
245
- fontSize: `${typography.text_small}`,
246
- fontWeight: typography.bold,
247
- fontFamily: `${typography.font_family_base}`,
248
- },
249
- stroke: colors.royal,
250
- height: 24,
251
- width: 90,
252
- },
253
200
  },
254
201
  },
255
202
  },
@@ -3,9 +3,6 @@ import typography from '../tokens/exports/_typography.scss'
3
3
 
4
4
  import { ThemeProps } from './themeTypes'
5
5
 
6
- import Highcharts from 'highcharts'
7
-
8
- const pbButtonHoverColor = '#004ebb'
9
6
  const highchartsTheme: ThemeProps = {
10
7
  lang: {
11
8
  thousandsSep: ',',
@@ -22,7 +19,7 @@ const highchartsTheme: ThemeProps = {
22
19
  chart: {
23
20
  borderWidth: 0,
24
21
  borderRadius: 0,
25
- plotBackgroundColor: null,
22
+ plotBackgroundColor: undefined,
26
23
  plotShadow: false,
27
24
  plotBorderWidth: 0,
28
25
  },
@@ -64,7 +61,7 @@ const highchartsTheme: ThemeProps = {
64
61
  },
65
62
  },
66
63
  yAxis: {
67
- alternateGridColor: null,
64
+ alternateGridColor: undefined,
68
65
  minorTickInterval: null,
69
66
  gridLineColor: colors.border_light,
70
67
  minorGridLineColor: colors.border_light,
@@ -104,11 +101,6 @@ const highchartsTheme: ThemeProps = {
104
101
  color: colors.text_lt_lighter,
105
102
  },
106
103
  },
107
- labels: {
108
- style: {
109
- color: colors.primary,
110
- },
111
- },
112
104
  tooltip: {
113
105
  backgroundColor: {
114
106
  linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
@@ -130,27 +122,13 @@ const highchartsTheme: ThemeProps = {
130
122
  // specific to gauge
131
123
  // unfilled gauge color
132
124
  pane: {
133
- background: {
125
+ background: [{
134
126
  borderColor: colors.border_light,
135
- },
127
+ }],
136
128
  },
137
129
 
138
130
  plotOptions: {
139
131
  series: {
140
- type: 'area',
141
- nullColor: colors.text_lt_lighter,
142
- fillColor: {
143
- linearGradient: {
144
- x1: 0,
145
- y1: 0,
146
- x2: 0,
147
- y2: 1,
148
- },
149
- stops: [
150
- [0, Highcharts.getOptions().colors[0]],
151
- [1, 'white'],
152
- ],
153
- },
154
132
  threshold: null,
155
133
  },
156
134
  // PIE STYLES
@@ -182,15 +160,6 @@ const highchartsTheme: ThemeProps = {
182
160
  marker: {
183
161
  lineColor: '#333',
184
162
  },
185
- area: {
186
- shadow: false,
187
- states: {
188
- hover: {
189
- lineWidth: 1,
190
- },
191
- },
192
- threshold: null,
193
- },
194
163
  },
195
164
 
196
165
  //TREEMAP CHART STYLES
@@ -208,7 +177,6 @@ const highchartsTheme: ThemeProps = {
208
177
  colors.data_7,
209
178
  colors.data_8,
210
179
  ],
211
- colorByPoint: true,
212
180
  dataLabels: {
213
181
  enabled: true,
214
182
  style: {
@@ -227,27 +195,6 @@ const highchartsTheme: ThemeProps = {
227
195
  ],
228
196
  traverseUpButton: {
229
197
  position: { y: -50 },
230
- text: '< Back',
231
- theme: {
232
- r: 4,
233
- states: {
234
- hover: {
235
- style: {
236
- fill: pbButtonHoverColor,
237
- },
238
- },
239
- },
240
- style: {
241
- fill: colors.royal,
242
- color: colors.white,
243
- fontSize: `${typography.text_small}`,
244
- fontWeight: typography.bold,
245
- fontFamily: `${typography.font_family_base}`,
246
- },
247
- stroke: colors.royal,
248
- height: 24,
249
- width: 90,
250
- },
251
198
  },
252
199
  },
253
200
  },
@@ -1,16 +1,20 @@
1
- export type ThemeProps = {
2
- lang?: {[key: string]: string}
3
- credits?: {[key: string]: boolean}
4
- colors?: string[]
5
- chart?: {[key: string]: any}
6
- title?: {[key: string]: string | {}}
7
- subtitle?: {[key: string]: string | {};}
8
- xAxis?: {[key: string]: any;}
9
- yAxis?: {[key: string]: any;}
10
- legend?: {[key: string]: string | {};}
11
- labels?: {[key: string]: {};}
12
- tooltip?: {[key: string]: any;}
13
- pane?: {[key: string]: {};}
14
- plotOptions?: {[key: string]: any;}
15
- colorKey?: string
16
- }
1
+ import { Options, LegendOptions } from "highcharts";
2
+ export interface ThemeProps
3
+ extends Pick<
4
+ Options,
5
+ | "credits"
6
+ | "chart"
7
+ | "colors"
8
+ | "lang"
9
+ | "title"
10
+ | "subtitle"
11
+ | "xAxis"
12
+ | "yAxis"
13
+ | "legend"
14
+ | "tooltip"
15
+ | "pane"
16
+ | "plotOptions"
17
+ > {
18
+ colorKey?: string;
19
+ legend?: LegendOptions;
20
+ }
@@ -12,7 +12,7 @@ type DashboardValueProps = {
12
12
  aria?: { [key: string]: string },
13
13
  className?: string,
14
14
  data?: { [key: string]: string },
15
- htmlOptions?: {[key: string]: string | number | boolean | Function},
15
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
16
16
  id?: string,
17
17
  statChange?: {
18
18
  change? : 'increase' | 'decrease' | 'neutral',
@@ -15,7 +15,7 @@ type PbDateProps = {
15
15
  aria?: { [key: string]: string };
16
16
  className?: string;
17
17
  data?: { [key: string]: string };
18
- htmlOptions?: { [key: string]: string | number | boolean | Function };
18
+ htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
19
19
  id?: string;
20
20
  showDayOfWeek?: boolean;
21
21
  showIcon?: boolean;
@@ -24,7 +24,7 @@ type PbDateProps = {
24
24
  value: Date;
25
25
  };
26
26
 
27
- const PbDate = (props: PbDateProps) => {
27
+ const PbDate = (props: PbDateProps): React.ReactElement => {
28
28
  const {
29
29
  aria = {},
30
30
  alignment = "left",
@@ -57,11 +57,11 @@ const PbDate = (props: PbDateProps) => {
57
57
 
58
58
  return (
59
59
  <div
60
- {...ariaProps}
61
- {...dataProps}
62
- {...htmlProps}
63
- className={classes}
64
- id={id}
60
+ {...ariaProps}
61
+ {...dataProps}
62
+ {...htmlProps}
63
+ className={classes}
64
+ id={id}
65
65
  >
66
66
  {unstyled
67
67
  ? <>
@@ -26,7 +26,7 @@ type DatePickerProps = {
26
26
  format?: string,
27
27
  hideIcon?: boolean,
28
28
  hideLabel?: boolean,
29
- htmlOptions?: {[key: string]: string | number | boolean | Function},
29
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
30
30
  id?: string,
31
31
  inLine?: boolean,
32
32
  inputAria?: { [key: string]: string },
@@ -32,6 +32,10 @@ type DatePickerConfig = {
32
32
  } & Pick<BaseOptions, "allowInput" | "defaultDate" | "enableTime" | "maxDate" | "minDate" | "mode" | "plugins" | "position" | "positionElement" >
33
33
 
34
34
  const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HTMLElement) => {
35
+ const noop = () => {
36
+ // intentionally left empty as a no-op placeholder
37
+ }
38
+
35
39
  const {
36
40
  allowInput,
37
41
  closeOnSelect = true,
@@ -45,8 +49,8 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
45
49
  maxDate,
46
50
  minDate,
47
51
  mode,
48
- onChange = () => {},
49
- onClose = () => {},
52
+ onChange = noop,
53
+ onClose = noop,
50
54
  pickerId,
51
55
  plugins,
52
56
  position = "auto",
@@ -72,20 +76,11 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
72
76
  return defaultDate
73
77
  }
74
78
  }
75
- const disabledParser = () => {
76
- const disabledArray=[]
77
-
78
- disableDate && disableDate.length > 0 && disabledArray.push(...disableDate)
79
- disableRange && disableRange.length > 0 && disabledArray.push(...disableRange)
80
- disableWeekdays && disableWeekdays.length > 0 && disabledArray.push(...disabledWeekDays())
81
-
82
- return disabledArray
83
- }
84
79
 
85
80
  const disabledWeekDays = () => {
86
81
  return (
87
82
  [
88
- (date:any) => {
83
+ (date: any) => {
89
84
  const weekdayObj: {
90
85
  [day: string]: number
91
86
  } = {
@@ -110,6 +105,16 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
110
105
  ]
111
106
  )
112
107
  }
108
+
109
+ const disabledParser = () => {
110
+ const disabledArray=[]
111
+
112
+ disableDate && disableDate.length > 0 && disabledArray.push(...disableDate)
113
+ disableRange && disableRange.length > 0 && disabledArray.push(...disableRange)
114
+ disableWeekdays && disableWeekdays.length > 0 && disabledArray.push(...disabledWeekDays())
115
+
116
+ return disabledArray
117
+ }
113
118
  const calendarResizer = () => {
114
119
  const cal = document.querySelector(`#cal-${pickerId}.open`) as HTMLElement
115
120
  const parentInput = cal.parentElement
@@ -125,28 +130,46 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
125
130
 
126
131
  const setPlugins = (thisRangesEndToday: boolean, customQuickPickDates: any) => {
127
132
  const pluginList = []
128
-
133
+
129
134
  // month and week selection
130
135
  if (selectionType === "month" || plugins.length > 0) {
131
136
  pluginList.push(monthSelectPlugin({ shorthand: true, dateFormat: 'F Y', altFormat: 'F Y' }))
132
137
  } else if ( selectionType === "week") {
133
138
  pluginList.push(weekSelect())
134
-
139
+
135
140
  } else if (selectionType === "quickpick") {
136
141
  //------- QUICKPICK VARIANT PLUGIN -------------//
137
142
  pluginList.push(quickPickPlugin(thisRangesEndToday, customQuickPickDates))
138
143
  }
139
-
144
+
140
145
  // time selection
141
146
  if (enableTime) pluginList.push(timeSelectPlugin({ caption: timeCaption, showTimezone: showTimezone}))
142
-
147
+
143
148
  return pluginList
144
149
  }
145
-
150
+
146
151
  const getDateFormat = () => {
147
152
  return enableTime ? `${format} ${timeFormat}` : format
148
153
  }
149
154
 
155
+ // Attach / detach to / from scroll events
156
+ const initialPicker = document.querySelector<HTMLElement & { [x: string]: any }>(`#${pickerId}`)._flatpickr
157
+ const scrollEvent = () => {
158
+ initialPicker._positionCalendar()
159
+ }
160
+ function attachToScroll(scrollParent: string | HTMLElement) {
161
+ document.querySelectorAll(scrollParent as string)[0]?.addEventListener("scroll", scrollEvent, { passive: true })
162
+ }
163
+ function detachFromScroll(scrollParent: string | HTMLElement = document.body) {
164
+ document.querySelectorAll(scrollParent as string)[0]?.removeEventListener("scroll", scrollEvent)
165
+ }
166
+
167
+ // two way binding
168
+ const initialDropdown = document.querySelector<HTMLElement & { [x: string]: any }>(`#year-${pickerId}`)
169
+ const yearChangeHook = () => {
170
+ initialDropdown.value = initialPicker.currentYear
171
+ }
172
+
150
173
  // ===========================================================
151
174
  // | Flatpickr initializer w/ config |
152
175
  // ===========================================================
@@ -193,17 +216,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
193
216
  const picker = document.querySelector<HTMLElement & { [x: string]: any }>(`#${pickerId}`)._flatpickr
194
217
  picker.innerContainer.parentElement.id = `cal-${pickerId}`
195
218
 
196
- // Attach / detach to / from scroll events
197
- const scrollEvent = () => {
198
- picker._positionCalendar()
199
- }
200
- function attachToScroll(scrollParent: string | HTMLElement) {
201
- document.querySelectorAll(scrollParent as string)[0]?.addEventListener("scroll", scrollEvent, { passive: true })
202
- }
203
- function detachFromScroll(scrollParent: string | HTMLElement = document.body) {
204
- document.querySelectorAll(scrollParent as string)[0]?.removeEventListener("scroll", scrollEvent)
205
- }
206
-
207
219
  // replace year selector with dropdown
208
220
  picker.yearElements[0].parentElement.innerHTML = `<select class="numInput cur-year" type="number" tabIndex="-1" aria-label="Year" id="year-${pickerId}"></select>`
209
221
 
@@ -242,11 +254,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
242
254
  })
243
255
  }
244
256
 
245
- // two way binding
246
- const yearChangeHook = () => {
247
- dropdown.value = picker.currentYear
248
- }
249
-
250
257
  // Adding dropdown icons to year and month selects
251
258
  dropdown.insertAdjacentHTML('afterend', '<i class="far fa-angle-down year-dropdown-icon" id="test-id"></i>')
252
259
  if (picker.monthElements[0].parentElement) {