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

Sign up to get free protection for your applications and to get access to all the features.
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) {