@wordpress/components 29.11.0 → 29.13.1-next.719a03cbe.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.
- package/CHANGELOG.md +22 -0
- package/build/box-control/input-control.js +2 -2
- package/build/box-control/input-control.js.map +1 -1
- package/build/calendar/date-calendar/index.js +60 -0
- package/build/calendar/date-calendar/index.js.map +1 -0
- package/build/calendar/date-range-calendar/index.js +168 -0
- package/build/calendar/date-range-calendar/index.js.map +1 -0
- package/build/calendar/index.js +27 -0
- package/build/calendar/index.js.map +1 -0
- package/build/calendar/types.js +6 -0
- package/build/calendar/types.js.map +1 -0
- package/build/calendar/utils/constants.js +68 -0
- package/build/calendar/utils/constants.js.map +1 -0
- package/build/calendar/utils/day-cell.js +137 -0
- package/build/calendar/utils/day-cell.js.map +1 -0
- package/build/calendar/utils/misc.js +10 -0
- package/build/calendar/utils/misc.js.map +1 -0
- package/build/calendar/utils/use-controlled-value.js +58 -0
- package/build/calendar/utils/use-controlled-value.js.map +1 -0
- package/build/calendar/utils/use-localization-props.js +162 -0
- package/build/calendar/utils/use-localization-props.js.map +1 -0
- package/build/custom-gradient-picker/gradient-bar/control-points.js +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/custom-select-control-v2/custom-select.js +3 -3
- package/build/custom-select-control-v2/custom-select.js.map +1 -1
- package/build/date-time/date/index.js +1 -1
- package/build/date-time/date/index.js.map +1 -1
- package/build/form-file-upload/index.js +4 -6
- package/build/form-file-upload/index.js.map +1 -1
- package/build/form-token-field/index.js +11 -1
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/token.js +1 -1
- package/build/form-token-field/token.js.map +1 -1
- package/build/index.js +19 -0
- package/build/index.js.map +1 -1
- package/build/mobile/bottom-sheet/cell.native.js +2 -2
- package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build/mobile/image/index.native.js +1 -1
- package/build/mobile/image/index.native.js.map +1 -1
- package/build/mobile/link-picker/index.native.js +1 -1
- package/build/mobile/link-picker/index.native.js.map +1 -1
- package/build/navigation/menu/menu-title-search.js +1 -1
- package/build/navigation/menu/menu-title-search.js.map +1 -1
- package/build/palette-edit/index.js +4 -4
- package/build/palette-edit/index.js.map +1 -1
- package/build-module/box-control/input-control.js +2 -2
- package/build-module/box-control/input-control.js.map +1 -1
- package/build-module/calendar/date-calendar/index.js +51 -0
- package/build-module/calendar/date-calendar/index.js.map +1 -0
- package/build-module/calendar/date-range-calendar/index.js +157 -0
- package/build-module/calendar/date-range-calendar/index.js.map +1 -0
- package/build-module/calendar/index.js +4 -0
- package/build-module/calendar/index.js.map +1 -0
- package/build-module/calendar/types.js +2 -0
- package/build-module/calendar/types.js.map +1 -0
- package/build-module/calendar/utils/constants.js +61 -0
- package/build-module/calendar/utils/constants.js.map +1 -0
- package/build-module/calendar/utils/day-cell.js +131 -0
- package/build-module/calendar/utils/day-cell.js.map +1 -0
- package/build-module/calendar/utils/misc.js +4 -0
- package/build-module/calendar/utils/misc.js.map +1 -0
- package/build-module/calendar/utils/use-controlled-value.js +51 -0
- package/build-module/calendar/utils/use-controlled-value.js.map +1 -0
- package/build-module/calendar/utils/use-localization-props.js +154 -0
- package/build-module/calendar/utils/use-localization-props.js.map +1 -0
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/custom-select-control-v2/custom-select.js +4 -4
- package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
- package/build-module/date-time/date/index.js +1 -1
- package/build-module/date-time/date/index.js.map +1 -1
- package/build-module/form-file-upload/index.js +4 -6
- package/build-module/form-file-upload/index.js.map +1 -1
- package/build-module/form-token-field/index.js +11 -1
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/token.js +1 -1
- package/build-module/form-token-field/token.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js +2 -2
- package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build-module/mobile/image/index.native.js +1 -1
- package/build-module/mobile/image/index.native.js.map +1 -1
- package/build-module/mobile/link-picker/index.native.js +1 -1
- package/build-module/mobile/link-picker/index.native.js.map +1 -1
- package/build-module/navigation/menu/menu-title-search.js +1 -1
- package/build-module/navigation/menu/menu-title-search.js.map +1 -1
- package/build-module/palette-edit/index.js +4 -4
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-style/style-rtl.css +358 -5
- package/build-style/style.css +358 -5
- package/build-types/box-control/input-control.d.ts.map +1 -1
- package/build-types/box-control/utils.d.ts +7 -7
- package/build-types/calendar/date-calendar/index.d.ts +11 -0
- package/build-types/calendar/date-calendar/index.d.ts.map +1 -0
- package/build-types/calendar/date-range-calendar/index.d.ts +14 -0
- package/build-types/calendar/date-range-calendar/index.d.ts.map +1 -0
- package/build-types/calendar/index.d.ts +4 -0
- package/build-types/calendar/index.d.ts.map +1 -0
- package/build-types/calendar/stories/date-calendar.story.d.ts +16 -0
- package/build-types/calendar/stories/date-calendar.story.d.ts.map +1 -0
- package/build-types/calendar/stories/date-range-calendar.story.d.ts +16 -0
- package/build-types/calendar/stories/date-range-calendar.story.d.ts.map +1 -0
- package/build-types/calendar/test/__utils__/index.d.ts +10 -0
- package/build-types/calendar/test/__utils__/index.d.ts.map +1 -0
- package/build-types/calendar/test/date-calendar.d.ts +2 -0
- package/build-types/calendar/test/date-calendar.d.ts.map +1 -0
- package/build-types/calendar/test/date-range-calendar.d.ts +2 -0
- package/build-types/calendar/test/date-range-calendar.d.ts.map +1 -0
- package/build-types/calendar/types.d.ts +317 -0
- package/build-types/calendar/types.d.ts.map +1 -0
- package/build-types/calendar/utils/constants.d.ts +52 -0
- package/build-types/calendar/utils/constants.d.ts.map +1 -0
- package/build-types/calendar/utils/day-cell.d.ts +21 -0
- package/build-types/calendar/utils/day-cell.d.ts.map +1 -0
- package/build-types/calendar/utils/misc.d.ts +2 -0
- package/build-types/calendar/utils/misc.d.ts.map +1 -0
- package/build-types/calendar/utils/use-controlled-value.d.ts +27 -0
- package/build-types/calendar/utils/use-controlled-value.d.ts.map +1 -0
- package/build-types/calendar/utils/use-localization-props.d.ts +64 -0
- package/build-types/calendar/utils/use-localization-props.d.ts.map +1 -0
- package/build-types/custom-gradient-picker/constants.d.ts +6 -3
- package/build-types/custom-gradient-picker/constants.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
- package/build-types/dimension-control/sizes.d.ts +15 -3
- package/build-types/dimension-control/sizes.d.ts.map +1 -1
- package/build-types/font-size-picker/constants.d.ts +2 -2
- package/build-types/font-size-picker/constants.d.ts.map +1 -1
- package/build-types/form-file-upload/index.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/index.d.ts +1 -0
- package/build-types/index.d.ts.map +1 -1
- package/build-types/popover/overlay-middlewares.d.ts +6 -1
- package/build-types/popover/overlay-middlewares.d.ts.map +1 -1
- package/package.json +21 -20
- package/src/box-control/input-control.tsx +14 -5
- package/src/calendar/date-calendar/README.md +250 -0
- package/src/calendar/date-calendar/index.tsx +55 -0
- package/src/calendar/date-range-calendar/README.md +287 -0
- package/src/calendar/date-range-calendar/index.tsx +203 -0
- package/src/calendar/index.tsx +3 -0
- package/src/calendar/stories/date-calendar.story.tsx +221 -0
- package/src/calendar/stories/date-range-calendar.story.tsx +230 -0
- package/src/calendar/style.scss +431 -0
- package/src/calendar/test/__utils__/index.ts +56 -0
- package/src/calendar/test/date-calendar.tsx +975 -0
- package/src/calendar/test/date-range-calendar.tsx +1701 -0
- package/src/calendar/types.ts +342 -0
- package/src/calendar/utils/constants.ts +62 -0
- package/src/calendar/utils/day-cell.tsx +133 -0
- package/src/calendar/utils/misc.ts +3 -0
- package/src/calendar/utils/use-controlled-value.ts +61 -0
- package/src/calendar/utils/use-localization-props.ts +169 -0
- package/src/circular-option-picker/stories/index.story.tsx +2 -2
- package/src/custom-gradient-picker/gradient-bar/control-points.tsx +1 -1
- package/src/custom-select-control-v2/custom-select.tsx +6 -3
- package/src/date-time/date/index.tsx +1 -1
- package/src/form-file-upload/index.tsx +6 -12
- package/src/form-token-field/index.tsx +12 -1
- package/src/form-token-field/token.tsx +1 -1
- package/src/index.ts +1 -0
- package/src/mobile/bottom-sheet/cell.native.js +2 -2
- package/src/mobile/image/index.native.js +1 -1
- package/src/mobile/link-picker/index.native.js +1 -1
- package/src/navigation/menu/menu-title-search.tsx +1 -1
- package/src/palette-edit/index.tsx +4 -4
- package/src/select-control/style.scss +0 -6
- package/src/style.scss +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_icons","_compose","_button","_colorPicker","_flex","_hStack","_itemGroup","_vStack","_gradientPicker","_colorPalette","_dropdownMenu","_popover","_styles","_navigableContainer","_constants","_customGradientPicker","_strings","_jsxRuntime","DEFAULT_COLOR","NameInput","value","onChange","label","jsx","NameInputControl","size","hideLabelFromVision","deduplicateElementSlugs","elements","slugCounts","map","element","_newSlug","newSlug","slug","getNameAndSlugForPosition","slugPrefix","nameRegex","RegExp","position","reduce","previousValue","currentValue","matches","match","id","parseInt","name","sprintf","__","ColorPickerPopover","isGradient","popoverProps","receivedPopoverProps","onClose","useMemo","shift","offset","resize","placement","className","clsx","jsxs","default","children","ColorPicker","color","enableAlpha","newColor","__experimentalIsRenderedInSidebar","gradient","newGradient","Option","canOnlyChangeValues","onRemove","isEditingColor","setIsEditingColor","useState","popoverAnchor","setPopoverAnchor","anchor","Item","ref","HStack","justify","onClick","trim","length","style","padding","IndicatorStyled","colorValue","FlexItem","nextName","kebabCase","NameContainer","RemoveButton","icon","lineSolid","PaletteEditListView","addColorRef","elementsReferenceRef","useRef","useEffect","current","debounceOnChange","useDebounce","updatedElements","VStack","spacing","ItemGroup","isRounded","isBordered","isSeparated","index","newElement","currentElement","currentIndex","newElements","filter","_currentElement","undefined","focus","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","paletteLabelHeadingLevel","emptyMessage","canReset","isEditing","setIsEditing","editingElement","setEditingElement","isAdding","elementsLength","hasElements","onSelectPaletteItem","useCallback","newEditingElementIndex","selectedElement","key","PaletteEditStyles","PaletteHeading","level","PaletteActionsContainer","DoneButton","isPressed","plus","DEFAULT_GRADIENT","moreVertical","toggleProps","Fragment","NavigableMenu","role","__next40pxDefaultSize","variant","PaletteEditContents","clearable","disableCustomGradients","disableCustomColors","_default","exports"],"sources":["@wordpress/components/src/palette-edit/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { Item, ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tIndicatorStyled,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n\tPaletteEditContents,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport type {\n\tColor,\n\tColorPickerPopoverProps,\n\tNameInputProps,\n\tOptionProps,\n\tPaletteEditListViewProps,\n\tPaletteEditProps,\n\tPaletteElement,\n} from './types';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label }: NameInputProps ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tsize=\"compact\"\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/*\n * Deduplicates the slugs of the provided elements.\n */\nexport function deduplicateElementSlugs< T extends PaletteElement >(\n\telements: T[]\n) {\n\tconst slugCounts: { [ slug: string ]: number } = {};\n\n\treturn elements.map( ( element ) => {\n\t\tlet newSlug: string | undefined;\n\n\t\tconst { slug } = element;\n\t\tslugCounts[ slug ] = ( slugCounts[ slug ] || 0 ) + 1;\n\n\t\tif ( slugCounts[ slug ] > 1 ) {\n\t\t\tnewSlug = `${ slug }-${ slugCounts[ slug ] - 1 }`;\n\t\t}\n\n\t\treturn { ...element, slug: newSlug ?? slug };\n\t} );\n}\n\n/**\n * Returns a name and slug for a palette item. The name takes the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param elements An array of color palette items.\n * @param slugPrefix The slug prefix used to match the element slug.\n *\n * @return A name and slug for the new palette item.\n */\nexport function getNameAndSlugForPosition(\n\telements: PaletteElement[],\n\tslugPrefix: string\n) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn {\n\t\tname: sprintf(\n\t\t\t/* translators: %s: is an id for a custom color */\n\t\t\t__( 'Color %s' ),\n\t\t\tposition\n\t\t),\n\t\tslug: `${ slugPrefix }color-${ position }`,\n\t};\n}\n\nfunction ColorPickerPopover< T extends PaletteElement >( {\n\tisGradient,\n\telement,\n\tonChange,\n\tpopoverProps: receivedPopoverProps,\n\tonClose = () => {},\n}: ColorPickerPopoverProps< T > ) {\n\tconst popoverProps: ColorPickerPopoverProps< T >[ 'popoverProps' ] =\n\t\tuseMemo(\n\t\t\t() => ( {\n\t\t\t\tshift: true,\n\t\t\t\toffset: 20,\n\t\t\t\t// Disabling resize as it would otherwise cause the popover to show\n\t\t\t\t// scrollbars while dragging the color picker's handle close to the\n\t\t\t\t// popover edge.\n\t\t\t\tresize: false,\n\t\t\t\tplacement: 'left-start',\n\t\t\t\t...receivedPopoverProps,\n\t\t\t\tclassName: clsx(\n\t\t\t\t\t'components-palette-edit__popover',\n\t\t\t\t\treceivedPopoverProps?.className\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ receivedPopoverProps ]\n\t\t);\n\n\treturn (\n\t\t<Popover { ...popoverProps } onClose={ onClose }>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option< T extends PaletteElement >( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tonRemove,\n\tpopoverProps: receivedPopoverProps,\n\tslugPrefix,\n\tisGradient,\n}: OptionProps< T > ) {\n\tconst value = isGradient ? element.gradient : element.color;\n\tconst [ isEditingColor, setIsEditingColor ] = useState( false );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t...receivedPopoverProps,\n\t\t\t// Use the custom palette color item as the popover anchor.\n\t\t\tanchor: popoverAnchor,\n\t\t} ),\n\t\t[ popoverAnchor, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<Item ref={ setPopoverAnchor } size=\"small\">\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsEditingColor( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t__( 'Edit: %s' ),\n\t\t\t\t\t\telement.name.trim().length ? element.name : value\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<IndicatorStyled colorValue={ value } />\n\t\t\t\t</Button>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName?: string ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\tkebabCase( nextName ?? '' ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<NameContainer>\n\t\t\t\t\t\t\t{ element.name.trim().length\n\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t: /* Fall back to non-breaking space to maintain height */\n\t\t\t\t\t\t\t\t '\\u00A0' }\n\t\t\t\t\t\t</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t\t\t__( 'Remove color: %s' ),\n\t\t\t\t\t\t\t\telement.name.trim().length\n\t\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t\t: value\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditingColor && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tonClose={ () => setIsEditingColor( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Item>\n\t);\n}\n\nfunction PaletteEditListView< T extends PaletteElement >( {\n\telements,\n\tonChange,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n\tpopoverProps,\n\taddColorRef,\n}: PaletteEditListViewProps< T > ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReferenceRef = useRef< typeof elements >();\n\tuseEffect( () => {\n\t\telementsReferenceRef.current = elements;\n\t}, [ elements ] );\n\n\tconst debounceOnChange = useDebounce(\n\t\t( updatedElements: T[] ) =>\n\t\t\tonChange( deduplicateElementSlugs( updatedElements ) ),\n\t\t100\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded isBordered isSeparated>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\taddColorRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY: Color[] = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\tpaletteLabelHeadingLevel = 2,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n\tpopoverProps,\n}: PaletteEditProps ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState<\n\t\tnumber | null | undefined\n\t>( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\t!! editingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t(\n\t\t\tvalue?: PaletteElement[ keyof PaletteElement ],\n\t\t\tnewEditingElementIndex?: number\n\t\t) => {\n\t\t\tconst selectedElement =\n\t\t\t\tnewEditingElementIndex === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\tconst addColorRef = useRef< HTMLButtonElement | null >( null );\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<HStack>\n\t\t\t\t<PaletteHeading level={ paletteLabelHeadingLevel }>\n\t\t\t\t\t{ paletteLabel }\n\t\t\t\t</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ addColorRef }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst { name, slug } =\n\t\t\t\t\t\t\t\t\tgetNameAndSlugForPosition(\n\t\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif ( !! gradients ) {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...gradients,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tgradient: DEFAULT_GRADIENT,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...colors,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcolor: DEFAULT_COLOR,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose }: { onClose: () => void } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</HStack>\n\t\t\t{ hasElements && (\n\t\t\t\t<PaletteEditContents>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView< ( typeof elements )[ number ] >\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\taddColorRef={ addColorRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\tnewElement: ( typeof elements )[ number ]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tcurrentElement: ( typeof elements )[ number ],\n\t\t\t\t\t\t\t\t\t\t\tcurrentIndex: number\n\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ?? -1 ] }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</PaletteEditContents>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage && (\n\t\t\t\t<PaletteEditContents>{ emptyMessage }</PaletteEditContents>\n\t\t\t) }\n\t\t</PaletteEditStyles>\n\t);\n}\n\nexport default PaletteEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_icons","_compose","_button","_colorPicker","_flex","_hStack","_itemGroup","_vStack","_gradientPicker","_colorPalette","_dropdownMenu","_popover","_styles","_navigableContainer","_constants","_customGradientPicker","_strings","_jsxRuntime","DEFAULT_COLOR","NameInput","value","onChange","label","jsx","NameInputControl","size","hideLabelFromVision","deduplicateElementSlugs","elements","slugCounts","map","element","_newSlug","newSlug","slug","getNameAndSlugForPosition","slugPrefix","nameRegex","RegExp","position","reduce","previousValue","currentValue","matches","match","id","parseInt","name","sprintf","__","ColorPickerPopover","isGradient","popoverProps","receivedPopoverProps","onClose","useMemo","shift","offset","resize","placement","className","clsx","jsxs","default","children","ColorPicker","color","enableAlpha","newColor","__experimentalIsRenderedInSidebar","gradient","newGradient","Option","canOnlyChangeValues","onRemove","isEditingColor","setIsEditingColor","useState","popoverAnchor","setPopoverAnchor","anchor","Item","ref","HStack","justify","onClick","trim","length","style","padding","IndicatorStyled","colorValue","FlexItem","nextName","kebabCase","NameContainer","RemoveButton","icon","lineSolid","PaletteEditListView","addColorRef","elementsReferenceRef","useRef","useEffect","current","debounceOnChange","useDebounce","updatedElements","VStack","spacing","ItemGroup","isRounded","isBordered","isSeparated","index","newElement","currentElement","currentIndex","newElements","filter","_currentElement","undefined","focus","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","paletteLabelHeadingLevel","emptyMessage","canReset","isEditing","setIsEditing","editingElement","setEditingElement","isAdding","elementsLength","hasElements","onSelectPaletteItem","useCallback","newEditingElementIndex","selectedElement","key","PaletteEditStyles","PaletteHeading","level","PaletteActionsContainer","DoneButton","isPressed","plus","DEFAULT_GRADIENT","moreVertical","toggleProps","Fragment","NavigableMenu","role","__next40pxDefaultSize","variant","PaletteEditContents","clearable","disableCustomGradients","disableCustomColors","_default","exports"],"sources":["@wordpress/components/src/palette-edit/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { Item, ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tIndicatorStyled,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n\tPaletteEditContents,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport type {\n\tColor,\n\tColorPickerPopoverProps,\n\tNameInputProps,\n\tOptionProps,\n\tPaletteEditListViewProps,\n\tPaletteEditProps,\n\tPaletteElement,\n} from './types';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label }: NameInputProps ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tsize=\"compact\"\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/*\n * Deduplicates the slugs of the provided elements.\n */\nexport function deduplicateElementSlugs< T extends PaletteElement >(\n\telements: T[]\n) {\n\tconst slugCounts: { [ slug: string ]: number } = {};\n\n\treturn elements.map( ( element ) => {\n\t\tlet newSlug: string | undefined;\n\n\t\tconst { slug } = element;\n\t\tslugCounts[ slug ] = ( slugCounts[ slug ] || 0 ) + 1;\n\n\t\tif ( slugCounts[ slug ] > 1 ) {\n\t\t\tnewSlug = `${ slug }-${ slugCounts[ slug ] - 1 }`;\n\t\t}\n\n\t\treturn { ...element, slug: newSlug ?? slug };\n\t} );\n}\n\n/**\n * Returns a name and slug for a palette item. The name takes the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param elements An array of color palette items.\n * @param slugPrefix The slug prefix used to match the element slug.\n *\n * @return A name and slug for the new palette item.\n */\nexport function getNameAndSlugForPosition(\n\telements: PaletteElement[],\n\tslugPrefix: string\n) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn {\n\t\tname: sprintf(\n\t\t\t/* translators: %d: is an id for a custom color */\n\t\t\t__( 'Color %d' ),\n\t\t\tposition\n\t\t),\n\t\tslug: `${ slugPrefix }color-${ position }`,\n\t};\n}\n\nfunction ColorPickerPopover< T extends PaletteElement >( {\n\tisGradient,\n\telement,\n\tonChange,\n\tpopoverProps: receivedPopoverProps,\n\tonClose = () => {},\n}: ColorPickerPopoverProps< T > ) {\n\tconst popoverProps: ColorPickerPopoverProps< T >[ 'popoverProps' ] =\n\t\tuseMemo(\n\t\t\t() => ( {\n\t\t\t\tshift: true,\n\t\t\t\toffset: 20,\n\t\t\t\t// Disabling resize as it would otherwise cause the popover to show\n\t\t\t\t// scrollbars while dragging the color picker's handle close to the\n\t\t\t\t// popover edge.\n\t\t\t\tresize: false,\n\t\t\t\tplacement: 'left-start',\n\t\t\t\t...receivedPopoverProps,\n\t\t\t\tclassName: clsx(\n\t\t\t\t\t'components-palette-edit__popover',\n\t\t\t\t\treceivedPopoverProps?.className\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ receivedPopoverProps ]\n\t\t);\n\n\treturn (\n\t\t<Popover { ...popoverProps } onClose={ onClose }>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option< T extends PaletteElement >( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tonRemove,\n\tpopoverProps: receivedPopoverProps,\n\tslugPrefix,\n\tisGradient,\n}: OptionProps< T > ) {\n\tconst value = isGradient ? element.gradient : element.color;\n\tconst [ isEditingColor, setIsEditingColor ] = useState( false );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t...receivedPopoverProps,\n\t\t\t// Use the custom palette color item as the popover anchor.\n\t\t\tanchor: popoverAnchor,\n\t\t} ),\n\t\t[ popoverAnchor, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<Item ref={ setPopoverAnchor } size=\"small\">\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsEditingColor( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t__( 'Edit: %s' ),\n\t\t\t\t\t\telement.name.trim().length ? element.name : value || ''\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<IndicatorStyled colorValue={ value } />\n\t\t\t\t</Button>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName?: string ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\tkebabCase( nextName ?? '' ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<NameContainer>\n\t\t\t\t\t\t\t{ element.name.trim().length\n\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t: /* Fall back to non-breaking space to maintain height */\n\t\t\t\t\t\t\t\t '\\u00A0' }\n\t\t\t\t\t\t</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t\t\t__( 'Remove color: %s' ),\n\t\t\t\t\t\t\t\telement.name.trim().length\n\t\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t\t: value || ''\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditingColor && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tonClose={ () => setIsEditingColor( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Item>\n\t);\n}\n\nfunction PaletteEditListView< T extends PaletteElement >( {\n\telements,\n\tonChange,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n\tpopoverProps,\n\taddColorRef,\n}: PaletteEditListViewProps< T > ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReferenceRef = useRef< typeof elements >();\n\tuseEffect( () => {\n\t\telementsReferenceRef.current = elements;\n\t}, [ elements ] );\n\n\tconst debounceOnChange = useDebounce(\n\t\t( updatedElements: T[] ) =>\n\t\t\tonChange( deduplicateElementSlugs( updatedElements ) ),\n\t\t100\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded isBordered isSeparated>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\taddColorRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY: Color[] = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\tpaletteLabelHeadingLevel = 2,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n\tpopoverProps,\n}: PaletteEditProps ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState<\n\t\tnumber | null | undefined\n\t>( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\t!! editingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t(\n\t\t\tvalue?: PaletteElement[ keyof PaletteElement ],\n\t\t\tnewEditingElementIndex?: number\n\t\t) => {\n\t\t\tconst selectedElement =\n\t\t\t\tnewEditingElementIndex === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\tconst addColorRef = useRef< HTMLButtonElement | null >( null );\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<HStack>\n\t\t\t\t<PaletteHeading level={ paletteLabelHeadingLevel }>\n\t\t\t\t\t{ paletteLabel }\n\t\t\t\t</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ addColorRef }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst { name, slug } =\n\t\t\t\t\t\t\t\t\tgetNameAndSlugForPosition(\n\t\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif ( !! gradients ) {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...gradients,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tgradient: DEFAULT_GRADIENT,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...colors,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcolor: DEFAULT_COLOR,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose }: { onClose: () => void } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</HStack>\n\t\t\t{ hasElements && (\n\t\t\t\t<PaletteEditContents>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView< ( typeof elements )[ number ] >\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\taddColorRef={ addColorRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\tnewElement: ( typeof elements )[ number ]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tcurrentElement: ( typeof elements )[ number ],\n\t\t\t\t\t\t\t\t\t\t\tcurrentIndex: number\n\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ?? -1 ] }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</PaletteEditContents>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage && (\n\t\t\t\t<PaletteEditContents>{ emptyMessage }</PaletteEditContents>\n\t\t\t) }\n\t\t</PaletteEditStyles>\n\t);\n}\n\nexport default PaletteEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -130,14 +130,14 @@ export default function BoxInputControl({
|
|
|
130
130
|
value: 0,
|
|
131
131
|
label: '',
|
|
132
132
|
tooltip: __('None')
|
|
133
|
-
}
|
|
133
|
+
}, ...presets.map((preset, index) => {
|
|
134
134
|
var _preset$name;
|
|
135
135
|
return {
|
|
136
136
|
value: index + 1,
|
|
137
137
|
label: '',
|
|
138
138
|
tooltip: (_preset$name = preset.name) !== null && _preset$name !== void 0 ? _preset$name : preset.slug
|
|
139
139
|
};
|
|
140
|
-
})
|
|
140
|
+
})] : [];
|
|
141
141
|
return /*#__PURE__*/_jsxs(InputWrapper, {
|
|
142
142
|
expanded: true,
|
|
143
143
|
children: [/*#__PURE__*/_jsx(FlexedBoxControlIcon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useInstanceId","__","useState","settings","Tooltip","parseQuantityAndUnitFromRawValue","CUSTOM_VALUE_SETTINGS","getMergedValue","getAllowedSides","getPresetIndexFromValue","getPresetValueFromIndex","isValuePreset","isValuesDefined","isValueMixed","LABELS","FlexedBoxControlIcon","FlexedRangeControl","InputWrapper","StyledUnitControl","Button","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","getSidesToModify","side","sides","isAlt","allowedSides","modifiedSides","push","filter","s","has","BoxInputControl","__next40pxDefaultSize","onChange","onFocus","values","selectedUnits","setSelectedUnits","min","presets","presetKey","props","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","defaultValuesToModify","handleOnFocus","event","handleOnChange","nextValues","handleRawOnValueChange","next","forEach","modifiedSide","handleOnValueChange","extra","isNumeric","undefined","isNaN","parseFloat","nextValue","altKey","handleOnUnitChange","newUnits","mergedValue","hasValues","isMixed","length","parsedQuantity","parsedUnit","computedUnit","generatedId","inputId","join","isMixedUnit","some","usedValue","mixedPlaceholder","hasPresets","hasPresetValue","showCustomValueControl","setShowCustomValueControl","presetIndex","marks","value","label","tooltip","concat","map","preset","index","_preset$name","name","slug","expanded","children","placement","text","__shouldNotWarnDeprecated36pxSize","className","id","isPressEnterToChange","disableUnits","onUnitChange","placeholder","hideLabelFromVision","__nextHasNoMarginBottom","newValue","isFinite","max","step","withInputField","newIndex","renderTooltipContent","icon","onClick","isPressed","size","iconSize"],"sources":["@wordpress/components/src/box-control/input-control.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Tooltip from '../tooltip';\nimport { parseQuantityAndUnitFromRawValue } from '../unit-control/utils';\nimport {\n\tCUSTOM_VALUE_SETTINGS,\n\tgetMergedValue,\n\tgetAllowedSides,\n\tgetPresetIndexFromValue,\n\tgetPresetValueFromIndex,\n\tisValuePreset,\n\tisValuesDefined,\n\tisValueMixed,\n\tLABELS,\n} from './utils';\nimport {\n\tFlexedBoxControlIcon,\n\tFlexedRangeControl,\n\tInputWrapper,\n\tStyledUnitControl,\n} from './styles/box-control-styles';\nimport type { BoxControlInputControlProps, BoxControlValue } from './types';\nimport Button from '../button';\n\nconst noop = () => {};\n\nfunction getSidesToModify(\n\tside: BoxControlInputControlProps[ 'side' ],\n\tsides: BoxControlInputControlProps[ 'sides' ],\n\tisAlt?: boolean\n) {\n\tconst allowedSides = getAllowedSides( sides );\n\n\tlet modifiedSides: ( keyof BoxControlValue )[] = [];\n\tswitch ( side ) {\n\t\tcase 'all':\n\t\t\tmodifiedSides = [ 'top', 'bottom', 'left', 'right' ];\n\t\t\tbreak;\n\t\tcase 'horizontal':\n\t\t\tmodifiedSides = [ 'left', 'right' ];\n\t\t\tbreak;\n\t\tcase 'vertical':\n\t\t\tmodifiedSides = [ 'top', 'bottom' ];\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tmodifiedSides = [ side ];\n\t}\n\n\tif ( isAlt ) {\n\t\tswitch ( side ) {\n\t\t\tcase 'top':\n\t\t\t\tmodifiedSides.push( 'bottom' );\n\t\t\t\tbreak;\n\t\t\tcase 'bottom':\n\t\t\t\tmodifiedSides.push( 'top' );\n\t\t\t\tbreak;\n\t\t\tcase 'left':\n\t\t\t\tmodifiedSides.push( 'left' );\n\t\t\t\tbreak;\n\t\t\tcase 'right':\n\t\t\t\tmodifiedSides.push( 'right' );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn modifiedSides.filter( ( s ) => allowedSides.has( s ) );\n}\n\nexport default function BoxInputControl( {\n\t__next40pxDefaultSize,\n\tonChange = noop,\n\tonFocus = noop,\n\tvalues,\n\tselectedUnits,\n\tsetSelectedUnits,\n\tsides,\n\tside,\n\tmin = 0,\n\tpresets,\n\tpresetKey,\n\t...props\n}: BoxControlInputControlProps ) {\n\tconst defaultValuesToModify = getSidesToModify( side, sides );\n\n\tconst handleOnFocus = ( event: React.FocusEvent< HTMLInputElement > ) => {\n\t\tonFocus( event, { side } );\n\t};\n\n\tconst handleOnChange = ( nextValues: BoxControlValue ) => {\n\t\tonChange( nextValues );\n\t};\n\n\tconst handleRawOnValueChange = ( next?: string ) => {\n\t\tconst nextValues = { ...values };\n\t\tdefaultValuesToModify.forEach( ( modifiedSide ) => {\n\t\t\tnextValues[ modifiedSide ] = next;\n\t\t} );\n\n\t\thandleOnChange( nextValues );\n\t};\n\n\tconst handleOnValueChange = (\n\t\tnext?: string,\n\t\textra?: { event: React.SyntheticEvent< Element, Event > }\n\t) => {\n\t\tconst nextValues = { ...values };\n\t\tconst isNumeric = next !== undefined && ! isNaN( parseFloat( next ) );\n\t\tconst nextValue = isNumeric ? next : undefined;\n\t\tconst modifiedSides = getSidesToModify(\n\t\t\tside,\n\t\t\tsides,\n\t\t\t/**\n\t\t\t * Supports changing pair sides. For example, holding the ALT key\n\t\t\t * when changing the TOP will also update BOTTOM.\n\t\t\t */\n\t\t\t// @ts-expect-error - TODO: event.altKey is only present when the change event was\n\t\t\t// triggered by a keyboard event. Should this feature be implemented differently so\n\t\t\t// it also works with drag events?\n\t\t\t!! extra?.event.altKey\n\t\t);\n\n\t\tmodifiedSides.forEach( ( modifiedSide ) => {\n\t\t\tnextValues[ modifiedSide ] = nextValue;\n\t\t} );\n\n\t\thandleOnChange( nextValues );\n\t};\n\n\tconst handleOnUnitChange = ( next?: string ) => {\n\t\tconst newUnits = { ...selectedUnits };\n\t\tdefaultValuesToModify.forEach( ( modifiedSide ) => {\n\t\t\tnewUnits[ modifiedSide ] = next;\n\t\t} );\n\t\tsetSelectedUnits( newUnits );\n\t};\n\n\tconst mergedValue = getMergedValue( values, defaultValuesToModify );\n\tconst hasValues = isValuesDefined( values );\n\tconst isMixed =\n\t\thasValues &&\n\t\tdefaultValuesToModify.length > 1 &&\n\t\tisValueMixed( values, defaultValuesToModify );\n\tconst [ parsedQuantity, parsedUnit ] =\n\t\tparseQuantityAndUnitFromRawValue( mergedValue );\n\tconst computedUnit = hasValues\n\t\t? parsedUnit\n\t\t: selectedUnits[ defaultValuesToModify[ 0 ] ];\n\tconst generatedId = useInstanceId( BoxInputControl, 'box-control-input' );\n\tconst inputId = [ generatedId, side ].join( '-' );\n\tconst isMixedUnit =\n\t\tdefaultValuesToModify.length > 1 &&\n\t\tmergedValue === undefined &&\n\t\tdefaultValuesToModify.some(\n\t\t\t( s ) => selectedUnits[ s ] !== computedUnit\n\t\t);\n\tconst usedValue =\n\t\tmergedValue === undefined && computedUnit ? computedUnit : mergedValue;\n\tconst mixedPlaceholder = isMixed || isMixedUnit ? __( 'Mixed' ) : undefined;\n\tconst hasPresets = presets && presets.length > 0 && presetKey;\n\tconst hasPresetValue =\n\t\thasPresets &&\n\t\tmergedValue !== undefined &&\n\t\t! isMixed &&\n\t\tisValuePreset( mergedValue, presetKey );\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! hasPresets ||\n\t\t\t( ! hasPresetValue && ! isMixed && mergedValue !== undefined )\n\t);\n\tconst presetIndex = hasPresetValue\n\t\t? getPresetIndexFromValue( mergedValue, presetKey, presets )\n\t\t: undefined;\n\tconst marks = hasPresets\n\t\t? [ { value: 0, label: '', tooltip: __( 'None' ) } ].concat(\n\t\t\t\tpresets.map( ( preset, index ) => ( {\n\t\t\t\t\tvalue: index + 1,\n\t\t\t\t\tlabel: '',\n\t\t\t\t\ttooltip: preset.name ?? preset.slug,\n\t\t\t\t} ) )\n\t\t )\n\t\t: [];\n\n\treturn (\n\t\t<InputWrapper key={ `box-control-${ side }` } expanded>\n\t\t\t<FlexedBoxControlIcon side={ side } sides={ sides } />\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<Tooltip placement=\"top-end\" text={ LABELS[ side ] }>\n\t\t\t\t\t\t<StyledUnitControl\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\t\t__shouldNotWarnDeprecated36pxSize\n\t\t\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\t\t\tclassName=\"component-box-control__unit-control\"\n\t\t\t\t\t\t\tid={ inputId }\n\t\t\t\t\t\t\tisPressEnterToChange\n\t\t\t\t\t\t\tdisableUnits={ isMixed || isMixedUnit }\n\t\t\t\t\t\t\tvalue={ usedValue }\n\t\t\t\t\t\t\tonChange={ handleOnValueChange }\n\t\t\t\t\t\t\tonUnitChange={ handleOnUnitChange }\n\t\t\t\t\t\t\tonFocus={ handleOnFocus }\n\t\t\t\t\t\t\tlabel={ LABELS[ side ] }\n\t\t\t\t\t\t\tplaceholder={ mixedPlaceholder }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\n\t\t\t\t\t<FlexedRangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\t\t__shouldNotWarnDeprecated36pxSize\n\t\t\t\t\t\taria-controls={ inputId }\n\t\t\t\t\t\tlabel={ LABELS[ side ] }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\thandleOnValueChange(\n\t\t\t\t\t\t\t\tnewValue !== undefined\n\t\t\t\t\t\t\t\t\t? [ newValue, computedUnit ].join( '' )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin={ isFinite( min ) ? min : 0 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ computedUnit ?? 'px' ]\n\t\t\t\t\t\t\t\t?.max ?? 10\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ computedUnit ?? 'px' ]\n\t\t\t\t\t\t\t\t?.step ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ parsedQuantity ?? 0 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ hasPresets && ! showCustomValueControl && (\n\t\t\t\t<FlexedRangeControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ presetIndex !== undefined ? presetIndex + 1 : 0 }\n\t\t\t\t\tonChange={ ( newIndex ) => {\n\t\t\t\t\t\tconst newValue =\n\t\t\t\t\t\t\tnewIndex === 0 || newIndex === undefined\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: getPresetValueFromIndex(\n\t\t\t\t\t\t\t\t\t\tnewIndex - 1,\n\t\t\t\t\t\t\t\t\t\tpresetKey,\n\t\t\t\t\t\t\t\t\t\tpresets\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t\thandleRawOnValueChange( newValue );\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={\n\t\t\t\t\t\tpresetIndex !== undefined ? presetIndex + 1 : 0\n\t\t\t\t\t}\n\t\t\t\t\taria-valuetext={\n\t\t\t\t\t\tmarks[ presetIndex !== undefined ? presetIndex + 1 : 0 ]\n\t\t\t\t\t\t\t.tooltip\n\t\t\t\t\t}\n\t\t\t\t\trenderTooltipContent={ ( index ) =>\n\t\t\t\t\t\tmarks[ ! index ? 0 : index ].tooltip\n\t\t\t\t\t}\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ marks.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ LABELS[ side ] }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ hasPresets && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</InputWrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useInstanceId","__","useState","settings","Tooltip","parseQuantityAndUnitFromRawValue","CUSTOM_VALUE_SETTINGS","getMergedValue","getAllowedSides","getPresetIndexFromValue","getPresetValueFromIndex","isValuePreset","isValuesDefined","isValueMixed","LABELS","FlexedBoxControlIcon","FlexedRangeControl","InputWrapper","StyledUnitControl","Button","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","getSidesToModify","side","sides","isAlt","allowedSides","modifiedSides","push","filter","s","has","BoxInputControl","__next40pxDefaultSize","onChange","onFocus","values","selectedUnits","setSelectedUnits","min","presets","presetKey","props","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","defaultValuesToModify","handleOnFocus","event","handleOnChange","nextValues","handleRawOnValueChange","next","forEach","modifiedSide","handleOnValueChange","extra","isNumeric","undefined","isNaN","parseFloat","nextValue","altKey","handleOnUnitChange","newUnits","mergedValue","hasValues","isMixed","length","parsedQuantity","parsedUnit","computedUnit","generatedId","inputId","join","isMixedUnit","some","usedValue","mixedPlaceholder","hasPresets","hasPresetValue","showCustomValueControl","setShowCustomValueControl","presetIndex","marks","value","label","tooltip","map","preset","index","_preset$name","name","slug","expanded","children","placement","text","__shouldNotWarnDeprecated36pxSize","className","id","isPressEnterToChange","disableUnits","onUnitChange","placeholder","hideLabelFromVision","__nextHasNoMarginBottom","newValue","isFinite","max","step","withInputField","newIndex","renderTooltipContent","icon","onClick","isPressed","size","iconSize"],"sources":["@wordpress/components/src/box-control/input-control.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Tooltip from '../tooltip';\nimport { parseQuantityAndUnitFromRawValue } from '../unit-control/utils';\nimport {\n\tCUSTOM_VALUE_SETTINGS,\n\tgetMergedValue,\n\tgetAllowedSides,\n\tgetPresetIndexFromValue,\n\tgetPresetValueFromIndex,\n\tisValuePreset,\n\tisValuesDefined,\n\tisValueMixed,\n\tLABELS,\n} from './utils';\nimport {\n\tFlexedBoxControlIcon,\n\tFlexedRangeControl,\n\tInputWrapper,\n\tStyledUnitControl,\n} from './styles/box-control-styles';\nimport type { BoxControlInputControlProps, BoxControlValue } from './types';\nimport Button from '../button';\n\nconst noop = () => {};\n\nfunction getSidesToModify(\n\tside: BoxControlInputControlProps[ 'side' ],\n\tsides: BoxControlInputControlProps[ 'sides' ],\n\tisAlt?: boolean\n) {\n\tconst allowedSides = getAllowedSides( sides );\n\n\tlet modifiedSides: ( keyof BoxControlValue )[] = [];\n\tswitch ( side ) {\n\t\tcase 'all':\n\t\t\tmodifiedSides = [ 'top', 'bottom', 'left', 'right' ];\n\t\t\tbreak;\n\t\tcase 'horizontal':\n\t\t\tmodifiedSides = [ 'left', 'right' ];\n\t\t\tbreak;\n\t\tcase 'vertical':\n\t\t\tmodifiedSides = [ 'top', 'bottom' ];\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tmodifiedSides = [ side ];\n\t}\n\n\tif ( isAlt ) {\n\t\tswitch ( side ) {\n\t\t\tcase 'top':\n\t\t\t\tmodifiedSides.push( 'bottom' );\n\t\t\t\tbreak;\n\t\t\tcase 'bottom':\n\t\t\t\tmodifiedSides.push( 'top' );\n\t\t\t\tbreak;\n\t\t\tcase 'left':\n\t\t\t\tmodifiedSides.push( 'left' );\n\t\t\t\tbreak;\n\t\t\tcase 'right':\n\t\t\t\tmodifiedSides.push( 'right' );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn modifiedSides.filter( ( s ) => allowedSides.has( s ) );\n}\n\nexport default function BoxInputControl( {\n\t__next40pxDefaultSize,\n\tonChange = noop,\n\tonFocus = noop,\n\tvalues,\n\tselectedUnits,\n\tsetSelectedUnits,\n\tsides,\n\tside,\n\tmin = 0,\n\tpresets,\n\tpresetKey,\n\t...props\n}: BoxControlInputControlProps ) {\n\tconst defaultValuesToModify = getSidesToModify( side, sides );\n\n\tconst handleOnFocus = ( event: React.FocusEvent< HTMLInputElement > ) => {\n\t\tonFocus( event, { side } );\n\t};\n\n\tconst handleOnChange = ( nextValues: BoxControlValue ) => {\n\t\tonChange( nextValues );\n\t};\n\n\tconst handleRawOnValueChange = ( next?: string ) => {\n\t\tconst nextValues = { ...values };\n\t\tdefaultValuesToModify.forEach( ( modifiedSide ) => {\n\t\t\tnextValues[ modifiedSide ] = next;\n\t\t} );\n\n\t\thandleOnChange( nextValues );\n\t};\n\n\tconst handleOnValueChange = (\n\t\tnext?: string,\n\t\textra?: { event: React.SyntheticEvent< Element, Event > }\n\t) => {\n\t\tconst nextValues = { ...values };\n\t\tconst isNumeric = next !== undefined && ! isNaN( parseFloat( next ) );\n\t\tconst nextValue = isNumeric ? next : undefined;\n\t\tconst modifiedSides = getSidesToModify(\n\t\t\tside,\n\t\t\tsides,\n\t\t\t/**\n\t\t\t * Supports changing pair sides. For example, holding the ALT key\n\t\t\t * when changing the TOP will also update BOTTOM.\n\t\t\t */\n\t\t\t// @ts-expect-error - TODO: event.altKey is only present when the change event was\n\t\t\t// triggered by a keyboard event. Should this feature be implemented differently so\n\t\t\t// it also works with drag events?\n\t\t\t!! extra?.event.altKey\n\t\t);\n\n\t\tmodifiedSides.forEach( ( modifiedSide ) => {\n\t\t\tnextValues[ modifiedSide ] = nextValue;\n\t\t} );\n\n\t\thandleOnChange( nextValues );\n\t};\n\n\tconst handleOnUnitChange = ( next?: string ) => {\n\t\tconst newUnits = { ...selectedUnits };\n\t\tdefaultValuesToModify.forEach( ( modifiedSide ) => {\n\t\t\tnewUnits[ modifiedSide ] = next;\n\t\t} );\n\t\tsetSelectedUnits( newUnits );\n\t};\n\n\tconst mergedValue = getMergedValue( values, defaultValuesToModify );\n\tconst hasValues = isValuesDefined( values );\n\tconst isMixed =\n\t\thasValues &&\n\t\tdefaultValuesToModify.length > 1 &&\n\t\tisValueMixed( values, defaultValuesToModify );\n\tconst [ parsedQuantity, parsedUnit ] =\n\t\tparseQuantityAndUnitFromRawValue( mergedValue );\n\tconst computedUnit = hasValues\n\t\t? parsedUnit\n\t\t: selectedUnits[ defaultValuesToModify[ 0 ] ];\n\tconst generatedId = useInstanceId( BoxInputControl, 'box-control-input' );\n\tconst inputId = [ generatedId, side ].join( '-' );\n\tconst isMixedUnit =\n\t\tdefaultValuesToModify.length > 1 &&\n\t\tmergedValue === undefined &&\n\t\tdefaultValuesToModify.some(\n\t\t\t( s ) => selectedUnits[ s ] !== computedUnit\n\t\t);\n\tconst usedValue =\n\t\tmergedValue === undefined && computedUnit ? computedUnit : mergedValue;\n\tconst mixedPlaceholder = isMixed || isMixedUnit ? __( 'Mixed' ) : undefined;\n\tconst hasPresets = presets && presets.length > 0 && presetKey;\n\tconst hasPresetValue =\n\t\thasPresets &&\n\t\tmergedValue !== undefined &&\n\t\t! isMixed &&\n\t\tisValuePreset( mergedValue, presetKey );\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! hasPresets ||\n\t\t\t( ! hasPresetValue && ! isMixed && mergedValue !== undefined )\n\t);\n\tconst presetIndex = hasPresetValue\n\t\t? getPresetIndexFromValue( mergedValue, presetKey, presets )\n\t\t: undefined;\n\tconst marks: Array< {\n\t\tvalue: number;\n\t\tlabel: string;\n\t\ttooltip: string;\n\t} > = hasPresets\n\t\t? [\n\t\t\t\t{\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\tlabel: '',\n\t\t\t\t\ttooltip: __( 'None' ),\n\t\t\t\t},\n\t\t\t\t...presets.map( ( preset, index ) => ( {\n\t\t\t\t\tvalue: index + 1,\n\t\t\t\t\tlabel: '',\n\t\t\t\t\ttooltip: preset.name ?? preset.slug,\n\t\t\t\t} ) ),\n\t\t ]\n\t\t: [];\n\n\treturn (\n\t\t<InputWrapper key={ `box-control-${ side }` } expanded>\n\t\t\t<FlexedBoxControlIcon side={ side } sides={ sides } />\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<Tooltip placement=\"top-end\" text={ LABELS[ side ] }>\n\t\t\t\t\t\t<StyledUnitControl\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\t\t__shouldNotWarnDeprecated36pxSize\n\t\t\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\t\t\tclassName=\"component-box-control__unit-control\"\n\t\t\t\t\t\t\tid={ inputId }\n\t\t\t\t\t\t\tisPressEnterToChange\n\t\t\t\t\t\t\tdisableUnits={ isMixed || isMixedUnit }\n\t\t\t\t\t\t\tvalue={ usedValue }\n\t\t\t\t\t\t\tonChange={ handleOnValueChange }\n\t\t\t\t\t\t\tonUnitChange={ handleOnUnitChange }\n\t\t\t\t\t\t\tonFocus={ handleOnFocus }\n\t\t\t\t\t\t\tlabel={ LABELS[ side ] }\n\t\t\t\t\t\t\tplaceholder={ mixedPlaceholder }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\n\t\t\t\t\t<FlexedRangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\t\t__shouldNotWarnDeprecated36pxSize\n\t\t\t\t\t\taria-controls={ inputId }\n\t\t\t\t\t\tlabel={ LABELS[ side ] }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\thandleOnValueChange(\n\t\t\t\t\t\t\t\tnewValue !== undefined\n\t\t\t\t\t\t\t\t\t? [ newValue, computedUnit ].join( '' )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin={ isFinite( min ) ? min : 0 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ computedUnit ?? 'px' ]\n\t\t\t\t\t\t\t\t?.max ?? 10\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ computedUnit ?? 'px' ]\n\t\t\t\t\t\t\t\t?.step ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ parsedQuantity ?? 0 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ hasPresets && ! showCustomValueControl && (\n\t\t\t\t<FlexedRangeControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ presetIndex !== undefined ? presetIndex + 1 : 0 }\n\t\t\t\t\tonChange={ ( newIndex ) => {\n\t\t\t\t\t\tconst newValue =\n\t\t\t\t\t\t\tnewIndex === 0 || newIndex === undefined\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: getPresetValueFromIndex(\n\t\t\t\t\t\t\t\t\t\tnewIndex - 1,\n\t\t\t\t\t\t\t\t\t\tpresetKey,\n\t\t\t\t\t\t\t\t\t\tpresets\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t\thandleRawOnValueChange( newValue );\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={\n\t\t\t\t\t\tpresetIndex !== undefined ? presetIndex + 1 : 0\n\t\t\t\t\t}\n\t\t\t\t\taria-valuetext={\n\t\t\t\t\t\tmarks[ presetIndex !== undefined ? presetIndex + 1 : 0 ]\n\t\t\t\t\t\t\t.tooltip\n\t\t\t\t\t}\n\t\t\t\t\trenderTooltipContent={ ( index ) =>\n\t\t\t\t\t\tmarks[ ! index ? 0 : index ].tooltip\n\t\t\t\t\t}\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ marks.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ LABELS[ side ] }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ hasPresets && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</InputWrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { DayPicker } from 'react-day-picker';
|
|
5
|
+
import { enUS } from 'react-day-picker/locale';
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { COMMON_PROPS } from '../utils/constants';
|
|
10
|
+
import { clampNumberOfMonths } from '../utils/misc';
|
|
11
|
+
import { useControlledValue } from '../utils/use-controlled-value';
|
|
12
|
+
import { useLocalizationProps } from '../utils/use-localization-props';
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
/**
|
|
15
|
+
* `DateCalendar` is a React component that provides a customizable calendar
|
|
16
|
+
* interface for **single date** selection.
|
|
17
|
+
*
|
|
18
|
+
* The component is built with accessibility in mind and follows ARIA best
|
|
19
|
+
* practices for calendar widgets. It provides keyboard navigation, screen reader
|
|
20
|
+
* support, and customizable labels for internationalization.
|
|
21
|
+
*/
|
|
22
|
+
export const DateCalendar = ({
|
|
23
|
+
defaultSelected,
|
|
24
|
+
selected: selectedProp,
|
|
25
|
+
onSelect,
|
|
26
|
+
numberOfMonths = 1,
|
|
27
|
+
locale = enUS,
|
|
28
|
+
timeZone,
|
|
29
|
+
...props
|
|
30
|
+
}) => {
|
|
31
|
+
const localizationProps = useLocalizationProps({
|
|
32
|
+
locale,
|
|
33
|
+
timeZone,
|
|
34
|
+
mode: 'single'
|
|
35
|
+
});
|
|
36
|
+
const [selected, setSelected] = useControlledValue({
|
|
37
|
+
defaultValue: defaultSelected,
|
|
38
|
+
value: selectedProp,
|
|
39
|
+
onChange: onSelect
|
|
40
|
+
});
|
|
41
|
+
return /*#__PURE__*/_jsx(DayPicker, {
|
|
42
|
+
...COMMON_PROPS,
|
|
43
|
+
...localizationProps,
|
|
44
|
+
...props,
|
|
45
|
+
mode: "single",
|
|
46
|
+
numberOfMonths: clampNumberOfMonths(numberOfMonths),
|
|
47
|
+
selected: selected,
|
|
48
|
+
onSelect: setSelected
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DayPicker","enUS","COMMON_PROPS","clampNumberOfMonths","useControlledValue","useLocalizationProps","jsx","_jsx","DateCalendar","defaultSelected","selected","selectedProp","onSelect","numberOfMonths","locale","timeZone","props","localizationProps","mode","setSelected","defaultValue","value","onChange"],"sources":["@wordpress/components/src/calendar/date-calendar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport { DayPicker } from 'react-day-picker';\nimport { enUS } from 'react-day-picker/locale';\n/**\n * Internal dependencies\n */\nimport { COMMON_PROPS } from '../utils/constants';\nimport { clampNumberOfMonths } from '../utils/misc';\nimport { useControlledValue } from '../utils/use-controlled-value';\nimport { useLocalizationProps } from '../utils/use-localization-props';\nimport type { DateCalendarProps } from '../types';\n\n/**\n * `DateCalendar` is a React component that provides a customizable calendar\n * interface for **single date** selection.\n *\n * The component is built with accessibility in mind and follows ARIA best\n * practices for calendar widgets. It provides keyboard navigation, screen reader\n * support, and customizable labels for internationalization.\n */\nexport const DateCalendar = ( {\n\tdefaultSelected,\n\tselected: selectedProp,\n\tonSelect,\n\tnumberOfMonths = 1,\n\tlocale = enUS,\n\ttimeZone,\n\t...props\n}: DateCalendarProps ) => {\n\tconst localizationProps = useLocalizationProps( {\n\t\tlocale,\n\t\ttimeZone,\n\t\tmode: 'single',\n\t} );\n\n\tconst [ selected, setSelected ] = useControlledValue< Date | undefined >( {\n\t\tdefaultValue: defaultSelected,\n\t\tvalue: selectedProp,\n\t\tonChange: onSelect,\n\t} );\n\n\treturn (\n\t\t<DayPicker\n\t\t\t{ ...COMMON_PROPS }\n\t\t\t{ ...localizationProps }\n\t\t\t{ ...props }\n\t\t\tmode=\"single\"\n\t\t\tnumberOfMonths={ clampNumberOfMonths( numberOfMonths ) }\n\t\t\tselected={ selected }\n\t\t\tonSelect={ setSelected }\n\t\t/>\n\t);\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,IAAI,QAAQ,yBAAyB;AAC9C;AACA;AACA;AACA,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,mBAAmB,QAAQ,eAAe;AACnD,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,oBAAoB,QAAQ,iCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAE;EAC7BC,eAAe;EACfC,QAAQ,EAAEC,YAAY;EACtBC,QAAQ;EACRC,cAAc,GAAG,CAAC;EAClBC,MAAM,GAAGb,IAAI;EACbc,QAAQ;EACR,GAAGC;AACe,CAAC,KAAM;EACzB,MAAMC,iBAAiB,GAAGZ,oBAAoB,CAAE;IAC/CS,MAAM;IACNC,QAAQ;IACRG,IAAI,EAAE;EACP,CAAE,CAAC;EAEH,MAAM,CAAER,QAAQ,EAAES,WAAW,CAAE,GAAGf,kBAAkB,CAAsB;IACzEgB,YAAY,EAAEX,eAAe;IAC7BY,KAAK,EAAEV,YAAY;IACnBW,QAAQ,EAAEV;EACX,CAAE,CAAC;EAEH,oBACCL,IAAA,CAACP,SAAS;IAAA,GACJE,YAAY;IAAA,GACZe,iBAAiB;IAAA,GACjBD,KAAK;IACVE,IAAI,EAAC,QAAQ;IACbL,cAAc,EAAGV,mBAAmB,CAAEU,cAAe,CAAG;IACxDH,QAAQ,EAAGA,QAAU;IACrBE,QAAQ,EAAGO;EAAa,CACxB,CAAC;AAEJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { differenceInCalendarDays } from 'date-fns';
|
|
5
|
+
import { DayPicker, rangeContainsModifiers } from 'react-day-picker';
|
|
6
|
+
import { enUS } from 'react-day-picker/locale';
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { useMemo, useState } from '@wordpress/element';
|
|
11
|
+
/**
|
|
12
|
+
* Internal dependencies
|
|
13
|
+
*/
|
|
14
|
+
import { COMMON_PROPS, MODIFIER_CLASSNAMES } from '../utils/constants';
|
|
15
|
+
import { clampNumberOfMonths } from '../utils/misc';
|
|
16
|
+
import { useControlledValue } from '../utils/use-controlled-value';
|
|
17
|
+
import { useLocalizationProps } from '../utils/use-localization-props';
|
|
18
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
+
export function usePreviewRange({
|
|
20
|
+
selected,
|
|
21
|
+
hoveredDate,
|
|
22
|
+
excludeDisabled,
|
|
23
|
+
min,
|
|
24
|
+
max,
|
|
25
|
+
disabled
|
|
26
|
+
}) {
|
|
27
|
+
return useMemo(() => {
|
|
28
|
+
if (!hoveredDate || !selected?.from) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
let previewHighlight;
|
|
32
|
+
let potentialNewRange;
|
|
33
|
+
|
|
34
|
+
// Hovering on a date before the start of the selected range
|
|
35
|
+
if (hoveredDate < selected.from) {
|
|
36
|
+
var _selected$to;
|
|
37
|
+
previewHighlight = {
|
|
38
|
+
from: hoveredDate,
|
|
39
|
+
to: selected.from
|
|
40
|
+
};
|
|
41
|
+
potentialNewRange = {
|
|
42
|
+
from: hoveredDate,
|
|
43
|
+
to: (_selected$to = selected.to) !== null && _selected$to !== void 0 ? _selected$to : selected.from
|
|
44
|
+
};
|
|
45
|
+
} else if (selected.to && hoveredDate > selected.from && hoveredDate < selected.to) {
|
|
46
|
+
// Hovering on a date between the start and end of the selected range
|
|
47
|
+
previewHighlight = {
|
|
48
|
+
from: selected.from,
|
|
49
|
+
to: hoveredDate
|
|
50
|
+
};
|
|
51
|
+
potentialNewRange = {
|
|
52
|
+
from: selected.from,
|
|
53
|
+
to: hoveredDate
|
|
54
|
+
};
|
|
55
|
+
} else if (hoveredDate > selected.from) {
|
|
56
|
+
var _selected$to2;
|
|
57
|
+
// Hovering on a date after the end of the selected range (either
|
|
58
|
+
// because it's greater than selected.to, or because it's not defined)
|
|
59
|
+
previewHighlight = {
|
|
60
|
+
from: (_selected$to2 = selected.to) !== null && _selected$to2 !== void 0 ? _selected$to2 : selected.from,
|
|
61
|
+
to: hoveredDate
|
|
62
|
+
};
|
|
63
|
+
potentialNewRange = {
|
|
64
|
+
from: selected.from,
|
|
65
|
+
to: hoveredDate
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (min !== undefined && min > 0 && potentialNewRange && differenceInCalendarDays(potentialNewRange.to, potentialNewRange.from) < min) {
|
|
69
|
+
previewHighlight = {
|
|
70
|
+
from: hoveredDate,
|
|
71
|
+
to: hoveredDate
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (max !== undefined && max > 0 && potentialNewRange && differenceInCalendarDays(potentialNewRange.to, potentialNewRange.from) > max) {
|
|
75
|
+
previewHighlight = {
|
|
76
|
+
from: hoveredDate,
|
|
77
|
+
to: hoveredDate
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (excludeDisabled && disabled && potentialNewRange && rangeContainsModifiers(potentialNewRange, disabled)) {
|
|
81
|
+
previewHighlight = {
|
|
82
|
+
from: hoveredDate,
|
|
83
|
+
to: hoveredDate
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return previewHighlight;
|
|
87
|
+
}, [selected, hoveredDate, excludeDisabled, min, max, disabled]);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* `DateRangeCalendar` is a React component that provides a customizable calendar
|
|
92
|
+
* interface for **date range** selection.
|
|
93
|
+
*
|
|
94
|
+
* The component is built with accessibility in mind and follows ARIA best
|
|
95
|
+
* practices for calendar widgets. It provides keyboard navigation, screen reader
|
|
96
|
+
* support, and customizable labels for internationalization.
|
|
97
|
+
*/
|
|
98
|
+
export const DateRangeCalendar = ({
|
|
99
|
+
defaultSelected,
|
|
100
|
+
selected: selectedProp,
|
|
101
|
+
onSelect,
|
|
102
|
+
numberOfMonths = 1,
|
|
103
|
+
excludeDisabled,
|
|
104
|
+
min,
|
|
105
|
+
max,
|
|
106
|
+
disabled,
|
|
107
|
+
locale = enUS,
|
|
108
|
+
timeZone,
|
|
109
|
+
...props
|
|
110
|
+
}) => {
|
|
111
|
+
const localizationProps = useLocalizationProps({
|
|
112
|
+
locale,
|
|
113
|
+
timeZone,
|
|
114
|
+
mode: 'range'
|
|
115
|
+
});
|
|
116
|
+
const [selected, setSelected] = useControlledValue({
|
|
117
|
+
defaultValue: defaultSelected,
|
|
118
|
+
value: selectedProp,
|
|
119
|
+
onChange: onSelect
|
|
120
|
+
});
|
|
121
|
+
const [hoveredDate, setHoveredDate] = useState(undefined);
|
|
122
|
+
|
|
123
|
+
// Compute the preview range for hover effect
|
|
124
|
+
const previewRange = usePreviewRange({
|
|
125
|
+
selected,
|
|
126
|
+
hoveredDate,
|
|
127
|
+
excludeDisabled,
|
|
128
|
+
min,
|
|
129
|
+
max,
|
|
130
|
+
disabled
|
|
131
|
+
});
|
|
132
|
+
const modifiers = useMemo(() => {
|
|
133
|
+
return {
|
|
134
|
+
preview: previewRange,
|
|
135
|
+
preview_start: previewRange?.from,
|
|
136
|
+
preview_end: previewRange?.to
|
|
137
|
+
};
|
|
138
|
+
}, [previewRange]);
|
|
139
|
+
return /*#__PURE__*/_jsx(DayPicker, {
|
|
140
|
+
...COMMON_PROPS,
|
|
141
|
+
...localizationProps,
|
|
142
|
+
...props,
|
|
143
|
+
mode: "range",
|
|
144
|
+
numberOfMonths: clampNumberOfMonths(numberOfMonths),
|
|
145
|
+
disabled: disabled,
|
|
146
|
+
excludeDisabled: excludeDisabled,
|
|
147
|
+
min: min,
|
|
148
|
+
max: max,
|
|
149
|
+
selected: selected,
|
|
150
|
+
onSelect: setSelected,
|
|
151
|
+
onDayMouseEnter: date => setHoveredDate(date),
|
|
152
|
+
onDayMouseLeave: () => setHoveredDate(undefined),
|
|
153
|
+
modifiers: modifiers,
|
|
154
|
+
modifiersClassNames: MODIFIER_CLASSNAMES
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["differenceInCalendarDays","DayPicker","rangeContainsModifiers","enUS","useMemo","useState","COMMON_PROPS","MODIFIER_CLASSNAMES","clampNumberOfMonths","useControlledValue","useLocalizationProps","jsx","_jsx","usePreviewRange","selected","hoveredDate","excludeDisabled","min","max","disabled","from","previewHighlight","potentialNewRange","_selected$to","to","_selected$to2","undefined","DateRangeCalendar","defaultSelected","selectedProp","onSelect","numberOfMonths","locale","timeZone","props","localizationProps","mode","setSelected","defaultValue","value","onChange","setHoveredDate","previewRange","modifiers","preview","preview_start","preview_end","onDayMouseEnter","date","onDayMouseLeave","modifiersClassNames"],"sources":["@wordpress/components/src/calendar/date-range-calendar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport { differenceInCalendarDays } from 'date-fns';\nimport { DayPicker, rangeContainsModifiers } from 'react-day-picker';\nimport { enUS } from 'react-day-picker/locale';\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport { COMMON_PROPS, MODIFIER_CLASSNAMES } from '../utils/constants';\nimport { clampNumberOfMonths } from '../utils/misc';\nimport { useControlledValue } from '../utils/use-controlled-value';\nimport { useLocalizationProps } from '../utils/use-localization-props';\nimport type { DateRangeCalendarProps, DateRange } from '../types';\n\nexport function usePreviewRange( {\n\tselected,\n\thoveredDate,\n\texcludeDisabled,\n\tmin,\n\tmax,\n\tdisabled,\n}: Pick<\n\tDateRangeCalendarProps,\n\t'selected' | 'excludeDisabled' | 'min' | 'max' | 'disabled'\n> & {\n\thoveredDate: Date | undefined;\n} ) {\n\treturn useMemo( () => {\n\t\tif ( ! hoveredDate || ! selected?.from ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet previewHighlight: DateRange | undefined;\n\t\tlet potentialNewRange: { from: Date; to: Date } | undefined;\n\n\t\t// Hovering on a date before the start of the selected range\n\t\tif ( hoveredDate < selected.from ) {\n\t\t\tpreviewHighlight = {\n\t\t\t\tfrom: hoveredDate,\n\t\t\t\tto: selected.from,\n\t\t\t};\n\n\t\t\tpotentialNewRange = {\n\t\t\t\tfrom: hoveredDate,\n\t\t\t\tto: selected.to ?? selected.from,\n\t\t\t};\n\t\t} else if (\n\t\t\tselected.to &&\n\t\t\thoveredDate > selected.from &&\n\t\t\thoveredDate < selected.to\n\t\t) {\n\t\t\t// Hovering on a date between the start and end of the selected range\n\t\t\tpreviewHighlight = {\n\t\t\t\tfrom: selected.from,\n\t\t\t\tto: hoveredDate,\n\t\t\t};\n\n\t\t\tpotentialNewRange = {\n\t\t\t\tfrom: selected.from,\n\t\t\t\tto: hoveredDate,\n\t\t\t};\n\t\t} else if ( hoveredDate > selected.from ) {\n\t\t\t// Hovering on a date after the end of the selected range (either\n\t\t\t// because it's greater than selected.to, or because it's not defined)\n\t\t\tpreviewHighlight = {\n\t\t\t\tfrom: selected.to ?? selected.from,\n\t\t\t\tto: hoveredDate,\n\t\t\t};\n\n\t\t\tpotentialNewRange = {\n\t\t\t\tfrom: selected.from,\n\t\t\t\tto: hoveredDate,\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tmin !== undefined &&\n\t\t\tmin > 0 &&\n\t\t\tpotentialNewRange &&\n\t\t\tdifferenceInCalendarDays(\n\t\t\t\tpotentialNewRange.to,\n\t\t\t\tpotentialNewRange.from\n\t\t\t) < min\n\t\t) {\n\t\t\tpreviewHighlight = {\n\t\t\t\tfrom: hoveredDate,\n\t\t\t\tto: hoveredDate,\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tmax !== undefined &&\n\t\t\tmax > 0 &&\n\t\t\tpotentialNewRange &&\n\t\t\tdifferenceInCalendarDays(\n\t\t\t\tpotentialNewRange.to,\n\t\t\t\tpotentialNewRange.from\n\t\t\t) > max\n\t\t) {\n\t\t\tpreviewHighlight = {\n\t\t\t\tfrom: hoveredDate,\n\t\t\t\tto: hoveredDate,\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\texcludeDisabled &&\n\t\t\tdisabled &&\n\t\t\tpotentialNewRange &&\n\t\t\trangeContainsModifiers( potentialNewRange, disabled )\n\t\t) {\n\t\t\tpreviewHighlight = {\n\t\t\t\tfrom: hoveredDate,\n\t\t\t\tto: hoveredDate,\n\t\t\t};\n\t\t}\n\n\t\treturn previewHighlight;\n\t}, [ selected, hoveredDate, excludeDisabled, min, max, disabled ] );\n}\n\n/**\n * `DateRangeCalendar` is a React component that provides a customizable calendar\n * interface for **date range** selection.\n *\n * The component is built with accessibility in mind and follows ARIA best\n * practices for calendar widgets. It provides keyboard navigation, screen reader\n * support, and customizable labels for internationalization.\n */\nexport const DateRangeCalendar = ( {\n\tdefaultSelected,\n\tselected: selectedProp,\n\tonSelect,\n\tnumberOfMonths = 1,\n\texcludeDisabled,\n\tmin,\n\tmax,\n\tdisabled,\n\tlocale = enUS,\n\ttimeZone,\n\t...props\n}: DateRangeCalendarProps ) => {\n\tconst localizationProps = useLocalizationProps( {\n\t\tlocale,\n\t\ttimeZone,\n\t\tmode: 'range',\n\t} );\n\n\tconst [ selected, setSelected ] = useControlledValue<\n\t\tDateRange | undefined\n\t>( {\n\t\tdefaultValue: defaultSelected,\n\t\tvalue: selectedProp,\n\t\tonChange: onSelect,\n\t} );\n\n\tconst [ hoveredDate, setHoveredDate ] = useState< Date | undefined >(\n\t\tundefined\n\t);\n\n\t// Compute the preview range for hover effect\n\tconst previewRange = usePreviewRange( {\n\t\tselected,\n\t\thoveredDate,\n\t\texcludeDisabled,\n\t\tmin,\n\t\tmax,\n\t\tdisabled,\n\t} );\n\n\tconst modifiers = useMemo( () => {\n\t\treturn {\n\t\t\tpreview: previewRange,\n\t\t\tpreview_start: previewRange?.from,\n\t\t\tpreview_end: previewRange?.to,\n\t\t};\n\t}, [ previewRange ] );\n\n\treturn (\n\t\t<DayPicker\n\t\t\t{ ...COMMON_PROPS }\n\t\t\t{ ...localizationProps }\n\t\t\t{ ...props }\n\t\t\tmode=\"range\"\n\t\t\tnumberOfMonths={ clampNumberOfMonths( numberOfMonths ) }\n\t\t\tdisabled={ disabled }\n\t\t\texcludeDisabled={ excludeDisabled }\n\t\t\tmin={ min }\n\t\t\tmax={ max }\n\t\t\tselected={ selected }\n\t\t\tonSelect={ setSelected }\n\t\t\tonDayMouseEnter={ ( date ) => setHoveredDate( date ) }\n\t\t\tonDayMouseLeave={ () => setHoveredDate( undefined ) }\n\t\t\tmodifiers={ modifiers }\n\t\t\tmodifiersClassNames={ MODIFIER_CLASSNAMES }\n\t\t/>\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TZDate","DateCalendar","DateRangeCalendar"],"sources":["@wordpress/components/src/calendar/index.tsx"],"sourcesContent":["export { TZDate } from 'react-day-picker';\nexport { DateCalendar } from './date-calendar';\nexport { DateRangeCalendar } from './date-range-calendar';\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,kBAAkB;AACzC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,iBAAiB,QAAQ,uBAAuB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/components/src/calendar/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Locale } from 'date-fns';\nimport type * as React from 'react';\n\n/**\n * Represents the modifiers that match a specific day in the calendar.\n * @example\n * const modifiers: Modifiers = {\n * today: false, // the day is not today\n * selected: true, // the day is selected\n * disabled: false, // the day is not disabled\n * outside: false, // the day is not outside the month\n * focused: false, // the day is not focused\n *\n * weekend: false // custom modifier example for matching a weekend\n * booked: true // custom modifier example for matching a booked day\n * available: false // custom modifier example for matching an available day\n * };\n */\nexport type Modifiers = Record< string, boolean >;\n\n/**\n * A value or a function that matches a specific day.\n * @example\n * // will always match the day\n * const booleanMatcher: Matcher = true;\n *\n * // will match the today's date\n * const dateMatcher: Matcher = new Date();\n *\n * // will match the days in the array\n * const arrayMatcher: Matcher = [\n * new Date(2019, 1, 2),\n * new Date(2019, 1, 4)\n * ];\n *\n * // will match days after the 2nd of February 2019\n * const afterMatcher: DateAfter = { after: new Date(2019, 1, 2) };\n *\n * // will match days before the 2nd of February 2019 }\n * const beforeMatcher: DateBefore = { before: new Date(2019, 1, 2) };\n *\n * // will match Sundays\n * const dayOfWeekMatcher: DayOfWeek = {\n * dayOfWeek: 0\n * };\n *\n * // will match the included days, except the two dates\n * const intervalMatcher: DateInterval = {\n * after: new Date(2019, 1, 2),\n * before: new Date(2019, 1, 5)\n * };\n *\n * // will match the included days, including the two dates\n * const rangeMatcher: DateRange = {\n * from: new Date(2019, 1, 2),\n * to: new Date(2019, 1, 5)\n * };\n *\n * // will match when the function return true\n * const functionMatcher: Matcher = (day: Date) => {\n * return day.getMonth() === 2; // match when month is March\n * };\n */\ntype Matcher =\n\t| boolean\n\t| ( ( date: Date ) => boolean )\n\t| Date\n\t| Date[]\n\t| DateRange\n\t| DateBefore\n\t| DateAfter\n\t| DateInterval\n\t| DayOfWeek;\n/**\n * Match a day falling after the specified date, with the date not included.\n * @example\n * // Match days after the 2nd of February 2019\n * const matcher: DateAfter = { after: new Date(2019, 1, 2) };\n */\ntype DateAfter = {\n\tafter: Date;\n};\n/**\n * Match a day falling before the specified date, with the date not included.\n * @example\n * // Match days before the 2nd of February 2019\n * const matcher: DateBefore = { before: new Date(2019, 1, 2) };\n */\ntype DateBefore = {\n\tbefore: Date;\n};\n/**\n * An interval of dates. Differently from `DateRange`, the range ends here\n * are not included.\n * @example\n * // Match the days between the 2nd and the 5th of February 2019\n * const matcher: DateInterval = {\n * after: new Date(2019, 1, 2),\n * before: new Date(2019, 1, 5)\n * };\n */\ntype DateInterval = {\n\tbefore: Date;\n\tafter: Date;\n};\n/**\n * A range of dates. The range can be open. Differently from\n * `DateInterval`, the range ends here are included.\n * @example\n * // Match the days between the 2nd and the 5th of February 2019\n * const matcher: DateRange = {\n * from: new Date(2019, 1, 2),\n * to: new Date(2019, 1, 5)\n * };\n */\nexport type DateRange = {\n\tfrom: Date | undefined;\n\tto?: Date | undefined;\n};\n/**\n * Match dates being one of the specified days of the week (`0-6`, where `0` is\n * Sunday).\n * @example\n * // Match Sundays\n * const matcher: DayOfWeek = { dayOfWeek: 0 };\n * // Match weekends\n * const matcher: DayOfWeek = { dayOfWeek: [0, 6] };\n */\ntype DayOfWeek = {\n\tdayOfWeek: number | number[];\n};\n\n/**\n * Shared handler type for `onSelect` callback when a selection mode is set.\n * @example\n * const handleSelect: OnSelectHandler<Date> = (\n * selected,\n * triggerDate,\n * modifiers,\n * e\n * ) => {\n * console.log( \"Selected:\", selected );\n * console.log( \"Triggered by:\", triggerDate );\n * };\n * @template T - The type of the selected item.\n * @callback OnSelectHandler\n * @param {T} selected - The selected item after the event.\n * @param {Date} triggerDate - The date when the event was triggered. This is\n * typically the day clicked or interacted with.\n * @param {Modifiers} modifiers - The modifiers associated with the event.\n * @param {React.MouseEvent | React.KeyboardEvent} e - The event object.\n */\ntype OnSelectHandler< T > = (\n\tselected: T,\n\ttriggerDate: Date,\n\tmodifiers: Modifiers,\n\te: React.MouseEvent | React.KeyboardEvent\n) => void;\n\nexport interface BaseProps\n\textends Omit<\n\t\tReact.HTMLAttributes< HTMLDivElement >,\n\t\t'onSelect' | 'defaultValue'\n\t> {\n\t/**\n\t * Whether the selection is required.\n\t * When `true`, there always needs to be a date selected.\n\t * @default false\n\t */\n\trequired?: boolean;\n\n\t/**\n\t * The initial month to show in the calendar view (uncontrolled).\n\t * @default The current month\n\t */\n\tdefaultMonth?: Date;\n\t/**\n\t * The month displayed in the calendar view (controlled). Use together with\n\t * `onMonthChange` to change the month programmatically.\n\t */\n\tmonth?: Date;\n\t/**\n\t * The number of months displayed at once.\n\t * @default 1\n\t */\n\tnumberOfMonths?: number;\n\t/**\n\t * The earliest month to start the month navigation.\n\t */\n\tstartMonth?: Date;\n\t/**\n\t * The latest month to end the month navigation.\n\t */\n\tendMonth?: Date;\n\t/**\n\t * Focus the first selected day (if set) or today's date (if not disabled).\n\t *\n\t * Use this prop when you need to focus the calendar after a user action\n\t * (e.g. opening the dialog with the calendar).\n\t */\n\tautoFocus?: boolean;\n\t/**\n\t * Specify which days are disabled. Using `true` will disable all dates.\n\t */\n\tdisabled?: Matcher | Matcher[] | undefined;\n\t/**\n\t * Disable the navigation buttons.\n\t */\n\tdisableNavigation?: boolean;\n\t/**\n\t * Use custom labels, useful for translating the component.\n\t *\n\t * For a correct localized experience, consumers should make sure the locale\n\t * used for the translated labels and `locale` prop are consistent.\n\t */\n\tlabels?: {\n\t\t/**\n\t\t * The label for the navigation toolbar.\n\t\t * @default \"\"\n\t\t */\n\t\tlabelNav?: () => string;\n\t\t/**\n\t\t * The label for the month grid.\n\t\t * @default \"LLLL y\" (e.g. \"November 2022\")\n\t\t */\n\t\tlabelGrid?: ( date: Date ) => string;\n\t\t/**\n\t\t * The label for the gridcell, when the calendar is not interactive.\n\t\t * @default The formatted date.\n\t\t */\n\t\tlabelGridcell?: ( date: Date, modifiers?: Modifiers ) => string;\n\t\t/**\n\t\t * The label for the \"next month\" button.\n\t\t * @default \"Go to the Next Month\"\n\t\t */\n\t\tlabelNext?: ( month: Date | undefined ) => string;\n\t\t/**\n\t\t * The label for the \"previous month\" button.\n\t\t * @default \"Go to the Previous Month\"\n\t\t */\n\t\tlabelPrevious?: ( month: Date | undefined ) => string;\n\t\t/**\n\t\t * The label for the day button.\n\t\t * @default The formatted date.\n\t\t */\n\t\tlabelDayButton?: ( date: Date, modifiers?: Modifiers ) => string;\n\t\t/**\n\t\t * The label for the weekday.\n\t\t * @default ( date: Date ) => \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"Saturday\" | \"Sunday\"\n\t\t */\n\t\tlabelWeekday?: ( date: Date ) => string;\n\t};\n\n\t/**\n\t * The locale object used to localize dates. Pass a locale from\n\t * `@date-fns/locale` to localize the calendar.\n\t *\n\t * For a correct localized experience, consumers should make sure the locale\n\t * used for the translated labels and `locale` prop are consistent.\n\t * @see https://github.com/date-fns/date-fns/tree/main/src/locale for a list of the supported locales\n\t * @default The `enUS` locale from `@date-fns/locale`\n\t */\n\tlocale?: Locale;\n\t/**\n\t * The index of the first day of the week (0 - Sunday). Overrides the locale's\n\t * one.\n\t * @default Based on the `locale` prop\n\t */\n\tweekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n\t/**\n\t * Event fired when the user navigates between months.\n\t */\n\tonMonthChange?: ( month: Date ) => void;\n\t/**\n\t * The time zone (IANA or UTC offset) to use in the calendar.\n\t *\n\t * See\n\t * [Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\n\t * for the possible values.\n\t *\n\t * When working with time zones, use the `TZDate` object exported by this\n\t * package instead of the native `Date` object.\n\t * @example\n\t * import { DateCalendar, TZDate } from \"@automattic/components\";\n\t *\n\t * export function WithTimeZone() {\n\t * const timeZone = \"America/New_York\";\n\t * const [ selected, setSelected ] = useState< Date | undefined >(\n\t * new TZDate( 2024, 12, 10, timeZone ) // Use `TZDate` instead of `Date`\n\t * );\n\t * return (\n\t * <DateCalendar\n\t * timeZone={ timeZone }\n\t * selected={ selected }\n\t * onSelect={ setSelected }\n\t * />\n\t * );\n\t * }\n\t */\n\ttimeZone?: string;\n\t/**\n\t * The role attribute to add to the container element.\n\t * @default 'application'\n\t */\n\trole?: 'application' | 'dialog' | undefined;\n}\n\ninterface SingleProps {\n\t/** The selected date. */\n\tselected?: Date | undefined | null;\n\t/** Event handler when a day is selected. */\n\tonSelect?: OnSelectHandler< Date | undefined >;\n\t/** The default selected date (for uncontrolled usage). */\n\tdefaultSelected?: Date;\n}\n\ninterface RangeProps {\n\t/**\n\t * When `true`, the range will reset when including a disabled day.\n\t */\n\texcludeDisabled?: boolean;\n\t/**\n\t * The minimum number of nights to include in the range.\n\t */\n\tmin?: number;\n\t/**\n\t * The maximum number of nights to include in the range.\n\t */\n\tmax?: number;\n\t/** The selected range. */\n\tselected?: DateRange | undefined | null;\n\t/** Event handler when the selection changes. */\n\tonSelect?: OnSelectHandler< DateRange | undefined >;\n\t/** The default selected range (for uncontrolled usage). */\n\tdefaultSelected?: DateRange;\n}\n\nexport type DateCalendarProps = BaseProps & SingleProps;\nexport type DateRangeCalendarProps = BaseProps & RangeProps;\n"],"mappings":"","ignoreList":[]}
|