Make WordPress Core

Changeset 50996


Ignore:
Timestamp:
05/25/2021 08:38:04 AM (3 years ago)
Author:
noisysocks
Message:

Adds the widgets block editor to widgets.php and customize.php

Moves the widgets block editor from Gutenberg into WordPress Core.

  • Adds @wordpress/edit-widgets, @wordpress/customize-widgets and @wordpress/widgets.
  • Modifies wp-admin/widgets.php to branch between the old editor and new editor depending on wp_use_widgets_block_editor().
  • Modifies WP_Customize_Widgets to branch between the old editor control and new editor control depending on wp_use_widgets_block_editor().

Fixes #51506.
Props isabel_brison, TimothyBlynJacobs, andraganescu, kevin940726, talldanwp.

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/package-lock.json

    r50945 r50996  
    140140        },
    141141        "@babel/helper-define-polyfill-provider": {
    142             "version": "0.2.0",
    143             "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz",
    144             "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==",
     142            "version": "0.2.1",
     143            "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.1.tgz",
     144            "integrity": "sha512-x3AUTVZNPunaw1opRTa5OwVA5N0YxGlIad9xQ5QflK1uIS7PnAGGU5O2Dj/G183fR//N8AzTq+Q8+oiu9m0VFg==",
    145145            "dev": true,
    146146            "requires": {
     
    18671867                },
    18681868                "picomatch": {
    1869                     "version": "2.2.3",
    1870                     "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    1871                     "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     1869                    "version": "2.3.0",
     1870                    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     1871                    "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    18721872                    "dev": true
    18731873                },
     
    20812081                },
    20822082                "picomatch": {
    2083                     "version": "2.2.3",
    2084                     "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    2085                     "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     2083                    "version": "2.3.0",
     2084                    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     2085                    "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    20862086                    "dev": true
    20872087                },
     
    24992499            "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw=="
    25002500        },
     2501        "@tootallnate/once": {
     2502            "version": "1.1.2",
     2503            "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
     2504            "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
     2505            "dev": true
     2506        },
    25012507        "@types/babel__core": {
    25022508            "version": "7.1.14",
     
    25412547        },
    25422548        "@types/cheerio": {
    2543             "version": "0.22.28",
    2544             "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.28.tgz",
    2545             "integrity": "sha512-ehUMGSW5IeDxJjbru4awKYMlKGmo1wSSGUVqXtYwlgmUM8X1a0PZttEIm6yEY7vHsY/hh6iPnklF213G0UColw==",
     2549            "version": "0.22.29",
     2550            "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.29.tgz",
     2551            "integrity": "sha512-rNX1PsrDPxiNiyLnRKiW2NXHJFHqx0Fl3J2WsZq0MTBspa/FgwlqhXJE2crIcc+/2IglLHtSWw7g053oUR8fOg==",
    25462552            "dev": true,
    25472553            "requires": {
     
    32153221        },
    32163222        "@wordpress/block-directory": {
    3217             "version": "2.1.0",
    3218             "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-2.1.0.tgz",
    3219             "integrity": "sha512-jTiz6LHWxFoUSCd053FnIYyJDBj64Zi3jf4W2kGeeLL/UAxoJmnHNw/7dfD+udT+/3dVLiUvr5eVuImeKTURSQ==",
     3223            "version": "2.1.2",
     3224            "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-2.1.2.tgz",
     3225            "integrity": "sha512-jjJxJ/RonDbAgNl+Vbrdhub+RxuJwaSUxumxmUcCuiwaK2tc8eLcS0rkHhq0cOILvTzLFsmk4Ql0Pjbemnx1JQ==",
    32203226            "requires": {
    32213227                "@babel/runtime": "^7.13.10",
     
    32263232                "@wordpress/components": "^14.1.0",
    32273233                "@wordpress/compose": "^4.1.0",
    3228                 "@wordpress/core-data": "^3.1.0",
     3234                "@wordpress/core-data": "^3.1.1",
    32293235                "@wordpress/data": "^5.1.0",
    32303236                "@wordpress/data-controls": "^2.1.0",
    3231                 "@wordpress/edit-post": "^4.1.0",
    3232                 "@wordpress/editor": "^10.1.0",
     3237                "@wordpress/edit-post": "^4.1.2",
     3238                "@wordpress/editor": "^10.1.1",
    32333239                "@wordpress/element": "^3.1.0",
    32343240                "@wordpress/hooks": "^3.1.0",
     
    32853291                "tinycolor2": "^1.4.2",
    32863292                "traverse": "^0.6.6"
     3293            },
     3294            "dependencies": {
     3295                "@wordpress/a11y": {
     3296                    "version": "3.1.0",
     3297                    "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.1.0.tgz",
     3298                    "integrity": "sha512-wYDXl9/JQuryAsqLaM/9g9edqq+ZXCmqyvc6OH8zjZAUuIc7zzCxzrI0A/mMyZBaBPK9BequCEoqIlbjrJqI5A==",
     3299                    "requires": {
     3300                        "@babel/runtime": "^7.13.10",
     3301                        "@wordpress/dom-ready": "^3.1.0",
     3302                        "@wordpress/i18n": "^4.1.0"
     3303                    }
     3304                },
     3305                "@wordpress/api-fetch": {
     3306                    "version": "5.1.0",
     3307                    "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-5.1.0.tgz",
     3308                    "integrity": "sha512-UEB+CAv5rKV1wRZBW/hh/0fqwCtiUD6dLs0XRhESa3LdU5TRnera+bvXZ6wo5BJt/D+cSFcndznpSoFmHFFFMg==",
     3309                    "requires": {
     3310                        "@babel/runtime": "^7.13.10",
     3311                        "@wordpress/i18n": "^4.1.0",
     3312                        "@wordpress/url": "^3.1.0"
     3313                    }
     3314                },
     3315                "@wordpress/autop": {
     3316                    "version": "3.1.0",
     3317                    "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.1.0.tgz",
     3318                    "integrity": "sha512-vfrNXODE3QNpjHQE0j5f/TDzIQcRWw9+jrwyfohV+xl0LJXgXduRcSooiRiWzEbosYp9BGieMuQql28gQ+VAhQ==",
     3319                    "requires": {
     3320                        "@babel/runtime": "^7.13.10"
     3321                    }
     3322                },
     3323                "@wordpress/blob": {
     3324                    "version": "3.1.0",
     3325                    "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.1.0.tgz",
     3326                    "integrity": "sha512-f17a5x/z5ugIfzjowh393IJ0pi8WUqrAdafHT3F9v5w7zBq4C1zkam5pE1qja3AWdS4VT4drF+1LOwFRAJK1UQ==",
     3327                    "requires": {
     3328                        "@babel/runtime": "^7.13.10"
     3329                    }
     3330                },
     3331                "@wordpress/block-serialization-default-parser": {
     3332                    "version": "4.1.0",
     3333                    "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.1.0.tgz",
     3334                    "integrity": "sha512-uzmp8qf9+CG9+fCq8ceQGzhbbNbeC3pVPtlnED433BoLJqJn99aXV/hkL0fGW8wRO1l8JVjwfY+uTlcPv//IjA==",
     3335                    "requires": {
     3336                        "@babel/runtime": "^7.13.10"
     3337                    }
     3338                },
     3339                "@wordpress/blocks": {
     3340                    "version": "9.1.0",
     3341                    "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-9.1.0.tgz",
     3342                    "integrity": "sha512-gbLq+335j+NvoR2uP5/X/pjs8b35Bz1qL3j4mZkC87ZPiFIOZYakwa6Uuuq86IO+w9nMHqq83yUUjMYPkAZhSA==",
     3343                    "requires": {
     3344                        "@babel/runtime": "^7.13.10",
     3345                        "@wordpress/autop": "^3.1.0",
     3346                        "@wordpress/blob": "^3.1.0",
     3347                        "@wordpress/block-serialization-default-parser": "^4.1.0",
     3348                        "@wordpress/compose": "^4.1.0",
     3349                        "@wordpress/data": "^5.1.0",
     3350                        "@wordpress/deprecated": "^3.1.0",
     3351                        "@wordpress/dom": "^3.1.0",
     3352                        "@wordpress/element": "^3.1.0",
     3353                        "@wordpress/hooks": "^3.1.0",
     3354                        "@wordpress/html-entities": "^3.1.0",
     3355                        "@wordpress/i18n": "^4.1.0",
     3356                        "@wordpress/icons": "^4.0.0",
     3357                        "@wordpress/is-shallow-equal": "^4.1.0",
     3358                        "@wordpress/shortcode": "^3.1.0",
     3359                        "hpq": "^1.3.0",
     3360                        "lodash": "^4.17.21",
     3361                        "rememo": "^3.0.0",
     3362                        "showdown": "^1.9.1",
     3363                        "simple-html-tokenizer": "^0.5.7",
     3364                        "tinycolor2": "^1.4.2",
     3365                        "uuid": "^8.3.0"
     3366                    }
     3367                },
     3368                "@wordpress/components": {
     3369                    "version": "14.1.0",
     3370                    "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-14.1.0.tgz",
     3371                    "integrity": "sha512-K+/NU0Tvz53U6EI5SanF6YzndJfaVcG4wdTkEieitI71oJn3wgNDJz+exzuTN6tdG971NlnioWI4oGvgljt4NA==",
     3372                    "requires": {
     3373                        "@babel/runtime": "^7.13.10",
     3374                        "@emotion/cache": "^10.0.27",
     3375                        "@emotion/core": "^10.1.1",
     3376                        "@emotion/css": "^10.0.22",
     3377                        "@emotion/native": "^10.0.22",
     3378                        "@emotion/styled": "^10.0.23",
     3379                        "@wordpress/a11y": "^3.1.0",
     3380                        "@wordpress/compose": "^4.1.0",
     3381                        "@wordpress/date": "^4.1.0",
     3382                        "@wordpress/deprecated": "^3.1.0",
     3383                        "@wordpress/dom": "^3.1.0",
     3384                        "@wordpress/element": "^3.1.0",
     3385                        "@wordpress/hooks": "^3.1.0",
     3386                        "@wordpress/i18n": "^4.1.0",
     3387                        "@wordpress/icons": "^4.0.0",
     3388                        "@wordpress/is-shallow-equal": "^4.1.0",
     3389                        "@wordpress/keycodes": "^3.1.0",
     3390                        "@wordpress/primitives": "^2.1.0",
     3391                        "@wordpress/rich-text": "^4.1.0",
     3392                        "@wordpress/warning": "^2.1.0",
     3393                        "classnames": "^2.2.5",
     3394                        "dom-scroll-into-view": "^1.2.1",
     3395                        "downshift": "^6.0.15",
     3396                        "emotion": "^10.0.23",
     3397                        "gradient-parser": "^0.1.5",
     3398                        "highlight-words-core": "^1.2.2",
     3399                        "lodash": "^4.17.21",
     3400                        "memize": "^1.1.0",
     3401                        "moment": "^2.22.1",
     3402                        "re-resizable": "^6.4.0",
     3403                        "react-dates": "^17.1.1",
     3404                        "react-resize-aware": "^3.1.0",
     3405                        "react-spring": "^8.0.20",
     3406                        "react-use-gesture": "^9.0.0",
     3407                        "reakit": "^1.3.5",
     3408                        "rememo": "^3.0.0",
     3409                        "tinycolor2": "^1.4.2",
     3410                        "uuid": "^8.3.0"
     3411                    }
     3412                },
     3413                "@wordpress/compose": {
     3414                    "version": "4.1.0",
     3415                    "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-4.1.0.tgz",
     3416                    "integrity": "sha512-/luv2I9XdHT/4mRCsH2Tv9OHT4wuShRd2+9VYVvadQYg26s0OvOPBct88gYKBq4g/XlH4hJmVodCbv2hOJRw6Q==",
     3417                    "requires": {
     3418                        "@babel/runtime": "^7.13.10",
     3419                        "@wordpress/deprecated": "^3.1.0",
     3420                        "@wordpress/dom": "^3.1.0",
     3421                        "@wordpress/element": "^3.1.0",
     3422                        "@wordpress/is-shallow-equal": "^4.1.0",
     3423                        "@wordpress/keycodes": "^3.1.0",
     3424                        "@wordpress/priority-queue": "^2.1.0",
     3425                        "clipboard": "^2.0.1",
     3426                        "lodash": "^4.17.21",
     3427                        "memize": "^1.1.0",
     3428                        "mousetrap": "^1.6.5",
     3429                        "react-resize-aware": "^3.1.0",
     3430                        "use-memo-one": "^1.1.1"
     3431                    }
     3432                },
     3433                "@wordpress/data": {
     3434                    "version": "5.1.0",
     3435                    "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-5.1.0.tgz",
     3436                    "integrity": "sha512-P0TT9UJLfCdi8fXChfLGwtkWAl1Qtw49tZ580RdC2wiDym52EDcDiiHhALKCPprNS23bYXxBw46kAJxhUNwNHA==",
     3437                    "requires": {
     3438                        "@babel/runtime": "^7.13.10",
     3439                        "@wordpress/compose": "^4.1.0",
     3440                        "@wordpress/deprecated": "^3.1.0",
     3441                        "@wordpress/element": "^3.1.0",
     3442                        "@wordpress/is-shallow-equal": "^4.1.0",
     3443                        "@wordpress/priority-queue": "^2.1.0",
     3444                        "@wordpress/redux-routine": "^4.1.0",
     3445                        "equivalent-key-map": "^0.2.2",
     3446                        "is-promise": "^4.0.0",
     3447                        "lodash": "^4.17.21",
     3448                        "memize": "^1.1.0",
     3449                        "redux": "^4.1.0",
     3450                        "turbo-combine-reducers": "^1.0.2",
     3451                        "use-memo-one": "^1.1.1"
     3452                    }
     3453                },
     3454                "@wordpress/data-controls": {
     3455                    "version": "2.1.0",
     3456                    "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-2.1.0.tgz",
     3457                    "integrity": "sha512-jBid81RK56cF6GDVoWiGI0yaPYBKwepa4q/HunlLwKS+mEdJTng24azRh38EvsxZLdgbXAwKb9FVcacNag7sTg==",
     3458                    "requires": {
     3459                        "@babel/runtime": "^7.13.10",
     3460                        "@wordpress/api-fetch": "^5.1.0",
     3461                        "@wordpress/data": "^5.1.0",
     3462                        "@wordpress/deprecated": "^3.1.0"
     3463                    }
     3464                },
     3465                "@wordpress/date": {
     3466                    "version": "4.1.0",
     3467                    "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.1.0.tgz",
     3468                    "integrity": "sha512-hMId0AQ8tcBRiG9dlMOy0q0oTZ1PM4u5S3lIUPJPIV1K/IHr4nWB1/ODvK/gMLP6JSzNr/sLQlgtCfD0hVQh+w==",
     3469                    "requires": {
     3470                        "@babel/runtime": "^7.13.10",
     3471                        "moment": "^2.22.1",
     3472                        "moment-timezone": "^0.5.31"
     3473                    }
     3474                },
     3475                "@wordpress/deprecated": {
     3476                    "version": "3.1.0",
     3477                    "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-3.1.0.tgz",
     3478                    "integrity": "sha512-rgEOkBSiarmL68nkn+5CrZWUkr7LNJkBzdIrEIChENEbC26GvkskeoZxGw+xXs9GBWyv6NRRu9NvftQKcQPgUg==",
     3479                    "requires": {
     3480                        "@babel/runtime": "^7.13.10",
     3481                        "@wordpress/hooks": "^3.1.0"
     3482                    }
     3483                },
     3484                "@wordpress/dom": {
     3485                    "version": "3.1.0",
     3486                    "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.1.0.tgz",
     3487                    "integrity": "sha512-gjLbvmRIGi8PcxxPvzWLp6Y3SEn/t5V8rEOpLypTbE18wEcU7tZzjG1wtARLwtoKdBSwKfs5hY7B/HPkm+37tg==",
     3488                    "requires": {
     3489                        "@babel/runtime": "^7.13.10",
     3490                        "lodash": "^4.17.21"
     3491                    }
     3492                },
     3493                "@wordpress/dom-ready": {
     3494                    "version": "3.1.0",
     3495                    "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.1.0.tgz",
     3496                    "integrity": "sha512-w/SYZfZrCDMRaes2odJZ+m0P3n7bKUNcliZUhNIvSz3iNq/xIt7Ean5YJQa17M2kqGz2R1t8D7gYabT0mDZMQA==",
     3497                    "requires": {
     3498                        "@babel/runtime": "^7.13.10"
     3499                    }
     3500                },
     3501                "@wordpress/element": {
     3502                    "version": "3.1.0",
     3503                    "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-3.1.0.tgz",
     3504                    "integrity": "sha512-dDCs7zIH4CCa6q+BzDHpn99NLvgKDcM9/p4pAcCppNnR352wipmWK3EK6faWfzv1M6o+VJXhIQuXahxKPLpBsg==",
     3505                    "requires": {
     3506                        "@babel/runtime": "^7.13.10",
     3507                        "@types/react": "^16.9.0",
     3508                        "@types/react-dom": "^16.9.0",
     3509                        "@wordpress/escape-html": "^2.1.0",
     3510                        "lodash": "^4.17.21",
     3511                        "react": "^16.13.1",
     3512                        "react-dom": "^16.13.1"
     3513                    }
     3514                },
     3515                "@wordpress/escape-html": {
     3516                    "version": "2.1.0",
     3517                    "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.1.0.tgz",
     3518                    "integrity": "sha512-N0EZokyky5O5ib8jyqIyzd7Bg+z0XOxrUmHv6kE8o1FpdVwZYFAVg9ZAhb9YQYfFVqIrfbste+v3Mak0iKrD4A==",
     3519                    "requires": {
     3520                        "@babel/runtime": "^7.13.10"
     3521                    }
     3522                },
     3523                "@wordpress/hooks": {
     3524                    "version": "3.1.0",
     3525                    "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.1.0.tgz",
     3526                    "integrity": "sha512-mE94KYLanCj3YK3TF4L1pBtLplcKVHBwv+n1u3jkrnNuH8C7LWhZMddnip0B1FlSPut3Sut+R2pQcI9xuH4fPQ==",
     3527                    "requires": {
     3528                        "@babel/runtime": "^7.13.10"
     3529                    }
     3530                },
     3531                "@wordpress/html-entities": {
     3532                    "version": "3.1.0",
     3533                    "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.1.0.tgz",
     3534                    "integrity": "sha512-zKDc00lP9H7d+8vSXzUgxtDRLA/Pf+42R7sqOFpvdFM2GlGxjRP0pj10PmYov2HYO2FmIwQqCpdITX+a4/tX4Q==",
     3535                    "requires": {
     3536                        "@babel/runtime": "^7.13.10"
     3537                    }
     3538                },
     3539                "@wordpress/i18n": {
     3540                    "version": "4.1.0",
     3541                    "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.1.0.tgz",
     3542                    "integrity": "sha512-wn4z/bspItNFghUQ3tGdXd7BgTNt0XknEvxr5yeZ9wEeXK02SBwET1GNYJMcpOCXBaYBKJ9Va80jk5bW60JJ/w==",
     3543                    "requires": {
     3544                        "@babel/runtime": "^7.13.10",
     3545                        "@wordpress/hooks": "^3.1.0",
     3546                        "gettext-parser": "^1.3.1",
     3547                        "lodash": "^4.17.21",
     3548                        "memize": "^1.1.0",
     3549                        "sprintf-js": "^1.1.1",
     3550                        "tannin": "^1.2.0"
     3551                    }
     3552                },
     3553                "@wordpress/icons": {
     3554                    "version": "4.0.0",
     3555                    "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-4.0.0.tgz",
     3556                    "integrity": "sha512-WuHEHwuI1NtoK2poJjSE7s14Tv8JZEOaAvK0CFN0NJPOznuLzPmykrL0FtVStDDnsaFqPdnsSzk9JE+nTojeBQ==",
     3557                    "requires": {
     3558                        "@babel/runtime": "^7.13.10",
     3559                        "@wordpress/element": "^3.1.0",
     3560                        "@wordpress/primitives": "^2.1.0"
     3561                    }
     3562                },
     3563                "@wordpress/is-shallow-equal": {
     3564                    "version": "4.1.0",
     3565                    "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.1.0.tgz",
     3566                    "integrity": "sha512-qj0X9r1eVYX+XYCNA5pdNq42OU/To68aYY6iZwpJ3jaaAYmUdA9T4tjGwSgU3MSqFDV4NUE6X+kf71XgNxjFjQ==",
     3567                    "requires": {
     3568                        "@babel/runtime": "^7.13.10"
     3569                    }
     3570                },
     3571                "@wordpress/keyboard-shortcuts": {
     3572                    "version": "2.1.0",
     3573                    "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-2.1.0.tgz",
     3574                    "integrity": "sha512-tY1Vr0ZeFtPJUhHOj8UUY8E3C6l521E44a5CKC1oJURXDbIriVPQIN/Cvv8gMDDhX31Fj94Qzz+0du3znUxd8Q==",
     3575                    "requires": {
     3576                        "@babel/runtime": "^7.13.10",
     3577                        "@wordpress/compose": "^4.1.0",
     3578                        "@wordpress/data": "^5.1.0",
     3579                        "@wordpress/element": "^3.1.0",
     3580                        "@wordpress/keycodes": "^3.1.0",
     3581                        "lodash": "^4.17.21",
     3582                        "rememo": "^3.0.0"
     3583                    }
     3584                },
     3585                "@wordpress/keycodes": {
     3586                    "version": "3.1.0",
     3587                    "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.1.0.tgz",
     3588                    "integrity": "sha512-P9w9e68cSrQo8ypG+nHXMhQOm7YkCxwqkrFz8L5Y2T1hGqb3SJF9/IrBQiBjV5e6yTQRgWk5mGZqK8pEAM+WZQ==",
     3589                    "requires": {
     3590                        "@babel/runtime": "^7.13.10",
     3591                        "@wordpress/i18n": "^4.1.0",
     3592                        "lodash": "^4.17.21"
     3593                    }
     3594                },
     3595                "@wordpress/notices": {
     3596                    "version": "3.1.0",
     3597                    "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-3.1.0.tgz",
     3598                    "integrity": "sha512-PiqHUT4Ftk4KdvEUZ89BTIGugFA60NdAquu5OVj5373vWtezaJO8gwcKvA+qY7sIroWEiN+7etcsq4SJR0i6oQ==",
     3599                    "requires": {
     3600                        "@babel/runtime": "^7.13.10",
     3601                        "@wordpress/a11y": "^3.1.0",
     3602                        "@wordpress/data": "^5.1.0",
     3603                        "lodash": "^4.17.21"
     3604                    }
     3605                },
     3606                "@wordpress/primitives": {
     3607                    "version": "2.1.0",
     3608                    "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-2.1.0.tgz",
     3609                    "integrity": "sha512-MAWLEN5ZhNBlHBDbjq3HIp78Ny53KAjLzGJ5OHTxspsbyOp+AbWMaxxkZ3k8Cm6sXWVD8UOiTbDElK70U+X/MQ==",
     3610                    "requires": {
     3611                        "@babel/runtime": "^7.13.10",
     3612                        "@wordpress/element": "^3.1.0",
     3613                        "classnames": "^2.2.5"
     3614                    }
     3615                },
     3616                "@wordpress/priority-queue": {
     3617                    "version": "2.1.0",
     3618                    "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-2.1.0.tgz",
     3619                    "integrity": "sha512-0jfdKTFQnOPg+t2x/Zs6vkpb76lzClT8QP+dnUjHJvsn8WZ+b2BC9R7Qo7RBeQjnz5ii3nFnRAA0YgpsLBRXdQ==",
     3620                    "requires": {
     3621                        "@babel/runtime": "^7.13.10"
     3622                    }
     3623                },
     3624                "@wordpress/redux-routine": {
     3625                    "version": "4.1.0",
     3626                    "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-4.1.0.tgz",
     3627                    "integrity": "sha512-Ju+YKXQOo6S8gy/ctfCf+bQ4eR7zsCMABLF7X/yk2+WE5kA91+STuWLHMX9AwKW2LOwS1cOhYzqJnmGPrY14uw==",
     3628                    "requires": {
     3629                        "@babel/runtime": "^7.13.10",
     3630                        "is-promise": "^4.0.0",
     3631                        "lodash": "^4.17.21",
     3632                        "rungen": "^0.3.2"
     3633                    }
     3634                },
     3635                "@wordpress/rich-text": {
     3636                    "version": "4.1.0",
     3637                    "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-4.1.0.tgz",
     3638                    "integrity": "sha512-+7DvKaD+NmgrMWYHb+bsZ+2C+hq6OUiQzMdIlZH0XdsY95CF83b6Fp+MMLJ0tWR0dw5YShKOQnY3gm969AJTxA==",
     3639                    "requires": {
     3640                        "@babel/runtime": "^7.13.10",
     3641                        "@wordpress/compose": "^4.1.0",
     3642                        "@wordpress/data": "^5.1.0",
     3643                        "@wordpress/dom": "^3.1.0",
     3644                        "@wordpress/element": "^3.1.0",
     3645                        "@wordpress/escape-html": "^2.1.0",
     3646                        "@wordpress/is-shallow-equal": "^4.1.0",
     3647                        "@wordpress/keycodes": "^3.1.0",
     3648                        "classnames": "^2.2.5",
     3649                        "lodash": "^4.17.21",
     3650                        "memize": "^1.1.0",
     3651                        "rememo": "^3.0.0"
     3652                    }
     3653                },
     3654                "@wordpress/shortcode": {
     3655                    "version": "3.1.0",
     3656                    "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.1.0.tgz",
     3657                    "integrity": "sha512-a32GLIvW57j2crzAR05gDgtYuE8B00eoex79t27kFL9C/qftD28qpF63KpkM4E9+fyDFEaZFLxQoLiRYpcVenQ==",
     3658                    "requires": {
     3659                        "@babel/runtime": "^7.13.10",
     3660                        "lodash": "^4.17.21",
     3661                        "memize": "^1.1.0"
     3662                    }
     3663                },
     3664                "@wordpress/token-list": {
     3665                    "version": "2.1.0",
     3666                    "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.1.0.tgz",
     3667                    "integrity": "sha512-EE+Kt0R+FgZtEa4lbYDlWSIA9KAr7wjOIogpBFPbDmwD6f2tEa3gFvIX5LlffvMjIm8ftWCN2oYCHdI1r2AqnA==",
     3668                    "requires": {
     3669                        "@babel/runtime": "^7.13.10",
     3670                        "lodash": "^4.17.21"
     3671                    }
     3672                },
     3673                "@wordpress/url": {
     3674                    "version": "3.1.0",
     3675                    "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.1.0.tgz",
     3676                    "integrity": "sha512-XGvM4WZhQveRZOalGwUaj0xfrohMPtUZY5rfwWWTdSX9yo3fZECFsfg0msm0x1UwRxcxS9fBk9YgixtyaGdnCA==",
     3677                    "requires": {
     3678                        "@babel/runtime": "^7.13.10",
     3679                        "lodash": "^4.17.21",
     3680                        "react-native-url-polyfill": "^1.1.2"
     3681                    }
     3682                },
     3683                "@wordpress/warning": {
     3684                    "version": "2.1.0",
     3685                    "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.1.0.tgz",
     3686                    "integrity": "sha512-/pGUDZK5ONnsvLAhHXFGI6bRPBJvKzY0/6G9ZpA37oNa49S/BB9cxt5cNFEt+mFapRg6U+Tz8FAsi0qJ8ruupQ=="
     3687                },
     3688                "@wordpress/wordcount": {
     3689                    "version": "3.1.0",
     3690                    "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.1.0.tgz",
     3691                    "integrity": "sha512-a9K1KUGl9KcWP1j0LuYEJw1OXYWTKNh9R8jEw8Jc5v4DiMABaxY97l2SZGpJoFfVWJt93bgp2v3YadAoKnsNGg==",
     3692                    "requires": {
     3693                        "@babel/runtime": "^7.13.10",
     3694                        "lodash": "^4.17.21"
     3695                    }
     3696                }
    32873697            }
    32883698        },
    32893699        "@wordpress/block-library": {
    3290             "version": "3.1.0",
    3291             "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-3.1.0.tgz",
    3292             "integrity": "sha512-m1oMg64kfB2qR+A+eXQCNIue9+4S901csm4gI18Gz5bV1cOPC76DabRJADnC2+JOwtuFunWAQkz1cPLQMaC20w==",
     3700            "version": "3.2.1",
     3701            "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-3.2.1.tgz",
     3702            "integrity": "sha512-4vwOJSIijBQsgY1paqdvolfyFIkHkjmYJX7svQYACyarUl4wPMiA3unBARE0dcsq2vNGuKr69uAwf5fYk0d3Kw==",
    32933703            "requires": {
    32943704                "@babel/runtime": "^7.13.10",
     
    33013711                "@wordpress/components": "^14.1.0",
    33023712                "@wordpress/compose": "^4.1.0",
    3303                 "@wordpress/core-data": "^3.1.0",
     3713                "@wordpress/core-data": "^3.1.1",
    33043714                "@wordpress/data": "^5.1.0",
    33053715                "@wordpress/date": "^4.1.0",
    33063716                "@wordpress/deprecated": "^3.1.0",
    33073717                "@wordpress/dom": "^3.1.0",
    3308                 "@wordpress/editor": "^10.1.0",
     3718                "@wordpress/editor": "^10.1.1",
    33093719                "@wordpress/element": "^3.1.0",
    33103720                "@wordpress/escape-html": "^2.1.0",
     
    33163726                "@wordpress/notices": "^3.1.0",
    33173727                "@wordpress/primitives": "^2.1.0",
    3318                 "@wordpress/reusable-blocks": "^2.1.0",
     3728                "@wordpress/reusable-blocks": "^2.1.1",
    33193729                "@wordpress/rich-text": "^4.1.0",
    33203730                "@wordpress/server-side-render": "^2.1.0",
     
    34403850        },
    34413851        "@wordpress/core-data": {
    3442             "version": "3.1.0",
    3443             "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-3.1.0.tgz",
    3444             "integrity": "sha512-Wh3MJERzhpAEkQBcfnutx1U8hgBU9DDR2Cu9SpDhKocZgDueU+HyZ6i6tlE38Ous1R8gk1r9b5W0N9YXQfbL3Q==",
     3852            "version": "3.1.1",
     3853            "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-3.1.1.tgz",
     3854            "integrity": "sha512-O9aEqVdLRjo0g9UlgNaFsa/swbPdsdscQ/q8IBirDTWMoeRJTaINa2fQHe5G9QeeGA1frKwrKRPeWQ9lwM6ANg==",
    34453855            "requires": {
    34463856                "@babel/runtime": "^7.13.10",
     
    34693879            }
    34703880        },
     3881        "@wordpress/customize-widgets": {
     3882            "version": "1.0.1",
     3883            "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-1.0.1.tgz",
     3884            "integrity": "sha512-ndGtrDdXqrD1FrBUM5wwzcYrj1gfvhZtKmJudJQ+L17lxPWNnpxRHWDNsK80/UxaTluatDU782kuucTu3S5Icw==",
     3885            "requires": {
     3886                "@babel/runtime": "^7.11.2",
     3887                "@wordpress/a11y": "^3.1.0",
     3888                "@wordpress/block-editor": "^6.1.0",
     3889                "@wordpress/block-library": "^3.2.1",
     3890                "@wordpress/blocks": "^9.1.0",
     3891                "@wordpress/components": "^14.1.0",
     3892                "@wordpress/compose": "^4.1.0",
     3893                "@wordpress/core-data": "^3.1.1",
     3894                "@wordpress/data": "^5.1.0",
     3895                "@wordpress/dom": "^3.1.0",
     3896                "@wordpress/element": "^3.1.0",
     3897                "@wordpress/hooks": "^3.1.0",
     3898                "@wordpress/i18n": "^4.1.0",
     3899                "@wordpress/icons": "^4.0.0",
     3900                "@wordpress/is-shallow-equal": "^4.1.0",
     3901                "@wordpress/keyboard-shortcuts": "^2.1.0",
     3902                "@wordpress/keycodes": "^3.1.0",
     3903                "@wordpress/media-utils": "^2.1.0",
     3904                "@wordpress/widgets": "^1.1.1",
     3905                "classnames": "^2.2.6",
     3906                "lodash": "^4.17.21"
     3907            }
     3908        },
    34713909        "@wordpress/data": {
    34723910            "version": "5.1.0",
     
    35794017        },
    35804018        "@wordpress/edit-post": {
    3581             "version": "4.1.0",
    3582             "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-4.1.0.tgz",
    3583             "integrity": "sha512-JkWuOSkBtpIUzzG78S+AUaAHE8oBT7lzJyRhMlOX+yThhPGWgGyqB670vvDBUFk59BCPTEknZGGtYLrMYmrjCQ==",
     4019            "version": "4.1.2",
     4020            "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-4.1.2.tgz",
     4021            "integrity": "sha512-BJrBXqK/2AcC+ooNNLWkxNrBKcbDJSVtCpE76jNyk/Qv7211p++HrcaubY0z5veMeRTB4ayEa0ky9HYwgcy3Nw==",
    35844022            "requires": {
    35854023                "@babel/runtime": "^7.13.10",
     
    35874025                "@wordpress/api-fetch": "^5.1.0",
    35884026                "@wordpress/block-editor": "^6.1.0",
    3589                 "@wordpress/block-library": "^3.1.0",
     4027                "@wordpress/block-library": "^3.2.1",
    35904028                "@wordpress/blocks": "^9.1.0",
    35914029                "@wordpress/components": "^14.1.0",
    35924030                "@wordpress/compose": "^4.1.0",
    3593                 "@wordpress/core-data": "^3.1.0",
     4031                "@wordpress/core-data": "^3.1.1",
    35944032                "@wordpress/data": "^5.1.0",
    35954033                "@wordpress/data-controls": "^2.1.0",
    3596                 "@wordpress/editor": "^10.1.0",
     4034                "@wordpress/editor": "^10.1.1",
    35974035                "@wordpress/element": "^3.1.0",
    35984036                "@wordpress/hooks": "^3.1.0",
     
    36244062            }
    36254063        },
     4064        "@wordpress/edit-widgets": {
     4065            "version": "2.1.2",
     4066            "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-2.1.2.tgz",
     4067            "integrity": "sha512-P4aH1KikWJmJxWo+MnFoi+x7b3b4WLDRmWEwU06XcrMtcYN1U4Zmu0aygp+e949qPSbcSYPMOyIKVK32NuNpMA==",
     4068            "requires": {
     4069                "@babel/runtime": "^7.13.10",
     4070                "@wordpress/a11y": "^3.1.0",
     4071                "@wordpress/api-fetch": "^5.1.0",
     4072                "@wordpress/block-editor": "^6.1.0",
     4073                "@wordpress/block-library": "^3.2.1",
     4074                "@wordpress/blocks": "^9.1.0",
     4075                "@wordpress/components": "^14.1.0",
     4076                "@wordpress/compose": "^4.1.0",
     4077                "@wordpress/core-data": "^3.1.1",
     4078                "@wordpress/data": "^5.1.0",
     4079                "@wordpress/data-controls": "^2.1.0",
     4080                "@wordpress/element": "^3.1.0",
     4081                "@wordpress/hooks": "^3.1.0",
     4082                "@wordpress/i18n": "^4.1.0",
     4083                "@wordpress/icons": "^4.0.0",
     4084                "@wordpress/interface": "^3.1.0",
     4085                "@wordpress/keyboard-shortcuts": "^2.1.0",
     4086                "@wordpress/keycodes": "^3.1.0",
     4087                "@wordpress/media-utils": "^2.1.0",
     4088                "@wordpress/notices": "^3.1.0",
     4089                "@wordpress/plugins": "^3.1.0",
     4090                "@wordpress/reusable-blocks": "^2.1.1",
     4091                "@wordpress/server-side-render": "^2.1.0",
     4092                "@wordpress/url": "^3.1.0",
     4093                "@wordpress/widgets": "^1.1.1",
     4094                "classnames": "^2.2.5",
     4095                "lodash": "^4.17.21",
     4096                "rememo": "^3.0.0",
     4097                "uuid": "^8.3.0"
     4098            }
     4099        },
    36264100        "@wordpress/editor": {
    3627             "version": "10.1.0",
    3628             "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-10.1.0.tgz",
    3629             "integrity": "sha512-dEudn+0DQCD8Ryiq1J7BrKEU+kttgnKIX1dZEs60gD+dNwrTPMBr78g0qsxwVZlWIbFT/honHRWgLHBo4qeg9g==",
     4101            "version": "10.1.1",
     4102            "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-10.1.1.tgz",
     4103            "integrity": "sha512-4o4s8Mxyn06h+JtzQOnsLloYLvkn4gu/7bIm5g5ubA7W4BJ/DGYxt5bBM21Qh1E+SVaClM7+5dFQ8RK+QYZIBA==",
    36304104            "requires": {
    36314105                "@babel/runtime": "^7.13.10",
     
    36374111                "@wordpress/components": "^14.1.0",
    36384112                "@wordpress/compose": "^4.1.0",
    3639                 "@wordpress/core-data": "^3.1.0",
     4113                "@wordpress/core-data": "^3.1.1",
    36404114                "@wordpress/data": "^5.1.0",
    36414115                "@wordpress/data-controls": "^2.1.0",
     
    36524126                "@wordpress/media-utils": "^2.1.0",
    36534127                "@wordpress/notices": "^3.1.0",
    3654                 "@wordpress/reusable-blocks": "^2.1.0",
     4128                "@wordpress/reusable-blocks": "^2.1.1",
    36554129                "@wordpress/rich-text": "^4.1.0",
    36564130                "@wordpress/server-side-render": "^2.1.0",
     
    40874561        },
    40884562        "@wordpress/reusable-blocks": {
    4089             "version": "2.1.0",
    4090             "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-2.1.0.tgz",
    4091             "integrity": "sha512-5xXMgLTaULcaBLYSeRegacz3mC9dPEZUssySFx10ill6yxnNR7W5QXtdXxeuQE43la7fPuCdqCf6W0nrCoxSgA==",
     4563            "version": "2.1.1",
     4564            "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-2.1.1.tgz",
     4565            "integrity": "sha512-SD4oEYBBqYnuKBiCGM3sSO3tOdi5JhCCjdos2MXbD5oaoY8QeVKYvCYIwdDk1xlGIoV0PaX7dinUEB0Hu5a2bQ==",
    40924566            "requires": {
    40934567                "@wordpress/block-editor": "^6.1.0",
     
    40954569                "@wordpress/components": "^14.1.0",
    40964570                "@wordpress/compose": "^4.1.0",
    4097                 "@wordpress/core-data": "^3.1.0",
     4571                "@wordpress/core-data": "^3.1.1",
    40984572                "@wordpress/data": "^5.1.0",
    40994573                "@wordpress/element": "^3.1.0",
     
    47575231            "integrity": "sha512-/pGUDZK5ONnsvLAhHXFGI6bRPBJvKzY0/6G9ZpA37oNa49S/BB9cxt5cNFEt+mFapRg6U+Tz8FAsi0qJ8ruupQ=="
    47585232        },
     5233        "@wordpress/widgets": {
     5234            "version": "1.1.1",
     5235            "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-1.1.1.tgz",
     5236            "integrity": "sha512-DnPvVcjx/QfGRX57vecpL1vIQFrijsVB6t6dzlZjCM+Kw4QY/qjmyyTg32G8TKhHg+d6amsscc9CTLawdArBtQ==",
     5237            "requires": {
     5238                "@babel/runtime": "^7.13.10",
     5239                "@wordpress/blocks": "^9.1.0",
     5240                "@wordpress/components": "^14.1.0",
     5241                "@wordpress/core-data": "^3.1.1",
     5242                "@wordpress/data": "^5.1.0",
     5243                "@wordpress/i18n": "^4.1.0",
     5244                "@wordpress/icons": "^4.0.0"
     5245            }
     5246        },
    47595247        "@wordpress/wordcount": {
    47605248            "version": "3.1.0",
     
    59736461        },
    59746462        "babel-plugin-polyfill-corejs2": {
    5975             "version": "0.2.0",
    5976             "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz",
    5977             "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==",
     6463            "version": "0.2.1",
     6464            "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.1.tgz",
     6465            "integrity": "sha512-hXGSPbr6IbjeMyGew+3uGIAkRjBFSOJ9FLDZNOfHuyJZCcoia4nd/72J0bSgvfytcVfUcP/dxEVcUhVJuQRtSw==",
    59786466            "dev": true,
    59796467            "requires": {
    59806468                "@babel/compat-data": "^7.13.11",
    5981                 "@babel/helper-define-polyfill-provider": "^0.2.0",
     6469                "@babel/helper-define-polyfill-provider": "^0.2.1",
    59826470                "semver": "^6.1.1"
    59836471            },
     
    59926480        },
    59936481        "babel-plugin-polyfill-corejs3": {
    5994             "version": "0.2.0",
    5995             "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz",
    5996             "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==",
    5997             "dev": true,
    5998             "requires": {
    5999                 "@babel/helper-define-polyfill-provider": "^0.2.0",
     6482            "version": "0.2.1",
     6483            "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.1.tgz",
     6484            "integrity": "sha512-WZCqF3DLUhdTD/P381MDJfuP18hdCZ+iqJ+wHtzhWENpsiof284JJ1tMQg1CE+hfCWyG48F7e5gDMk2c3Laz7w==",
     6485            "dev": true,
     6486            "requires": {
     6487                "@babel/helper-define-polyfill-provider": "^0.2.1",
    60006488                "core-js-compat": "^3.9.1"
    60016489            }
    60026490        },
    60036491        "babel-plugin-polyfill-regenerator": {
    6004             "version": "0.2.0",
    6005             "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz",
    6006             "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==",
    6007             "dev": true,
    6008             "requires": {
    6009                 "@babel/helper-define-polyfill-provider": "^0.2.0"
     6492            "version": "0.2.1",
     6493            "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.1.tgz",
     6494            "integrity": "sha512-T3bYyL3Sll2EtC94v3f+fA8M28q7YPTOZdB++SRHjvYZTvtd+WorMUq3tDTD4Q7Kjk1LG0gGromslKjcO5p2TA==",
     6495            "dev": true,
     6496            "requires": {
     6497                "@babel/helper-define-polyfill-provider": "^0.2.1"
    60106498            }
    60116499        },
     
    78568344            "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
    78578345            "dev": true
    7858         },
    7859         "contains-path": {
    7860             "version": "1.0.0",
    7861             "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-1.0.0.tgz",
    7862             "integrity": "sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE=",
    7863             "dev": true,
    7864             "requires": {
    7865                 "normalize-path": "^2.1.1",
    7866                 "path-starts-with": "^1.0.0"
    7867             },
    7868             "dependencies": {
    7869                 "normalize-path": {
    7870                     "version": "2.1.1",
    7871                     "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
    7872                     "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
    7873                     "dev": true,
    7874                     "requires": {
    7875                         "remove-trailing-separator": "^1.0.1"
    7876                     }
    7877                 }
    7878             }
    78798346        },
    78808347        "content-disposition": {
     
    974610213        },
    974710214        "eslint": {
    9748             "version": "7.26.0",
    9749             "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.26.0.tgz",
    9750             "integrity": "sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==",
     10215            "version": "7.27.0",
     10216            "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.27.0.tgz",
     10217            "integrity": "sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==",
    975110218            "dev": true,
    975210219            "requires": {
     
    975910226                "doctrine": "^3.0.0",
    976010227                "enquirer": "^2.3.5",
     10228                "escape-string-regexp": "^4.0.0",
    976110229                "eslint-scope": "^5.1.1",
    976210230                "eslint-utils": "^2.1.0",
     
    976510233                "esquery": "^1.4.0",
    976610234                "esutils": "^2.0.2",
     10235                "fast-deep-equal": "^3.1.3",
    976710236                "file-entry-cache": "^6.0.1",
    976810237                "functional-red-black-tree": "^1.0.1",
     
    977610245                "json-stable-stringify-without-jsonify": "^1.0.1",
    977710246                "levn": "^0.4.1",
    9778                 "lodash": "^4.17.21",
     10247                "lodash.merge": "^4.6.2",
    977910248                "minimatch": "^3.0.4",
    978010249                "natural-compare": "^1.4.0",
     
    978510254                "strip-ansi": "^6.0.0",
    978610255                "strip-json-comments": "^3.1.0",
    9787                 "table": "^6.0.4",
     10256                "table": "^6.0.9",
    978810257                "text-table": "^0.2.0",
    978910258                "v8-compile-cache": "^2.0.3"
     
    982510294                    }
    982610295                },
     10296                "escape-string-regexp": {
     10297                    "version": "4.0.0",
     10298                    "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
     10299                    "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
     10300                    "dev": true
     10301                },
    982710302                "eslint-scope": {
    982810303                    "version": "5.1.1",
     
    999510470        },
    999610471        "eslint-plugin-import": {
    9997             "version": "2.23.2",
    9998             "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.2.tgz",
    9999             "integrity": "sha512-LmNoRptHBxOP+nb0PIKz1y6OSzCJlB+0g0IGS3XV4KaKk2q4szqQ6s6F1utVf5ZRkxk/QOTjdxe7v4VjS99Bsg==",
     10472            "version": "2.23.3",
     10473            "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.3.tgz",
     10474            "integrity": "sha512-wDxdYbSB55F7T5CC7ucDjY641VvKmlRwT0Vxh7PkY1mI4rclVRFWYfsrjDgZvwYYDZ5ee0ZtfFKXowWjqvEoRQ==",
    1000010475            "dev": true,
    1000110476            "requires": {
    1000210477                "array-includes": "^3.1.3",
    1000310478                "array.prototype.flat": "^1.2.4",
    10004                 "contains-path": "^1.0.0",
    1000510479                "debug": "^2.6.9",
    1000610480                "doctrine": "^2.1.0",
     
    1114211616                    "dependencies": {
    1114311617                        "picomatch": {
    11144                             "version": "2.2.3",
    11145                             "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    11146                             "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     11618                            "version": "2.3.0",
     11619                            "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     11620                            "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1114711621                            "dev": true
    1114811622                        }
     
    1165312127        },
    1165412128        "fraction.js": {
    11655             "version": "4.1.0",
    11656             "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.0.tgz",
    11657             "integrity": "sha512-o9lSKpK0TDqDwTL24Hxqi6I99s942l6TYkfl6WvGWgLOIFz/YonSGKfiSeMadoiNvTfqnfOa9mjb5SGVbBK9/w==",
     12129            "version": "4.1.1",
     12130            "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
     12131            "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==",
    1165812132            "dev": true
    1165912133        },
     
    1340113875            }
    1340213876        },
     13877        "http-proxy-agent": {
     13878            "version": "4.0.1",
     13879            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
     13880            "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
     13881            "dev": true,
     13882            "requires": {
     13883                "@tootallnate/once": "1",
     13884                "agent-base": "6",
     13885                "debug": "4"
     13886            },
     13887            "dependencies": {
     13888                "agent-base": {
     13889                    "version": "6.0.2",
     13890                    "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
     13891                    "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
     13892                    "dev": true,
     13893                    "requires": {
     13894                        "debug": "4"
     13895                    }
     13896                }
     13897            }
     13898        },
    1340313899        "http-proxy-middleware": {
    1340413900            "version": "0.19.1",
     
    1493415430                },
    1493515431                "picomatch": {
    14936                     "version": "2.2.3",
    14937                     "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    14938                     "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     15432                    "version": "2.3.0",
     15433                    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     15434                    "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1493915435                    "dev": true
    1494015436                },
     
    1515515651                },
    1515615652                "picomatch": {
    15157                     "version": "2.2.3",
    15158                     "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    15159                     "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     15653                    "version": "2.3.0",
     15654                    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     15655                    "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1516015656                    "dev": true
    1516115657                },
     
    1527115767                },
    1527215768                "picomatch": {
    15273                     "version": "2.2.3",
    15274                     "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    15275                     "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     15769                    "version": "2.3.0",
     15770                    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     15771                    "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1527615772                    "dev": true
    1527715773                },
     
    1570416200                },
    1570516201                "picomatch": {
    15706                     "version": "2.2.3",
    15707                     "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    15708                     "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     16202                    "version": "2.3.0",
     16203                    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     16204                    "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1570916205                    "dev": true
    1571016206                },
     
    1594316439        },
    1594416440        "jsdom": {
    15945             "version": "16.5.3",
    15946             "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz",
    15947             "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==",
     16441            "version": "16.6.0",
     16442            "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz",
     16443            "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==",
    1594816444            "dev": true,
    1594916445            "requires": {
    1595016446                "abab": "^2.0.5",
    15951                 "acorn": "^8.1.0",
     16447                "acorn": "^8.2.4",
    1595216448                "acorn-globals": "^6.0.0",
    1595316449                "cssom": "^0.4.4",
     
    1595716453                "domexception": "^2.0.1",
    1595816454                "escodegen": "^2.0.0",
     16455                "form-data": "^3.0.0",
    1595916456                "html-encoding-sniffer": "^2.0.1",
    15960                 "is-potential-custom-element-name": "^1.0.0",
     16457                "http-proxy-agent": "^4.0.1",
     16458                "https-proxy-agent": "^5.0.0",
     16459                "is-potential-custom-element-name": "^1.0.1",
    1596116460                "nwsapi": "^2.2.0",
    1596216461                "parse5": "6.0.1",
    15963                 "request": "^2.88.2",
    15964                 "request-promise-native": "^1.0.9",
    1596516462                "saxes": "^5.0.1",
    1596616463                "symbol-tree": "^3.2.4",
     
    1597216469                "whatwg-mimetype": "^2.3.0",
    1597316470                "whatwg-url": "^8.5.0",
    15974                 "ws": "^7.4.4",
     16471                "ws": "^7.4.5",
    1597516472                "xml-name-validator": "^3.0.0"
    1597616473            },
     
    1598116478                    "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==",
    1598216479                    "dev": true
     16480                },
     16481                "agent-base": {
     16482                    "version": "6.0.2",
     16483                    "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
     16484                    "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
     16485                    "dev": true,
     16486                    "requires": {
     16487                        "debug": "4"
     16488                    }
     16489                },
     16490                "form-data": {
     16491                    "version": "3.0.1",
     16492                    "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
     16493                    "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
     16494                    "dev": true,
     16495                    "requires": {
     16496                        "asynckit": "^0.4.0",
     16497                        "combined-stream": "^1.0.8",
     16498                        "mime-types": "^2.1.12"
     16499                    }
     16500                },
     16501                "https-proxy-agent": {
     16502                    "version": "5.0.0",
     16503                    "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
     16504                    "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
     16505                    "dev": true,
     16506                    "requires": {
     16507                        "agent-base": "6",
     16508                        "debug": "4"
     16509                    }
    1598316510                },
    1598416511                "webidl-conversions": {
     
    1657617103            "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
    1657717104            "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
     17105            "dev": true
     17106        },
     17107        "lodash.merge": {
     17108            "version": "4.6.2",
     17109            "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
     17110            "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
    1657817111            "dev": true
    1657917112        },
     
    1898419517            "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
    1898519518            "dev": true
    18986         },
    18987         "path-starts-with": {
    18988             "version": "1.0.0",
    18989             "resolved": "https://registry.npmjs.org/path-starts-with/-/path-starts-with-1.0.0.tgz",
    18990             "integrity": "sha1-soJDAV6LE43lcmgqxS2kLmRq2E4=",
    18991             "dev": true,
    18992             "requires": {
    18993                 "normalize-path": "^2.1.1"
    18994             },
    18995             "dependencies": {
    18996                 "normalize-path": {
    18997                     "version": "2.1.1",
    18998                     "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
    18999                     "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
    19000                     "dev": true,
    19001                     "requires": {
    19002                         "remove-trailing-separator": "^1.0.1"
    19003                     }
    19004                 }
    19005             }
    1900619519        },
    1900719520        "path-to-regexp": {
     
    2111121624            }
    2111221625        },
    21113         "request-promise-core": {
    21114             "version": "1.1.4",
    21115             "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
    21116             "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
    21117             "dev": true,
    21118             "requires": {
    21119                 "lodash": "^4.17.19"
    21120             }
    21121         },
    21122         "request-promise-native": {
    21123             "version": "1.0.9",
    21124             "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
    21125             "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
    21126             "dev": true,
    21127             "requires": {
    21128                 "request-promise-core": "1.1.4",
    21129                 "stealthy-require": "^1.1.1",
    21130                 "tough-cookie": "^2.3.3"
    21131             },
    21132             "dependencies": {
    21133                 "tough-cookie": {
    21134                     "version": "2.5.0",
    21135                     "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
    21136                     "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
    21137                     "dev": true,
    21138                     "requires": {
    21139                         "psl": "^1.1.28",
    21140                         "punycode": "^2.1.1"
    21141                     }
    21142                 }
    21143             }
    21144         },
    2114521626        "require-directory": {
    2114621627            "version": "2.1.1",
     
    2270123182            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
    2270223183            "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
    22703             "dev": true
    22704         },
    22705         "stealthy-require": {
    22706             "version": "1.1.1",
    22707             "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
    22708             "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
    2270923184            "dev": true
    2271023185        },
     
    2352423999                },
    2352524000                "picomatch": {
    23526                     "version": "2.2.3",
    23527                     "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    23528                     "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     24001                    "version": "2.3.0",
     24002                    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     24003                    "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    2352924004                    "dev": true
    2353024005                },
     
    2433824813        },
    2433924814        "tr46": {
    24340             "version": "2.0.2",
    24341             "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz",
    24342             "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==",
     24815            "version": "2.1.0",
     24816            "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
     24817            "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
    2434324818            "dev": true,
    2434424819            "requires": {
  • trunk/package.json

    r50945 r50996  
    8383        "@wordpress/autop": "3.1.0",
    8484        "@wordpress/blob": "3.1.0",
    85         "@wordpress/block-directory": "2.1.0",
     85        "@wordpress/block-directory": "2.1.2",
    8686        "@wordpress/block-editor": "6.1.0",
    87         "@wordpress/block-library": "3.1.0",
     87        "@wordpress/block-library": "3.2.1",
    8888        "@wordpress/block-serialization-default-parser": "4.1.0",
    8989        "@wordpress/blocks": "9.1.0",
    9090        "@wordpress/components": "14.1.0",
    9191        "@wordpress/compose": "4.1.0",
    92         "@wordpress/core-data": "3.1.0",
     92        "@wordpress/core-data": "3.1.1",
     93        "@wordpress/customize-widgets": "1.0.1",
    9394        "@wordpress/data": "5.1.0",
    9495        "@wordpress/data-controls": "2.1.0",
     
    9798        "@wordpress/dom": "3.1.0",
    9899        "@wordpress/dom-ready": "3.1.0",
    99         "@wordpress/edit-post": "4.1.0",
    100         "@wordpress/editor": "10.1.0",
     100        "@wordpress/edit-post": "4.1.2",
     101        "@wordpress/edit-widgets": "2.1.2",
     102        "@wordpress/editor": "10.1.1",
    101103        "@wordpress/element": "3.1.0",
    102104        "@wordpress/escape-html": "2.1.0",
     
    118120        "@wordpress/priority-queue": "2.1.0",
    119121        "@wordpress/redux-routine": "4.1.0",
    120         "@wordpress/reusable-blocks": "2.1.0",
     122        "@wordpress/reusable-blocks": "2.1.1",
    121123        "@wordpress/rich-text": "4.1.0",
    122124        "@wordpress/server-side-render": "2.1.0",
     
    126128        "@wordpress/viewport": "3.1.0",
    127129        "@wordpress/warning": "2.1.0",
     130        "@wordpress/widgets": "1.1.1",
    128131        "@wordpress/wordcount": "3.1.0",
    129132        "backbone": "1.4.0",
  • trunk/src/wp-admin/admin-header.php

    r50142 r50996  
    191191
    192192if ( $current_screen->is_block_editor() ) {
    193     // Default to is-fullscreen-mode to avoid jumps in the UI.
    194     $admin_body_class .= ' block-editor-page is-fullscreen-mode wp-embed-responsive';
     193    $admin_body_class .= ' block-editor-page wp-embed-responsive';
    195194}
    196195
  • trunk/src/wp-admin/edit-form-blocks.php

    r50991 r50996  
    2929$current_screen = get_current_screen();
    3030$current_screen->is_block_editor( true );
     31
     32// Default to is-fullscreen-mode to avoid jumps in the UI.
     33add_filter(
     34    'admin_body_class',
     35    function( $classes ) {
     36        return "$classes is-fullscreen-mode";
     37    }
     38);
    3139
    3240/*
  • trunk/src/wp-admin/widgets.php

    r49113 r50996  
    11<?php
    22/**
    3  * Widget administration panel
     3 * Widget administration screen.
    44 *
    55 * @package WordPress
     
    2121}
    2222
    23 $widgets_access = get_user_setting( 'widgets_access' );
    24 if ( isset( $_GET['widgets-access'] ) ) {
    25     check_admin_referer( 'widgets-access' );
    26 
    27     $widgets_access = 'on' === $_GET['widgets-access'] ? 'on' : 'off';
    28     set_user_setting( 'widgets_access', $widgets_access );
    29 }
    30 
    31 if ( 'on' === $widgets_access ) {
    32     add_filter( 'admin_body_class', 'wp_widgets_access_body_class' );
    33 } else {
    34     wp_enqueue_script( 'admin-widgets' );
    35 
    36     if ( wp_is_mobile() ) {
    37         wp_enqueue_script( 'jquery-touch-punch' );
    38     }
    39 }
    40 
    41 /**
    42  * Fires early before the Widgets administration screen loads,
    43  * after scripts are enqueued.
    44  *
    45  * @since 2.2.0
    46  */
    47 do_action( 'sidebar_admin_setup' );
    48 
    4923$title       = __( 'Widgets' );
    5024$parent_file = 'themes.php';
    5125
    52 get_current_screen()->add_help_tab(
    53     array(
    54         'id'      => 'overview',
    55         'title'   => __( 'Overview' ),
    56         'content' =>
    57                 '<p>' . __( 'Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them.' ) . '</p>
    58     <p>' . __( 'The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget.' ) . '</p>',
    59     )
    60 );
    61 get_current_screen()->add_help_tab(
    62     array(
    63         'id'      => 'removing-reusing',
    64         'title'   => __( 'Removing and Reusing' ),
    65         'content' =>
    66                 '<p>' . __( 'If you want to remove the widget but save its setting for possible future use, just drag it into the Inactive Widgets area. You can add them back anytime from there. This is especially helpful when you switch to a theme with fewer or different widget areas.' ) . '</p>
    67     <p>' . __( 'Widgets may be used multiple times. You can give each widget a title, to display on your site, but it&#8217;s not required.' ) . '</p>
    68     <p>' . __( 'Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop.' ) . '</p>',
    69     )
    70 );
    71 get_current_screen()->add_help_tab(
    72     array(
    73         'id'      => 'missing-widgets',
    74         'title'   => __( 'Missing Widgets' ),
    75         'content' =>
    76                 '<p>' . __( 'Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area.' ) . '</p>' .
    77                     '<p>' . __( 'When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved.' ) . '</p>',
    78     )
    79 );
    80 
    81 get_current_screen()->set_help_sidebar(
    82     '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
    83     '<p>' . __( '<a href="https://wordpress.org/support/article/appearance-widgets-screen/">Documentation on Widgets</a>' ) . '</p>' .
    84     '<p>' . __( '<a href="https://wordpress.org/support/">Support</a>' ) . '</p>'
    85 );
    86 
    87 if ( ! current_theme_supports( 'widgets' ) ) {
    88     wp_die( __( 'The theme you are currently using isn&#8217;t widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please <a href="https://developer.wordpress.org/themes/functionality/widgets/">follow these instructions</a>.' ) );
     26if ( wp_use_widgets_block_editor() ) {
     27    require ABSPATH . 'wp-admin/widgets-form-blocks.php';
     28} else {
     29    require ABSPATH . 'wp-admin/widgets-form.php';
    8930}
    90 
    91 // These are the widgets grouped by sidebar.
    92 $sidebars_widgets = wp_get_sidebars_widgets();
    93 
    94 if ( empty( $sidebars_widgets ) ) {
    95     $sidebars_widgets = wp_get_widget_defaults();
    96 }
    97 
    98 foreach ( $sidebars_widgets as $sidebar_id => $widgets ) {
    99     if ( 'wp_inactive_widgets' === $sidebar_id ) {
    100         continue;
    101     }
    102 
    103     if ( ! is_registered_sidebar( $sidebar_id ) ) {
    104         if ( ! empty( $widgets ) ) { // Register the inactive_widgets area as sidebar.
    105             register_sidebar(
    106                 array(
    107                     'name'          => __( 'Inactive Sidebar (not used)' ),
    108                     'id'            => $sidebar_id,
    109                     'class'         => 'inactive-sidebar orphan-sidebar',
    110                     'description'   => __( 'This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar.' ),
    111                     'before_widget' => '',
    112                     'after_widget'  => '',
    113                     'before_title'  => '',
    114                     'after_title'   => '',
    115                 )
    116             );
    117         } else {
    118             unset( $sidebars_widgets[ $sidebar_id ] );
    119         }
    120     }
    121 }
    122 
    123 // Register the inactive_widgets area as sidebar.
    124 register_sidebar(
    125     array(
    126         'name'          => __( 'Inactive Widgets' ),
    127         'id'            => 'wp_inactive_widgets',
    128         'class'         => 'inactive-sidebar',
    129         'description'   => __( 'Drag widgets here to remove them from the sidebar but keep their settings.' ),
    130         'before_widget' => '',
    131         'after_widget'  => '',
    132         'before_title'  => '',
    133         'after_title'   => '',
    134     )
    135 );
    136 
    137 retrieve_widgets();
    138 
    139 // We're saving a widget without JS.
    140 if ( isset( $_POST['savewidget'] ) || isset( $_POST['removewidget'] ) ) {
    141     $widget_id = $_POST['widget-id'];
    142     check_admin_referer( "save-delete-widget-$widget_id" );
    143 
    144     $number = isset( $_POST['multi_number'] ) ? (int) $_POST['multi_number'] : '';
    145     if ( $number ) {
    146         foreach ( $_POST as $key => $val ) {
    147             if ( is_array( $val ) && preg_match( '/__i__|%i%/', key( $val ) ) ) {
    148                 $_POST[ $key ] = array( $number => array_shift( $val ) );
    149                 break;
    150             }
    151         }
    152     }
    153 
    154     $sidebar_id = $_POST['sidebar'];
    155     $position   = isset( $_POST[ $sidebar_id . '_position' ] ) ? (int) $_POST[ $sidebar_id . '_position' ] - 1 : 0;
    156 
    157     $id_base = $_POST['id_base'];
    158     $sidebar = isset( $sidebars_widgets[ $sidebar_id ] ) ? $sidebars_widgets[ $sidebar_id ] : array();
    159 
    160     // Delete.
    161     if ( isset( $_POST['removewidget'] ) && $_POST['removewidget'] ) {
    162 
    163         if ( ! in_array( $widget_id, $sidebar, true ) ) {
    164             wp_redirect( admin_url( 'widgets.php?error=0' ) );
    165             exit;
    166         }
    167 
    168         $sidebar = array_diff( $sidebar, array( $widget_id ) );
    169         $_POST   = array(
    170             'sidebar'            => $sidebar_id,
    171             'widget-' . $id_base => array(),
    172             'the-widget-id'      => $widget_id,
    173             'delete_widget'      => '1',
    174         );
    175 
    176         /**
    177          * Fires immediately after a widget has been marked for deletion.
    178          *
    179          * @since 4.4.0
    180          *
    181          * @param string $widget_id  ID of the widget marked for deletion.
    182          * @param string $sidebar_id ID of the sidebar the widget was deleted from.
    183          * @param string $id_base    ID base for the widget.
    184          */
    185         do_action( 'delete_widget', $widget_id, $sidebar_id, $id_base );
    186     }
    187 
    188     $_POST['widget-id'] = $sidebar;
    189 
    190     foreach ( (array) $wp_registered_widget_updates as $name => $control ) {
    191         if ( $name !== $id_base || ! is_callable( $control['callback'] ) ) {
    192             continue;
    193         }
    194 
    195         ob_start();
    196             call_user_func_array( $control['callback'], $control['params'] );
    197         ob_end_clean();
    198 
    199         break;
    200     }
    201 
    202     $sidebars_widgets[ $sidebar_id ] = $sidebar;
    203 
    204     // Remove old position.
    205     if ( ! isset( $_POST['delete_widget'] ) ) {
    206         foreach ( $sidebars_widgets as $key => $sb ) {
    207             if ( is_array( $sb ) ) {
    208                 $sidebars_widgets[ $key ] = array_diff( $sb, array( $widget_id ) );
    209             }
    210         }
    211         array_splice( $sidebars_widgets[ $sidebar_id ], $position, 0, $widget_id );
    212     }
    213 
    214     wp_set_sidebars_widgets( $sidebars_widgets );
    215     wp_redirect( admin_url( 'widgets.php?message=0' ) );
    216     exit;
    217 }
    218 
    219 // Remove inactive widgets without JS.
    220 if ( isset( $_POST['removeinactivewidgets'] ) ) {
    221     check_admin_referer( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' );
    222 
    223     if ( $_POST['removeinactivewidgets'] ) {
    224         foreach ( $sidebars_widgets['wp_inactive_widgets'] as $key => $widget_id ) {
    225             $pieces       = explode( '-', $widget_id );
    226             $multi_number = array_pop( $pieces );
    227             $id_base      = implode( '-', $pieces );
    228             $widget       = get_option( 'widget_' . $id_base );
    229             unset( $widget[ $multi_number ] );
    230             update_option( 'widget_' . $id_base, $widget );
    231             unset( $sidebars_widgets['wp_inactive_widgets'][ $key ] );
    232         }
    233 
    234         wp_set_sidebars_widgets( $sidebars_widgets );
    235     }
    236 
    237     wp_redirect( admin_url( 'widgets.php?message=0' ) );
    238     exit;
    239 }
    240 
    241 // Output the widget form without JS.
    242 if ( isset( $_GET['editwidget'] ) && $_GET['editwidget'] ) {
    243     $widget_id = $_GET['editwidget'];
    244 
    245     if ( isset( $_GET['addnew'] ) ) {
    246         // Default to the first sidebar.
    247         $keys    = array_keys( $wp_registered_sidebars );
    248         $sidebar = reset( $keys );
    249 
    250         if ( isset( $_GET['base'] ) && isset( $_GET['num'] ) ) { // Multi-widget.
    251             // Copy minimal info from an existing instance of this widget to a new instance.
    252             foreach ( $wp_registered_widget_controls as $control ) {
    253                 if ( $_GET['base'] === $control['id_base'] ) {
    254                     $control_callback                                = $control['callback'];
    255                     $multi_number                                    = (int) $_GET['num'];
    256                     $control['params'][0]['number']                  = -1;
    257                     $control['id']                                   = $control['id_base'] . '-' . $multi_number;
    258                     $widget_id                                       = $control['id'];
    259                     $wp_registered_widget_controls[ $control['id'] ] = $control;
    260                     break;
    261                 }
    262             }
    263         }
    264     }
    265 
    266     if ( isset( $wp_registered_widget_controls[ $widget_id ] ) && ! isset( $control ) ) {
    267         $control          = $wp_registered_widget_controls[ $widget_id ];
    268         $control_callback = $control['callback'];
    269     } elseif ( ! isset( $wp_registered_widget_controls[ $widget_id ] ) && isset( $wp_registered_widgets[ $widget_id ] ) ) {
    270         $name = esc_html( strip_tags( $wp_registered_widgets[ $widget_id ]['name'] ) );
    271     }
    272 
    273     if ( ! isset( $name ) ) {
    274         $name = esc_html( strip_tags( $control['name'] ) );
    275     }
    276 
    277     if ( ! isset( $sidebar ) ) {
    278         $sidebar = isset( $_GET['sidebar'] ) ? $_GET['sidebar'] : 'wp_inactive_widgets';
    279     }
    280 
    281     if ( ! isset( $multi_number ) ) {
    282         $multi_number = isset( $control['params'][0]['number'] ) ? $control['params'][0]['number'] : '';
    283     }
    284 
    285     $id_base = isset( $control['id_base'] ) ? $control['id_base'] : $control['id'];
    286 
    287     // Show the widget form.
    288     $width = ' style="width:' . max( $control['width'], 350 ) . 'px"';
    289     $key   = isset( $_GET['key'] ) ? (int) $_GET['key'] : 0;
    290 
    291     require_once ABSPATH . 'wp-admin/admin-header.php'; ?>
    292     <div class="wrap">
    293     <h1><?php echo esc_html( $title ); ?></h1>
    294     <div class="editwidget"<?php echo $width; ?>>
    295     <h2>
    296     <?php
    297     /* translators: %s: Widget name. */
    298     printf( __( 'Widget %s' ), $name );
    299     ?>
    300     </h2>
    301 
    302     <form action="widgets.php" method="post">
    303     <div class="widget-inside">
    304     <?php
    305     if ( is_callable( $control_callback ) ) {
    306         call_user_func_array( $control_callback, $control['params'] );
    307     } else {
    308         echo '<p>' . __( 'There are no options for this widget.' ) . "</p>\n";
    309     }
    310     ?>
    311     </div>
    312 
    313     <p class="describe"><?php _e( 'Select both the sidebar for this widget and the position of the widget in that sidebar.' ); ?></p>
    314     <div class="widget-position">
    315     <table class="widefat"><thead><tr><th><?php _e( 'Sidebar' ); ?></th><th><?php _e( 'Position' ); ?></th></tr></thead><tbody>
    316     <?php
    317     foreach ( $wp_registered_sidebars as $sbname => $sbvalue ) {
    318         echo "\t\t<tr><td><label><input type='radio' name='sidebar' value='" . esc_attr( $sbname ) . "'" . checked( $sbname, $sidebar, false ) . " /> $sbvalue[name]</label></td><td>";
    319         if ( 'wp_inactive_widgets' === $sbname || 'orphaned_widgets' === substr( $sbname, 0, 16 ) ) {
    320             echo '&nbsp;';
    321         } else {
    322             if ( ! isset( $sidebars_widgets[ $sbname ] ) || ! is_array( $sidebars_widgets[ $sbname ] ) ) {
    323                 $j                           = 1;
    324                 $sidebars_widgets[ $sbname ] = array();
    325             } else {
    326                 $j = count( $sidebars_widgets[ $sbname ] );
    327                 if ( isset( $_GET['addnew'] ) || ! in_array( $widget_id, $sidebars_widgets[ $sbname ], true ) ) {
    328                     $j++;
    329                 }
    330             }
    331             $selected = '';
    332             echo "\t\t<select name='{$sbname}_position'>\n";
    333             echo "\t\t<option value=''>" . __( '&mdash; Select &mdash;' ) . "</option>\n";
    334             for ( $i = 1; $i <= $j; $i++ ) {
    335                 if ( in_array( $widget_id, $sidebars_widgets[ $sbname ], true ) ) {
    336                     $selected = selected( $i, $key + 1, false );
    337                 }
    338                 echo "\t\t<option value='$i'$selected> $i </option>\n";
    339             }
    340             echo "\t\t</select>\n";
    341         }
    342         echo "</td></tr>\n";
    343     }
    344     ?>
    345     </tbody></table>
    346     </div>
    347 
    348     <div class="widget-control-actions">
    349         <div class="alignleft">
    350             <?php if ( ! isset( $_GET['addnew'] ) ) : ?>
    351                 <input type="submit" name="removewidget" id="removewidget" class="button-link button-link-delete widget-control-remove" value="<?php _e( 'Delete' ); ?>" />
    352                 <span class="widget-control-close-wrapper">
    353                     | <a href="widgets.php" class="button-link widget-control-close"><?php _e( 'Cancel' ); ?></a>
    354                 </span>
    355             <?php else : ?>
    356                 <a href="widgets.php" class="button-link widget-control-close"><?php _e( 'Cancel' ); ?></a>
    357             <?php endif; ?>
    358         </div>
    359         <div class="alignright">
    360             <?php submit_button( __( 'Save Widget' ), 'primary alignright', 'savewidget', false ); ?>
    361             <input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr( $widget_id ); ?>" />
    362             <input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr( $id_base ); ?>" />
    363             <input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr( $multi_number ); ?>" />
    364             <?php wp_nonce_field( "save-delete-widget-$widget_id" ); ?>
    365         </div>
    366         <br class="clear" />
    367     </div>
    368 
    369     </form>
    370     </div>
    371     </div>
    372     <?php
    373     require_once ABSPATH . 'wp-admin/admin-footer.php';
    374     exit;
    375 }
    376 
    377 $messages = array(
    378     __( 'Changes saved.' ),
    379 );
    380 
    381 $errors = array(
    382     __( 'Error while saving.' ),
    383     __( 'Error in displaying the widget settings form.' ),
    384 );
    385 
    386 require_once ABSPATH . 'wp-admin/admin-header.php';
    387 ?>
    388 
    389 <div class="wrap">
    390 <h1 class="wp-heading-inline">
    391 <?php
    392 echo esc_html( $title );
    393 ?>
    394 </h1>
    395 
    396 <?php
    397 if ( current_user_can( 'customize' ) ) {
    398     printf(
    399         ' <a class="page-title-action hide-if-no-customize" href="%1$s">%2$s</a>',
    400         esc_url(
    401             add_query_arg(
    402                 array(
    403                     array( 'autofocus' => array( 'panel' => 'widgets' ) ),
    404                     'return' => urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ),
    405                 ),
    406                 admin_url( 'customize.php' )
    407             )
    408         ),
    409         __( 'Manage with Live Preview' )
    410     );
    411 }
    412 
    413 $nonce = wp_create_nonce( 'widgets-access' );
    414 ?>
    415 <div class="widget-access-link">
    416     <a id="access-on" href="widgets.php?widgets-access=on&_wpnonce=<?php echo urlencode( $nonce ); ?>"><?php _e( 'Enable accessibility mode' ); ?></a><a id="access-off" href="widgets.php?widgets-access=off&_wpnonce=<?php echo urlencode( $nonce ); ?>"><?php _e( 'Disable accessibility mode' ); ?></a>
    417 </div>
    418 
    419 <hr class="wp-header-end">
    420 
    421 <?php if ( isset( $_GET['message'] ) && isset( $messages[ $_GET['message'] ] ) ) { ?>
    422 <div id="message" class="updated notice is-dismissible"><p><?php echo $messages[ $_GET['message'] ]; ?></p></div>
    423 <?php } ?>
    424 <?php if ( isset( $_GET['error'] ) && isset( $errors[ $_GET['error'] ] ) ) { ?>
    425 <div id="message" class="error"><p><?php echo $errors[ $_GET['error'] ]; ?></p></div>
    426 <?php } ?>
    427 
    428 <?php
    429 /**
    430  * Fires before the Widgets administration page content loads.
    431  *
    432  * @since 3.0.0
    433  */
    434 do_action( 'widgets_admin_page' );
    435 ?>
    436 
    437 <div class="widget-liquid-left">
    438 <div id="widgets-left">
    439     <div id="available-widgets" class="widgets-holder-wrap">
    440         <div class="sidebar-name">
    441             <button type="button" class="handlediv hide-if-no-js" aria-expanded="true">
    442                 <span class="screen-reader-text"><?php _e( 'Available Widgets' ); ?></span>
    443                 <span class="toggle-indicator" aria-hidden="true"></span>
    444             </button>
    445             <h2><?php _e( 'Available Widgets' ); ?> <span id="removing-widget"><?php _ex( 'Deactivate', 'removing-widget' ); ?> <span></span></span></h2>
    446         </div>
    447         <div class="widget-holder">
    448             <div class="sidebar-description">
    449                 <p class="description"><?php _e( 'To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back.' ); ?></p>
    450             </div>
    451             <div id="widget-list">
    452                 <?php wp_list_widgets(); ?>
    453             </div>
    454             <br class='clear' />
    455         </div>
    456         <br class="clear" />
    457     </div>
    458 
    459 <?php
    460 
    461 $theme_sidebars = array();
    462 foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
    463     if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' === substr( $sidebar, 0, 16 ) ) {
    464         $wrap_class = 'widgets-holder-wrap';
    465         if ( ! empty( $registered_sidebar['class'] ) ) {
    466             $wrap_class .= ' ' . $registered_sidebar['class'];
    467         }
    468 
    469         $is_inactive_widgets = 'wp_inactive_widgets' === $registered_sidebar['id'];
    470         ?>
    471         <div class="<?php echo esc_attr( $wrap_class ); ?>">
    472             <div class="widget-holder inactive">
    473                 <?php wp_list_widget_controls( $registered_sidebar['id'], $registered_sidebar['name'] ); ?>
    474 
    475                 <?php if ( $is_inactive_widgets ) { ?>
    476                 <div class="remove-inactive-widgets">
    477                     <form action="" method="post">
    478                         <p>
    479                             <?php
    480                             $attributes = array( 'id' => 'inactive-widgets-control-remove' );
    481 
    482                             if ( empty( $sidebars_widgets['wp_inactive_widgets'] ) ) {
    483                                 $attributes['disabled'] = '';
    484                             }
    485 
    486                             submit_button( __( 'Clear Inactive Widgets' ), 'delete', 'removeinactivewidgets', false, $attributes );
    487                             ?>
    488                             <span class="spinner"></span>
    489                         </p>
    490                         <?php wp_nonce_field( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' ); ?>
    491                     </form>
    492                 </div>
    493                 <?php } ?>
    494             </div>
    495             <?php if ( $is_inactive_widgets ) { ?>
    496             <p class="description"><?php _e( 'This will clear all items from the inactive widgets list. You will not be able to restore any customizations.' ); ?></p>
    497             <?php } ?>
    498         </div>
    499         <?php
    500 
    501     } else {
    502         $theme_sidebars[ $sidebar ] = $registered_sidebar;
    503     }
    504 }
    505 
    506 ?>
    507 </div>
    508 </div>
    509 <?php
    510 
    511 $i                    = 0;
    512 $split                = 0;
    513 $single_sidebar_class = '';
    514 $sidebars_count       = count( $theme_sidebars );
    515 
    516 if ( $sidebars_count > 1 ) {
    517     $split = (int) ceil( $sidebars_count / 2 );
    518 } else {
    519     $single_sidebar_class = ' single-sidebar';
    520 }
    521 
    522 ?>
    523 <div class="widget-liquid-right">
    524 <div id="widgets-right" class="wp-clearfix<?php echo $single_sidebar_class; ?>">
    525 <div class="sidebars-column-1">
    526 <?php
    527 
    528 foreach ( $theme_sidebars as $sidebar => $registered_sidebar ) {
    529     $wrap_class = 'widgets-holder-wrap';
    530     if ( ! empty( $registered_sidebar['class'] ) ) {
    531         $wrap_class .= ' sidebar-' . $registered_sidebar['class'];
    532     }
    533 
    534     if ( $i > 0 ) {
    535         $wrap_class .= ' closed';
    536     }
    537 
    538     if ( $split && $i === $split ) {
    539         ?>
    540         </div><div class="sidebars-column-2">
    541         <?php
    542     }
    543 
    544     ?>
    545     <div class="<?php echo esc_attr( $wrap_class ); ?>">
    546         <?php
    547         // Show the control forms for each of the widgets in this sidebar.
    548         wp_list_widget_controls( $sidebar, $registered_sidebar['name'] );
    549         ?>
    550     </div>
    551     <?php
    552 
    553     $i++;
    554 }
    555 
    556 ?>
    557 </div>
    558 </div>
    559 </div>
    560 <form method="post">
    561 <?php wp_nonce_field( 'save-sidebar-widgets', '_wpnonce_widgets', false ); ?>
    562 </form>
    563 <br class="clear" />
    564 </div>
    565 
    566 <div class="widgets-chooser">
    567     <ul class="widgets-chooser-sidebars"></ul>
    568     <div class="widgets-chooser-actions">
    569         <button class="button widgets-chooser-cancel"><?php _e( 'Cancel' ); ?></button>
    570         <button class="button button-primary widgets-chooser-add"><?php _e( 'Add Widget' ); ?></button>
    571     </div>
    572 </div>
    573 
    574 <?php
    575 
    576 /**
    577  * Fires after the available widgets and sidebars have loaded, before the admin footer.
    578  *
    579  * @since 2.2.0
    580  */
    581 do_action( 'sidebar_admin_page' );
    582 require_once ABSPATH . 'wp-admin/admin-footer.php';
  • trunk/src/wp-includes/assets/script-loader-packages.php

    r50945 r50996  
    1 <?php return array('a11y.js' => array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => '3243bf46da298d46850bacd71bcc111e'), 'annotations.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '4556c7bbdf2d9d6a81c1ca770cf73893'), 'api-fetch.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '293ce6ecd6439249249485d369385617'), 'autop.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'bed28c77ea305cd8e02b0529011189f9'), 'blob.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b8855b04f6a52a7bca89f8d945d46866'), 'block-directory.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives'), 'version' => 'b471a46218b45512872b205f5684f390'), 'block-editor.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-token-list', 'wp-url', 'wp-wordcount'), 'version' => 'a812200273a231e6d260752aac4f2947'), 'block-library.js' => array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => '2601f7a7e52d8f54bf93cdb9945634c5'), 'block-serialization-default-parser.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'cc8e5d0e23cf68bb9944bf2a7a016e52'), 'blocks.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives', 'wp-shortcode'), 'version' => 'dbaa28491a5400f286411e645eda7fe9'), 'components.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-warning'), 'version' => 'a128962c30c40d721c962a0a170f9040'), 'compose.js' => array('dependencies' => array('lodash', 'react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => 'c6d0b8dc5425477346847d4ad0688185'), 'core-data.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-data', 'wp-data-controls', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => '7e9c84364a96530d0702ecf7e6247aa8'), 'data.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => '9f1a3d6ac652e9da7ef51f01de8243a0'), 'data-controls.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => 'ceef9ce8c9c058d69ebf44db39353687'), 'date.js' => array('dependencies' => array('moment', 'wp-polyfill'), 'version' => '2abad43cdd2da929e01f7d7648e392ab'), 'deprecated.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '13724e4923d40e224e7c99fdc350a6a1'), 'dom.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'd964a25eeb2e148dbb51da5fad4cc9fe'), 'dom-ready.js' => array('dependencies' => array('wp-polyfill'), 'version' => '1e1b9c1535c1c32d3236d41aa27c7bf9'), 'edit-post.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport', 'wp-warning'), 'version' => '96479639a321f93a46a968730f904911'), 'editor.js' => array('dependencies' => array('lodash', 'react', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-date', 'wp-deprecated', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => '0fdbd123c5f1dff84770a0e41ed87984'), 'element.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '669f5c11ca4fe7c44d64157347343913'), 'escape-html.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4f03d9c45a01df8191f6833373fe1cfa'), 'format-library.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'eb83de0befbc72e594aab5d708ca128e'), 'hooks.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f7ecf196f38940ae0673c46c6c30cd86'), 'html-entities.js' => array('dependencies' => array('wp-polyfill'), 'version' => '140ecb91be91e7eec34220584d085033'), 'i18n.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'd897c43bea0c2753dd7368eb2d990898'), 'is-shallow-equal.js' => array('dependencies' => array('wp-polyfill'), 'version' => '798b660598677b39413fdb5f68624aa8'), 'keyboard-shortcuts.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-keycodes', 'wp-polyfill'), 'version' => '8a860f4afab68874dffb1e7eec6c1bc1'), 'keycodes.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => 'cf38e80b47baf72f4822ddb8847f4f24'), 'list-reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '80af68069161321e8e131bad6a00d5dc'), 'media-utils.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'df373dcd13d7abc3f8b042f369b88557'), 'notices.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-polyfill'), 'version' => 'b08e53c1e070954fa0884cad9a164683'), 'nux.js' => array('dependencies' => array('lodash', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '0575a03bf7a434453e3768c23cd45a54'), 'plugins.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-primitives'), 'version' => 'f976fd36733989ed2c1409c712cd0e02'), 'primitives.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => 'dc0962ac2885a26f8c2abdbe0cf0e333'), 'priority-queue.js' => array('dependencies' => array('wp-polyfill'), 'version' => '18c93919f04bb681234310b314675b17'), 'redux-routine.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '3c50c6bd1563bc7fb88433198400a74c'), 'reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => 'ec5d97a08f4ba305bcc6f0de27fda10f'), 'rich-text.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-escape-html', 'wp-keycodes', 'wp-polyfill'), 'version' => '17198c4dd83a20f1f820c6cf500bd5f1'), 'server-side-render.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '7c732c1add9f9667bdf8dd66fbf74759'), 'shortcode.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '15757929bc8d52a3b184c3fcaeb38c64'), 'token-list.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '7bcd3684420783ef1f6ebb7680fe958e'), 'url.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'e9868cffba8a348b31011f87dd53b3c4'), 'viewport.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '0a54bbdc44c5f135018c568a887b8279'), 'warning.js' => array('dependencies' => array('wp-polyfill'), 'version' => '202ac16e99afe7c33c257b248625a947'), 'wordcount.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '02339c8ad03da1e7a03f9212da004007'));
     1<?php return array('a11y.js' => array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => '3243bf46da298d46850bacd71bcc111e'), 'annotations.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '4556c7bbdf2d9d6a81c1ca770cf73893'), 'api-fetch.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '293ce6ecd6439249249485d369385617'), 'autop.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'bed28c77ea305cd8e02b0529011189f9'), 'blob.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b8855b04f6a52a7bca89f8d945d46866'), 'block-directory.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives'), 'version' => 'b471a46218b45512872b205f5684f390'), 'block-editor.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-token-list', 'wp-url', 'wp-wordcount'), 'version' => '927dc1a8606097f0469f0c17289e43b5'), 'block-library.js' => array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => 'e7b7530300d138c846fa48ebce04182c'), 'block-serialization-default-parser.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'cc8e5d0e23cf68bb9944bf2a7a016e52'), 'blocks.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives', 'wp-shortcode'), 'version' => 'dbaa28491a5400f286411e645eda7fe9'), 'components.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-warning'), 'version' => 'a128962c30c40d721c962a0a170f9040'), 'compose.js' => array('dependencies' => array('lodash', 'react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => 'c6d0b8dc5425477346847d4ad0688185'), 'core-data.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-data', 'wp-data-controls', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => '7e9c84364a96530d0702ecf7e6247aa8'), 'customize-widgets.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-polyfill', 'wp-primitives', 'wp-widgets'), 'version' => 'ef58a9c27a99310c423ffb7fe74b9617'), 'data.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => '9f1a3d6ac652e9da7ef51f01de8243a0'), 'data-controls.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => 'ceef9ce8c9c058d69ebf44db39353687'), 'date.js' => array('dependencies' => array('moment', 'wp-polyfill'), 'version' => '2abad43cdd2da929e01f7d7648e392ab'), 'deprecated.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '13724e4923d40e224e7c99fdc350a6a1'), 'dom.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'd964a25eeb2e148dbb51da5fad4cc9fe'), 'dom-ready.js' => array('dependencies' => array('wp-polyfill'), 'version' => '1e1b9c1535c1c32d3236d41aa27c7bf9'), 'edit-post.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport', 'wp-warning'), 'version' => '96479639a321f93a46a968730f904911'), 'edit-widgets.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => 'e573e5743f31c14c6550cbf475612924'), 'editor.js' => array('dependencies' => array('lodash', 'react', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-date', 'wp-deprecated', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => '0fdbd123c5f1dff84770a0e41ed87984'), 'element.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '669f5c11ca4fe7c44d64157347343913'), 'escape-html.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4f03d9c45a01df8191f6833373fe1cfa'), 'format-library.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'eb83de0befbc72e594aab5d708ca128e'), 'hooks.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f7ecf196f38940ae0673c46c6c30cd86'), 'html-entities.js' => array('dependencies' => array('wp-polyfill'), 'version' => '140ecb91be91e7eec34220584d085033'), 'i18n.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'd897c43bea0c2753dd7368eb2d990898'), 'is-shallow-equal.js' => array('dependencies' => array('wp-polyfill'), 'version' => '798b660598677b39413fdb5f68624aa8'), 'keyboard-shortcuts.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-keycodes', 'wp-polyfill'), 'version' => '8a860f4afab68874dffb1e7eec6c1bc1'), 'keycodes.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => 'cf38e80b47baf72f4822ddb8847f4f24'), 'list-reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '80af68069161321e8e131bad6a00d5dc'), 'media-utils.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'df373dcd13d7abc3f8b042f369b88557'), 'notices.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-polyfill'), 'version' => 'b08e53c1e070954fa0884cad9a164683'), 'nux.js' => array('dependencies' => array('lodash', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '0575a03bf7a434453e3768c23cd45a54'), 'plugins.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-primitives'), 'version' => 'f976fd36733989ed2c1409c712cd0e02'), 'primitives.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => 'dc0962ac2885a26f8c2abdbe0cf0e333'), 'priority-queue.js' => array('dependencies' => array('wp-polyfill'), 'version' => '18c93919f04bb681234310b314675b17'), 'redux-routine.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '3c50c6bd1563bc7fb88433198400a74c'), 'reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => 'ec5d97a08f4ba305bcc6f0de27fda10f'), 'rich-text.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-escape-html', 'wp-keycodes', 'wp-polyfill'), 'version' => '17198c4dd83a20f1f820c6cf500bd5f1'), 'server-side-render.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '7c732c1add9f9667bdf8dd66fbf74759'), 'shortcode.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '15757929bc8d52a3b184c3fcaeb38c64'), 'token-list.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '7bcd3684420783ef1f6ebb7680fe958e'), 'url.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'e9868cffba8a348b31011f87dd53b3c4'), 'viewport.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '0a54bbdc44c5f135018c568a887b8279'), 'warning.js' => array('dependencies' => array('wp-polyfill'), 'version' => '202ac16e99afe7c33c257b248625a947'), 'widgets.js' => array('dependencies' => array('wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '71f70729a158b4f607a172e7f488545b'), 'wordcount.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '02339c8ad03da1e7a03f9212da004007'));
  • trunk/src/wp-includes/block-editor.php

    r50983 r50996  
    226226    }
    227227
     228    /**
     229     * Filters the list of widget-type IDs that should **not** be offered by the
     230     * Legacy Widget block.
     231     *
     232     * Returning an empty array will make all widgets available.
     233     *
     234     * @since 5.8.0
     235     *
     236     * @param array $widgets An array of excluded widget-type IDs.
     237     */
     238    $editor_settings['widgetTypesToHideFromLegacyWidgetBlock'] = apply_filters(
     239        'widget_types_to_hide_from_legacy_widget_block',
     240        array(
     241            'pages',
     242            'calendar',
     243            'archives',
     244            'media_audio',
     245            'media_image',
     246            'media_gallery',
     247            'media_video',
     248            'meta',
     249            'search',
     250            'text',
     251            'categories',
     252            'recent-posts',
     253            'recent-comments',
     254            'rss',
     255            'tag_cloud',
     256            'nav_menu',
     257            'custom_html',
     258            'block',
     259        )
     260    );
     261
    228262    return $editor_settings;
    229263}
  • trunk/src/wp-includes/blocks/index.php

    r50945 r50996  
    1414require ABSPATH . WPINC . '/blocks/latest-comments.php';
    1515require ABSPATH . WPINC . '/blocks/latest-posts.php';
     16require ABSPATH . WPINC . '/blocks/legacy-widget.php';
    1617require ABSPATH . WPINC . '/blocks/loginout.php';
    1718require ABSPATH . WPINC . '/blocks/post-content.php';
  • trunk/src/wp-includes/class-wp-customize-control.php

    r49181 r50996  
    796796 */
    797797require_once ABSPATH . WPINC . '/customize/class-wp-customize-date-time-control.php';
     798
     799/**
     800 * WP_Sidebar_Block_Editor_Control class.
     801 */
     802require_once ABSPATH . WPINC . '/customize/class-wp-sidebar-block-editor-control.php';
  • trunk/src/wp-includes/class-wp-customize-widgets.php

    r49108 r50996  
    119119        add_action( 'customize_preview_init', array( $this, 'customize_preview_init' ) );
    120120        add_filter( 'customize_refresh_nonces', array( $this, 'refresh_nonces' ) );
     121        add_filter( 'should_load_block_editor_scripts_and_styles', array( $this, 'should_load_block_editor_scripts_and_styles' ) );
    121122
    122123        add_action( 'dynamic_sidebar', array( $this, 'tally_rendered_widgets' ) );
     
    368369    public function customize_register() {
    369370        global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_sidebars;
     371
     372        $use_widgets_block_editor = wp_use_widgets_block_editor();
    370373
    371374        add_filter( 'sidebars_widgets', array( $this, 'preview_sidebars_widgets' ), 1 );
     
    447450
    448451                    $section_args = array(
    449                         'title'       => $wp_registered_sidebars[ $sidebar_id ]['name'],
    450                         'description' => $wp_registered_sidebars[ $sidebar_id ]['description'],
    451                         'priority'    => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ), true ),
    452                         'panel'       => 'widgets',
    453                         'sidebar_id'  => $sidebar_id,
     452                        'title'      => $wp_registered_sidebars[ $sidebar_id ]['name'],
     453                        'priority'   => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ), true ),
     454                        'panel'      => 'widgets',
     455                        'sidebar_id' => $sidebar_id,
    454456                    );
     457
     458                    if ( $use_widgets_block_editor ) {
     459                        $section_args['description'] = '';
     460                    } else {
     461                        $section_args['description'] = $wp_registered_sidebars[ $sidebar_id ]['description'];
     462                    }
    455463
    456464                    /**
     
    468476                    $this->manager->add_section( $section );
    469477
    470                     $control           = new WP_Widget_Area_Customize_Control(
     478                    if ( $use_widgets_block_editor ) {
     479                        $control = new WP_Sidebar_Block_Editor_Control(
     480                            $this->manager,
     481                            $setting_id,
     482                            array(
     483                                'section'    => $section_id,
     484                                'sidebar_id' => $sidebar_id,
     485                            )
     486                        );
     487                    } else {
     488                        $control = new WP_Widget_Area_Customize_Control(
     489                            $this->manager,
     490                            $setting_id,
     491                            array(
     492                                'section'    => $section_id,
     493                                'sidebar_id' => $sidebar_id,
     494                                'priority'   => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
     495                            )
     496                        );
     497                    }
     498
     499                    $this->manager->add_control( $control );
     500
     501                    $new_setting_ids[] = $setting_id;
     502                }
     503            }
     504
     505            if ( ! $use_widgets_block_editor ) {
     506                // Add a control for each active widget (located in a sidebar).
     507                foreach ( $sidebar_widget_ids as $i => $widget_id ) {
     508
     509                    // Skip widgets that may have gone away due to a plugin being deactivated.
     510                    if ( ! $is_active_sidebar || ! isset( $wp_registered_widgets[ $widget_id ] ) ) {
     511                        continue;
     512                    }
     513
     514                    $registered_widget = $wp_registered_widgets[ $widget_id ];
     515                    $setting_id        = $this->get_setting_id( $widget_id );
     516                    $id_base           = $wp_registered_widget_controls[ $widget_id ]['id_base'];
     517
     518                    $control = new WP_Widget_Form_Customize_Control(
    471519                        $this->manager,
    472520                        $setting_id,
    473521                        array(
    474                             'section'    => $section_id,
    475                             'sidebar_id' => $sidebar_id,
    476                             'priority'   => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
     522                            'label'          => $registered_widget['name'],
     523                            'section'        => $section_id,
     524                            'sidebar_id'     => $sidebar_id,
     525                            'widget_id'      => $widget_id,
     526                            'widget_id_base' => $id_base,
     527                            'priority'       => $i,
     528                            'width'          => $wp_registered_widget_controls[ $widget_id ]['width'],
     529                            'height'         => $wp_registered_widget_controls[ $widget_id ]['height'],
     530                            'is_wide'        => $this->is_wide_widget( $widget_id ),
    477531                        )
    478532                    );
    479                     $new_setting_ids[] = $setting_id;
    480 
    481533                    $this->manager->add_control( $control );
    482534                }
    483             }
    484 
    485             // Add a control for each active widget (located in a sidebar).
    486             foreach ( $sidebar_widget_ids as $i => $widget_id ) {
    487 
    488                 // Skip widgets that may have gone away due to a plugin being deactivated.
    489                 if ( ! $is_active_sidebar || ! isset( $wp_registered_widgets[ $widget_id ] ) ) {
    490                     continue;
    491                 }
    492 
    493                 $registered_widget = $wp_registered_widgets[ $widget_id ];
    494                 $setting_id        = $this->get_setting_id( $widget_id );
    495                 $id_base           = $wp_registered_widget_controls[ $widget_id ]['id_base'];
    496 
    497                 $control = new WP_Widget_Form_Customize_Control(
    498                     $this->manager,
    499                     $setting_id,
    500                     array(
    501                         'label'          => $registered_widget['name'],
    502                         'section'        => $section_id,
    503                         'sidebar_id'     => $sidebar_id,
    504                         'widget_id'      => $widget_id,
    505                         'widget_id_base' => $id_base,
    506                         'priority'       => $i,
    507                         'width'          => $wp_registered_widget_controls[ $widget_id ]['width'],
    508                         'height'         => $wp_registered_widget_controls[ $widget_id ]['height'],
    509                         'is_wide'        => $this->is_wide_widget( $widget_id ),
    510                     )
    511                 );
    512                 $this->manager->add_control( $control );
    513535            }
    514536        }
     
    806828            sprintf( 'var _wpCustomizeWidgetsSettings = %s;', wp_json_encode( $settings ) )
    807829        );
     830
     831        // TODO: Update 'wp-customize-widgets' to not rely so much on things in
     832        // 'customize-widgets'. This will let us skip most of the above and not
     833        // enqueue 'customize-widgets' which saves bytes.
     834
     835        if ( wp_use_widgets_block_editor() ) {
     836            $block_editor_context = new WP_Block_Editor_Context();
     837
     838            $editor_settings = get_block_editor_settings( array(), $block_editor_context );
     839
     840            wp_add_inline_script(
     841                'wp-customize-widgets',
     842                sprintf(
     843                    'wp.domReady( function() {
     844                       wp.customizeWidgets.initialize( "widgets-customizer", %s );
     845                    } );',
     846                    wp_json_encode( $editor_settings )
     847                )
     848            );
     849
     850            // Preload server-registered block schemas.
     851            wp_add_inline_script(
     852                'wp-blocks',
     853                'wp.blocks.unstable__bootstrapServerSideBlockDefinitions(' . wp_json_encode( get_block_editor_server_block_settings() ) . ');'
     854            );
     855
     856            wp_add_inline_script(
     857                'wp-blocks',
     858                sprintf( 'wp.blocks.setCategories( %s );', wp_json_encode( get_block_categories( 'widgets-customizer' ) ) ),
     859                'after'
     860            );
     861
     862            wp_enqueue_script( 'wp-customize-widgets' );
     863            wp_enqueue_style( 'wp-customize-widgets' );
     864            wp_enqueue_script( 'wp-format-library' );
     865            wp_enqueue_style( 'wp-format-library' );
     866
     867            /** This action is documented in edit-form-blocks.php */
     868            do_action( 'enqueue_block_editor_assets' );
     869        }
    808870    }
    809871
     
    889951            $args['transport']            = current_theme_supports( 'customize-selective-refresh-widgets' ) ? 'postMessage' : 'refresh';
    890952        } elseif ( preg_match( $this->setting_id_patterns['widget_instance'], $id, $matches ) ) {
    891             $args['sanitize_callback']    = array( $this, 'sanitize_widget_instance' );
    892             $args['sanitize_js_callback'] = array( $this, 'sanitize_widget_js_instance' );
     953            $id_base                      = $matches['id_base'];
     954            $args['sanitize_callback']    = function( $value ) use ( $id_base ) {
     955                return $this->sanitize_widget_instance( $value, $id_base );
     956            };
     957            $args['sanitize_js_callback'] = function( $value ) use ( $id_base ) {
     958                return $this->sanitize_widget_js_instance( $value, $id_base );
     959            };
    893960            $args['transport']            = $this->is_widget_selective_refreshable( $matches['id_base'] ) ? 'postMessage' : 'refresh';
    894961        }
     
    11101177
    11111178    /**
     1179     * Tells the script loader to load the scripts and styles of custom blocks
     1180     * if the widgets block editor is enabled.
     1181     *
     1182     * @since 5.8.0
     1183     *
     1184     * @param bool $is_block_editor_screen Current decision about loading block assets.
     1185     * @return bool Filtered decision about loading block assets.
     1186     */
     1187    public function should_load_block_editor_scripts_and_styles( $is_block_editor_screen ) {
     1188        if ( wp_use_widgets_block_editor() ) {
     1189            return true;
     1190        }
     1191
     1192        return $is_block_editor_screen;
     1193    }
     1194
     1195    /**
    11121196     * When previewing, ensures the proper previewing widgets are used.
    11131197     *
     
    13151399     *
    13161400     * @param array $value Widget instance to sanitize.
     1401     * @param string $id_base Base of the ID of the widget being sanitized.
    13171402     * @return array|void Sanitized widget instance.
    13181403     */
    1319     public function sanitize_widget_instance( $value ) {
     1404    public function sanitize_widget_instance( $value, $id_base = null ) {
     1405        global $wp_widget_factory;
     1406
    13201407        if ( array() === $value ) {
    1321             return $value;
    1322         }
    1323 
    1324         if ( empty( $value['is_widget_customizer_js_value'] )
    1325             || empty( $value['instance_hash_key'] )
    1326             || empty( $value['encoded_serialized_instance'] ) ) {
     1408            return;
     1409        }
     1410
     1411        if ( isset( $value['raw_instance'] ) && $id_base && wp_use_widgets_block_editor() ) {
     1412            $widget_object = $wp_widget_factory->get_widget_object( $id_base );
     1413            if ( ! empty( $widget_object->widget_options['show_instance_in_rest'] ) ) {
     1414                return $value['raw_instance'];
     1415            }
     1416        }
     1417
     1418        if (
     1419            empty( $value['is_widget_customizer_js_value'] ) ||
     1420            empty( $value['instance_hash_key'] ) ||
     1421            empty( $value['encoded_serialized_instance'] )
     1422        ) {
    13271423            return;
    13281424        }
     
    13511447     *
    13521448     * @param array $value Widget instance to convert to JSON.
     1449     * @param string $id_base Base of the ID of the widget being sanitized.
    13531450     * @return array JSON-converted widget instance.
    13541451     */
    1355     public function sanitize_widget_js_instance( $value ) {
     1452    public function sanitize_widget_js_instance( $value, $id_base = null ) {
     1453        global $wp_widget_factory;
     1454
    13561455        if ( empty( $value['is_widget_customizer_js_value'] ) ) {
    13571456            $serialized = serialize( $value );
    13581457
    1359             $value = array(
     1458            $js_value = array(
    13601459                'encoded_serialized_instance'   => base64_encode( $serialized ),
    13611460                'title'                         => empty( $value['title'] ) ? '' : $value['title'],
     
    13631462                'instance_hash_key'             => $this->get_instance_hash_key( $serialized ),
    13641463            );
    1365         }
     1464
     1465            if ( $id_base && wp_use_widgets_block_editor() ) {
     1466                $widget_object = $wp_widget_factory->get_widget_object( $id_base );
     1467                if ( ! empty( $widget_object->widget_options['show_instance_in_rest'] ) ) {
     1468                    $js_value['raw_instance'] = (object) $value;
     1469                }
     1470            }
     1471
     1472            return $js_value;
     1473        }
     1474
    13661475        return $value;
    13671476    }
     
    14331542            }
    14341543
    1435             $instance = $this->sanitize_widget_instance( $sanitized_widget_setting );
     1544            $instance = $this->sanitize_widget_instance( $sanitized_widget_setting, $parsed_id['id_base'] );
    14361545            if ( is_null( $instance ) ) {
    14371546                $this->stop_capturing_option_updates();
     
    14991608         * instead of the default widget instance value (an empty array).
    15001609         */
    1501         $this->manager->set_post_value( $setting_id, $this->sanitize_widget_js_instance( $instance ) );
     1610        $this->manager->set_post_value( $setting_id, $this->sanitize_widget_js_instance( $instance, $parsed_id['id_base'] ) );
    15021611
    15031612        // Obtain the widget control with the updated instance in place.
     
    15721681
    15731682        $form     = $updated_widget['form'];
    1574         $instance = $this->sanitize_widget_js_instance( $updated_widget['instance'] );
     1683        $instance = $this->sanitize_widget_js_instance( $updated_widget['instance'], $id_base );
    15751684
    15761685        wp_send_json_success( compact( 'form', 'instance' ) );
  • trunk/src/wp-includes/script-loader.php

    r50992 r50996  
    15531553        'reusable-blocks'      => array( 'wp-components' ),
    15541554        'nux'                  => array( 'wp-components' ),
     1555        'edit-widgets'         => array(
     1556            'wp-components',
     1557            'wp-block-editor',
     1558            'wp-edit-blocks',
     1559            'wp-block-library',
     1560            'wp-reusable-blocks',
     1561        ),
     1562        'customize-widgets'    => array(
     1563            'wp-components',
     1564            'wp-block-editor',
     1565            'wp-edit-blocks',
     1566            'wp-block-library',
     1567            'wp-reusable-blocks',
     1568        ),
    15551569    );
    15561570
  • trunk/src/wp-includes/widgets.php

    r50995 r50996  
    18021802    register_widget( 'WP_Widget_Block' );
    18031803
     1804    add_theme_support( 'widgets-block-editor' );
     1805
    18041806    /**
    18051807     * Fires after all default WordPress widgets have been registered.
     
    18081810     */
    18091811    do_action( 'widgets_init' );
     1812}
     1813
     1814/**
     1815 * Whether or not to use the block editor to manage widgets. Defaults to true
     1816 * unless a theme has removed support for widgets-block-editor or a plugin has
     1817 * filtered the return value of this function.
     1818 *
     1819 * @since 5.8.0
     1820 *
     1821 * @return boolean Whether or not to use the block editor to manage widgets.
     1822 */
     1823function wp_use_widgets_block_editor() {
     1824    /**
     1825     * Filters whether or not to use the block editor to manage widgets.
     1826     *
     1827     * @param boolean $use_widgets_block_editor Whether or not to use the block editor to manage widgets.
     1828     */
     1829    return apply_filters(
     1830        'use_widgets_block_editor',
     1831        get_theme_support( 'widgets-block-editor' )
     1832    );
    18101833}
    18111834
     
    19721995    return ob_get_clean();
    19731996}
     1997
     1998// Needed until src/blocks/legacy-widget/index.php in @wordpress/block-library
     1999// is updated to use the 'wp_' functions.
     2000function gutenberg_find_widgets_sidebar( $widget_id ) {
     2001    return wp_find_widgets_sidebar( $widget_id );
     2002}
     2003function gutenberg_render_widget( $widget_id, $sidebar_id ) {
     2004    return wp_render_widget( $widget_id, $sidebar_id );
     2005}
     2006function gutenberg_get_widget_object( $id_base ) {
     2007    global $wp_widget_factory;
     2008    return $wp_widget_factory->get_widget_object( $id_base );
     2009}
  • trunk/tests/phpunit/includes/functions.php

    r50982 r50996  
    311311    remove_action( 'init', 'register_block_core_latest_comments' );
    312312    remove_action( 'init', 'register_block_core_latest_posts' );
     313    remove_action( 'init', 'register_block_core_legacy_widget', 20 );
    313314    remove_action( 'init', 'register_block_core_post_author' );
    314315    remove_action( 'init', 'register_block_core_post_content' );
  • trunk/tests/phpunit/tests/blocks/block-editor.php

    r50983 r50996  
    160160        $settings = get_default_block_editor_settings();
    161161
    162         $this->assertCount( 16, $settings );
     162        $this->assertCount( 17, $settings );
    163163        $this->assertFalse( $settings['alignWide'] );
    164164        $this->assertInternalType( 'array', $settings['allowedMimeTypes'] );
     
    255255        );
    256256        $this->assertInternalType( 'int', $settings['maxUploadFileSize'] );
     257        $this->assertSameSets(
     258            array(
     259                'archives',
     260                'block',
     261                'calendar',
     262                'categories',
     263                'custom_html',
     264                'media_audio',
     265                'media_gallery',
     266                'media_image',
     267                'media_video',
     268                'meta',
     269                'nav_menu',
     270                'pages',
     271                'recent-comments',
     272                'recent-posts',
     273                'rss',
     274                'search',
     275                'tag_cloud',
     276                'text',
     277            ),
     278            $settings['widgetTypesToHideFromLegacyWidgetBlock']
     279        );
    257280    }
    258281
  • trunk/tests/phpunit/tests/customize/widgets.php

    r49108 r50996  
    2626
    2727        add_theme_support( 'customize-selective-refresh-widgets' );
     28        add_action( 'widgets_init', array( $this, 'remove_widgets_block_editor' ) );
    2829        $user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
    2930        wp_set_current_user( $user_id );
     
    8485        do_action( 'wp_loaded' );
    8586        do_action( 'wp', $GLOBALS['wp'] );
     87    }
     88
     89    function remove_widgets_block_editor() {
     90        remove_theme_support( 'widgets-block-editor' );
    8691    }
    8792
     
    259264
    260265        $default_args = array(
    261             'type'                 => 'option',
    262             'capability'           => 'edit_theme_options',
    263             'transport'            => 'refresh',
    264             'default'              => array(),
    265             'sanitize_callback'    => array( $this->manager->widgets, 'sanitize_widget_instance' ),
    266             'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_widget_js_instance' ),
     266            'type'       => 'option',
     267            'capability' => 'edit_theme_options',
     268            'transport'  => 'refresh',
     269            'default'    => array(),
    267270        );
    268271        $args         = $this->manager->widgets->get_setting_args( 'widget_foo[2]' );
     
    270273            $this->assertSame( $default_value, $args[ $key ] );
    271274        }
     275        $this->assertTrue( is_callable( $args['sanitize_callback'] ), 'sanitize_callback is callable' );
     276        $this->asserttrue( is_callable( $args['sanitize_js_callback'] ), 'sanitize_js_callback is callable' );
    272277        $this->assertSame( 'WIDGET_FOO[2]', $args['uppercase_id_set_by_filter'] );
    273278
    274279        $default_args = array(
    275             'type'                 => 'option',
    276             'capability'           => 'edit_theme_options',
    277             'transport'            => 'postMessage',
    278             'default'              => array(),
    279             'sanitize_callback'    => array( $this->manager->widgets, 'sanitize_widget_instance' ),
    280             'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_widget_js_instance' ),
     280            'type'       => 'option',
     281            'capability' => 'edit_theme_options',
     282            'transport'  => 'postMessage',
     283            'default'    => array(),
    281284        );
    282285        $args         = $this->manager->widgets->get_setting_args( 'widget_search[2]' );
     
    284287            $this->assertSame( $default_value, $args[ $key ] );
    285288        }
     289        $this->assertTrue( is_callable( $args['sanitize_callback'] ), 'sanitize_callback is callable' );
     290        $this->asserttrue( is_callable( $args['sanitize_js_callback'] ), 'sanitize_js_callback is callable' );
    286291
    287292        remove_theme_support( 'customize-selective-refresh-widgets' );
     
    305310
    306311        $default_args = array(
    307             'type'                 => 'option',
    308             'capability'           => 'edit_theme_options',
    309             'transport'            => 'postMessage',
    310             'default'              => array(),
    311             'sanitize_callback'    => array( $this->manager->widgets, 'sanitize_sidebar_widgets' ),
    312             'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_sidebar_widgets_js_instance' ),
     312            'type'       => 'option',
     313            'capability' => 'edit_theme_options',
     314            'transport'  => 'postMessage',
     315            'default'    => array(),
    313316        );
    314317        $args         = $this->manager->widgets->get_setting_args( 'sidebars_widgets[sidebar-1]' );
     
    316319            $this->assertSame( $default_value, $args[ $key ] );
    317320        }
     321        $this->assertTrue( is_callable( $args['sanitize_callback'] ), 'sanitize_callback is callable' );
     322        $this->asserttrue( is_callable( $args['sanitize_js_callback'] ), 'sanitize_js_callback is callable' );
    318323        $this->assertSame( 'SIDEBARS_WIDGETS[SIDEBAR-1]', $args['uppercase_id_set_by_filter'] );
    319324
  • trunk/tools/webpack/packages.js

    r50945 r50996  
    113113        'latest-comments',
    114114        'latest-posts',
     115        'legacy-widget',
    115116        'loginout',
    116117        'post-content',
Note: See TracChangeset for help on using the changeset viewer.