@wordpress/components 19.0.2 → 19.1.0

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 (113) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -0
  3. package/build/button/index.js +15 -5
  4. package/build/button/index.js.map +1 -1
  5. package/build/card/card/hook.js +3 -1
  6. package/build/card/card/hook.js.map +1 -1
  7. package/build/circular-option-picker/index.js +2 -2
  8. package/build/circular-option-picker/index.js.map +1 -1
  9. package/build/date-time/time.js +17 -3
  10. package/build/date-time/time.js.map +1 -1
  11. package/build/font-size-picker/index.js +2 -1
  12. package/build/font-size-picker/index.js.map +1 -1
  13. package/build/index.js +7 -7
  14. package/build/index.js.map +1 -1
  15. package/build/mobile/global-styles-context/utils.native.js +3 -3
  16. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  17. package/build/navigation/item/index.js +6 -3
  18. package/build/navigation/item/index.js.map +1 -1
  19. package/build/navigation/styles/navigation-styles.js +37 -30
  20. package/build/navigation/styles/navigation-styles.js.map +1 -1
  21. package/build/palette-edit/index.js +303 -0
  22. package/build/palette-edit/index.js.map +1 -0
  23. package/build/palette-edit/styles.js +112 -0
  24. package/build/palette-edit/styles.js.map +1 -0
  25. package/build/popover/index.js +1 -1
  26. package/build/popover/index.js.map +1 -1
  27. package/build/toggle-group-control/toggle-group-control-option/component.js +30 -4
  28. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  29. package/build/tooltip/index.js +4 -4
  30. package/build/tooltip/index.js.map +1 -1
  31. package/build-module/button/index.js +15 -5
  32. package/build-module/button/index.js.map +1 -1
  33. package/build-module/card/card/hook.js +3 -1
  34. package/build-module/card/card/hook.js.map +1 -1
  35. package/build-module/circular-option-picker/index.js +2 -2
  36. package/build-module/circular-option-picker/index.js.map +1 -1
  37. package/build-module/date-time/time.js +17 -3
  38. package/build-module/date-time/time.js.map +1 -1
  39. package/build-module/font-size-picker/index.js +2 -1
  40. package/build-module/font-size-picker/index.js.map +1 -1
  41. package/build-module/index.js +1 -1
  42. package/build-module/index.js.map +1 -1
  43. package/build-module/mobile/global-styles-context/utils.native.js +3 -3
  44. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  45. package/build-module/navigation/item/index.js +7 -4
  46. package/build-module/navigation/item/index.js.map +1 -1
  47. package/build-module/navigation/styles/navigation-styles.js +34 -28
  48. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  49. package/build-module/palette-edit/index.js +276 -0
  50. package/build-module/palette-edit/index.js.map +1 -0
  51. package/build-module/palette-edit/styles.js +90 -0
  52. package/build-module/palette-edit/styles.js.map +1 -0
  53. package/build-module/popover/index.js +1 -1
  54. package/build-module/popover/index.js.map +1 -1
  55. package/build-module/toggle-group-control/toggle-group-control-option/component.js +26 -5
  56. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  57. package/build-module/tooltip/index.js +4 -4
  58. package/build-module/tooltip/index.js.map +1 -1
  59. package/build-style/style-rtl.css +12 -1
  60. package/build-style/style.css +12 -1
  61. package/build-types/confirm-dialog/component.d.ts +34 -0
  62. package/build-types/confirm-dialog/component.d.ts.map +1 -0
  63. package/build-types/confirm-dialog/index.d.ts +6 -0
  64. package/build-types/confirm-dialog/index.d.ts.map +1 -0
  65. package/build-types/confirm-dialog/types.d.ts +20 -0
  66. package/build-types/confirm-dialog/types.d.ts.map +1 -0
  67. package/build-types/higher-order/with-focus-outside/index.d.ts +3 -0
  68. package/build-types/higher-order/with-focus-outside/index.d.ts.map +1 -0
  69. package/build-types/modal/aria-helper.d.ts +27 -0
  70. package/build-types/modal/aria-helper.d.ts.map +1 -0
  71. package/build-types/modal/index.d.ts +3 -0
  72. package/build-types/modal/index.d.ts.map +1 -0
  73. package/build-types/popover/index.d.ts.map +1 -1
  74. package/build-types/style-provider/index.d.ts +5 -0
  75. package/build-types/style-provider/index.d.ts.map +1 -0
  76. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  77. package/build-types/toggle-group-control/types.d.ts +23 -0
  78. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  79. package/build-types/tooltip/index.d.ts +1 -7
  80. package/build-types/tooltip/index.d.ts.map +1 -1
  81. package/package.json +2 -2
  82. package/src/circular-option-picker/index.js +7 -5
  83. package/src/date-time/test/time.js +32 -2
  84. package/src/date-time/time.js +14 -6
  85. package/src/font-size-picker/index.js +1 -0
  86. package/src/index.js +1 -1
  87. package/src/mobile/global-styles-context/test/fixtures/theme.native.js +4 -4
  88. package/src/mobile/global-styles-context/utils.native.js +3 -3
  89. package/src/navigation/item/index.js +10 -3
  90. package/src/navigation/stories/more-examples.js +2 -1
  91. package/src/navigation/styles/navigation-styles.js +5 -0
  92. package/src/palette-edit/index.js +392 -0
  93. package/src/palette-edit/style.scss +19 -0
  94. package/src/{color-edit → palette-edit}/styles.js +15 -18
  95. package/src/popover/index.js +5 -1
  96. package/src/style.scss +1 -1
  97. package/src/toggle-group-control/stories/index.js +15 -0
  98. package/src/toggle-group-control/test/index.js +57 -0
  99. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -1
  100. package/src/toggle-group-control/toggle-group-control-option/component.tsx +40 -17
  101. package/src/toggle-group-control/types.ts +24 -0
  102. package/src/tooltip/index.js +2 -7
  103. package/tsconfig.tsbuildinfo +1 -1
  104. package/build/color-edit/index.js +0 -251
  105. package/build/color-edit/index.js.map +0 -1
  106. package/build/color-edit/styles.js +0 -112
  107. package/build/color-edit/styles.js.map +0 -1
  108. package/build-module/color-edit/index.js +0 -227
  109. package/build-module/color-edit/index.js.map +0 -1
  110. package/build-module/color-edit/styles.js +0 -90
  111. package/build-module/color-edit/styles.js.map +0 -1
  112. package/src/color-edit/index.js +0 -300
  113. package/src/color-edit/style.scss +0 -6
@@ -1,300 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import kebabCase from 'lodash';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useState, useRef, useEffect } from '@wordpress/element';
10
- import { __ } from '@wordpress/i18n';
11
- import { lineSolid, moreVertical, plus } from '@wordpress/icons';
12
- import { __experimentalUseFocusOutside as useFocusOutside } from '@wordpress/compose';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import Button from '../button';
18
- import { ColorPicker } from '../color-picker';
19
- import { FlexItem } from '../flex';
20
- import { HStack } from '../h-stack';
21
- import { ItemGroup } from '../item-group';
22
- import { VStack } from '../v-stack';
23
- import ColorPalette from '../color-palette';
24
- import DropdownMenu from '../dropdown-menu';
25
- import Popover from '../popover';
26
- import {
27
- ColorActionsContainer,
28
- ColorEditStyles,
29
- ColorHeading,
30
- ColorHStackHeader,
31
- ColorIndicatorStyled,
32
- ColorItem,
33
- ColorNameContainer,
34
- ColorNameInputControl,
35
- DoneButton,
36
- RemoveButton,
37
- } from './styles';
38
- import { NavigableMenu } from '../navigable-container';
39
-
40
- function ColorNameInput( { value, onChange } ) {
41
- return (
42
- <ColorNameInputControl
43
- label={ __( 'Color name' ) }
44
- hideLabelFromVision
45
- value={ value }
46
- onChange={ onChange }
47
- />
48
- );
49
- }
50
-
51
- function ColorOption( {
52
- color,
53
- onChange,
54
- isEditing,
55
- onStartEditing,
56
- onRemove,
57
- onStopEditing,
58
- } ) {
59
- const focusOutsideProps = useFocusOutside( onStopEditing );
60
- return (
61
- <ColorItem
62
- as="div"
63
- onClick={ onStartEditing }
64
- { ...( isEditing ? focusOutsideProps : {} ) }
65
- >
66
- <HStack justify="flex-start">
67
- <FlexItem>
68
- <ColorIndicatorStyled colorValue={ color.color } />
69
- </FlexItem>
70
- <FlexItem>
71
- { isEditing ? (
72
- <ColorNameInput
73
- value={ color.name }
74
- onChange={ ( nextName ) =>
75
- onChange( {
76
- ...color,
77
- name: nextName,
78
- slug: kebabCase( nextName ),
79
- } )
80
- }
81
- />
82
- ) : (
83
- <ColorNameContainer>{ color.name }</ColorNameContainer>
84
- ) }
85
- </FlexItem>
86
- { isEditing && (
87
- <FlexItem>
88
- <RemoveButton
89
- isSmall
90
- icon={ lineSolid }
91
- label={ __( 'Remove color' ) }
92
- onClick={ onRemove }
93
- />
94
- </FlexItem>
95
- ) }
96
- </HStack>
97
- { isEditing && (
98
- <Popover
99
- position="bottom left"
100
- className="components-color-edit__color-popover"
101
- >
102
- <ColorPicker
103
- color={ color.color }
104
- onChange={ ( newColor ) =>
105
- onChange( {
106
- ...color,
107
- color: newColor,
108
- } )
109
- }
110
- />
111
- </Popover>
112
- ) }
113
- </ColorItem>
114
- );
115
- }
116
-
117
- function ColorPaletteEditListView( {
118
- colors,
119
- onChange,
120
- editingColor,
121
- setEditingColor,
122
- } ) {
123
- // When unmounting the component if there are empty colors (the user did not complete the insertion) clean them.
124
- const colorReference = useRef();
125
- useEffect( () => {
126
- colorReference.current = colors;
127
- }, [ colors ] );
128
- useEffect( () => {
129
- return () => {
130
- if ( colorReference.current.some( ( { slug } ) => ! slug ) ) {
131
- const newColors = colorReference.current.filter(
132
- ( { slug } ) => slug
133
- );
134
- onChange( newColors.length ? newColors : undefined );
135
- }
136
- };
137
- }, [] );
138
- return (
139
- <VStack spacing={ 3 }>
140
- <ItemGroup isBordered isSeparated>
141
- { colors.map( ( color, index ) => (
142
- <ColorOption
143
- key={ index }
144
- color={ color }
145
- onStartEditing={ () => {
146
- if ( editingColor !== index ) {
147
- setEditingColor( index );
148
- }
149
- } }
150
- onChange={ ( newColor ) => {
151
- onChange(
152
- colors.map( ( currentColor, currentIndex ) => {
153
- if ( currentIndex === index ) {
154
- return newColor;
155
- }
156
- return currentColor;
157
- } )
158
- );
159
- } }
160
- onRemove={ () => {
161
- setEditingColor( null );
162
- const newColors = colors.filter(
163
- ( _currentColor, currentIndex ) => {
164
- if ( currentIndex === index ) {
165
- return false;
166
- }
167
- return true;
168
- }
169
- );
170
- onChange(
171
- newColors.length ? newColors : undefined
172
- );
173
- } }
174
- isEditing={ index === editingColor }
175
- onStopEditing={ () => {
176
- if ( index === editingColor ) {
177
- setEditingColor( null );
178
- }
179
- } }
180
- />
181
- ) ) }
182
- </ItemGroup>
183
- </VStack>
184
- );
185
- }
186
-
187
- const EMPTY_ARRAY = [];
188
-
189
- export default function ColorEdit( { colors = EMPTY_ARRAY, onChange } ) {
190
- const [ isEditing, setIsEditing ] = useState( false );
191
- const [ editingColor, setEditingColor ] = useState( null );
192
- const isAdding =
193
- isEditing &&
194
- editingColor &&
195
- colors[ editingColor ] &&
196
- ! colors[ editingColor ].slug;
197
-
198
- const hasColors = colors.length > 0;
199
-
200
- return (
201
- <ColorEditStyles>
202
- <ColorHStackHeader>
203
- <ColorHeading>{ __( 'Custom' ) }</ColorHeading>
204
- <ColorActionsContainer>
205
- { isEditing && (
206
- <DoneButton
207
- isSmall
208
- onClick={ () => {
209
- setIsEditing( false );
210
- setEditingColor( null );
211
- } }
212
- >
213
- { __( 'Done' ) }
214
- </DoneButton>
215
- ) }
216
- <Button
217
- isSmall
218
- isPressed={ isAdding }
219
- icon={ plus }
220
- label={ __( 'Add custom color' ) }
221
- onClick={ () => {
222
- onChange( [
223
- ...colors,
224
- {
225
- color: '#000',
226
- name: '',
227
- slug: '',
228
- },
229
- ] );
230
- setIsEditing( true );
231
- setEditingColor( colors.length );
232
- } }
233
- />
234
- { ! isEditing && (
235
- <Button
236
- disabled={ ! hasColors }
237
- isSmall
238
- icon={ moreVertical }
239
- label={ __( 'Edit colors' ) }
240
- onClick={ () => {
241
- setIsEditing( true );
242
- } }
243
- />
244
- ) }
245
- { isEditing && (
246
- <DropdownMenu
247
- icon={ moreVertical }
248
- label={ __( 'Custom color options' ) }
249
- toggleProps={ {
250
- isSmall: true,
251
- } }
252
- >
253
- { ( { onClose } ) => (
254
- <>
255
- <NavigableMenu role="menu">
256
- <Button
257
- variant="tertiary"
258
- onClick={ () => {
259
- setEditingColor( null );
260
- setIsEditing( false );
261
- onChange();
262
- onClose();
263
- } }
264
- >
265
- { __( 'Remove all custom colors' ) }
266
- </Button>
267
- </NavigableMenu>
268
- </>
269
- ) }
270
- </DropdownMenu>
271
- ) }
272
- </ColorActionsContainer>
273
- </ColorHStackHeader>
274
- { hasColors && (
275
- <>
276
- { isEditing && (
277
- <ColorPaletteEditListView
278
- colors={ colors }
279
- onChange={ onChange }
280
- editingColor={ editingColor }
281
- setEditingColor={ setEditingColor }
282
- />
283
- ) }
284
- { ! isEditing && (
285
- <ColorPalette
286
- colors={ colors }
287
- onChange={ () => {} }
288
- clearable={ false }
289
- disableCustomColors={ true }
290
- />
291
- ) }
292
- </>
293
- ) }
294
- { ! hasColors &&
295
- __(
296
- 'Custom colors are empty! Add some colors to create your own color palette.'
297
- ) }
298
- </ColorEditStyles>
299
- );
300
- }
@@ -1,6 +0,0 @@
1
- @include break-medium() {
2
- .components-color-edit__color-popover.components-popover .components-popover__content.components-popover__content.components-popover__content {
3
- margin-right: #{ math.div($sidebar-width, 2) + $grid-unit-20 };
4
- margin-top: #{ -($grid-unit-60 + $border-width) };
5
- }
6
- }