@wordpress/components 19.0.3 → 19.1.1

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 (116) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/circular-option-picker/index.js +2 -2
  3. package/build/circular-option-picker/index.js.map +1 -1
  4. package/build/color-palette/index.js +1 -0
  5. package/build/color-palette/index.js.map +1 -1
  6. package/build/date-time/time.js +17 -3
  7. package/build/date-time/time.js.map +1 -1
  8. package/build/duotone-picker/duotone-picker.js +2 -1
  9. package/build/duotone-picker/duotone-picker.js.map +1 -1
  10. package/build/font-size-picker/index.js +2 -1
  11. package/build/font-size-picker/index.js.map +1 -1
  12. package/build/index.js +7 -7
  13. package/build/index.js.map +1 -1
  14. package/build/mobile/global-styles-context/utils.native.js +3 -3
  15. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  16. package/build/navigation/item/index.js +6 -3
  17. package/build/navigation/item/index.js.map +1 -1
  18. package/build/navigation/styles/navigation-styles.js +37 -30
  19. package/build/navigation/styles/navigation-styles.js.map +1 -1
  20. package/build/palette-edit/index.js +303 -0
  21. package/build/palette-edit/index.js.map +1 -0
  22. package/build/palette-edit/styles.js +112 -0
  23. package/build/palette-edit/styles.js.map +1 -0
  24. package/build/popover/index.js +1 -1
  25. package/build/popover/index.js.map +1 -1
  26. package/build/toggle-group-control/toggle-group-control-option/component.js +30 -4
  27. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  28. package/build/tooltip/index.js +4 -4
  29. package/build/tooltip/index.js.map +1 -1
  30. package/build-module/circular-option-picker/index.js +2 -2
  31. package/build-module/circular-option-picker/index.js.map +1 -1
  32. package/build-module/color-palette/index.js +1 -0
  33. package/build-module/color-palette/index.js.map +1 -1
  34. package/build-module/date-time/time.js +17 -3
  35. package/build-module/date-time/time.js.map +1 -1
  36. package/build-module/duotone-picker/duotone-picker.js +2 -1
  37. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  38. package/build-module/font-size-picker/index.js +2 -1
  39. package/build-module/font-size-picker/index.js.map +1 -1
  40. package/build-module/index.js +1 -1
  41. package/build-module/index.js.map +1 -1
  42. package/build-module/mobile/global-styles-context/utils.native.js +3 -3
  43. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  44. package/build-module/navigation/item/index.js +7 -4
  45. package/build-module/navigation/item/index.js.map +1 -1
  46. package/build-module/navigation/styles/navigation-styles.js +34 -28
  47. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  48. package/build-module/palette-edit/index.js +276 -0
  49. package/build-module/palette-edit/index.js.map +1 -0
  50. package/build-module/palette-edit/styles.js +90 -0
  51. package/build-module/palette-edit/styles.js.map +1 -0
  52. package/build-module/popover/index.js +1 -1
  53. package/build-module/popover/index.js.map +1 -1
  54. package/build-module/toggle-group-control/toggle-group-control-option/component.js +26 -5
  55. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  56. package/build-module/tooltip/index.js +4 -4
  57. package/build-module/tooltip/index.js.map +1 -1
  58. package/build-style/style-rtl.css +21 -1
  59. package/build-style/style.css +21 -1
  60. package/build-types/confirm-dialog/component.d.ts +34 -0
  61. package/build-types/confirm-dialog/component.d.ts.map +1 -0
  62. package/build-types/confirm-dialog/index.d.ts +6 -0
  63. package/build-types/confirm-dialog/index.d.ts.map +1 -0
  64. package/build-types/confirm-dialog/types.d.ts +20 -0
  65. package/build-types/confirm-dialog/types.d.ts.map +1 -0
  66. package/build-types/higher-order/with-focus-outside/index.d.ts +3 -0
  67. package/build-types/higher-order/with-focus-outside/index.d.ts.map +1 -0
  68. package/build-types/modal/aria-helper.d.ts +27 -0
  69. package/build-types/modal/aria-helper.d.ts.map +1 -0
  70. package/build-types/modal/index.d.ts +3 -0
  71. package/build-types/modal/index.d.ts.map +1 -0
  72. package/build-types/popover/index.d.ts.map +1 -1
  73. package/build-types/style-provider/index.d.ts +5 -0
  74. package/build-types/style-provider/index.d.ts.map +1 -0
  75. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  76. package/build-types/toggle-group-control/types.d.ts +23 -0
  77. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  78. package/build-types/tooltip/index.d.ts +1 -7
  79. package/build-types/tooltip/index.d.ts.map +1 -1
  80. package/package.json +2 -2
  81. package/src/circular-option-picker/index.js +7 -5
  82. package/src/color-palette/index.js +1 -0
  83. package/src/color-palette/style.scss +9 -0
  84. package/src/color-palette/test/__snapshots__/index.js.snap +2 -0
  85. package/src/date-time/test/time.js +32 -2
  86. package/src/date-time/time.js +14 -6
  87. package/src/duotone-picker/duotone-picker.js +8 -5
  88. package/src/font-size-picker/index.js +1 -0
  89. package/src/index.js +1 -1
  90. package/src/mobile/global-styles-context/test/fixtures/theme.native.js +4 -4
  91. package/src/mobile/global-styles-context/utils.native.js +3 -3
  92. package/src/navigation/item/index.js +10 -3
  93. package/src/navigation/stories/more-examples.js +2 -1
  94. package/src/navigation/styles/navigation-styles.js +5 -0
  95. package/src/palette-edit/index.js +392 -0
  96. package/src/palette-edit/style.scss +19 -0
  97. package/src/{color-edit → palette-edit}/styles.js +15 -18
  98. package/src/popover/index.js +5 -1
  99. package/src/style.scss +1 -1
  100. package/src/toggle-group-control/stories/index.js +15 -0
  101. package/src/toggle-group-control/test/index.js +57 -0
  102. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -1
  103. package/src/toggle-group-control/toggle-group-control-option/component.tsx +40 -17
  104. package/src/toggle-group-control/types.ts +24 -0
  105. package/src/tooltip/index.js +2 -7
  106. package/tsconfig.tsbuildinfo +1 -1
  107. package/build/color-edit/index.js +0 -251
  108. package/build/color-edit/index.js.map +0 -1
  109. package/build/color-edit/styles.js +0 -112
  110. package/build/color-edit/styles.js.map +0 -1
  111. package/build-module/color-edit/index.js +0 -227
  112. package/build-module/color-edit/index.js.map +0 -1
  113. package/build-module/color-edit/styles.js +0 -90
  114. package/build-module/color-edit/styles.js.map +0 -1
  115. package/src/color-edit/index.js +0 -300
  116. package/src/color-edit/style.scss +0 -6
@@ -9,7 +9,6 @@ import { Radio } from 'reakit';
9
9
  /**
10
10
  * WordPress dependencies
11
11
  */
12
- import { __ } from '@wordpress/i18n';
13
12
  import { useInstanceId } from '@wordpress/compose';
14
13
 
15
14
  /**
@@ -20,13 +19,25 @@ import {
20
19
  useContextSystem,
21
20
  WordPressComponentProps,
22
21
  } from '../../ui/context';
23
- import type { ToggleGroupControlOptionProps } from '../types';
22
+ import type { ToggleGroupControlOptionProps, WithToolTipProps } from '../types';
24
23
  import { useToggleGroupControlContext } from '../context';
25
24
  import * as styles from './styles';
26
25
  import { useCx } from '../../utils/hooks';
26
+ import Tooltip from '../../tooltip';
27
27
 
28
28
  const { ButtonContentView, LabelPlaceholderView, LabelView } = styles;
29
29
 
30
+ const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
31
+ if ( showTooltip && text ) {
32
+ return (
33
+ <Tooltip text={ text } position="top center">
34
+ { children }
35
+ </Tooltip>
36
+ );
37
+ }
38
+ return <>{ children }</>;
39
+ };
40
+
30
41
  function ToggleGroupControlOption(
31
42
  props: WordPressComponentProps< ToggleGroupControlOptionProps, 'button' >,
32
43
  forwardedRef: Ref< any >
@@ -41,7 +52,14 @@ function ToggleGroupControlOption(
41
52
  'ToggleGroupControlOption'
42
53
  );
43
54
 
44
- const { className, isBlock = false, label, value, ...radioProps } = {
55
+ const {
56
+ className,
57
+ isBlock = false,
58
+ label,
59
+ value,
60
+ showTooltip = false,
61
+ ...radioProps
62
+ } = {
45
63
  ...toggleGroupControlContext,
46
64
  ...buttonProps,
47
65
  };
@@ -54,23 +72,28 @@ function ToggleGroupControlOption(
54
72
  className,
55
73
  isActive && styles.buttonActive
56
74
  );
75
+ const optionLabel = !! radioProps[ 'aria-label' ]
76
+ ? radioProps[ 'aria-label' ]
77
+ : label;
57
78
 
58
79
  return (
59
80
  <LabelView className={ labelViewClasses } data-active={ isActive }>
60
- <Radio
61
- { ...radioProps }
62
- as="button"
63
- aria-label={ radioProps[ 'aria-label' ] ?? label }
64
- className={ classes }
65
- data-value={ value }
66
- ref={ forwardedRef }
67
- value={ value }
68
- >
69
- <ButtonContentView>{ label }</ButtonContentView>
70
- <LabelPlaceholderView aria-hidden>
71
- { label }
72
- </LabelPlaceholderView>
73
- </Radio>
81
+ <WithToolTip showTooltip={ showTooltip } text={ optionLabel }>
82
+ <Radio
83
+ { ...radioProps }
84
+ as="button"
85
+ aria-label={ optionLabel }
86
+ className={ classes }
87
+ data-value={ value }
88
+ ref={ forwardedRef }
89
+ value={ value }
90
+ >
91
+ <ButtonContentView>{ label }</ButtonContentView>
92
+ <LabelPlaceholderView aria-hidden>
93
+ { label }
94
+ </LabelPlaceholderView>
95
+ </Radio>
96
+ </WithToolTip>
74
97
  </LabelView>
75
98
  );
76
99
  }
@@ -18,6 +18,30 @@ export type ToggleGroupControlOptionProps = {
18
18
  * to specify a different label for assistive technologies.
19
19
  */
20
20
  label: string;
21
+ /**
22
+ * Whether to display a Tooltip for the control option. If set to `true`, the tooltip will
23
+ * show the aria-label or the label prop text.
24
+ *
25
+ * @default false
26
+ */
27
+ showTooltip?: boolean;
28
+ };
29
+
30
+ export type WithToolTipProps = {
31
+ /**
32
+ * React children
33
+ */
34
+ children: ReactNode;
35
+ /**
36
+ * Label for the Tooltip component.
37
+ */
38
+ text: string;
39
+ /**
40
+ * Whether to wrap the control option in a Tooltip component.
41
+ *
42
+ * @default false
43
+ */
44
+ showTooltip?: boolean;
21
45
  };
22
46
 
23
47
  export type ToggleGroupControlProps = Omit<
@@ -92,13 +92,8 @@ const emitToChild = ( children, eventName, event ) => {
92
92
  }
93
93
  };
94
94
 
95
- function Tooltip( {
96
- children,
97
- position,
98
- text,
99
- shortcut,
100
- delay = TOOLTIP_DELAY,
101
- } ) {
95
+ function Tooltip( props ) {
96
+ const { children, position, text, shortcut, delay = TOOLTIP_DELAY } = props;
102
97
  /**
103
98
  * Whether a mouse is currently pressed, used in determining whether
104
99
  * to handle a focus event as displaying the tooltip immediately.