@plaudit/gutenberg-api-extensions 2.79.0 → 2.80.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/dist/blocks/MoveError.js +10 -0
- package/dist/blocks/MoveError.js.map +1 -0
- package/{build → dist}/blocks/PathError.js +7 -3
- package/dist/blocks/PathError.js.map +1 -0
- package/{build → dist}/blocks/SNPFlexibleItemsListComponent.d.ts +1 -1
- package/dist/blocks/SNPFlexibleItemsListComponent.js +18 -0
- package/dist/blocks/SNPFlexibleItemsListComponent.js.map +1 -0
- package/{build → dist}/blocks/SNPGroupComponent.d.ts +2 -2
- package/dist/blocks/SNPGroupComponent.js +20 -0
- package/dist/blocks/SNPGroupComponent.js.map +1 -0
- package/{build → dist}/blocks/SNPListComponent.d.ts +1 -1
- package/dist/blocks/SNPListComponent.js +18 -0
- package/dist/blocks/SNPListComponent.js.map +1 -0
- package/dist/blocks/SNPTreeContext.js +14 -0
- package/dist/blocks/SNPTreeContext.js.map +1 -0
- package/dist/blocks/basic-custom-block-bindings-support.js +157 -0
- package/dist/blocks/basic-custom-block-bindings-support.js.map +1 -0
- package/dist/blocks/common-native-property-constructors.d.ts +13 -0
- package/{build → dist}/blocks/common-native-property-constructors.js +105 -151
- package/dist/blocks/common-native-property-constructors.js.map +1 -0
- package/{build → dist}/blocks/conditions.js +12 -7
- package/dist/blocks/conditions.js.map +1 -0
- package/dist/blocks/csnp-api.d.ts +166 -0
- package/dist/blocks/csnp-api.js +74 -0
- package/dist/blocks/csnp-api.js.map +1 -0
- package/{build → dist}/blocks/data-controller-manager.js +4 -1
- package/dist/blocks/data-controller-manager.js.map +1 -0
- package/{build → dist}/blocks/data-controller.js +74 -70
- package/dist/blocks/data-controller.js.map +1 -0
- package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/select.js +14 -11
- package/dist/blocks/hooks/built-in-suspendable-option-protocols/select.js.map +1 -0
- package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/settings.js +9 -6
- package/dist/blocks/hooks/built-in-suspendable-option-protocols/settings.js.map +1 -0
- package/{build → dist}/blocks/hooks/useSuspendableOptions.d.ts +1 -1
- package/{build → dist}/blocks/hooks/useSuspendableOptions.js +30 -23
- package/dist/blocks/hooks/useSuspendableOptions.js.map +1 -0
- package/dist/blocks/index.js +35 -0
- package/dist/blocks/index.js.map +1 -0
- package/{build → dist}/blocks/layered-styles-api.d.ts +2 -2
- package/{build → dist}/blocks/layered-styles-api.js +10 -6
- package/dist/blocks/layered-styles-api.js.map +1 -0
- package/{build → dist}/blocks/layered-styles-impl.js +14 -9
- package/dist/blocks/layered-styles-impl.js.map +1 -0
- package/{build → dist}/blocks/layout/LaidOutProperty.d.ts +1 -2
- package/dist/blocks/layout/LaidOutProperty.js +47 -0
- package/dist/blocks/layout/LaidOutProperty.js.map +1 -0
- package/dist/blocks/layout/LaidOutPropertyRow.js +15 -0
- package/dist/blocks/layout/LaidOutPropertyRow.js.map +1 -0
- package/{build → dist}/blocks/layout/NodeContext.d.ts +2 -2
- package/dist/blocks/layout/NodeContext.js +44 -0
- package/dist/blocks/layout/NodeContext.js.map +1 -0
- package/dist/blocks/layout/PanelRoot.js +29 -0
- package/dist/blocks/layout/PanelRoot.js.map +1 -0
- package/{build → dist}/blocks/layout/TabsRoot.js +16 -13
- package/dist/blocks/layout/TabsRoot.js.map +1 -0
- package/dist/blocks/layout/ToolsPanelContext.js +23 -0
- package/dist/blocks/layout/ToolsPanelContext.js.map +1 -0
- package/dist/blocks/shared-exportable-types.js +3 -0
- package/dist/blocks/shared-internal-types.js +3 -0
- package/{build → dist}/blocks/simple-block.d.ts +1 -1
- package/dist/blocks/simple-block.js +45 -0
- package/dist/blocks/simple-block.js.map +1 -0
- package/{build → dist}/blocks/simple-native-property-api.d.ts +1 -1
- package/{build → dist}/blocks/simple-native-property-api.js +16 -10
- package/dist/blocks/simple-native-property-api.js.map +1 -0
- package/{build → dist}/blocks/simple-native-property-impl.js +60 -55
- package/dist/blocks/simple-native-property-impl.js.map +1 -0
- package/{build → dist}/blocks/simple-native-property-internal-shared.js +6 -2
- package/dist/blocks/simple-native-property-internal-shared.js.map +1 -0
- package/{build → dist}/blocks/snp-api.d.ts +1 -0
- package/dist/blocks/snp-api.js +7 -0
- package/dist/blocks/snp-api.js.map +1 -0
- package/{build → dist}/blocks/snp-data-store.js +8 -4
- package/dist/blocks/snp-data-store.js.map +1 -0
- package/{build → dist}/blocks/utilities.d.ts +1 -1
- package/dist/blocks/utilities.js +79 -0
- package/dist/blocks/utilities.js.map +1 -0
- package/{build → dist}/controls/AsynchronousFormTokenField.d.ts +1 -1
- package/dist/controls/AsynchronousFormTokenField.js +36 -0
- package/dist/controls/AsynchronousFormTokenField.js.map +1 -0
- package/{build → dist}/controls/BaseSortableItemsControl.d.ts +3 -3
- package/dist/controls/BaseSortableItemsControl.js +25 -0
- package/dist/controls/BaseSortableItemsControl.js.map +1 -0
- package/{build → dist}/controls/ExtendedFormTokenField.d.ts +3 -3
- package/dist/controls/ExtendedFormTokenField.js +64 -0
- package/dist/controls/ExtendedFormTokenField.js.map +1 -0
- package/dist/controls/ExtendedPostPicker.js +28 -0
- package/dist/controls/ExtendedPostPicker.js.map +1 -0
- package/dist/controls/ExtendedRadioControl.d.ts +12 -0
- package/dist/controls/ExtendedRadioControl.js +33 -0
- package/dist/controls/ExtendedRadioControl.js.map +1 -0
- package/{build → dist}/controls/ExtendedTaxonomyPicker.d.ts +1 -1
- package/dist/controls/ExtendedTaxonomyPicker.js +71 -0
- package/dist/controls/ExtendedTaxonomyPicker.js.map +1 -0
- package/{build → dist}/controls/ExtendedTermPicker.d.ts +1 -1
- package/dist/controls/ExtendedTermPicker.js +33 -0
- package/dist/controls/ExtendedTermPicker.js.map +1 -0
- package/dist/controls/ExtendedTextareaControl.d.ts +12 -0
- package/{build → dist}/controls/ExtendedTextareaControl.js +15 -12
- package/dist/controls/ExtendedTextareaControl.js.map +1 -0
- package/dist/controls/ExtendedUserPicker.js +28 -0
- package/dist/controls/ExtendedUserPicker.js.map +1 -0
- package/{build → dist}/controls/FullSizeToggleControl.d.ts +6 -4
- package/dist/controls/FullSizeToggleControl.js +110 -0
- package/dist/controls/FullSizeToggleControl.js.map +1 -0
- package/{build → dist}/controls/ImageControl.d.ts +1 -1
- package/dist/controls/ImageControl.js +81 -0
- package/dist/controls/ImageControl.js.map +1 -0
- package/{build → dist}/controls/InspectorPanel.d.ts +4 -3
- package/dist/controls/InspectorPanel.js +29 -0
- package/dist/controls/InspectorPanel.js.map +1 -0
- package/{build → dist}/controls/LazySuggestionsComboboxControl.d.ts +5 -1
- package/dist/controls/LazySuggestionsComboboxControl.js +32 -0
- package/dist/controls/LazySuggestionsComboboxControl.js.map +1 -0
- package/{build → dist}/controls/MultiSelectControl.d.ts +1 -1
- package/dist/controls/MultiSelectControl.js +33 -0
- package/dist/controls/MultiSelectControl.js.map +1 -0
- package/{build → dist}/controls/PickOne.d.ts +1 -1
- package/dist/controls/PickOne.js +54 -0
- package/dist/controls/PickOne.js.map +1 -0
- package/{build → dist}/controls/PromisableComponent.d.ts +2 -2
- package/{build → dist}/controls/PromisableComponent.js +14 -11
- package/dist/controls/PromisableComponent.js.map +1 -0
- package/{build → dist}/controls/ProperLinkControl.d.ts +1 -1
- package/dist/controls/ProperLinkControl.js +59 -0
- package/dist/controls/ProperLinkControl.js.map +1 -0
- package/dist/controls/SimpleToggle.js +11 -0
- package/dist/controls/SimpleToggle.js.map +1 -0
- package/dist/controls/SortableFlexibleItemsControl.js +18 -0
- package/dist/controls/SortableFlexibleItemsControl.js.map +1 -0
- package/dist/controls/SortableItemsControl.js +15 -0
- package/dist/controls/SortableItemsControl.js.map +1 -0
- package/{build → dist}/controls/basicNumericallyIdedItemPicker.d.ts +1 -1
- package/dist/controls/basicNumericallyIdedItemPicker.js +37 -0
- package/dist/controls/basicNumericallyIdedItemPicker.js.map +1 -0
- package/{build → dist}/controls/hooks/useImprovedTokenManager.d.ts +7 -5
- package/{build → dist}/controls/hooks/useImprovedTokenManager.js +21 -15
- package/dist/controls/hooks/useImprovedTokenManager.js.map +1 -0
- package/{build → dist}/controls/hooks/useMultiSingleConversionLayer.d.ts +1 -1
- package/dist/controls/hooks/useMultiSingleConversionLayer.js +14 -0
- package/dist/controls/hooks/useMultiSingleConversionLayer.js.map +1 -0
- package/dist/controls/hooks/useNonRenderingCounter.js +9 -0
- package/dist/controls/hooks/useNonRenderingCounter.js.map +1 -0
- package/{build → dist}/controls/hooks/useOutputMemoizingFilter.js +7 -4
- package/dist/controls/hooks/useOutputMemoizingFilter.js.map +1 -0
- package/{build → dist}/controls/hooks/useSortableItemsModel.js +14 -11
- package/dist/controls/hooks/useSortableItemsModel.js.map +1 -0
- package/{build → dist}/controls/hooks/useSuggestions.js +16 -13
- package/dist/controls/hooks/useSuggestions.js.map +1 -0
- package/{build → dist}/controls/hooks/useTokenManager.d.ts +5 -3
- package/{build → dist}/controls/hooks/useTokenManager.js +37 -34
- package/dist/controls/hooks/useTokenManager.js.map +1 -0
- package/dist/controls/index.js +41 -0
- package/dist/controls/index.js.map +1 -0
- package/{build → dist}/controls/shared.js +18 -8
- package/dist/controls/shared.js.map +1 -0
- package/dist/controls/types.js +3 -0
- package/dist/editor/post-featured-image.js +125 -0
- package/dist/editor/post-featured-image.js.map +1 -0
- package/dist/editor/simple-gutenberg-endpoints-api.js +26 -0
- package/dist/editor/simple-gutenberg-endpoints-api.js.map +1 -0
- package/{build → dist}/editor/simple-gutenberg-endpoints-impl.js +24 -17
- package/dist/editor/simple-gutenberg-endpoints-impl.js.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js +27 -0
- package/dist/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js.map +1 -0
- package/{build → dist}/lib/gutenberg-api-extensions-state/general-logic.js +12 -8
- package/dist/lib/gutenberg-api-extensions-state/general-logic.js.map +1 -0
- package/{build → dist}/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js +10 -6
- package/dist/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js.map +1 -0
- package/{build → dist}/lib/gutenberg-api-extensions-state/snp-logic.js +33 -26
- package/dist/lib/gutenberg-api-extensions-state/snp-logic.js.map +1 -0
- package/{build → dist}/lib/gutenberg-api-extensions-state.d.ts +2 -2
- package/dist/lib/gutenberg-api-extensions-state.js +52 -0
- package/dist/lib/gutenberg-api-extensions-state.js.map +1 -0
- package/{build → dist}/lib/helpers.d.ts +3 -3
- package/{build → dist}/lib/helpers.js +13 -6
- package/dist/lib/helpers.js.map +1 -0
- package/dist/lib/plaudit-icons/column-1.js +6 -0
- package/dist/lib/plaudit-icons/column-1.js.map +1 -0
- package/dist/lib/plaudit-icons/column-2.js +6 -0
- package/dist/lib/plaudit-icons/column-2.js.map +1 -0
- package/dist/lib/plaudit-icons/column-3.js +6 -0
- package/dist/lib/plaudit-icons/column-3.js.map +1 -0
- package/dist/lib/plaudit-icons/placement-center.js +6 -0
- package/dist/lib/plaudit-icons/placement-center.js.map +1 -0
- package/dist/lib/plaudit-icons/placement-end.js +6 -0
- package/dist/lib/plaudit-icons/placement-end.js.map +1 -0
- package/dist/lib/plaudit-icons/placement-start.js +6 -0
- package/dist/lib/plaudit-icons/placement-start.js.map +1 -0
- package/dist/lib/plaudit-icons/placement-stretch.js +6 -0
- package/dist/lib/plaudit-icons/placement-stretch.js.map +1 -0
- package/dist/lib/plaudit-icons/plaudit-icon.js +6 -0
- package/dist/lib/plaudit-icons/plaudit-icon.js.map +1 -0
- package/dist/lib/plaudit-icons/reusable-block-marker.js +6 -0
- package/{build → dist}/lib/plaudit-icons/reusable-block-marker.js.map +1 -1
- package/dist/lib/plaudit-icons.js +29 -0
- package/dist/lib/plaudit-icons.js.map +1 -0
- package/{build → dist}/lib/suspense/promise-handlers.js +16 -7
- package/dist/lib/suspense/promise-handlers.js.map +1 -0
- package/{build → dist}/lib/suspense.d.ts +2 -2
- package/dist/lib/suspense.js +31 -0
- package/dist/lib/suspense.js.map +1 -0
- package/{build → dist}/lib/useful-types.d.ts +4 -1
- package/dist/lib/useful-types.js +11 -0
- package/dist/lib/useful-types.js.map +1 -0
- package/package.json +22 -30
- package/src/blocks/MoveError.ts +7 -0
- package/src/blocks/PathError.ts +18 -0
- package/src/blocks/SNPFlexibleItemsListComponent.tsx +30 -0
- package/src/blocks/SNPGroupComponent.tsx +38 -0
- package/src/blocks/SNPListComponent.tsx +25 -0
- package/src/blocks/SNPTreeContext.tsx +13 -0
- package/src/blocks/basic-custom-block-bindings-support.tsx +243 -0
- package/src/blocks/common-native-property-constructors.tsx +877 -0
- package/src/blocks/conditions.ts +260 -0
- package/src/blocks/csnp-api.ts +214 -0
- package/src/blocks/data-controller-manager.ts +50 -0
- package/src/blocks/data-controller.ts +736 -0
- package/src/blocks/hooks/built-in-suspendable-option-protocols/select.ts +51 -0
- package/src/blocks/hooks/built-in-suspendable-option-protocols/settings.ts +70 -0
- package/src/blocks/hooks/useSuspendableOptions.ts +123 -0
- package/src/blocks/index.ts +20 -0
- package/src/blocks/layered-styles-api.ts +142 -0
- package/src/blocks/layered-styles-impl.ts +94 -0
- package/src/blocks/layout/LaidOutProperty.tsx +72 -0
- package/src/blocks/layout/LaidOutPropertyRow.tsx +22 -0
- package/src/blocks/layout/NodeContext.tsx +54 -0
- package/src/blocks/layout/PanelRoot.tsx +33 -0
- package/src/blocks/layout/TabsRoot.tsx +56 -0
- package/src/blocks/layout/ToolsPanelContext.tsx +22 -0
- package/src/blocks/shared-exportable-types.ts +6 -0
- package/src/blocks/shared-internal-types.ts +18 -0
- package/src/blocks/simple-block.tsx +74 -0
- package/src/blocks/simple-native-property-api.ts +170 -0
- package/src/blocks/simple-native-property-impl.tsx +329 -0
- package/src/blocks/simple-native-property-internal-shared.ts +46 -0
- package/src/blocks/snp-api.ts +5 -0
- package/src/blocks/snp-data-store.ts +66 -0
- package/src/blocks/utilities.ts +80 -0
- package/src/controls/AsynchronousFormTokenField.tsx +85 -0
- package/src/controls/BaseSortableItemsControl.tsx +84 -0
- package/src/controls/ExtendedFormTokenField.tsx +121 -0
- package/src/controls/ExtendedPostPicker.ts +57 -0
- package/src/controls/ExtendedRadioControl.tsx +107 -0
- package/src/controls/ExtendedTaxonomyPicker.tsx +100 -0
- package/src/controls/ExtendedTermPicker.tsx +62 -0
- package/src/controls/ExtendedTextareaControl.tsx +65 -0
- package/src/controls/ExtendedUserPicker.ts +56 -0
- package/src/controls/FullSizeToggleControl.tsx +94 -0
- package/src/controls/ImageControl.tsx +143 -0
- package/src/controls/InspectorPanel.tsx +37 -0
- package/src/controls/LazySuggestionsComboboxControl.tsx +62 -0
- package/src/controls/MultiSelectControl.tsx +59 -0
- package/src/controls/PickOne.tsx +84 -0
- package/src/controls/PromisableComponent.tsx +56 -0
- package/src/controls/ProperLinkControl.tsx +93 -0
- package/src/controls/SimpleToggle.tsx +9 -0
- package/src/controls/SortableFlexibleItemsControl.tsx +35 -0
- package/src/controls/SortableItemsControl.tsx +18 -0
- package/src/controls/basicNumericallyIdedItemPicker.tsx +76 -0
- package/src/controls/hooks/useImprovedTokenManager.ts +157 -0
- package/src/controls/hooks/useMultiSingleConversionLayer.ts +17 -0
- package/src/controls/hooks/useNonRenderingCounter.ts +6 -0
- package/src/controls/hooks/useOutputMemoizingFilter.ts +16 -0
- package/src/controls/hooks/useSortableItemsModel.ts +196 -0
- package/src/controls/hooks/useSuggestions.ts +91 -0
- package/src/controls/hooks/useTokenManager.ts +177 -0
- package/{build/controls/index.js → src/controls/index.ts} +3 -2
- package/src/controls/shared.ts +50 -0
- package/src/controls/types.ts +18 -0
- package/src/editor/post-featured-image.tsx +161 -0
- package/src/editor/simple-gutenberg-endpoints-api.ts +31 -0
- package/src/editor/simple-gutenberg-endpoints-impl.ts +119 -0
- package/src/index.ts +32 -0
- package/src/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.ts +34 -0
- package/src/lib/gutenberg-api-extensions-state/general-logic.ts +41 -0
- package/src/lib/gutenberg-api-extensions-state/layered-block-styles-logic.ts +42 -0
- package/src/lib/gutenberg-api-extensions-state/snp-logic.ts +240 -0
- package/src/lib/gutenberg-api-extensions-state.ts +69 -0
- package/src/lib/helpers.ts +114 -0
- package/src/lib/plaudit-icons/column-1.tsx +6 -0
- package/src/lib/plaudit-icons/column-2.tsx +6 -0
- package/src/lib/plaudit-icons/column-3.tsx +6 -0
- package/src/lib/plaudit-icons/placement-center.tsx +3 -0
- package/src/lib/plaudit-icons/placement-end.tsx +3 -0
- package/src/lib/plaudit-icons/placement-start.tsx +3 -0
- package/src/lib/plaudit-icons/placement-stretch.tsx +3 -0
- package/src/lib/plaudit-icons/plaudit-icon.tsx +4 -0
- package/src/lib/plaudit-icons/reusable-block-marker.tsx +3 -0
- package/{build/lib/plaudit-icons.js → src/lib/plaudit-icons.ts} +1 -1
- package/src/lib/suspense/promise-handlers.ts +72 -0
- package/src/lib/suspense.tsx +18 -0
- package/src/lib/useful-types.ts +65 -0
- package/build/blocks/MoveError.js +0 -6
- package/build/blocks/MoveError.js.map +0 -1
- package/build/blocks/PathError.js.map +0 -1
- package/build/blocks/SNPFlexibleItemsListComponent.js +0 -15
- package/build/blocks/SNPFlexibleItemsListComponent.js.map +0 -1
- package/build/blocks/SNPGroupComponent.js +0 -17
- package/build/blocks/SNPGroupComponent.js.map +0 -1
- package/build/blocks/SNPListComponent.js +0 -15
- package/build/blocks/SNPListComponent.js.map +0 -1
- package/build/blocks/SNPTreeContext.js +0 -10
- package/build/blocks/SNPTreeContext.js.map +0 -1
- package/build/blocks/basic-custom-block-bindings-support.js +0 -150
- package/build/blocks/basic-custom-block-bindings-support.js.map +0 -1
- package/build/blocks/common-native-property-constructors.d.ts +0 -208
- package/build/blocks/common-native-property-constructors.js.map +0 -1
- package/build/blocks/conditions.js.map +0 -1
- package/build/blocks/data-controller-manager.js.map +0 -1
- package/build/blocks/data-controller.js.map +0 -1
- package/build/blocks/hooks/built-in-suspendable-option-protocols/select.js.map +0 -1
- package/build/blocks/hooks/built-in-suspendable-option-protocols/settings.js.map +0 -1
- package/build/blocks/hooks/useSuspendableOptions.js.map +0 -1
- package/build/blocks/index.js +0 -15
- package/build/blocks/index.js.map +0 -1
- package/build/blocks/layered-styles-api.js.map +0 -1
- package/build/blocks/layered-styles-impl.js.map +0 -1
- package/build/blocks/layout/LaidOutProperty.js +0 -44
- package/build/blocks/layout/LaidOutProperty.js.map +0 -1
- package/build/blocks/layout/LaidOutPropertyRow.js +0 -12
- package/build/blocks/layout/LaidOutPropertyRow.js.map +0 -1
- package/build/blocks/layout/NodeContext.js +0 -37
- package/build/blocks/layout/NodeContext.js.map +0 -1
- package/build/blocks/layout/PanelRoot.js +0 -26
- package/build/blocks/layout/PanelRoot.js.map +0 -1
- package/build/blocks/layout/TabsRoot.js.map +0 -1
- package/build/blocks/layout/ToolsPanelContext.js +0 -18
- package/build/blocks/layout/ToolsPanelContext.js.map +0 -1
- package/build/blocks/shared-exportable-types.js +0 -2
- package/build/blocks/shared-internal-types.js +0 -2
- package/build/blocks/simple-block.js +0 -41
- package/build/blocks/simple-block.js.map +0 -1
- package/build/blocks/simple-native-property-api.js.map +0 -1
- package/build/blocks/simple-native-property-impl.js.map +0 -1
- package/build/blocks/simple-native-property-internal-shared.js.map +0 -1
- package/build/blocks/snp-api.js +0 -2
- package/build/blocks/snp-api.js.map +0 -1
- package/build/blocks/snp-data-store.js.map +0 -1
- package/build/blocks/utilities.js +0 -67
- package/build/blocks/utilities.js.map +0 -1
- package/build/controls/AsynchronousFormTokenField.js +0 -32
- package/build/controls/AsynchronousFormTokenField.js.map +0 -1
- package/build/controls/BaseSortableItemsControl.js +0 -22
- package/build/controls/BaseSortableItemsControl.js.map +0 -1
- package/build/controls/ExtendedFormTokenField.js +0 -58
- package/build/controls/ExtendedFormTokenField.js.map +0 -1
- package/build/controls/ExtendedPostPicker.js +0 -22
- package/build/controls/ExtendedPostPicker.js.map +0 -1
- package/build/controls/ExtendedRadioControl.d.ts +0 -10
- package/build/controls/ExtendedRadioControl.js +0 -30
- package/build/controls/ExtendedRadioControl.js.map +0 -1
- package/build/controls/ExtendedTaxonomyPicker.js +0 -68
- package/build/controls/ExtendedTaxonomyPicker.js.map +0 -1
- package/build/controls/ExtendedTermPicker.js +0 -27
- package/build/controls/ExtendedTermPicker.js.map +0 -1
- package/build/controls/ExtendedTextareaControl.d.ts +0 -14
- package/build/controls/ExtendedTextareaControl.js.map +0 -1
- package/build/controls/ExtendedUserPicker.js +0 -22
- package/build/controls/ExtendedUserPicker.js.map +0 -1
- package/build/controls/FullSizeToggleControl.js +0 -70
- package/build/controls/FullSizeToggleControl.js.map +0 -1
- package/build/controls/ImageControl.js +0 -76
- package/build/controls/ImageControl.js.map +0 -1
- package/build/controls/InspectorPanel.js +0 -26
- package/build/controls/InspectorPanel.js.map +0 -1
- package/build/controls/LazySuggestionsComboboxControl.js +0 -29
- package/build/controls/LazySuggestionsComboboxControl.js.map +0 -1
- package/build/controls/MultiSelectControl.js +0 -30
- package/build/controls/MultiSelectControl.js.map +0 -1
- package/build/controls/PickOne.js +0 -48
- package/build/controls/PickOne.js.map +0 -1
- package/build/controls/PromisableComponent.js.map +0 -1
- package/build/controls/ProperLinkControl.js +0 -56
- package/build/controls/ProperLinkControl.js.map +0 -1
- package/build/controls/SimpleToggle.js +0 -8
- package/build/controls/SimpleToggle.js.map +0 -1
- package/build/controls/SortableFlexibleItemsControl.js +0 -15
- package/build/controls/SortableFlexibleItemsControl.js.map +0 -1
- package/build/controls/SortableItemsControl.js +0 -12
- package/build/controls/SortableItemsControl.js.map +0 -1
- package/build/controls/basicNumericallyIdedItemPicker.js +0 -34
- package/build/controls/basicNumericallyIdedItemPicker.js.map +0 -1
- package/build/controls/hooks/useImprovedTokenManager.js.map +0 -1
- package/build/controls/hooks/useMultiSingleConversionLayer.js +0 -11
- package/build/controls/hooks/useMultiSingleConversionLayer.js.map +0 -1
- package/build/controls/hooks/useNonRenderingCounter.js +0 -6
- package/build/controls/hooks/useNonRenderingCounter.js.map +0 -1
- package/build/controls/hooks/useOutputMemoizingFilter.js.map +0 -1
- package/build/controls/hooks/useSortableItemsModel.js.map +0 -1
- package/build/controls/hooks/useSuggestions.js.map +0 -1
- package/build/controls/hooks/useTokenManager.js.map +0 -1
- package/build/controls/index.js.map +0 -1
- package/build/controls/shared.js.map +0 -1
- package/build/controls/types.js +0 -2
- package/build/editor/post-featured-image.js +0 -122
- package/build/editor/post-featured-image.js.map +0 -1
- package/build/editor/simple-gutenberg-endpoints-api.js +0 -22
- package/build/editor/simple-gutenberg-endpoints-api.js.map +0 -1
- package/build/editor/simple-gutenberg-endpoints-impl.js.map +0 -1
- package/build/index.js +0 -22
- package/build/index.js.map +0 -1
- package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js +0 -23
- package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js.map +0 -1
- package/build/lib/gutenberg-api-extensions-state/general-logic.js.map +0 -1
- package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js.map +0 -1
- package/build/lib/gutenberg-api-extensions-state/snp-logic.js.map +0 -1
- package/build/lib/gutenberg-api-extensions-state.js +0 -48
- package/build/lib/gutenberg-api-extensions-state.js.map +0 -1
- package/build/lib/helpers.js.map +0 -1
- package/build/lib/plaudit-icons/column-1.js +0 -3
- package/build/lib/plaudit-icons/column-1.js.map +0 -1
- package/build/lib/plaudit-icons/column-2.js +0 -3
- package/build/lib/plaudit-icons/column-2.js.map +0 -1
- package/build/lib/plaudit-icons/column-3.js +0 -3
- package/build/lib/plaudit-icons/column-3.js.map +0 -1
- package/build/lib/plaudit-icons/placement-center.js +0 -3
- package/build/lib/plaudit-icons/placement-center.js.map +0 -1
- package/build/lib/plaudit-icons/placement-end.js +0 -3
- package/build/lib/plaudit-icons/placement-end.js.map +0 -1
- package/build/lib/plaudit-icons/placement-start.js +0 -3
- package/build/lib/plaudit-icons/placement-start.js.map +0 -1
- package/build/lib/plaudit-icons/placement-stretch.js +0 -3
- package/build/lib/plaudit-icons/placement-stretch.js.map +0 -1
- package/build/lib/plaudit-icons/plaudit-icon.js +0 -3
- package/build/lib/plaudit-icons/plaudit-icon.js.map +0 -1
- package/build/lib/plaudit-icons/reusable-block-marker.js +0 -3
- package/build/lib/plaudit-icons.js.map +0 -1
- package/build/lib/suspense/promise-handlers.js.map +0 -1
- package/build/lib/suspense.js +0 -14
- package/build/lib/suspense.js.map +0 -1
- package/build/lib/useful-types.js +0 -7
- package/build/lib/useful-types.js.map +0 -1
- /package/{build → dist}/blocks/MoveError.d.ts +0 -0
- /package/{build → dist}/blocks/PathError.d.ts +0 -0
- /package/{build → dist}/blocks/SNPTreeContext.d.ts +0 -0
- /package/{build → dist}/blocks/basic-custom-block-bindings-support.d.ts +0 -0
- /package/{build → dist}/blocks/conditions.d.ts +0 -0
- /package/{build → dist}/blocks/data-controller-manager.d.ts +0 -0
- /package/{build → dist}/blocks/data-controller.d.ts +0 -0
- /package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/select.d.ts +0 -0
- /package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/settings.d.ts +0 -0
- /package/{build → dist}/blocks/index.d.ts +0 -0
- /package/{build → dist}/blocks/layered-styles-impl.d.ts +0 -0
- /package/{build → dist}/blocks/layout/LaidOutPropertyRow.d.ts +0 -0
- /package/{build → dist}/blocks/layout/PanelRoot.d.ts +0 -0
- /package/{build → dist}/blocks/layout/TabsRoot.d.ts +0 -0
- /package/{build → dist}/blocks/layout/ToolsPanelContext.d.ts +0 -0
- /package/{build → dist}/blocks/shared-exportable-types.d.ts +0 -0
- /package/{build → dist}/blocks/shared-exportable-types.js.map +0 -0
- /package/{build → dist}/blocks/shared-internal-types.d.ts +0 -0
- /package/{build → dist}/blocks/shared-internal-types.js.map +0 -0
- /package/{build → dist}/blocks/simple-native-property-impl.d.ts +0 -0
- /package/{build → dist}/blocks/simple-native-property-internal-shared.d.ts +0 -0
- /package/{build → dist}/blocks/snp-data-store.d.ts +0 -0
- /package/{build → dist}/controls/ExtendedPostPicker.d.ts +0 -0
- /package/{build → dist}/controls/ExtendedUserPicker.d.ts +0 -0
- /package/{build → dist}/controls/SimpleToggle.d.ts +0 -0
- /package/{build → dist}/controls/SortableFlexibleItemsControl.d.ts +0 -0
- /package/{build → dist}/controls/SortableItemsControl.d.ts +0 -0
- /package/{build → dist}/controls/hooks/useNonRenderingCounter.d.ts +0 -0
- /package/{build → dist}/controls/hooks/useOutputMemoizingFilter.d.ts +0 -0
- /package/{build → dist}/controls/hooks/useSortableItemsModel.d.ts +0 -0
- /package/{build → dist}/controls/hooks/useSuggestions.d.ts +0 -0
- /package/{build → dist}/controls/index.d.ts +0 -0
- /package/{build → dist}/controls/shared.d.ts +0 -0
- /package/{build → dist}/controls/types.d.ts +0 -0
- /package/{build → dist}/controls/types.js.map +0 -0
- /package/{build → dist}/editor/post-featured-image.d.ts +0 -0
- /package/{build → dist}/editor/simple-gutenberg-endpoints-api.d.ts +0 -0
- /package/{build → dist}/editor/simple-gutenberg-endpoints-impl.d.ts +0 -0
- /package/{build → dist}/index.d.ts +0 -0
- /package/{build → dist}/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.d.ts +0 -0
- /package/{build → dist}/lib/gutenberg-api-extensions-state/general-logic.d.ts +0 -0
- /package/{build → dist}/lib/gutenberg-api-extensions-state/layered-block-styles-logic.d.ts +0 -0
- /package/{build → dist}/lib/gutenberg-api-extensions-state/snp-logic.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/column-1.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/column-2.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/column-3.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/placement-center.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/placement-end.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/placement-start.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/placement-stretch.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/plaudit-icon.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons/reusable-block-marker.d.ts +0 -0
- /package/{build → dist}/lib/plaudit-icons.d.ts +0 -0
- /package/{build → dist}/lib/suspense/promise-handlers.d.ts +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.ToggleGroupControlOptionWithOptionalIcon = void 0;
|
|
40
|
+
exports.FullSizeToggleControl = FullSizeToggleControl;
|
|
41
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
42
|
+
const components_1 = require("@wordpress/components");
|
|
43
|
+
const element_1 = require("@wordpress/element");
|
|
44
|
+
const i18n_1 = require("@wordpress/i18n");
|
|
45
|
+
const icons = __importStar(require("@wordpress/icons"));
|
|
46
|
+
const plauditIcons = __importStar(require("../lib/plaudit-icons"));
|
|
47
|
+
const html_react_parser_1 = __importDefault(require("html-react-parser"));
|
|
48
|
+
function FullSizeToggleControl({ componentConfig, label, help, onChange, switchCfg, value }) {
|
|
49
|
+
const [switchLabels, style] = (0, element_1.useMemo)(() => {
|
|
50
|
+
let switchLabels;
|
|
51
|
+
if (typeof switchCfg === 'string') {
|
|
52
|
+
switchCfg = { type: switchCfg };
|
|
53
|
+
}
|
|
54
|
+
switch (switchCfg.type) {
|
|
55
|
+
case "showHide":
|
|
56
|
+
switchLabels = { onLabel: "Show", offLabel: "Hide" };
|
|
57
|
+
break;
|
|
58
|
+
case "yesNo":
|
|
59
|
+
switchLabels = { onLabel: "Yes", offLabel: "No" };
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
if (switchCfg.type !== undefined) {
|
|
63
|
+
console.error("Invalid switch type:", switchCfg.type);
|
|
64
|
+
}
|
|
65
|
+
switchLabels = { onLabel: "On", offLabel: "Off" };
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
if (switchCfg.onLabel) {
|
|
69
|
+
switchLabels.onLabel = switchCfg.onLabel;
|
|
70
|
+
}
|
|
71
|
+
if (switchCfg.offLabel) {
|
|
72
|
+
switchLabels.offLabel = switchCfg.offLabel;
|
|
73
|
+
}
|
|
74
|
+
return [{ onLabel: i18nSwitchLabel(switchLabels.onLabel), offLabel: i18nSwitchLabel(switchLabels.offLabel) }, { width: switchCfg.narrow ? "min-content" : undefined }];
|
|
75
|
+
}, [switchCfg]);
|
|
76
|
+
const safeOnChange = (0, element_1.useCallback)((v) => onChange(v === "true"), [onChange]);
|
|
77
|
+
return (0, jsx_runtime_1.jsxs)(components_1.__experimentalToggleGroupControl, { ...componentConfig, value: value ? "true" : "false", label: label, help: help, isBlock: true, onChange: safeOnChange, style: style, children: [(0, jsx_runtime_1.jsx)(exports.ToggleGroupControlOptionWithOptionalIcon, { value: "true", label: switchLabels.onLabel }, "true"), (0, jsx_runtime_1.jsx)(exports.ToggleGroupControlOptionWithOptionalIcon, { value: "false", label: switchLabels.offLabel }, "false")] });
|
|
78
|
+
}
|
|
79
|
+
exports.ToggleGroupControlOptionWithOptionalIcon = (0, element_1.memo)(function ({ value, label }) {
|
|
80
|
+
if (typeof label === 'string') {
|
|
81
|
+
return (0, jsx_runtime_1.jsx)(components_1.__experimentalToggleGroupControlOption, { value: value, label: label });
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const icon = resolveIcon(label.icon);
|
|
85
|
+
if (icon) {
|
|
86
|
+
return (0, jsx_runtime_1.jsx)(components_1.__experimentalToggleGroupControlOptionIcon, { value: value, label: label.text, icon: icon, "aria-label": label.tooltip });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return (0, jsx_runtime_1.jsx)(components_1.__experimentalToggleGroupControlOption, { value: value, label: label.text, "aria-label": label.tooltip, showTooltip: !!label.tooltip });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
function i18nSwitchLabel(label) {
|
|
94
|
+
return typeof label === 'string' ? (0, i18n_1.__)(label) : { ...label, text: (0, i18n_1.__)(label.text) };
|
|
95
|
+
}
|
|
96
|
+
function resolveIcon(icon) {
|
|
97
|
+
if (typeof icon !== 'string') {
|
|
98
|
+
return icon;
|
|
99
|
+
}
|
|
100
|
+
if (icon.startsWith("plaudit:")) {
|
|
101
|
+
return plauditIcons[icon.substring(8)];
|
|
102
|
+
}
|
|
103
|
+
else if (icon.startsWith("<svg")) {
|
|
104
|
+
return (0, html_react_parser_1.default)(icon);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return icons[icon];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=FullSizeToggleControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FullSizeToggleControl.js","sourceRoot":"","sources":["../../src/controls/FullSizeToggleControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MINIMAL_STORAGE_FIELDS = exports.RETAINED_FIELDS = void 0;
|
|
4
|
+
exports.ImageControl = ImageControl;
|
|
5
|
+
exports.filterImageValueForSaving = filterImageValueForSaving;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const block_editor_1 = require("@wordpress/block-editor");
|
|
8
|
+
const components_1 = require("@wordpress/components");
|
|
9
|
+
const core_data_1 = require("@wordpress/core-data");
|
|
10
|
+
const data_1 = require("@wordpress/data");
|
|
11
|
+
const element_1 = require("@wordpress/element");
|
|
12
|
+
const i18n_1 = require("@wordpress/i18n");
|
|
13
|
+
function ImageControl(props) {
|
|
14
|
+
const { label, help, value, Label, Messages } = props;
|
|
15
|
+
const media = (0, data_1.useSelect)(select => value?.media?.id ? select(core_data_1.store).getMedia(value.media.id) : undefined, [value]);
|
|
16
|
+
const { baseControlProps, controlProps } = (0, components_1.useBaseControlProps)({ label: Label ? (0, jsx_runtime_1.jsx)(Label, {}) : label, help });
|
|
17
|
+
return (0, jsx_runtime_1.jsxs)(components_1.BaseControl, { ...baseControlProps, children: [(0, jsx_runtime_1.jsx)("div", { ...controlProps, className: "editor-post-featured-image", children: media
|
|
18
|
+
? (0, jsx_runtime_1.jsx)(ImageControlWithUploadedImage, { ...props, media: media })
|
|
19
|
+
: (0, jsx_runtime_1.jsx)(ImageControlWithoutUploadedImage, { ...props, media: media }) }), Messages && (0, jsx_runtime_1.jsx)(Messages, {})] });
|
|
20
|
+
}
|
|
21
|
+
exports.RETAINED_FIELDS = ["id", "filename", "url", "date", "mime", "height", "width", "orientation"];
|
|
22
|
+
exports.MINIMAL_STORAGE_FIELDS = ['id', 'url'];
|
|
23
|
+
function filterImageValueForSaving(attachment, storage) {
|
|
24
|
+
if (storage === 'slim') {
|
|
25
|
+
return Object.fromEntries(Object.entries(attachment).filter((entry) => exports.MINIMAL_STORAGE_FIELDS.includes(entry[0])));
|
|
26
|
+
}
|
|
27
|
+
return Object.fromEntries(Object.entries(attachment).filter((entry) => exports.RETAINED_FIELDS.includes(entry[0])));
|
|
28
|
+
}
|
|
29
|
+
const ALLOWED_TYPES = ['image'];
|
|
30
|
+
function ImageControlWithUploadedImage(props) {
|
|
31
|
+
const { includeFocalPointPicker, media, storage, onChange, value } = props;
|
|
32
|
+
const onFPPChange = (0, element_1.useCallback)((pos) => onChange(mergeInUpdatedValuePart(value, 'pos', { x: pos.x * 100, y: pos.y * 100 }, storage)), [onChange, value]);
|
|
33
|
+
const onSelect = (0, element_1.useCallback)((media) => onChange(mergeInUpdatedValuePart(value, 'media', media, storage)), [onChange, value]);
|
|
34
|
+
const renderOpenButton = (0, element_1.useCallback)(({ open }) => (0, jsx_runtime_1.jsx)(components_1.Button, { onClick: open, variant: "secondary", children: (0, i18n_1.__)('Replace image', 'plaudit') }), []);
|
|
35
|
+
const clear = (0, element_1.useCallback)(() => onChange(undefined), [onChange]);
|
|
36
|
+
const fppValue = (0, element_1.useMemo)(() => ({
|
|
37
|
+
x: (value?.pos?.x ?? 50) / 100,
|
|
38
|
+
y: (value?.pos?.y ?? 50) / 100
|
|
39
|
+
}), [value?.pos?.x, value?.pos?.y]);
|
|
40
|
+
let fppOrMedia;
|
|
41
|
+
if (includeFocalPointPicker !== false) {
|
|
42
|
+
fppOrMedia = (0, jsx_runtime_1.jsx)(components_1.FocalPointPicker, { onChange: onFPPChange, url: value?.media?.url ?? '', value: fppValue });
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
fppOrMedia = (0, jsx_runtime_1.jsx)(components_1.ResponsiveWrapper, { naturalWidth: parsePossiblyUndefinedFloat(media.media_details["width"]), naturalHeight: parsePossiblyUndefinedFloat(media.media_details["height"]), children: (0, jsx_runtime_1.jsx)("img", { src: value?.media?.url ?? '', alt: "The currently-selected image." }) });
|
|
46
|
+
}
|
|
47
|
+
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [value?.media?.url && fppOrMedia, (0, jsx_runtime_1.jsxs)(block_editor_1.MediaUploadCheck, { children: [(0, jsx_runtime_1.jsx)(block_editor_1.MediaUpload, { title: (0, i18n_1.__)('Replace image', 'plaudit'), value: value?.media?.id ?? 0, onSelect: onSelect, allowedTypes: ALLOWED_TYPES, render: renderOpenButton }), (0, jsx_runtime_1.jsx)(components_1.Button, { onClick: clear, isDestructive: true, children: (0, i18n_1.__)('Remove image', 'plaudit') })] })] });
|
|
48
|
+
}
|
|
49
|
+
function ImageControlWithoutUploadedImage(props) {
|
|
50
|
+
const { media, onChange, storage, value } = props;
|
|
51
|
+
const onSelect = (0, element_1.useCallback)((media) => onChange(mergeInUpdatedValuePart(value, 'media', media, storage)), [onChange, value]);
|
|
52
|
+
const renderOpenButton = (0, element_1.useCallback)(({ open }) => ((0, jsx_runtime_1.jsxs)(components_1.Button, { className: !value?.media?.id ? 'editor-post-featured-image__toggle' : 'editor-post-featured-image__preview', onClick: open, children: [!value?.media?.id && (0, i18n_1.__)('Choose an image', 'plaudit'), media &&
|
|
53
|
+
(0, jsx_runtime_1.jsx)(components_1.ResponsiveWrapper, { naturalWidth: parsePossiblyUndefinedFloat(media.media_details["width"]), naturalHeight: parsePossiblyUndefinedFloat(media.media_details["height"]), children: (0, jsx_runtime_1.jsx)("img", { src: media.source_url, alt: "The currently-selected image." }) })] })), [media, value?.media?.id]);
|
|
54
|
+
return (0, jsx_runtime_1.jsx)(block_editor_1.MediaUploadCheck, { children: (0, jsx_runtime_1.jsx)(block_editor_1.MediaUpload, { onSelect: onSelect, value: value?.media?.id ?? 0, allowedTypes: ALLOWED_TYPES, render: renderOpenButton }) });
|
|
55
|
+
}
|
|
56
|
+
function parsePossiblyUndefinedFloat(string) {
|
|
57
|
+
return typeof string === 'number' ? string : (string !== undefined ? parseFloat(string) : undefined);
|
|
58
|
+
}
|
|
59
|
+
function mergeInUpdatedValuePart(value, partName, part, storage) {
|
|
60
|
+
if (part === undefined) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
if (partName === 'media') {
|
|
64
|
+
const prt = part;
|
|
65
|
+
if (prt.id === 0) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
else if (value === undefined) {
|
|
69
|
+
return { media: filterImageValueForSaving(prt, storage ?? 'default'), pos: { x: 50, y: 50 } };
|
|
70
|
+
}
|
|
71
|
+
return { media: filterImageValueForSaving(prt, storage ?? 'default'), pos: { x: value.pos?.x ?? 50, y: value.pos?.y ?? 50 } };
|
|
72
|
+
}
|
|
73
|
+
else if (value === undefined || !value.media?.id) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const prt = part;
|
|
78
|
+
return { media: value.media, pos: { x: prt.x ?? value.pos?.x ?? 50, y: prt.y ?? value.pos?.y ?? 50 } };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=ImageControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageControl.js","sourceRoot":"","sources":["../../src/controls/ImageControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { InspectorControls } from "@wordpress/block-editor";
|
|
2
|
-
import
|
|
3
|
-
import type
|
|
4
|
-
|
|
2
|
+
import { PanelBody, TabPanel } from "@wordpress/components";
|
|
3
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
|
|
4
|
+
type TabPanelProps = ComponentPropsWithoutRef<typeof TabPanel>;
|
|
5
|
+
type PanelBodyProps = ComponentPropsWithoutRef<typeof PanelBody>;
|
|
5
6
|
type Tab = TabPanelProps['tabs'][number] & {
|
|
6
7
|
items: ReactNode;
|
|
7
8
|
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InspectorPanel = InspectorPanel;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const block_editor_1 = require("@wordpress/block-editor");
|
|
6
|
+
const components_1 = require("@wordpress/components");
|
|
7
|
+
const element_1 = require("@wordpress/element");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
function InspectorPanel(props) {
|
|
10
|
+
if (props["tabbed"]) {
|
|
11
|
+
const { tabbed, tabs, group, condition, ...tabPanelProps } = props;
|
|
12
|
+
return (0, jsx_runtime_1.jsx)(block_editor_1.InspectorControls, { group: group, children: (0, jsx_runtime_1.jsx)(components_1.TabPanel, { ...tabPanelProps, tabs: condition === undefined || condition() ? tabs : [], children: tab => (0, jsx_runtime_1.jsx)(components_1.Panel, { children: tab.items }) }) });
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return (0, jsx_runtime_1.jsx)(InspectorPanelPanel, { ...props });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function InspectorPanelPanel(props) {
|
|
19
|
+
const { tabbed, raw, group, condition, children, onToggle, initialOpen, ...panelBodyProps } = props;
|
|
20
|
+
const [wasOpened, setWasOpened] = (0, element_1.useState)(initialOpen);
|
|
21
|
+
const memoOnToggle = (0, react_1.useCallback)((value) => {
|
|
22
|
+
onToggle?.(value);
|
|
23
|
+
setWasOpened(value);
|
|
24
|
+
}, [onToggle, setWasOpened]);
|
|
25
|
+
return (0, jsx_runtime_1.jsx)(block_editor_1.InspectorControls, { group: group, children: raw
|
|
26
|
+
? (condition === undefined || condition() ? children : [])
|
|
27
|
+
: (0, jsx_runtime_1.jsx)(components_1.PanelBody, { ...panelBodyProps, children: condition === undefined || condition() ? children : [], onToggle: memoOnToggle, initialOpen: wasOpened }) });
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=InspectorPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InspectorPanel.js","sourceRoot":"","sources":["../../src/controls/InspectorPanel.tsx"],"names":[],"mappings":";;AAaA,wCAWC;;AAxBD,0DAA0D;AAC1D,sDAAiE;AACjE,gDAA4C;AAE5C,iCAAiF;AASjF,SAAgB,cAAc,CAAC,KAA0B;IACxD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,MAAM,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,aAAa,EAAC,GAAG,KAAK,CAAC;QACjE,OAAO,uBAAC,gCAAiB,IAAC,KAAK,EAAE,KAAK,YACrC,uBAAC,qBAAQ,OAAK,aAAa,EAAE,IAAI,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YACnF,GAAG,CAAC,EAAE,CAAC,uBAAC,kBAAK,cAAG,GAAW,CAAC,KAAK,GAAS,GACjC,GACQ,CAAC;IACtB,CAAC;SAAM,CAAC;QACP,OAAO,uBAAC,mBAAmB,OAAK,KAAK,GAAI,CAAC;IAC3C,CAAC;AACF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAqC;IACjE,MAAM,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,cAAc,EAAC,GAAG,KAAK,CAAC;IAClG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,kBAAQ,EAAC,WAAW,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,CAAC,KAAc,EAAE,EAAE;QACnD,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QAClB,YAAY,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7B,OAAO,uBAAC,gCAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG;YACpD,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,CAAC,CAAC,uBAAC,sBAAS,OAAK,cAAc,EAAE,QAAQ,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,GAAI,GAClJ,CAAC;AACN,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ComboboxControl } from "@wordpress/components";
|
|
2
|
+
import type { ComponentProps } from "react";
|
|
3
|
+
type ComboboxControlProps = ComponentProps<typeof ComboboxControl>;
|
|
4
|
+
type ComboboxControlOption = ComboboxControlProps['options'][number];
|
|
2
5
|
export type LazySuggestionsComboboxControlProps = Omit<ComboboxControlProps, 'options'> & {
|
|
3
6
|
getOption(value?: string): Promise<ComboboxControlOption | undefined>;
|
|
4
7
|
getSuggestions(filterValue: string): Promise<ComboboxControlOption[]>;
|
|
5
8
|
};
|
|
6
9
|
export declare function LazySuggestionsComboboxControl(props: LazySuggestionsComboboxControlProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LazySuggestionsComboboxControl = LazySuggestionsComboboxControl;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@wordpress/components");
|
|
6
|
+
const element_1 = require("@wordpress/element");
|
|
7
|
+
const i18n_1 = require("@wordpress/i18n");
|
|
8
|
+
const useSuggestions_1 = require("./hooks/useSuggestions");
|
|
9
|
+
function LazySuggestionsComboboxControl(props) {
|
|
10
|
+
const { help, allowReset, className, ...passthroughProps } = props;
|
|
11
|
+
const { hasLoadingError, isInitializing, isLoading, suggestions, input, setInput } = (0, useSuggestions_1.useSuggestions)(props.value, props);
|
|
12
|
+
const [hasFocus, setHasFocus] = (0, element_1.useState)(false);
|
|
13
|
+
const options = (0, element_1.useMemo)(() => hasFocus && input.length < 2 || (isLoading && !suggestions.length) ? [{ label: input, value: "", disabled: true }] : suggestions, [hasFocus, input, isLoading, suggestions]);
|
|
14
|
+
const onFocus = (0, element_1.useCallback)((e) => setHasFocus(e.currentTarget.contains(e.target)), [setHasFocus]);
|
|
15
|
+
const onBlur = (0, element_1.useCallback)((e) => setHasFocus(e.currentTarget.contains(e.relatedTarget)), [setHasFocus]);
|
|
16
|
+
const onFilterValueChange = (0, element_1.useCallback)((value) => {
|
|
17
|
+
if (props.onFilterValueChange) {
|
|
18
|
+
props.onFilterValueChange(value);
|
|
19
|
+
}
|
|
20
|
+
setInput(value);
|
|
21
|
+
}, [props.onFilterValueChange, setInput]);
|
|
22
|
+
const __experimentalRenderItem = (0, element_1.useMemo)(() => {
|
|
23
|
+
return hasFocus && input.length < 2 ? () => (0, i18n_1.__)("Start typing to see suggestions")
|
|
24
|
+
: (isLoading && !suggestions.length ? () => (0, i18n_1.__)("Loading suggestions") : undefined);
|
|
25
|
+
}, [hasFocus, input, isLoading, suggestions]);
|
|
26
|
+
if (isInitializing) {
|
|
27
|
+
return (0, jsx_runtime_1.jsxs)(components_1.BaseControl, { ...props, children: [(0, jsx_runtime_1.jsx)(components_1.Spinner, {}), (0, jsx_runtime_1.jsx)("span", { children: (0, i18n_1.__)(`Initializing ${props.label}`) })] });
|
|
28
|
+
}
|
|
29
|
+
const needsGreyOut = input.length < 2 || (isLoading && !suggestions.length);
|
|
30
|
+
return (0, jsx_runtime_1.jsxs)("div", { onFocus: onFocus, onBlur: onBlur, children: [isLoading && (0, jsx_runtime_1.jsx)(components_1.Spinner, { style: { marginTop: "30px", position: "absolute", right: "40px" }, "aria-label": "Updating Suggestions" }), (0, jsx_runtime_1.jsx)(components_1.ComboboxControl, { ...passthroughProps, className: className ? `${className}${needsGreyOut ? " insufficient-input-length" : ""}` : (needsGreyOut ? "insufficient-input-length" : undefined), help: help, options: options, onFilterValueChange: onFilterValueChange, __experimentalRenderItem: __experimentalRenderItem, allowReset: allowReset !== false }), hasLoadingError && (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("span", { className: "components-base-control__help", children: (0, i18n_1.__)("An error occurred while updating suggestions") }) })] });
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=LazySuggestionsComboboxControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LazySuggestionsComboboxControl.js","sourceRoot":"","sources":["../../src/controls/LazySuggestionsComboboxControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SNPControlSlots } from "../blocks";
|
|
2
2
|
import type { PickableOptions } from "./types";
|
|
3
|
-
import {
|
|
3
|
+
import type { ReactNode } from "react";
|
|
4
4
|
type MultiSelectProps = {
|
|
5
5
|
onChange: (value: string[]) => void;
|
|
6
6
|
options: PickableOptions<string | number>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiSelectControl = MultiSelectControl;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const element_1 = require("@wordpress/element");
|
|
6
|
+
const ExtendedFormTokenField_1 = require("./ExtendedFormTokenField");
|
|
7
|
+
const shared_1 = require("./shared");
|
|
8
|
+
function MultiSelectControl(props) {
|
|
9
|
+
const { value, options, ...fieldProps } = props;
|
|
10
|
+
const normalizedOptions = (0, element_1.useMemo)(() => (0, shared_1.normalizePickableOptionsToPairs)(options), [options]);
|
|
11
|
+
const validOptions = (0, element_1.useMemo)(() => Object.fromEntries(normalizedOptions.map(opt => [opt[0], (0, shared_1.getLabel)(opt)])), [normalizedOptions]);
|
|
12
|
+
return (0, jsx_runtime_1.jsx)(ExtendedFormTokenField_1.ExtendedFormTokenField, { ...fieldProps, value: value, multiple: true, stringToTokenConverter: (0, element_1.useCallback)(token => {
|
|
13
|
+
if (validOptions[token]) {
|
|
14
|
+
return { value: token, title: validOptions[token], status: ExtendedFormTokenField_1.ValidationState.Valid };
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const result = /(.+) \(#([^)]+)\)$/.exec(token);
|
|
18
|
+
return result && result[1] && result[2] ? { value: result[2], title: result[1], status: ExtendedFormTokenField_1.ValidationState.Validating } : { value: token, status: ExtendedFormTokenField_1.ValidationState.Invalid };
|
|
19
|
+
}
|
|
20
|
+
}, [validOptions]), suggestionQuery: (0, element_1.useCallback)(input => {
|
|
21
|
+
return normalizedOptions
|
|
22
|
+
.filter(option => option[0]?.toString().includes(input) || (0, shared_1.getLabel)(option).includes(input))
|
|
23
|
+
.map(option => ({ value: option[0]?.toString(), status: ExtendedFormTokenField_1.ValidationState.Valid, title: (0, shared_1.getLabel)(option) }));
|
|
24
|
+
}, [normalizedOptions]), validationQuery: (0, element_1.useCallback)(values => {
|
|
25
|
+
return values
|
|
26
|
+
.filter(value => validOptions[value] !== undefined)
|
|
27
|
+
.map(value => ({ value, title: validOptions[value], status: ExtendedFormTokenField_1.ValidationState.Valid }));
|
|
28
|
+
}, [validOptions]), validator: validator });
|
|
29
|
+
}
|
|
30
|
+
function validator(token) {
|
|
31
|
+
return /\(#([^)]+)\)$/.exec(token)?.[1] !== undefined;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=MultiSelectControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSelectControl.js","sourceRoot":"","sources":["../../src/controls/MultiSelectControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PickableOptions, SimpleBlockControlProps } from "./types";
|
|
2
|
-
import {
|
|
2
|
+
import type { ReactElement } from "react";
|
|
3
3
|
export type PickOneFromToggleGroupProps<T extends string> = SimpleBlockControlProps<T, string | number> & {
|
|
4
4
|
options: PickableOptions<string, {
|
|
5
5
|
icon: ReactElement;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PickOneFromToggleGroup = PickOneFromToggleGroup;
|
|
4
|
+
exports.PickOneFromSelect = PickOneFromSelect;
|
|
5
|
+
exports.PickOneFromRadios = PickOneFromRadios;
|
|
6
|
+
exports.PickOneFromColors = PickOneFromColors;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const components_1 = require("@wordpress/components");
|
|
9
|
+
const shared_1 = require("./shared");
|
|
10
|
+
function makeSharedRadioAndSelectProps(props) {
|
|
11
|
+
return {
|
|
12
|
+
label: props.label,
|
|
13
|
+
help: props.help,
|
|
14
|
+
onChange(value) {
|
|
15
|
+
props.setAttributes({ [props.attribute]: value });
|
|
16
|
+
},
|
|
17
|
+
options: (0, shared_1.normalizePickableOptionsToPairs)(props.options).map(([value, label]) => ({
|
|
18
|
+
value, label: typeof label === 'string' ? label : label.text
|
|
19
|
+
}))
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function PickOneFromToggleGroup(props) {
|
|
23
|
+
return (0, jsx_runtime_1.jsx)(components_1.__experimentalToggleGroupControl, { label: props.label, help: props.help, value: props.attributes[props.attribute], onChange: value => props.setAttributes({ [props.attribute]: value }), children: (0, shared_1.normalizePickableOptionsToPairs)(props.options).map(([value, label]) => typeof label === 'string'
|
|
24
|
+
? (0, jsx_runtime_1.jsx)(components_1.__experimentalToggleGroupControlOption, { value: value, label: label }, value)
|
|
25
|
+
: (0, jsx_runtime_1.jsx)(components_1.__experimentalToggleGroupControlOptionIcon, { value: value, label: label.text, icon: label.icon }, value)) });
|
|
26
|
+
}
|
|
27
|
+
function PickOneFromSelect(props) {
|
|
28
|
+
return (0, jsx_runtime_1.jsx)(components_1.SelectControl, { ...makeSharedRadioAndSelectProps(props), value: props.attributes[props.attribute] });
|
|
29
|
+
}
|
|
30
|
+
function PickOneFromRadios(props) {
|
|
31
|
+
return (0, jsx_runtime_1.jsx)(components_1.RadioControl, { ...makeSharedRadioAndSelectProps(props), selected: props.attributes[props.attribute] });
|
|
32
|
+
}
|
|
33
|
+
function PickOneFromColors(props) {
|
|
34
|
+
const valueToColorMap = new Map();
|
|
35
|
+
const colorToValueMap = new Map();
|
|
36
|
+
const colors = [];
|
|
37
|
+
for (const [value, display] of (0, shared_1.normalizePickableOptionsToPairs)(props.options)) {
|
|
38
|
+
if (typeof display === 'string') {
|
|
39
|
+
colors.push({ color: value, name: display });
|
|
40
|
+
}
|
|
41
|
+
else if (display.color) {
|
|
42
|
+
valueToColorMap.set(value, display.color);
|
|
43
|
+
colorToValueMap.set(display.color, value);
|
|
44
|
+
colors.push({ color: display.color, name: display.text });
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
colors.push({ color: value, name: display.text });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const currentColor = valueToColorMap.get(props.attributes[props.attribute]) ?? props.attributes[props.attribute];
|
|
51
|
+
const { baseControlProps, controlProps } = (0, components_1.useBaseControlProps)({ label: props.label, help: props.help });
|
|
52
|
+
return (0, jsx_runtime_1.jsx)(components_1.BaseControl, { ...baseControlProps, children: (0, jsx_runtime_1.jsx)(components_1.ColorPalette, { ...controlProps, disableCustomColors: true, onChange: color => props.setAttributes({ [props.attribute]: colorToValueMap.get(color ?? currentColor) ?? color ?? currentColor }), colors: colors, value: currentColor, clearable: false }) });
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=PickOne.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PickOne.js","sourceRoot":"","sources":["../../src/controls/PickOne.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
2
|
export type AwaitedProps<T extends object> = {
|
|
3
3
|
[K in keyof T]: Awaited<T[K]>;
|
|
4
4
|
};
|
|
@@ -8,4 +8,4 @@ export type PromisableComponentProps<T extends Awaited<object>> = {
|
|
|
8
8
|
renderer(props: AwaitedProps<T>): ReactNode;
|
|
9
9
|
forceSuspend?: boolean;
|
|
10
10
|
};
|
|
11
|
-
export declare function PromisableComponent<T extends Awaited<object>>(props: PromisableComponentProps<T>): string | number | boolean | Iterable<
|
|
11
|
+
export declare function PromisableComponent<T extends Awaited<object>>(props: PromisableComponentProps<T>): string | number | boolean | Iterable<ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PromisableComponent = PromisableComponent;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@wordpress/components");
|
|
6
|
+
const element_1 = require("@wordpress/element");
|
|
7
|
+
const suspense_1 = require("../lib/suspense");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
function PromisableComponent(props) {
|
|
7
10
|
const wrappedPromise = useWrappedArgsParameter(props.promisedProps, props.forceSuspend);
|
|
8
11
|
if (!(wrappedPromise instanceof Promise)) {
|
|
9
12
|
return props.renderer(wrappedPromise);
|
|
10
13
|
}
|
|
11
|
-
return
|
|
14
|
+
return (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: typeof props.initializing === 'function' ? props.initializing() : (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Spinner, {}), " ", props.initializing] }), children: (0, jsx_runtime_1.jsx)(PromisableComponentDelegator, { promise: wrappedPromise, children: props.renderer }) });
|
|
12
15
|
}
|
|
13
16
|
function PromisableComponentDelegator({ promise, children }) {
|
|
14
|
-
return children(use(promise));
|
|
17
|
+
return children((0, suspense_1.use)(promise));
|
|
15
18
|
}
|
|
16
19
|
function useWrappedArgsParameter(args, forcePromise) {
|
|
17
|
-
const ref = useRef(null);
|
|
20
|
+
const ref = (0, element_1.useRef)(null);
|
|
18
21
|
if (ref.current === null || args !== ref.current.args || forcePromise !== ref.current.forcePromise) {
|
|
19
22
|
return (ref.current = { args, forcePromise, value: actuallyWrapTheArgsParameter(args, forcePromise) }).value;
|
|
20
23
|
}
|
|
@@ -34,9 +37,9 @@ function useWrappedArgsParameter(args, forcePromise) {
|
|
|
34
37
|
}
|
|
35
38
|
function actuallyWrapTheArgsParameter(args, forcePromise) {
|
|
36
39
|
if (!Object.values(args).some(v => v instanceof Promise)) {
|
|
37
|
-
return forcePromise ? wrapPromise(Promise.resolve(args)) : args;
|
|
40
|
+
return forcePromise ? (0, suspense_1.wrapPromise)(Promise.resolve(args)) : args;
|
|
38
41
|
}
|
|
39
|
-
return wrapPromise(Promise
|
|
42
|
+
return (0, suspense_1.wrapPromise)(Promise
|
|
40
43
|
.all(Object.entries(args).map(async ([key, value]) => [key, await value]))
|
|
41
44
|
.then(entries => Object.fromEntries(entries)));
|
|
42
45
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromisableComponent.js","sourceRoot":"","sources":["../../src/controls/PromisableComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProperLinkControl = ProperLinkControl;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const block_editor_1 = require("@wordpress/block-editor");
|
|
6
|
+
const components_1 = require("@wordpress/components");
|
|
7
|
+
const element_1 = require("@wordpress/element");
|
|
8
|
+
const icons_1 = require("@wordpress/icons");
|
|
9
|
+
function ProperLinkControl(props) {
|
|
10
|
+
const { value, onChange, onRemove, label, help, settings = ProperLinkControl.DEFAULT_LINK_SETTINGS, ...linkControlProps } = props;
|
|
11
|
+
const [areAdvancedSettingsVisible, setAreAdvancedSettingsVisible] = (0, element_1.useState)(false);
|
|
12
|
+
const advancedSettingsRef = (0, element_1.useRef)(null);
|
|
13
|
+
(0, element_1.useEffect)(() => {
|
|
14
|
+
const advancedSettingsElement = advancedSettingsRef.current;
|
|
15
|
+
if (!advancedSettingsElement) {
|
|
16
|
+
return () => { };
|
|
17
|
+
}
|
|
18
|
+
const transitionListener = (evt) => {
|
|
19
|
+
if (evt.propertyName === 'max-height' && evt.target === advancedSettingsElement) {
|
|
20
|
+
if (advancedSettingsElement.style.maxHeight === '0px') {
|
|
21
|
+
advancedSettingsElement.style.display = 'none';
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
advancedSettingsElement.style.maxHeight = '';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
advancedSettingsElement.addEventListener('transitionend', transitionListener);
|
|
29
|
+
return () => advancedSettingsElement.addEventListener('transitionend', transitionListener);
|
|
30
|
+
}, [advancedSettingsRef]);
|
|
31
|
+
(0, element_1.useEffect)(() => {
|
|
32
|
+
const advancedSettingsElement = advancedSettingsRef.current;
|
|
33
|
+
if (!advancedSettingsElement) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (areAdvancedSettingsVisible) {
|
|
37
|
+
advancedSettingsElement.style.display = '';
|
|
38
|
+
advancedSettingsElement.style.maxHeight = advancedSettingsElement.scrollHeight + "px";
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
advancedSettingsElement.style.maxHeight = advancedSettingsElement.scrollHeight + "px";
|
|
42
|
+
// We have to use window.requestAnimationFrame in order to force the maxHeight to be treated as "recalculated".
|
|
43
|
+
// Unless something else on the page goes horribly wrong, there shouldn't be any actual painting done as part of updating the max height.
|
|
44
|
+
window.requestAnimationFrame(() => advancedSettingsElement.style.maxHeight = "0px");
|
|
45
|
+
}
|
|
46
|
+
}, [areAdvancedSettingsVisible, advancedSettingsRef]);
|
|
47
|
+
const safeOnRemove = (0, element_1.useCallback)(() => onRemove !== undefined ? onRemove() : onChange?.(undefined), [onRemove, onChange]);
|
|
48
|
+
const renderableSettings = settings === false ? [] : settings;
|
|
49
|
+
const renderControlBottom = (0, element_1.useCallback)(() => (value?.url && renderableSettings?.length && (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Button, { variant: "tertiary", onClick: () => setAreAdvancedSettingsVisible(!areAdvancedSettingsVisible), icon: areAdvancedSettingsVisible ? icons_1.chevronUp : icons_1.chevronDown, iconPosition: "right", text: "Advanced" }), (0, jsx_runtime_1.jsxs)("div", { ref: advancedSettingsRef, style: { display: "none", transition: "max-height 200ms ease-in-out", overflow: "hidden" }, children: [...renderableSettings.map(setting => (0, jsx_runtime_1.jsx)(ProperLinkControlSetting, { setting: setting, onChange: onChange, value: value }))] })] })) || "", [value, settings, areAdvancedSettingsVisible, onChange]);
|
|
50
|
+
return (0, jsx_runtime_1.jsx)(components_1.BaseControl, { id: "", label: props.label, help: props.help, children: (0, jsx_runtime_1.jsx)(block_editor_1.LinkControl, { ...linkControlProps, value: value, onChange: onChange, onRemove: safeOnRemove, settings: ProperLinkControl.DUMMY_LINK_SETTINGS, renderControlBottom: renderControlBottom }) });
|
|
51
|
+
}
|
|
52
|
+
ProperLinkControl.DEFAULT_LINK_SETTINGS = block_editor_1.LinkControl.DEFAULT_LINK_SETTINGS;
|
|
53
|
+
ProperLinkControl.DUMMY_LINK_SETTINGS = [];
|
|
54
|
+
function ProperLinkControlSetting({ value, onChange, setting }) {
|
|
55
|
+
return (0, jsx_runtime_1.jsx)("div", { style: { marginTop: "8px" }, children: setting.type === 'text'
|
|
56
|
+
? (0, jsx_runtime_1.jsx)(components_1.TextControl, { style: { marginTop: "8px" }, value: value?.[setting.id] ?? setting.default ?? '', label: setting.title, onChange: v => onChange?.({ ...value, [setting.id]: v }) })
|
|
57
|
+
: (0, jsx_runtime_1.jsx)(components_1.ToggleControl, { style: { marginTop: "8px" }, checked: value?.[setting.id] ?? setting.default ?? false, label: setting.title, onChange: v => onChange?.({ ...value, [setting.id]: v }) }) });
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=ProperLinkControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProperLinkControl.js","sourceRoot":"","sources":["../../src/controls/ProperLinkControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleToggle = SimpleToggle;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@wordpress/components");
|
|
6
|
+
const element_1 = require("@wordpress/element");
|
|
7
|
+
function SimpleToggle(props) {
|
|
8
|
+
const onChange = (0, element_1.useCallback)((checked) => props.setAttributes({ [props.attribute]: checked }), [props.setAttributes, props.attribute]);
|
|
9
|
+
return (0, jsx_runtime_1.jsx)(components_1.ToggleControl, { checked: props.attributes[props.attribute], label: props.label, onChange: onChange });
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=SimpleToggle.js.map
|