/******/ (function() { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./node_modules/@wordpress/icons/build-module/icon/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/icon/index.mjs ***!
  \*******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ icon_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
// packages/icons/src/icon/index.ts

var icon_default = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(
  ({ icon, size = 24, ...props }, ref) => {
    return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(icon, {
      width: size,
      height: size,
      ...props,
      ref
    });
  }
);

//# sourceMappingURL=index.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/check.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/check.mjs ***!
  \**********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ check_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/check.tsx


var check_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z" }) });

//# sourceMappingURL=check.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/chevron-down.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/chevron-down.mjs ***!
  \*****************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ chevron_down_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/chevron-down.tsx


var chevron_down_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z" }) });

//# sourceMappingURL=chevron-down.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/close-small.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/close-small.mjs ***!
  \****************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ close_small_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/close-small.tsx


var close_small_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" }) });

//# sourceMappingURL=close-small.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/close.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/close.mjs ***!
  \**********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ close_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/close.tsx


var close_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z" }) });

//# sourceMappingURL=close.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/cloud.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/cloud.mjs ***!
  \**********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ cloud_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/cloud.tsx


var cloud_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M17.3 10.1c0-2.5-2.1-4.4-4.8-4.4-2.2 0-4.1 1.4-4.6 3.3h-.2C5.7 9 4 10.7 4 12.8c0 2.1 1.7 3.8 3.7 3.8h9c1.8 0 3.2-1.5 3.2-3.3.1-1.6-1.1-2.9-2.6-3.2zm-.5 5.1h-9c-1.2 0-2.2-1.1-2.2-2.3s1-2.4 2.2-2.4h1.3l.3-1.1c.4-1.3 1.7-2.2 3.2-2.2 1.8 0 3.3 1.3 3.3 2.9v1.3l1.3.2c.8.1 1.4.9 1.4 1.8-.1 1-.9 1.8-1.8 1.8z" }) });

//# sourceMappingURL=cloud.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/columns.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/columns.mjs ***!
  \************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ columns_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/columns.tsx


var columns_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { fillRule: "evenodd", clipRule: "evenodd", d: "M15 7.5h-5v10h5v-10Zm1.5 0v10H19a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5h-2.5ZM6 7.5h2.5v10H6a.5.5 0 0 1-.5-.5V8a.5.5 0 0 1 .5-.5ZM6 6h13a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2Z" }) });

//# sourceMappingURL=columns.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/external.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/external.mjs ***!
  \*************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ external_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/external.tsx


var external_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" }) });

//# sourceMappingURL=external.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/layout.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/layout.mjs ***!
  \***********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ layout_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/layout.tsx


var layout_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" }) });

//# sourceMappingURL=layout.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/lock.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/lock.mjs ***!
  \*********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ lock_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/lock.tsx


var lock_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zm-2.8 0H9.8V7c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v3z" }) });

//# sourceMappingURL=lock.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/page.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/page.mjs ***!
  \*********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ page_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/page.tsx


var page_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: [
  /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z" }),
  /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z" })
] });

//# sourceMappingURL=page.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/plus.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/plus.mjs ***!
  \*********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ plus_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/plus.tsx


var plus_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" }) });

//# sourceMappingURL=plus.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/search.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/search.mjs ***!
  \***********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ search_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/search.tsx


var search_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z" }) });

//# sourceMappingURL=search.mjs.map


/***/ }),

/***/ "./node_modules/@wordpress/icons/build-module/library/update.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/@wordpress/icons/build-module/library/update.mjs ***!
  \***********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ update_default; }
/* harmony export */ });
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
// packages/icons/src/library/update.tsx


var update_default = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_0__.Path, { d: "m11.3 17.2-5-5c-.1-.1-.1-.3 0-.4l2.3-2.3-1.1-1-2.3 2.3c-.7.7-.7 1.8 0 2.5l5 5H7.5v1.5h5.3v-5.2h-1.5v2.6zm7.5-6.4-5-5h2.7V4.2h-5.2v5.2h1.5V6.8l5 5c.1.1.1.3 0 .4l-2.3 2.3 1.1 1.1 2.3-2.3c.6-.7.6-1.9-.1-2.5z" }) });

//# sourceMappingURL=update.mjs.map


/***/ }),

/***/ "./node_modules/classnames/index.js":
/*!******************************************!*\
  !*** ./node_modules/classnames/index.js ***!
  \******************************************/
/***/ (function(module, exports) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
	Copyright (c) 2018 Jed Watson.
	Licensed under the MIT License (MIT), see
	http://jedwatson.github.io/classnames
*/
/* global define */

(function () {
	'use strict';

	var hasOwn = {}.hasOwnProperty;

	function classNames () {
		var classes = '';

		for (var i = 0; i < arguments.length; i++) {
			var arg = arguments[i];
			if (arg) {
				classes = appendClass(classes, parseValue(arg));
			}
		}

		return classes;
	}

	function parseValue (arg) {
		if (typeof arg === 'string' || typeof arg === 'number') {
			return arg;
		}

		if (typeof arg !== 'object') {
			return '';
		}

		if (Array.isArray(arg)) {
			return classNames.apply(null, arg);
		}

		if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
			return arg.toString();
		}

		var classes = '';

		for (var key in arg) {
			if (hasOwn.call(arg, key) && arg[key]) {
				classes = appendClass(classes, key);
			}
		}

		return classes;
	}

	function appendClass (value, newClass) {
		if (!newClass) {
			return value;
		}
	
		if (value) {
			return value + ' ' + newClass;
		}
	
		return value + newClass;
	}

	if ( true && module.exports) {
		classNames.default = classNames;
		module.exports = classNames;
	} else if (true) {
		// register as 'classnames', consistent with npm package name
		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
			return classNames;
		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	} else // removed by dead control flow
{}
}());


/***/ }),

/***/ "./node_modules/fuse.js/dist/fuse.mjs":
/*!********************************************!*\
  !*** ./node_modules/fuse.js/dist/fuse.mjs ***!
  \********************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ entry_default; }
/* harmony export */ });
/**
 * Fuse.js v7.4.2 - Lightweight fuzzy-search (http://fusejs.io)
 *
 * Copyright (c) 2026 Kiro Risk (http://kiro.me)
 * All Rights Reserved. Apache Software License 2.0
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 */
//#region src/helpers/typeGuards.ts
function isArray(value) {
	return !Array.isArray ? getTag(value) === "[object Array]" : Array.isArray(value);
}
function baseToString(value) {
	if (typeof value == "string") return value;
	if (typeof value === "bigint") return value.toString();
	const result = value + "";
	return result == "0" && 1 / value == -Infinity ? "-0" : result;
}
function toString(value) {
	return value == null ? "" : baseToString(value);
}
function isString(value) {
	return typeof value === "string";
}
function isNumber(value) {
	return typeof value === "number";
}
function isBoolean(value) {
	return value === true || value === false || isObjectLike(value) && getTag(value) == "[object Boolean]";
}
function isObject(value) {
	return typeof value === "object";
}
function isObjectLike(value) {
	return isObject(value) && value !== null;
}
function isDefined(value) {
	return value !== void 0 && value !== null;
}
function isBlank(value) {
	return !value.trim().length;
}
function getTag(value) {
	return value == null ? value === void 0 ? "[object Undefined]" : "[object Null]" : Object.prototype.toString.call(value);
}

//#endregion
//#region src/core/errorMessages.ts
const INCORRECT_INDEX_TYPE = "Incorrect 'index' type";
const INVALID_DOC_INDEX = "Invalid doc index: must be a non-negative integer within the bounds of the docs array";
const LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) => `Invalid value for key ${key}`;
const PATTERN_LENGTH_TOO_LARGE = (max) => `Pattern length exceeds max of ${max}.`;
const MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;
const INVALID_KEY_WEIGHT_VALUE = (key) => `Property 'weight' in key '${key}' must be a positive integer`;
const FUSE_MATCH_TOKEN_SEARCH_UNSUPPORTED = "Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.";

//#endregion
//#region src/tools/KeyStore.ts
const hasOwn = Object.prototype.hasOwnProperty;
var KeyStore = class {
	constructor(keys) {
		this._keys = [];
		this._keyMap = {};
		let totalWeight = 0;
		keys.forEach((key) => {
			const obj = createKey(key);
			this._keys.push(obj);
			this._keyMap[obj.id] = obj;
			totalWeight += obj.weight;
		});
		this._keys.forEach((key) => {
			key.weight /= totalWeight;
		});
	}
	get(keyId) {
		return this._keyMap[keyId];
	}
	keys() {
		return this._keys;
	}
	toJSON() {
		return JSON.stringify(this._keys);
	}
};
function createKey(key) {
	let path = null;
	let id = null;
	let src = null;
	let weight = 1;
	let getFn = null;
	if (isString(key) || isArray(key)) {
		src = key;
		path = createKeyPath(key);
		id = createKeyId(key);
	} else {
		if (!hasOwn.call(key, "name")) throw new Error(MISSING_KEY_PROPERTY("name"));
		const name = key.name;
		src = name;
		if (hasOwn.call(key, "weight") && key.weight !== void 0) {
			weight = key.weight;
			if (weight <= 0) throw new Error(INVALID_KEY_WEIGHT_VALUE(createKeyId(name)));
		}
		path = createKeyPath(name);
		id = createKeyId(name);
		getFn = key.getFn ?? null;
	}
	return {
		path,
		id,
		weight,
		src,
		getFn
	};
}
function createKeyPath(key) {
	return isArray(key) ? key : key.split(".");
}
function createKeyId(key) {
	return isArray(key) ? key.join(".") : key;
}

//#endregion
//#region src/helpers/get.ts
function get(obj, path) {
	const list = [];
	let arr = false;
	const deepGet = (obj, path, index, arrayIndex) => {
		if (!isDefined(obj)) return;
		if (!path[index]) list.push(arrayIndex !== void 0 ? {
			v: obj,
			i: arrayIndex
		} : obj);
		else {
			const value = obj[path[index]];
			if (!isDefined(value)) return;
			if (index === path.length - 1 && (isString(value) || isNumber(value) || isBoolean(value) || typeof value === "bigint")) list.push(arrayIndex !== void 0 ? {
				v: toString(value),
				i: arrayIndex
			} : toString(value));
			else if (isArray(value)) {
				arr = true;
				for (let i = 0, len = value.length; i < len; i += 1) deepGet(value[i], path, index + 1, i);
			} else if (path.length) deepGet(value, path, index + 1, arrayIndex);
		}
	};
	deepGet(obj, isString(path) ? path.split(".") : path, 0);
	return arr ? list : list[0];
}

//#endregion
//#region src/core/config.ts
const MatchOptions = {
	includeMatches: false,
	findAllMatches: false,
	minMatchCharLength: 1
};
const BasicOptions = {
	isCaseSensitive: false,
	ignoreDiacritics: false,
	includeScore: false,
	keys: [],
	shouldSort: true,
	sortFn: (a, b) => a.score === b.score ? a.idx < b.idx ? -1 : 1 : a.score < b.score ? -1 : 1
};
const FuzzyOptions = {
	location: 0,
	threshold: .6,
	distance: 100
};
const AdvancedOptions = {
	useExtendedSearch: false,
	useTokenSearch: false,
	tokenize: void 0,
	tokenMatch: "any",
	getFn: get,
	ignoreLocation: false,
	ignoreFieldNorm: false,
	fieldNormWeight: 1
};
const Config = Object.freeze({
	...BasicOptions,
	...MatchOptions,
	...FuzzyOptions,
	...AdvancedOptions
});

//#endregion
//#region src/tools/fieldNorm.ts
function norm(weight = 1, mantissa = 3) {
	const cache = /* @__PURE__ */ new Map();
	const m = Math.pow(10, mantissa);
	return {
		get(value) {
			let numTokens = 1;
			let inSpace = false;
			for (let i = 0; i < value.length; i++) if (value.charCodeAt(i) === 32) {
				if (!inSpace) {
					numTokens++;
					inSpace = true;
				}
			} else inSpace = false;
			if (cache.has(numTokens)) return cache.get(numTokens);
			const n = Math.round(m / Math.pow(numTokens, .5 * weight)) / m;
			cache.set(numTokens, n);
			return n;
		},
		clear() {
			cache.clear();
		}
	};
}

//#endregion
//#region src/tools/FuseIndex.ts
var FuseIndex = class {
	constructor({ getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}) {
		this.norm = norm(fieldNormWeight, 3);
		this.getFn = getFn;
		this.isCreated = false;
		this.docs = [];
		this.keys = [];
		this._keysMap = {};
		this.setIndexRecords();
	}
	setSources(docs = []) {
		this.docs = docs;
	}
	setIndexRecords(records = []) {
		this.records = records;
	}
	setKeys(keys = []) {
		this.keys = keys;
		this._keysMap = {};
		keys.forEach((key, idx) => {
			this._keysMap[key.id] = idx;
		});
	}
	create() {
		if (this.isCreated || !this.docs.length) return;
		this.isCreated = true;
		const len = this.docs.length;
		this.records = new Array(len);
		let recordCount = 0;
		if (isString(this.docs[0])) for (let i = 0; i < len; i++) {
			const record = this._createStringRecord(this.docs[i], i);
			if (record) this.records[recordCount++] = record;
		}
		else for (let i = 0; i < len; i++) this.records[recordCount++] = this._createObjectRecord(this.docs[i], i);
		this.records.length = recordCount;
		this.norm.clear();
	}
	add(doc, docIndex) {
		if (!Number.isInteger(docIndex) || docIndex < 0) throw new Error(INVALID_DOC_INDEX);
		if (isString(doc)) {
			const record = this._createStringRecord(doc, docIndex);
			if (record) this.records.push(record);
			return record;
		}
		const record = this._createObjectRecord(doc, docIndex);
		this.records.push(record);
		return record;
	}
	removeAt(idx) {
		if (!Number.isInteger(idx) || idx < 0) throw new Error(INVALID_DOC_INDEX);
		for (let i = 0, len = this.records.length; i < len; i += 1) if (this.records[i].i === idx) {
			this.records.splice(i, 1);
			break;
		}
		for (let i = 0, len = this.records.length; i < len; i += 1) if (this.records[i].i > idx) this.records[i].i -= 1;
	}
	removeAll(indices) {
		const toRemove = /* @__PURE__ */ new Set();
		for (const v of indices) if (Number.isInteger(v) && v >= 0) toRemove.add(v);
		if (toRemove.size === 0) return;
		this.records = this.records.filter((r) => !toRemove.has(r.i));
		const sorted = Array.from(toRemove).sort((a, b) => a - b);
		for (const record of this.records) {
			let lo = 0;
			let hi = sorted.length;
			while (lo < hi) {
				const mid = lo + hi >>> 1;
				if (sorted[mid] < record.i) lo = mid + 1;
				else hi = mid;
			}
			record.i -= lo;
		}
	}
	getValueForItemAtKeyId(item, keyId) {
		return item[this._keysMap[keyId]];
	}
	size() {
		return this.records.length;
	}
	_createStringRecord(doc, docIndex) {
		if (!isDefined(doc) || isBlank(doc)) return null;
		return {
			v: doc,
			i: docIndex,
			n: this.norm.get(doc)
		};
	}
	_createObjectRecord(doc, docIndex) {
		const record = {
			i: docIndex,
			$: {}
		};
		for (let keyIndex = 0, keyLen = this.keys.length; keyIndex < keyLen; keyIndex++) {
			const key = this.keys[keyIndex];
			const value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);
			if (!isDefined(value)) continue;
			if (isArray(value)) {
				const subRecords = [];
				for (let i = 0, len = value.length; i < len; i += 1) {
					const item = value[i];
					if (!isDefined(item)) continue;
					if (isString(item)) {
						if (!isBlank(item)) {
							const subRecord = {
								v: item,
								i,
								n: this.norm.get(item)
							};
							subRecords.push(subRecord);
						}
					} else if (isDefined(item.v)) {
						const text = isString(item.v) ? item.v : toString(item.v);
						if (!isBlank(text)) {
							const subRecord = {
								v: text,
								i: item.i,
								n: this.norm.get(text)
							};
							subRecords.push(subRecord);
						}
					}
				}
				record.$[keyIndex] = subRecords;
			} else if (isString(value) && !isBlank(value)) {
				const subRecord = {
					v: value,
					n: this.norm.get(value)
				};
				record.$[keyIndex] = subRecord;
			}
		}
		return record;
	}
	toJSON() {
		return {
			keys: this.keys.map(({ getFn, ...key }) => key),
			records: this.records
		};
	}
};
function createIndex(keys, docs, { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}) {
	const myIndex = new FuseIndex({
		getFn,
		fieldNormWeight
	});
	myIndex.setKeys(keys.map(createKey));
	myIndex.setSources(docs);
	myIndex.create();
	return myIndex;
}
function parseIndex(data, { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}) {
	const { keys, records } = data;
	const myIndex = new FuseIndex({
		getFn,
		fieldNormWeight
	});
	myIndex.setKeys(keys);
	myIndex.setIndexRecords(records);
	return myIndex;
}

//#endregion
//#region src/search/bitap/convertMaskToIndices.ts
function convertMaskToIndices(matchmask = [], minMatchCharLength = Config.minMatchCharLength) {
	const indices = [];
	let start = -1;
	let end = -1;
	let i = 0;
	for (let len = matchmask.length; i < len; i += 1) {
		const match = matchmask[i];
		if (match && start === -1) start = i;
		else if (!match && start !== -1) {
			end = i - 1;
			if (end - start + 1 >= minMatchCharLength) indices.push([start, end]);
			start = -1;
		}
	}
	if (matchmask[i - 1] && i - start >= minMatchCharLength) indices.push([start, i - 1]);
	return indices;
}

//#endregion
//#region src/search/bitap/search.ts
function search(text, pattern, patternAlphabet, { location = Config.location, distance = Config.distance, threshold = Config.threshold, findAllMatches = Config.findAllMatches, minMatchCharLength = Config.minMatchCharLength, includeMatches = Config.includeMatches, ignoreLocation = Config.ignoreLocation } = {}) {
	if (pattern.length > 32) throw new Error(PATTERN_LENGTH_TOO_LARGE(32));
	const patternLen = pattern.length;
	const textLen = text.length;
	const expectedLocation = Math.max(0, Math.min(location, textLen));
	let currentThreshold = threshold;
	let bestLocation = expectedLocation;
	const calcScore = (errors, currentLocation) => {
		const accuracy = errors / patternLen;
		if (ignoreLocation) return accuracy;
		const proximity = Math.abs(expectedLocation - currentLocation);
		if (!distance) return proximity ? 1 : accuracy;
		return accuracy + proximity / distance;
	};
	const computeMatches = minMatchCharLength > 1 || includeMatches;
	const matchMask = computeMatches ? Array(textLen) : [];
	let index;
	while ((index = text.indexOf(pattern, bestLocation)) > -1) {
		const score = calcScore(0, index);
		currentThreshold = Math.min(score, currentThreshold);
		bestLocation = index + patternLen;
		if (computeMatches) {
			let i = 0;
			while (i < patternLen) {
				matchMask[index + i] = 1;
				i += 1;
			}
		}
	}
	bestLocation = -1;
	let lastBitArr = [];
	let finalScore = 1;
	let bestErrors = 0;
	let binMax = patternLen + textLen;
	const mask = 1 << patternLen - 1;
	for (let i = 0; i < patternLen; i += 1) {
		let binMin = 0;
		let binMid = binMax;
		while (binMin < binMid) {
			if (calcScore(i, expectedLocation + binMid) <= currentThreshold) binMin = binMid;
			else binMax = binMid;
			binMid = Math.floor((binMax - binMin) / 2 + binMin);
		}
		binMax = binMid;
		let start = Math.max(1, expectedLocation - binMid + 1);
		const finish = findAllMatches ? textLen : Math.min(expectedLocation + binMid, textLen) + patternLen;
		const bitArr = Array(finish + 2);
		bitArr[finish + 1] = (1 << i) - 1;
		for (let j = finish; j >= start; j -= 1) {
			const currentLocation = j - 1;
			const charMatch = patternAlphabet[text[currentLocation]];
			bitArr[j] = (bitArr[j + 1] << 1 | 1) & charMatch;
			if (i) bitArr[j] |= (lastBitArr[j + 1] | lastBitArr[j]) << 1 | 1 | lastBitArr[j + 1];
			if (bitArr[j] & mask) {
				finalScore = calcScore(i, currentLocation);
				if (finalScore <= currentThreshold) {
					currentThreshold = finalScore;
					bestLocation = currentLocation;
					bestErrors = i;
					if (bestLocation <= expectedLocation) break;
					start = Math.max(1, 2 * expectedLocation - bestLocation);
				}
			}
		}
		if (calcScore(i + 1, expectedLocation) > currentThreshold) break;
		lastBitArr = bitArr;
	}
	if (computeMatches && bestLocation >= 0) {
		const matchEnd = Math.min(textLen - 1, bestLocation + patternLen - 1 + bestErrors);
		for (let k = bestLocation; k <= matchEnd; k += 1) if (patternAlphabet[text[k]]) matchMask[k] = 1;
	}
	const result = {
		isMatch: bestLocation >= 0,
		score: Math.max(.001, finalScore)
	};
	if (computeMatches) {
		const indices = convertMaskToIndices(matchMask, minMatchCharLength);
		if (!indices.length) result.isMatch = false;
		else if (includeMatches) result.indices = indices;
	}
	return result;
}

//#endregion
//#region src/search/bitap/createPatternAlphabet.ts
function createPatternAlphabet(pattern) {
	const mask = {};
	for (let i = 0, len = pattern.length; i < len; i += 1) {
		const char = pattern.charAt(i);
		mask[char] = (mask[char] || 0) | 1 << len - i - 1;
	}
	return mask;
}

//#endregion
//#region src/helpers/mergeIndices.ts
function mergeIndices(indices) {
	if (indices.length <= 1) return indices;
	indices.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
	const merged = [indices[0]];
	for (let i = 1, len = indices.length; i < len; i += 1) {
		const last = merged[merged.length - 1];
		const curr = indices[i];
		if (curr[0] <= last[1] + 1) last[1] = Math.max(last[1], curr[1]);
		else merged.push(curr);
	}
	return merged;
}

//#endregion
//#region src/helpers/diacritics.ts
const NON_DECOMPOSABLE_MAP = {
	"ł": "l",
	"Ł": "L",
	"đ": "d",
	"Đ": "D",
	"ø": "o",
	"Ø": "O",
	"ħ": "h",
	"Ħ": "H",
	"ŧ": "t",
	"Ŧ": "T",
	"ı": "i",
	"ß": "ss"
};
const NON_DECOMPOSABLE_RE = new RegExp("[" + Object.keys(NON_DECOMPOSABLE_MAP).join("") + "]", "g");
const stripDiacritics = typeof String.prototype.normalize === "function" ? (str) => str.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g, "").replace(NON_DECOMPOSABLE_RE, (ch) => NON_DECOMPOSABLE_MAP[ch]) : (str) => str;

//#endregion
//#region src/search/bitap/index.ts
var BitapSearch = class {
	constructor(pattern, { location = Config.location, threshold = Config.threshold, distance = Config.distance, includeMatches = Config.includeMatches, findAllMatches = Config.findAllMatches, minMatchCharLength = Config.minMatchCharLength, isCaseSensitive = Config.isCaseSensitive, ignoreDiacritics = Config.ignoreDiacritics, ignoreLocation = Config.ignoreLocation } = {}) {
		this.options = {
			location,
			threshold,
			distance,
			includeMatches,
			findAllMatches,
			minMatchCharLength,
			isCaseSensitive,
			ignoreDiacritics,
			ignoreLocation
		};
		pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
		pattern = ignoreDiacritics ? stripDiacritics(pattern) : pattern;
		this.pattern = pattern;
		this.chunks = [];
		if (!this.pattern.length) return;
		const addChunk = (pattern, startIndex) => {
			this.chunks.push({
				pattern,
				alphabet: createPatternAlphabet(pattern),
				startIndex
			});
		};
		const len = this.pattern.length;
		if (len > 32) {
			let i = 0;
			const remainder = len % 32;
			const end = len - remainder;
			while (i < end) {
				addChunk(this.pattern.substr(i, 32), i);
				i += 32;
			}
			if (remainder) {
				const startIndex = len - 32;
				addChunk(this.pattern.substr(startIndex), startIndex);
			}
		} else addChunk(this.pattern, 0);
	}
	searchIn(text) {
		const { isCaseSensitive, ignoreDiacritics, includeMatches } = this.options;
		text = isCaseSensitive ? text : text.toLowerCase();
		text = ignoreDiacritics ? stripDiacritics(text) : text;
		if (this.pattern === text) {
			const result = {
				isMatch: true,
				score: 0
			};
			if (includeMatches) result.indices = [[0, text.length - 1]];
			return result;
		}
		const { location, distance, threshold, findAllMatches, minMatchCharLength, ignoreLocation } = this.options;
		const allIndices = [];
		let totalScore = 0;
		let hasMatches = false;
		this.chunks.forEach(({ pattern, alphabet, startIndex }) => {
			const { isMatch, score, indices } = search(text, pattern, alphabet, {
				location: location + startIndex,
				distance,
				threshold,
				findAllMatches,
				minMatchCharLength,
				includeMatches,
				ignoreLocation
			});
			if (isMatch) hasMatches = true;
			totalScore += score;
			if (isMatch && indices) allIndices.push(...indices);
		});
		const result = {
			isMatch: hasMatches,
			score: hasMatches ? totalScore / this.chunks.length : 1
		};
		if (hasMatches && includeMatches) result.indices = mergeIndices(allIndices);
		return result;
	}
};

//#endregion
//#region src/search/extended/matchers.ts
const MULTI_MATCH_TYPES = new Set(["fuzzy", "include"]);
function isInverse(type) {
	return type.startsWith("inverse");
}
const matchers = [
	{
		type: "exact",
		multiRegex: /^="(.*)"$/,
		singleRegex: /^=(.*)$/,
		create: (pattern) => ({
			type: "exact",
			search(text) {
				const isMatch = text === pattern;
				return {
					isMatch,
					score: isMatch ? 0 : 1,
					indices: [0, pattern.length - 1]
				};
			}
		})
	},
	{
		type: "include",
		multiRegex: /^'"(.*)"$/,
		singleRegex: /^'(.*)$/,
		create: (pattern) => ({
			type: "include",
			search(text) {
				let location = 0;
				let index;
				const indices = [];
				const patternLen = pattern.length;
				while ((index = text.indexOf(pattern, location)) > -1) {
					location = index + patternLen;
					indices.push([index, location - 1]);
				}
				const isMatch = !!indices.length;
				return {
					isMatch,
					score: isMatch ? 0 : 1,
					indices
				};
			}
		})
	},
	{
		type: "prefix-exact",
		multiRegex: /^\^"(.*)"$/,
		singleRegex: /^\^(.*)$/,
		create: (pattern) => ({
			type: "prefix-exact",
			search(text) {
				const isMatch = text.startsWith(pattern);
				return {
					isMatch,
					score: isMatch ? 0 : 1,
					indices: [0, pattern.length - 1]
				};
			}
		})
	},
	{
		type: "inverse-prefix-exact",
		multiRegex: /^!\^"(.*)"$/,
		singleRegex: /^!\^(.*)$/,
		create: (pattern) => ({
			type: "inverse-prefix-exact",
			search(text) {
				const isMatch = !text.startsWith(pattern);
				return {
					isMatch,
					score: isMatch ? 0 : 1,
					indices: [0, text.length - 1]
				};
			}
		})
	},
	{
		type: "inverse-suffix-exact",
		multiRegex: /^!"(.*)"\$$/,
		singleRegex: /^!(.*)\$$/,
		create: (pattern) => ({
			type: "inverse-suffix-exact",
			search(text) {
				const isMatch = !text.endsWith(pattern);
				return {
					isMatch,
					score: isMatch ? 0 : 1,
					indices: [0, text.length - 1]
				};
			}
		})
	},
	{
		type: "suffix-exact",
		multiRegex: /^"(.*)"\$$/,
		singleRegex: /^(.*)\$$/,
		create: (pattern) => ({
			type: "suffix-exact",
			search(text) {
				const isMatch = text.endsWith(pattern);
				return {
					isMatch,
					score: isMatch ? 0 : 1,
					indices: [text.length - pattern.length, text.length - 1]
				};
			}
		})
	},
	{
		type: "inverse-exact",
		multiRegex: /^!"(.*)"$/,
		singleRegex: /^!(.*)$/,
		create: (pattern) => ({
			type: "inverse-exact",
			search(text) {
				const isMatch = text.indexOf(pattern) === -1;
				return {
					isMatch,
					score: isMatch ? 0 : 1,
					indices: [0, text.length - 1]
				};
			}
		})
	},
	{
		type: "fuzzy",
		multiRegex: /^"(.*)"$/,
		singleRegex: /^(.*)$/,
		create: (pattern, options = {}) => {
			const bitap = new BitapSearch(pattern, {
				location: options.location ?? Config.location,
				threshold: options.threshold ?? Config.threshold,
				distance: options.distance ?? Config.distance,
				includeMatches: options.includeMatches ?? Config.includeMatches,
				findAllMatches: options.findAllMatches ?? Config.findAllMatches,
				minMatchCharLength: options.minMatchCharLength ?? Config.minMatchCharLength,
				isCaseSensitive: options.isCaseSensitive ?? Config.isCaseSensitive,
				ignoreDiacritics: options.ignoreDiacritics ?? Config.ignoreDiacritics,
				ignoreLocation: options.ignoreLocation ?? Config.ignoreLocation
			});
			return {
				type: "fuzzy",
				search(text) {
					return bitap.searchIn(text);
				}
			};
		}
	}
];

//#endregion
//#region src/search/extended/parseQuery.ts
const matchersLen = matchers.length;
const ESCAPED_PIPE = "\0";
const OR_TOKEN = "|";
function tokenize(pattern) {
	const tokens = [];
	const len = pattern.length;
	let i = 0;
	while (i < len) {
		while (i < len && pattern[i] === " ") i++;
		if (i >= len) break;
		let j = i;
		while (j < len && pattern[j] !== " " && pattern[j] !== "\"") j++;
		if (j < len && pattern[j] === "\"") {
			j++;
			while (j < len) {
				if (pattern[j] === "\"") {
					const next = j + 1;
					if (next >= len || pattern[next] === " ") {
						j++;
						break;
					}
					if (pattern[next] === "$" && (next + 1 >= len || pattern[next + 1] === " ")) {
						j += 2;
						break;
					}
				}
				j++;
			}
			tokens.push(pattern.substring(i, j));
			i = j;
		} else {
			while (j < len && pattern[j] !== " ") j++;
			tokens.push(pattern.substring(i, j));
			i = j;
		}
	}
	return tokens;
}
function getMatch(pattern, exp) {
	const matches = pattern.match(exp);
	return matches ? matches[1] : null;
}
function parseQuery(pattern, options = {}) {
	return pattern.replace(/\\\|/g, ESCAPED_PIPE).split(OR_TOKEN).map((item) => {
		const query = tokenize(item.replace(/\u0000/g, "|").trim()).filter((item) => item && !!item.trim());
		const results = [];
		for (let i = 0, len = query.length; i < len; i += 1) {
			const queryItem = query[i];
			let found = false;
			let idx = -1;
			while (!found && ++idx < matchersLen) {
				const def = matchers[idx];
				const token = getMatch(queryItem, def.multiRegex);
				if (token) {
					results.push(def.create(token, options));
					found = true;
				}
			}
			if (found) continue;
			idx = -1;
			while (++idx < matchersLen) {
				const def = matchers[idx];
				const token = getMatch(queryItem, def.singleRegex);
				if (token) {
					results.push(def.create(token, options));
					break;
				}
			}
		}
		return results;
	});
}

//#endregion
//#region src/search/extended/index.ts
var ExtendedSearch = class {
	constructor(pattern, { isCaseSensitive = Config.isCaseSensitive, ignoreDiacritics = Config.ignoreDiacritics, includeMatches = Config.includeMatches, minMatchCharLength = Config.minMatchCharLength, ignoreLocation = Config.ignoreLocation, findAllMatches = Config.findAllMatches, location = Config.location, threshold = Config.threshold, distance = Config.distance } = {}) {
		this.query = null;
		this.options = {
			isCaseSensitive,
			ignoreDiacritics,
			includeMatches,
			minMatchCharLength,
			findAllMatches,
			ignoreLocation,
			location,
			threshold,
			distance
		};
		pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
		pattern = ignoreDiacritics ? stripDiacritics(pattern) : pattern;
		this.pattern = pattern;
		this.query = parseQuery(this.pattern, this.options);
	}
	static condition(_, options) {
		return options.useExtendedSearch;
	}
	searchIn(text) {
		const query = this.query;
		if (!query) return {
			isMatch: false,
			score: 1
		};
		const { includeMatches, isCaseSensitive, ignoreDiacritics } = this.options;
		text = isCaseSensitive ? text : text.toLowerCase();
		text = ignoreDiacritics ? stripDiacritics(text) : text;
		let numMatches = 0;
		const allIndices = [];
		let totalScore = 0;
		let hasInverse = false;
		for (let i = 0, qLen = query.length; i < qLen; i += 1) {
			const searchers = query[i];
			allIndices.length = 0;
			numMatches = 0;
			hasInverse = false;
			for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {
				const matcher = searchers[j];
				const { isMatch, indices, score } = matcher.search(text);
				if (isMatch) {
					numMatches += 1;
					totalScore += score;
					if (isInverse(matcher.type)) hasInverse = true;
					if (includeMatches) if (MULTI_MATCH_TYPES.has(matcher.type)) allIndices.push(...indices);
					else allIndices.push(indices);
				} else {
					totalScore = 0;
					numMatches = 0;
					allIndices.length = 0;
					hasInverse = false;
					break;
				}
			}
			if (numMatches) {
				const result = {
					isMatch: true,
					score: totalScore / numMatches
				};
				if (hasInverse) result.hasInverse = true;
				if (includeMatches) result.indices = mergeIndices(allIndices);
				return result;
			}
		}
		return {
			isMatch: false,
			score: 1
		};
	}
};

//#endregion
//#region src/core/register.ts
const registeredSearchers = [];
function register(...args) {
	registeredSearchers.push(...args);
}
function createSearcher(pattern, options) {
	for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {
		const searcherClass = registeredSearchers[i];
		if (searcherClass.condition(pattern, options)) return new searcherClass(pattern, options);
	}
	return new BitapSearch(pattern, options);
}

//#endregion
//#region src/core/queryParser.ts
const LogicalOperator = {
	AND: "$and",
	OR: "$or"
};
const KeyType = {
	PATH: "$path",
	PATTERN: "$val"
};
const isExpression = (query) => !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);
const isPath = (query) => !!query[KeyType.PATH];
const isLeaf = (query) => !isArray(query) && isObject(query) && !isExpression(query);
const convertToExplicit = (query) => ({ [LogicalOperator.AND]: Object.keys(query).map((key) => ({ [key]: query[key] })) });
function parse(query, options, { auto = true } = {}) {
	const next = (query) => {
		if (isString(query)) {
			const obj = {
				keyId: null,
				pattern: query
			};
			if (auto) obj.searcher = createSearcher(query, options);
			return obj;
		}
		const keys = Object.keys(query);
		const isQueryPath = isPath(query);
		if (!isQueryPath && keys.length > 1 && !isExpression(query)) return next(convertToExplicit(query));
		if (isLeaf(query)) {
			const key = isQueryPath ? query[KeyType.PATH] : keys[0];
			const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];
			if (!isString(pattern)) throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key));
			const obj = {
				keyId: createKeyId(key),
				pattern
			};
			if (auto) obj.searcher = createSearcher(pattern, options);
			return obj;
		}
		const node = {
			children: [],
			operator: keys[0]
		};
		keys.forEach((key) => {
			const value = query[key];
			if (isArray(value)) value.forEach((item) => {
				node.children.push(next(item));
			});
		});
		return node;
	};
	if (!isExpression(query)) query = convertToExplicit(query);
	return next(query);
}

//#endregion
//#region src/core/computeScore.ts
function computeScoreSingle(matches, { ignoreFieldNorm = Config.ignoreFieldNorm }) {
	let totalScore = 1;
	matches.forEach(({ key, norm, score }) => {
		const weight = key ? key.weight : null;
		totalScore *= Math.pow(score === 0 && weight ? Number.EPSILON : score, (weight || 1) * (ignoreFieldNorm ? 1 : norm));
	});
	return totalScore;
}
function computeScore(results, { ignoreFieldNorm = Config.ignoreFieldNorm }) {
	results.forEach((result) => {
		result.score = computeScoreSingle(result.matches, { ignoreFieldNorm });
	});
}

//#endregion
//#region src/tools/MaxHeap.ts
var MaxHeap = class {
	constructor(limit) {
		this.limit = limit;
		this.heap = [];
	}
	get size() {
		return this.heap.length;
	}
	shouldInsert(score) {
		return this.size < this.limit || score < this.heap[0].score;
	}
	insert(item) {
		if (this.size < this.limit) {
			this.heap.push(item);
			this._bubbleUp(this.size - 1);
		} else if (item.score < this.heap[0].score) {
			this.heap[0] = item;
			this._sinkDown(0);
		}
	}
	extractSorted(sortFn) {
		return this.heap.sort(sortFn);
	}
	_bubbleUp(i) {
		const heap = this.heap;
		while (i > 0) {
			const parent = i - 1 >> 1;
			if (heap[i].score <= heap[parent].score) break;
			const tmp = heap[i];
			heap[i] = heap[parent];
			heap[parent] = tmp;
			i = parent;
		}
	}
	_sinkDown(i) {
		const heap = this.heap;
		const len = heap.length;
		let largest = i;
		do {
			i = largest;
			const left = 2 * i + 1;
			const right = 2 * i + 2;
			if (left < len && heap[left].score > heap[largest].score) largest = left;
			if (right < len && heap[right].score > heap[largest].score) largest = right;
			if (largest !== i) {
				const tmp = heap[i];
				heap[i] = heap[largest];
				heap[largest] = tmp;
			}
		} while (largest !== i);
	}
};

//#endregion
//#region src/core/formatMatches.ts
function formatMatches(result) {
	const matches = [];
	result.matches.forEach((match) => {
		if (!isDefined(match.indices) || !match.indices.length) return;
		const obj = {
			indices: match.indices,
			value: match.value
		};
		if (match.key) obj.key = match.key.id;
		if (match.idx > -1) obj.refIndex = match.idx;
		matches.push(obj);
	});
	return matches;
}

//#endregion
//#region src/core/format.ts
function format(results, docs, { includeMatches = Config.includeMatches, includeScore = Config.includeScore } = {}) {
	return results.map((result) => {
		const { idx } = result;
		const data = {
			item: docs[idx],
			refIndex: idx
		};
		if (includeMatches) data.matches = formatMatches(result);
		if (includeScore) data.score = result.score;
		return data;
	});
}

//#endregion
//#region src/search/token/analyzer.ts
const DEFAULT_TOKEN = /[\p{L}\p{M}\p{N}_]+/gu;
const warned = /* @__PURE__ */ new WeakSet();
function warnNonGlobal(regex) {
	if (!warned.has(regex)) {
		warned.add(regex);
		console.warn(`[Fuse] tokenize regex ${regex} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`);
	}
}
function resolveTokenize(tokenize) {
	if (typeof tokenize === "function") {
		let validated = false;
		return (text) => {
			const result = tokenize(text);
			if (!validated) {
				validated = true;
				if (!Array.isArray(result) || result.some((t) => typeof t !== "string")) throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(result) ? "array containing non-strings" : typeof result}.`);
			}
			return result;
		};
	}
	if (tokenize instanceof RegExp) {
		if (!tokenize.global) warnNonGlobal(tokenize);
		return (text) => text.match(tokenize) || [];
	}
	return (text) => text.match(DEFAULT_TOKEN) || [];
}
function createAnalyzer({ isCaseSensitive = false, ignoreDiacritics = false, tokenize } = {}) {
	const tokenizeFn = resolveTokenize(tokenize);
	return { tokenize(text) {
		if (!isCaseSensitive) text = text.toLowerCase();
		if (ignoreDiacritics) text = stripDiacritics(text);
		return tokenizeFn(text);
	} };
}

//#endregion
//#region src/search/token/index.ts
const MAX_MASK_TERMS = 31;
var TokenSearch = class {
	static condition(_, options) {
		return options.useTokenSearch;
	}
	constructor(pattern, options) {
		this.options = options;
		this.analyzer = createAnalyzer({
			isCaseSensitive: options.isCaseSensitive,
			ignoreDiacritics: options.ignoreDiacritics,
			tokenize: options.tokenize
		});
		const queryTerms = this.analyzer.tokenize(pattern);
		const { df, fieldCount } = options._invertedIndex;
		this.termSearchers = [];
		this.idfWeights = [];
		for (const term of queryTerms) {
			this.termSearchers.push(new BitapSearch(term, {
				location: options.location,
				threshold: options.threshold,
				distance: options.distance,
				includeMatches: options.includeMatches,
				findAllMatches: options.findAllMatches,
				minMatchCharLength: options.minMatchCharLength,
				isCaseSensitive: options.isCaseSensitive,
				ignoreDiacritics: options.ignoreDiacritics,
				ignoreLocation: true
			}));
			const docFreq = df.get(term) || 0;
			const idf = Math.log(1 + (fieldCount - docFreq + .5) / (docFreq + .5));
			this.idfWeights.push(idf);
		}
		this.combineAll = options.tokenMatch === "all";
		this.numTerms = this.termSearchers.length;
		this.useMask = this.numTerms <= 31;
	}
	searchIn(text) {
		if (!this.termSearchers.length) return {
			isMatch: false,
			score: 1
		};
		const allIndices = [];
		let weightedScore = 0;
		let maxPossibleScore = 0;
		let matchedCount = 0;
		let matchedMask = 0;
		const matchedTerms = this.combineAll && !this.useMask ? /* @__PURE__ */ new Set() : null;
		for (let i = 0; i < this.termSearchers.length; i++) {
			const result = this.termSearchers[i].searchIn(text);
			const idf = this.idfWeights[i];
			maxPossibleScore += idf;
			if (result.isMatch) {
				matchedCount++;
				weightedScore += idf * (1 - result.score);
				if (result.indices) allIndices.push(...result.indices);
				if (this.combineAll) if (this.useMask) matchedMask |= 1 << i;
				else matchedTerms.add(i);
			}
		}
		if (matchedCount === 0) return {
			isMatch: false,
			score: 1
		};
		const normalized = maxPossibleScore > 0 ? 1 - weightedScore / maxPossibleScore : 0;
		const searchResult = {
			isMatch: true,
			score: Math.max(.001, normalized)
		};
		if (this.options.includeMatches && allIndices.length) searchResult.indices = mergeIndices(allIndices);
		if (this.combineAll) {
			if (this.useMask) searchResult.matchedMask = matchedMask;
			else searchResult.matchedTerms = matchedTerms;
			searchResult.termCount = this.numTerms;
		}
		return searchResult;
	}
};

//#endregion
//#region src/search/token/InvertedIndex.ts
function addField(index, text, docIdx, analyzer) {
	const tokens = analyzer.tokenize(text);
	if (!tokens.length) return;
	index.fieldCount++;
	index.docFieldCount.set(docIdx, (index.docFieldCount.get(docIdx) || 0) + 1);
	const distinctTerms = new Set(tokens);
	let perDocTerms = index.docTermFieldHits.get(docIdx);
	if (!perDocTerms) {
		perDocTerms = /* @__PURE__ */ new Map();
		index.docTermFieldHits.set(docIdx, perDocTerms);
	}
	for (const term of distinctTerms) {
		perDocTerms.set(term, (perDocTerms.get(term) || 0) + 1);
		index.df.set(term, (index.df.get(term) || 0) + 1);
	}
}
function ingestRecord(index, record, keyCount, analyzer) {
	const { i: docIdx, v, $: fields } = record;
	if (v !== void 0) {
		addField(index, v, docIdx, analyzer);
		return;
	}
	if (!fields) return;
	for (let keyIdx = 0; keyIdx < keyCount; keyIdx++) {
		const value = fields[keyIdx];
		if (!value) continue;
		if (Array.isArray(value)) for (const sub of value) addField(index, sub.v, docIdx, analyzer);
		else addField(index, value.v, docIdx, analyzer);
	}
}
function buildInvertedIndex(records, keyCount, analyzer) {
	const index = {
		fieldCount: 0,
		df: /* @__PURE__ */ new Map(),
		docFieldCount: /* @__PURE__ */ new Map(),
		docTermFieldHits: /* @__PURE__ */ new Map()
	};
	for (const record of records) ingestRecord(index, record, keyCount, analyzer);
	return index;
}
function addToInvertedIndex(index, record, keyCount, analyzer) {
	ingestRecord(index, record, keyCount, analyzer);
}
function removeFromInvertedIndex(index, docIdx) {
	const fieldCount = index.docFieldCount.get(docIdx);
	if (fieldCount === void 0) return;
	index.fieldCount -= fieldCount;
	index.docFieldCount.delete(docIdx);
	const perDocTerms = index.docTermFieldHits.get(docIdx);
	if (!perDocTerms) return;
	for (const [term, hits] of perDocTerms) {
		const next = (index.df.get(term) || 0) - hits;
		if (next <= 0) index.df.delete(term);
		else index.df.set(term, next);
	}
	index.docTermFieldHits.delete(docIdx);
}
function removeAndShiftInvertedIndex(index, removedIndices) {
	if (removedIndices.length === 0) return;
	const sorted = Array.from(new Set(removedIndices)).sort((a, b) => a - b);
	for (const idx of sorted) removeFromInvertedIndex(index, idx);
	const shift = (oldIdx) => {
		let lo = 0;
		let hi = sorted.length;
		while (lo < hi) {
			const mid = lo + hi >>> 1;
			if (sorted[mid] < oldIdx) lo = mid + 1;
			else hi = mid;
		}
		return oldIdx - lo;
	};
	const firstRemoved = sorted[0];
	const shiftedDocFieldCount = /* @__PURE__ */ new Map();
	for (const [oldKey, count] of index.docFieldCount) shiftedDocFieldCount.set(oldKey > firstRemoved ? shift(oldKey) : oldKey, count);
	index.docFieldCount = shiftedDocFieldCount;
	const shiftedDocTermFieldHits = /* @__PURE__ */ new Map();
	for (const [oldKey, terms] of index.docTermFieldHits) shiftedDocTermFieldHits.set(oldKey > firstRemoved ? shift(oldKey) : oldKey, terms);
	index.docTermFieldHits = shiftedDocTermFieldHits;
}

//#endregion
//#region src/core/index.ts
var Fuse = class {
	constructor(docs, options, index) {
		this.options = {
			...Config,
			...options
		};
		if (this.options.useExtendedSearch && false)// removed by dead control flow
{}
		if (this.options.useTokenSearch && false)// removed by dead control flow
{}
		this._keyStore = new KeyStore(this.options.keys);
		this._docs = docs;
		this._myIndex = null;
		this._invertedIndex = null;
		this.setCollection(docs, index);
		this._lastQuery = null;
		this._lastSearcher = null;
	}
	_getSearcher(query) {
		if (this._lastQuery === query) return this._lastSearcher;
		const searcher = createSearcher(query, this._invertedIndex ? {
			...this.options,
			_invertedIndex: this._invertedIndex
		} : this.options);
		this._lastQuery = query;
		this._lastSearcher = searcher;
		return searcher;
	}
	setCollection(docs, index) {
		this._docs = docs;
		if (index && !(index instanceof FuseIndex)) throw new Error(INCORRECT_INDEX_TYPE);
		this._myIndex = index || createIndex(this.options.keys, this._docs, {
			getFn: this.options.getFn,
			fieldNormWeight: this.options.fieldNormWeight
		});
		if (this.options.useTokenSearch) {
			const analyzer = createAnalyzer({
				isCaseSensitive: this.options.isCaseSensitive,
				ignoreDiacritics: this.options.ignoreDiacritics,
				tokenize: this.options.tokenize
			});
			this._invertedIndex = buildInvertedIndex(this._myIndex.records, this._myIndex.keys.length, analyzer);
		}
		this._invalidateSearcherCache();
	}
	add(doc) {
		if (!isDefined(doc)) return;
		this._docs.push(doc);
		const record = this._myIndex.add(doc, this._docs.length - 1);
		if (this._invertedIndex && record) {
			const analyzer = createAnalyzer({
				isCaseSensitive: this.options.isCaseSensitive,
				ignoreDiacritics: this.options.ignoreDiacritics,
				tokenize: this.options.tokenize
			});
			addToInvertedIndex(this._invertedIndex, record, this._myIndex.keys.length, analyzer);
		}
		this._invalidateSearcherCache();
	}
	remove(predicate = () => false) {
		const results = [];
		const indicesToRemove = [];
		for (let i = 0, len = this._docs.length; i < len; i += 1) if (predicate(this._docs[i], i)) {
			results.push(this._docs[i]);
			indicesToRemove.push(i);
		}
		if (indicesToRemove.length) {
			if (this._invertedIndex) removeAndShiftInvertedIndex(this._invertedIndex, indicesToRemove);
			const toRemove = new Set(indicesToRemove);
			this._docs = this._docs.filter((_, i) => !toRemove.has(i));
			this._myIndex.removeAll(indicesToRemove);
			this._invalidateSearcherCache();
		}
		return results;
	}
	removeAt(idx) {
		if (!Number.isInteger(idx) || idx < 0 || idx >= this._docs.length) throw new Error(INVALID_DOC_INDEX);
		if (this._invertedIndex) removeAndShiftInvertedIndex(this._invertedIndex, [idx]);
		const doc = this._docs.splice(idx, 1)[0];
		this._myIndex.removeAt(idx);
		this._invalidateSearcherCache();
		return doc;
	}
	_invalidateSearcherCache() {
		this._lastQuery = null;
		this._lastSearcher = null;
	}
	getIndex() {
		return this._myIndex;
	}
	search(query, options) {
		const { limit = -1 } = options || {};
		const { includeMatches, includeScore, shouldSort, sortFn, ignoreFieldNorm } = this.options;
		if (isString(query) && !query.trim()) {
			let docs = this._docs.map((item, idx) => ({
				item,
				refIndex: idx
			}));
			if (isNumber(limit) && limit > -1) docs = docs.slice(0, limit);
			return docs;
		}
		const useHeap = isNumber(limit) && limit > 0 && isString(query);
		let results;
		if (useHeap) {
			const heap = new MaxHeap(limit);
			if (isString(this._docs[0])) this._searchStringList(query, {
				heap,
				ignoreFieldNorm
			});
			else this._searchObjectList(query, {
				heap,
				ignoreFieldNorm
			});
			results = heap.extractSorted(sortFn);
		} else {
			results = isString(query) ? isString(this._docs[0]) ? this._searchStringList(query) : this._searchObjectList(query) : this._searchLogical(query);
			computeScore(results, { ignoreFieldNorm });
			if (shouldSort) results.sort(sortFn);
			if (isNumber(limit) && limit > -1) results = results.slice(0, limit);
		}
		return format(results, this._docs, {
			includeMatches,
			includeScore
		});
	}
	_searchStringList(query, { heap, ignoreFieldNorm } = {}) {
		const searcher = this._getSearcher(query);
		const requireAllTokens = this.options.useTokenSearch && this.options.tokenMatch === "all";
		const { records } = this._myIndex;
		const results = heap ? null : [];
		records.forEach(({ v: text, i: idx, n: norm }) => {
			if (!isDefined(text)) return;
			const searchResult = searcher.searchIn(text);
			if (searchResult.isMatch) {
				const match = {
					score: searchResult.score,
					value: text,
					norm,
					indices: searchResult.indices
				};
				if (requireAllTokens) {
					match.matchedMask = searchResult.matchedMask;
					match.matchedTerms = searchResult.matchedTerms;
					match.termCount = searchResult.termCount;
				}
				const matches = [match];
				if (!requireAllTokens || this._coversAllTokens(matches)) {
					const result = {
						item: text,
						idx,
						matches
					};
					if (heap) {
						result.score = computeScoreSingle(result.matches, { ignoreFieldNorm });
						if (heap.shouldInsert(result.score)) heap.insert(result);
					} else results.push(result);
				}
			}
		});
		return results;
	}
	_searchLogical(query) {
		const expression = parse(query, this.options);
		const evaluate = (node, item, idx) => {
			if (!("children" in node)) {
				const { keyId, searcher } = node;
				let matches;
				if (keyId === null) {
					matches = [];
					this._myIndex.keys.forEach((key, keyIndex) => {
						matches.push(...this._findMatches({
							key,
							value: item[keyIndex],
							searcher
						}));
					});
				} else matches = this._findMatches({
					key: this._keyStore.get(keyId),
					value: this._myIndex.getValueForItemAtKeyId(item, keyId),
					searcher
				});
				if (matches && matches.length) return [{
					idx,
					item,
					matches
				}];
				return [];
			}
			const { children, operator } = node;
			const res = [];
			for (let i = 0, len = children.length; i < len; i += 1) {
				const child = children[i];
				const result = evaluate(child, item, idx);
				if (result.length) res.push(...result);
				else if (operator === LogicalOperator.AND) return [];
			}
			return res;
		};
		const records = this._myIndex.records;
		const resultMap = /* @__PURE__ */ new Map();
		const results = [];
		records.forEach(({ $: item, i: idx }) => {
			if (isDefined(item)) {
				const expResults = evaluate(expression, item, idx);
				if (expResults.length) {
					if (!resultMap.has(idx)) {
						resultMap.set(idx, {
							idx,
							item,
							matches: []
						});
						results.push(resultMap.get(idx));
					}
					expResults.forEach(({ matches }) => {
						resultMap.get(idx).matches.push(...matches);
					});
				}
			}
		});
		return results;
	}
	_searchObjectList(query, { heap, ignoreFieldNorm } = {}) {
		const searcher = this._getSearcher(query);
		const requireAllTokens = this.options.useTokenSearch && this.options.tokenMatch === "all";
		const { keys, records } = this._myIndex;
		const results = heap ? null : [];
		records.forEach(({ $: item, i: idx }) => {
			if (!isDefined(item)) return;
			const matches = [];
			let anyKeyFailed = false;
			let hasInverse = false;
			keys.forEach((key, keyIndex) => {
				const keyMatches = this._findMatches({
					key,
					value: item[keyIndex],
					searcher
				});
				if (keyMatches.length) {
					matches.push(...keyMatches);
					if (keyMatches[0].hasInverse) hasInverse = true;
				} else anyKeyFailed = true;
			});
			if (hasInverse && anyKeyFailed) return;
			if (matches.length && (!requireAllTokens || this._coversAllTokens(matches))) {
				const result = {
					idx,
					item,
					matches
				};
				if (heap) {
					result.score = computeScoreSingle(result.matches, { ignoreFieldNorm });
					if (heap.shouldInsert(result.score)) heap.insert(result);
				} else results.push(result);
			}
		});
		return results;
	}
	_findMatches({ key, value, searcher }) {
		if (!isDefined(value)) return [];
		const matches = [];
		if (isArray(value)) value.forEach(({ v: text, i: idx, n: norm }) => {
			if (!isDefined(text)) return;
			const searchResult = searcher.searchIn(text);
			if (searchResult.isMatch) {
				const match = {
					score: searchResult.score,
					key,
					value: text,
					idx,
					norm,
					indices: searchResult.indices,
					hasInverse: searchResult.hasInverse
				};
				if (searchResult.termCount !== void 0) {
					match.matchedMask = searchResult.matchedMask;
					match.matchedTerms = searchResult.matchedTerms;
					match.termCount = searchResult.termCount;
				}
				matches.push(match);
			}
		});
		else {
			const { v: text, n: norm } = value;
			const searchResult = searcher.searchIn(text);
			if (searchResult.isMatch) {
				const match = {
					score: searchResult.score,
					key,
					value: text,
					norm,
					indices: searchResult.indices,
					hasInverse: searchResult.hasInverse
				};
				if (searchResult.termCount !== void 0) {
					match.matchedMask = searchResult.matchedMask;
					match.matchedTerms = searchResult.matchedTerms;
					match.termCount = searchResult.termCount;
				}
				matches.push(match);
			}
		}
		return matches;
	}
	_coversAllTokens(matches) {
		const termCount = matches.length ? matches[0].termCount : void 0;
		if (termCount === void 0) return true;
		if (termCount <= 31) {
			let coverage = 0;
			for (let i = 0; i < matches.length; i++) coverage |= matches[i].matchedMask || 0;
			return coverage === 2 ** termCount - 1;
		}
		const coverage = /* @__PURE__ */ new Set();
		for (let i = 0; i < matches.length; i++) {
			const terms = matches[i].matchedTerms;
			if (terms) for (const t of terms) coverage.add(t);
		}
		return coverage.size === termCount;
	}
};

//#endregion
//#region src/entry.ts
Fuse.version = "7.4.2";
Fuse.createIndex = createIndex;
Fuse.parseIndex = parseIndex;
Fuse.config = Config;
Fuse.match = function(pattern, text, options) {
	if (options && options.useTokenSearch) throw new Error(FUSE_MATCH_TOKEN_SEARCH_UNSUPPORTED);
	return createSearcher(pattern, {
		...Config,
		...options
	}).searchIn(text);
};
Fuse.parseQuery = parse;
register(ExtendedSearch);
register(TokenSearch);
Fuse.use = function(...plugins) {
	plugins.forEach((plugin) => register(plugin));
};
var entry_default = Fuse;

//#endregion


/***/ }),

/***/ "./node_modules/react-intersection-observer/dist/index.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/react-intersection-observer/dist/index.mjs ***!
  \*****************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   InView: function() { return /* binding */ InView; },
/* harmony export */   defaultFallbackInView: function() { return /* binding */ defaultFallbackInView; },
/* harmony export */   observe: function() { return /* binding */ observe; },
/* harmony export */   useInView: function() { return /* binding */ useInView; }
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
"use client";
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);

// src/InView.tsx


// src/observe.ts
var observerMap = /* @__PURE__ */ new Map();
var RootIds = /* @__PURE__ */ new WeakMap();
var rootId = 0;
var unsupportedValue = void 0;
function defaultFallbackInView(inView) {
  unsupportedValue = inView;
}
function getRootId(root) {
  if (!root) return "0";
  if (RootIds.has(root)) return RootIds.get(root);
  rootId += 1;
  RootIds.set(root, rootId.toString());
  return RootIds.get(root);
}
function optionsToId(options) {
  return Object.keys(options).sort().filter(
    (key) => options[key] !== void 0
  ).map((key) => {
    return `${key}_${key === "root" ? getRootId(options.root) : options[key]}`;
  }).toString();
}
function createObserver(options) {
  const id = optionsToId(options);
  let instance = observerMap.get(id);
  if (!instance) {
    const elements = /* @__PURE__ */ new Map();
    let thresholds;
    const observer = new IntersectionObserver((entries) => {
      entries.forEach((entry) => {
        var _a;
        const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);
        if (options.trackVisibility && typeof entry.isVisible === "undefined") {
          entry.isVisible = inView;
        }
        (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {
          callback(inView, entry);
        });
      });
    }, options);
    thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);
    instance = {
      id,
      observer,
      elements
    };
    observerMap.set(id, instance);
  }
  return instance;
}
function observe(element, callback, options = {}, fallbackInView = unsupportedValue) {
  if (typeof window.IntersectionObserver === "undefined" && fallbackInView !== void 0) {
    const bounds = element.getBoundingClientRect();
    callback(fallbackInView, {
      isIntersecting: fallbackInView,
      target: element,
      intersectionRatio: typeof options.threshold === "number" ? options.threshold : 0,
      time: 0,
      boundingClientRect: bounds,
      intersectionRect: bounds,
      rootBounds: bounds
    });
    return () => {
    };
  }
  const { id, observer, elements } = createObserver(options);
  const callbacks = elements.get(element) || [];
  if (!elements.has(element)) {
    elements.set(element, callbacks);
  }
  callbacks.push(callback);
  observer.observe(element);
  return function unobserve() {
    callbacks.splice(callbacks.indexOf(callback), 1);
    if (callbacks.length === 0) {
      elements.delete(element);
      observer.unobserve(element);
    }
    if (elements.size === 0) {
      observer.disconnect();
      observerMap.delete(id);
    }
  };
}

// src/InView.tsx
function isPlainChildren(props) {
  return typeof props.children !== "function";
}
var InView = class extends react__WEBPACK_IMPORTED_MODULE_0__.Component {
  constructor(props) {
    super(props);
    __publicField(this, "node", null);
    __publicField(this, "_unobserveCb", null);
    __publicField(this, "handleNode", (node) => {
      if (this.node) {
        this.unobserve();
        if (!node && !this.props.triggerOnce && !this.props.skip) {
          this.setState({ inView: !!this.props.initialInView, entry: void 0 });
        }
      }
      this.node = node ? node : null;
      this.observeNode();
    });
    __publicField(this, "handleChange", (inView, entry) => {
      if (inView && this.props.triggerOnce) {
        this.unobserve();
      }
      if (!isPlainChildren(this.props)) {
        this.setState({ inView, entry });
      }
      if (this.props.onChange) {
        this.props.onChange(inView, entry);
      }
    });
    this.state = {
      inView: !!props.initialInView,
      entry: void 0
    };
  }
  componentDidMount() {
    this.unobserve();
    this.observeNode();
  }
  componentDidUpdate(prevProps) {
    if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {
      this.unobserve();
      this.observeNode();
    }
  }
  componentWillUnmount() {
    this.unobserve();
  }
  observeNode() {
    if (!this.node || this.props.skip) return;
    const {
      threshold,
      root,
      rootMargin,
      trackVisibility,
      delay,
      fallbackInView
    } = this.props;
    this._unobserveCb = observe(
      this.node,
      this.handleChange,
      {
        threshold,
        root,
        rootMargin,
        // @ts-ignore
        trackVisibility,
        // @ts-ignore
        delay
      },
      fallbackInView
    );
  }
  unobserve() {
    if (this._unobserveCb) {
      this._unobserveCb();
      this._unobserveCb = null;
    }
  }
  render() {
    const { children } = this.props;
    if (typeof children === "function") {
      const { inView, entry } = this.state;
      return children({ inView, entry, ref: this.handleNode });
    }
    const {
      as,
      triggerOnce,
      threshold,
      root,
      rootMargin,
      onChange,
      skip,
      trackVisibility,
      delay,
      initialInView,
      fallbackInView,
      ...props
    } = this.props;
    return react__WEBPACK_IMPORTED_MODULE_0__.createElement(
      as || "div",
      { ref: this.handleNode, ...props },
      children
    );
  }
};

// src/useInView.tsx

function useInView({
  threshold,
  delay,
  trackVisibility,
  rootMargin,
  root,
  triggerOnce,
  skip,
  initialInView,
  fallbackInView,
  onChange
} = {}) {
  var _a;
  const [ref, setRef] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);
  const callback = react__WEBPACK_IMPORTED_MODULE_0__.useRef(onChange);
  const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useState({
    inView: !!initialInView,
    entry: void 0
  });
  callback.current = onChange;
  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(
    () => {
      if (skip || !ref) return;
      let unobserve;
      unobserve = observe(
        ref,
        (inView, entry) => {
          setState({
            inView,
            entry
          });
          if (callback.current) callback.current(inView, entry);
          if (entry.isIntersecting && triggerOnce && unobserve) {
            unobserve();
            unobserve = void 0;
          }
        },
        {
          root,
          rootMargin,
          threshold,
          // @ts-ignore
          trackVisibility,
          // @ts-ignore
          delay
        },
        fallbackInView
      );
      return () => {
        if (unobserve) {
          unobserve();
        }
      };
    },
    // We break the rule here, because we aren't including the actual `threshold` variable
    // eslint-disable-next-line react-hooks/exhaustive-deps
    [
      // If the threshold is an array, convert it to a string, so it won't change between renders.
      Array.isArray(threshold) ? threshold.toString() : threshold,
      ref,
      root,
      rootMargin,
      triggerOnce,
      skip,
      trackVisibility,
      fallbackInView,
      delay
    ]
  );
  const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;
  const previousEntryTarget = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0);
  if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {
    previousEntryTarget.current = entryTarget;
    setState({
      inView: !!initialInView,
      entry: void 0
    });
  }
  const result = [setRef, state.inView, state.entry];
  result.ref = result[0];
  result.inView = result[1];
  result.entry = result[2];
  return result;
}

//# sourceMappingURL=index.mjs.map

/***/ }),

/***/ "./node_modules/uuid/dist/regex.js":
/*!*****************************************!*\
  !*** ./node_modules/uuid/dist/regex.js ***!
  \*****************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);


/***/ }),

/***/ "./node_modules/uuid/dist/rng.js":
/*!***************************************!*\
  !*** ./node_modules/uuid/dist/rng.js ***!
  \***************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": function() { return /* binding */ rng; }
/* harmony export */ });
const rnds8 = new Uint8Array(16);
function rng() {
    return crypto.getRandomValues(rnds8);
}


/***/ }),

/***/ "./node_modules/uuid/dist/stringify.js":
/*!*********************************************!*\
  !*** ./node_modules/uuid/dist/stringify.js ***!
  \*********************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   unsafeStringify: function() { return /* binding */ unsafeStringify; }
/* harmony export */ });
/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ "./node_modules/uuid/dist/validate.js");

const byteToHex = [];
for (let i = 0; i < 256; ++i) {
    byteToHex.push((i + 0x100).toString(16).slice(1));
}
function unsafeStringify(arr, offset = 0) {
    return (byteToHex[arr[offset + 0]] +
        byteToHex[arr[offset + 1]] +
        byteToHex[arr[offset + 2]] +
        byteToHex[arr[offset + 3]] +
        '-' +
        byteToHex[arr[offset + 4]] +
        byteToHex[arr[offset + 5]] +
        '-' +
        byteToHex[arr[offset + 6]] +
        byteToHex[arr[offset + 7]] +
        '-' +
        byteToHex[arr[offset + 8]] +
        byteToHex[arr[offset + 9]] +
        '-' +
        byteToHex[arr[offset + 10]] +
        byteToHex[arr[offset + 11]] +
        byteToHex[arr[offset + 12]] +
        byteToHex[arr[offset + 13]] +
        byteToHex[arr[offset + 14]] +
        byteToHex[arr[offset + 15]]).toLowerCase();
}
function stringify(arr, offset = 0) {
    const uuid = unsafeStringify(arr, offset);
    if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__["default"])(uuid)) {
        throw TypeError('Stringified UUID is invalid');
    }
    return uuid;
}
/* harmony default export */ __webpack_exports__["default"] = (stringify);


/***/ }),

/***/ "./node_modules/uuid/dist/v4.js":
/*!**************************************!*\
  !*** ./node_modules/uuid/dist/v4.js ***!
  \**************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rng.js */ "./node_modules/uuid/dist/rng.js");
/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stringify.js */ "./node_modules/uuid/dist/stringify.js");


function v4(options, buf, offset) {
    if (!buf && !options && crypto.randomUUID) {
        return crypto.randomUUID();
    }
    return _v4(options, buf, offset);
}
function _v4(options, buf, offset) {
    options = options || {};
    const rnds = options.random ?? options.rng?.() ?? (0,_rng_js__WEBPACK_IMPORTED_MODULE_0__["default"])();
    if (rnds.length < 16) {
        throw new Error('Random bytes length must be >= 16');
    }
    rnds[6] = (rnds[6] & 0x0f) | 0x40;
    rnds[8] = (rnds[8] & 0x3f) | 0x80;
    if (buf) {
        offset = offset || 0;
        if (offset < 0 || offset + 16 > buf.length) {
            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
        }
        for (let i = 0; i < 16; ++i) {
            buf[offset + i] = rnds[i];
        }
        return buf;
    }
    return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_1__.unsafeStringify)(rnds);
}
/* harmony default export */ __webpack_exports__["default"] = (v4);


/***/ }),

/***/ "./node_modules/uuid/dist/validate.js":
/*!********************************************!*\
  !*** ./node_modules/uuid/dist/validate.js ***!
  \********************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ "./node_modules/uuid/dist/regex.js");

function validate(uuid) {
    return typeof uuid === 'string' && _regex_js__WEBPACK_IMPORTED_MODULE_0__["default"].test(uuid);
}
/* harmony default export */ __webpack_exports__["default"] = (validate);


/***/ }),

/***/ "./src/blocks/helpers/block-utility.js":
/*!*********************************************!*\
  !*** ./src/blocks/helpers/block-utility.js ***!
  \*********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   GlobalStateMemory: function() { return /* binding */ GlobalStateMemory; },
/* harmony export */   addBlockId: function() { return /* binding */ addBlockId; },
/* harmony export */   addGlobalDefaults: function() { return /* binding */ addGlobalDefaults; },
/* harmony export */   blockInit: function() { return /* binding */ blockInit; },
/* harmony export */   buildGetSyncValue: function() { return /* binding */ buildGetSyncValue; },
/* harmony export */   copyScriptAssetToIframe: function() { return /* binding */ copyScriptAssetToIframe; },
/* harmony export */   getBlockDocument: function() { return /* binding */ getBlockDocument; },
/* harmony export */   getBlockWindow: function() { return /* binding */ getBlockWindow; },
/* harmony export */   getDefaultValue: function() { return /* binding */ getDefaultValue; },
/* harmony export */   getDefaultValueByField: function() { return /* binding */ getDefaultValueByField; },
/* harmony export */   getEditorIframe: function() { return /* binding */ getEditorIframe; },
/* harmony export */   insertBlockBelow: function() { return /* binding */ insertBlockBelow; },
/* harmony export */   mountIconGradient: function() { return /* binding */ mountIconGradient; },
/* harmony export */   mountIconGradientForEditor: function() { return /* binding */ mountIconGradientForEditor; },
/* harmony export */   pullOtterPatterns: function() { return /* binding */ pullOtterPatterns; },
/* harmony export */   pullPatterns: function() { return /* binding */ pullPatterns; },
/* harmony export */   pullReusableBlockContentById: function() { return /* binding */ pullReusableBlockContentById; },
/* harmony export */   useBlockElementEffect: function() { return /* binding */ useBlockElementEffect; },
/* harmony export */   useCSSNode: function() { return /* binding */ useCSSNode; },
/* harmony export */   useTabSwitch: function() { return /* binding */ useTabSwitch; },
/* harmony export */   watchEditorIframeIconGradient: function() { return /* binding */ watchEditorIframeIconGradient; }
/* harmony export */ });
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! uuid */ "./node_modules/uuid/dist/v4.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks");
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _plugins_options_global_defaults_defaults_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../plugins/options/global-defaults/defaults.js */ "./src/blocks/plugins/options/global-defaults/defaults.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_5__);
/**
 * External dependencies.
 */


/**
 * WordPress dependencies.
 */




/**
 * Internal dependencies.
 */




/**
 * Initiate the global id tracker with an empty list if it is the case.
 */
window.themeisleGutenberg ??= {};
window.themeisleGutenberg.blockIDs ??= [];

/**
 * Utility function for creating a function that add the global defaults values to the block's attribute value.
 *
 * @param {Object}   attributes        The block's attributes provided by WordPress
 * @param {Function} setAttributes     The block's attributes update function provided by WordPress
 * @param {string}   name              The block's name provided by WordPress
 * @param {Object}   defaultAttributes The default attributes of the block.
 */
const addGlobalDefaults = (attributes, setAttributes, name, defaultAttributes) => {
  // Check if the globals default are available and its values are different from the base values.
  // Optional chaining throughout: a corrupt/empty option localizes globalDefaults as null.
  const globalDefaults = window.themeisleGutenberg?.globalDefaults?.[name];
  if (globalDefaults && !(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isEqual)(_plugins_options_global_defaults_defaults_js__WEBPACK_IMPORTED_MODULE_3__["default"][name], globalDefaults)) {
    const defaultGlobalAttrs = {
      ...globalDefaults
    };
    const attrs = Object.keys(defaultGlobalAttrs).filter(attr => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isEqual)(attributes[attr], defaultAttributes[attr]?.default)) // Keep only the properties with the default value.
    // Build an attribute object with the properties that are gone take the Global Defaults values.
    .reduce((attrs, attr) => {
      attrs[attr] = defaultGlobalAttrs[attr];
      return attrs;
    }, {});
    setAttributes({
      ...attrs
    });
  }
};

/**
 * Utiliy function for getting the default value of the attribute.
 *
 * @param {string} name              The block's name provided by WordPress
 * @param {string} field             Name of the value to be returned
 * @param {Object} defaultAttributes The default attributes of the block.
 */
const getDefaultValue = (name, field, defaultAttributes) => {
  const blockDefaults = window.themeisleGutenberg.globalDefaults?.[name];
  const value = blockDefaults?.[field] ? blockDefaults?.[field] : defaultAttributes[field]?.default;
  return value;
};

/**
 * Utiliy function for getting the default value of the attribute by value.
 *
 * @param {Object} params                   - The parameters object.
 * @param {string} params.name              The block's name provided by WordPress
 * @param {string} params.field             Name of the value to be returned
 * @param {Object} params.defaultAttributes The default attributes of the block.
 * @param {Object} params.attributes        The attributes of the block.
 */
const getDefaultValueByField = ({
  name,
  field,
  defaultAttributes,
  attributes
}) => {
  if (attributes.isSynced?.includes(field)) {
    return getDefaultValue(name, field, defaultAttributes);
  }
  return attributes[field];
};

/**
 * An object that keep tracking of the block instances. Is used for preventing id duplication on action like: create, duplicate, copy on editor page.
 *
 * @type {Object.<string, Set.<string>>}
 */
const localIDs = {};

/**
 * Check if the ID is inside a reusable block or a Query Loop.
 * @param {string} clientId The client id of the block.
 * @return {boolean}
 */
const isSharedBlock = clientId => getBlockParents(clientId)?.some(id => {
  const {
    attributes,
    name
  } = getBlock(id) ?? {};
  return 'core/query' === name || attributes?.ref;
});

/**
 * Check if the ID is empty.
 * @param {string} clientId The client id of the block.
 * @return {boolean}
 */
const isEmptyId = clientId => {
  const {
    attributes
  } = getBlock(clientId) ?? {};
  return attributes?.id === undefined || '' === attributes?.id;
};

/**
 * Generate an Id based on the client id of the block. If the new id is also already used, create a new one using the `uuid`.
 * This might problem of duplicated new ids can be observed in the `Template Library` of the `Section` block when using Neve
 * Reference: https://github.com/Codeinwp/neve/blob/master/gutenberg/blocks/blog/template.json
 * The created block will share the same client Id at the beginning, after refresh a new will be generated and thus the problem will fix itself
 * by creating new id based on the new uniq `clientId`
 *
 * @param {string}       idPrefix The prefix used for generating the block id
 * @param {string}       clientId The block's client id provided by WordPress
 * @param {Set.<string>} idsList  The ids list for the current type of block
 * @return An uniq id instance
 */
const generateUniqIdInstance = (idPrefix, clientId, idsList) => {
  const instanceId = `${idPrefix}${clientId.slice(0, 8)}`;
  if (idsList.has(instanceId)) {
    let newInstanceId = `${idPrefix}${(0,uuid__WEBPACK_IMPORTED_MODULE_6__["default"])().slice(0, 8)}`;
    while (idsList.has(newInstanceId)) {
      newInstanceId = `${idPrefix}${(0,uuid__WEBPACK_IMPORTED_MODULE_6__["default"])().slice(0, 8)}`;
    }
    return newInstanceId;
  }
  return instanceId;
};

/**
 * Generate the id prefix based on the name of the block
 *
 * @param {string} name Name of the block
 * @return {string}
 */
const generatePrefix = name => {
  return `wp-block-${name.replace('/', '-')}-`;
};
const idGenerationStatus = {};

/**
 * THe args definition for the block id generator
 *
 * @typedef {Object} AddBlockIdProps
 * @property {Object}             attributes        The block's attributes provided by WordPress
 * @property {Function}           setAttributes     The block's attributes update function provided by WordPress
 * @property {string}             name              The block's name provided by WordPress
 * @property {string}             clientId          The block's client id provided by WordPress
 * @property {Object}             defaultAttributes The default attributes of the block.
 * @property {(string|undefined)} idPrefix          (Optional) The prefix used for generating the block id
 */

/**
 * Generate an Id for block so that it will create a conlfict with the others.
 * Prevent the duplicate Id for actions like: duplicate, copy
 *
 * @param {AddBlockIdProps} args Block informatin about clientId, attributes, etc
 * @return {Function} A function that clean up the id from the internal list tracking
 * @external addBlockId
 */
const addBlockId = args => {
  const {
    attributes,
    setAttributes,
    clientId,
    idPrefix,
    name,
    defaultAttributes
  } = args;
  idGenerationStatus[clientId] = 'busy';

  /**
   * Create an alias for the global id tracker
   *
   * @type {Array.<string>}
   */
  const blockIDs = window.themeisleGutenberg?.blockIDs ?? [];
  if (attributes === undefined || setAttributes === undefined) {
    return savedId => {
      localIDs[name]?.delete(savedId);
    };
  }

  // Initialize with an empty array the id list for the given block
  localIDs[name] ??= new Set();

  // Check if the ID is already used. EXCLUDE the one that come from reusable blocks.
  const idIsAlreadyUsed = Boolean(attributes.id && localIDs[name].has(attributes.id));
  if (!attributes.id || idIsAlreadyUsed) {
    // Auto-generate idPrefix if not provided
    const prefix = idPrefix || generatePrefix(name);
    const instanceId = generateUniqIdInstance(prefix, clientId, localIDs[name]);
    if (undefined === attributes.id) {
      // If the id is undefined, then the block is newly created, and so we need to apply the Global Defaults
      addGlobalDefaults(attributes, setAttributes, name, defaultAttributes);
    }

    // Save the id in all methods
    localIDs[name].add(instanceId);
    blockIDs.push(instanceId);
    setAttributes({
      id: instanceId
    });
    return savedId => {
      return savedId => {};
    };
  }

  // No conflicts, save the current id only to keep track of it both in local and global mode.
  localIDs[name].add(attributes.id);
  blockIDs.push(attributes.id);
  return savedId => {
    idGenerationStatus[clientId] = 'free';
    localIDs[name].delete(savedId || attributes?.id);
  };
};
const {
  getBlock
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core/block-editor');
const {
  getBlockParents
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core/block-editor');
const {
  updateBlockAttributes
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.dispatch)('core/block-editor');
const {
  getSelectedBlockClientId
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core/block-editor');

/**
 * Create the function that behaves like `setAttributes` using the client id
 *
 * @param {*} clientId The block's client id provided by WordPress
 * @return {Function} Function that mimics `setAttributes`
 */
const updateAttrs = clientId => attr => {
  updateBlockAttributes(clientId, attr);
};

/**
 * THe args definition for the block id generator
 *
 * @typedef {Object} BlockData
 * @property {Object}   attributes    The block's attributes provided by WordPress
 * @property {Function} setAttributes The block's attributes update function provided by WordPress
 * @property {string}   name          The block's name provided by WordPress
 */

/**
 * Extract the attributes, setAttributes, and the name of the block using the data api
 *
 * @param {string} clientId The block's client id provided by WordPress
 * @return {BlockData}
 */
const extractBlockData = clientId => {
  const block = getBlock(clientId);
  return {
    attributes: block?.attributes,
    name: block?.name
  };
};

/**
 * Generate the id attribute for the given block.
 * This function is a simple wrapper around {@link addBlockId}
 *
 * @param {string} clientId          The block's client id provided by WordPress
 * @param {Object} defaultAttributes The default attributes of the block.
 * @return {Function} A function that clean up the id from the internal list tracking
 * @example
 * import defaultAttributes from './attributes'
 * const Block = ({ clientId }) => {
 * 		useEffect(() => {
 * 			const unsubscribe = blockInit(clientId, defaultAttributes);
 * 			return () => unsubscribe( attributes.id );
 * 		}, [ attributes.id ])
 * }
 */
const blockInit = (clientId, defaultAttributes) => {
  if (undefined === idGenerationStatus[clientId] || isEmptyId(clientId)) {
    idGenerationStatus[clientId] = 'free';
  }
  return 'busy' !== idGenerationStatus[clientId] && (!isSharedBlock(clientId) || getSelectedBlockClientId() === clientId) ? addBlockId({
    clientId,
    defaultAttributes,
    setAttributes: updateAttrs(clientId),
    ...extractBlockData(clientId)
  }) : () => {};
};

/**
 * Create a Style node for handling `head` Node change when working in a Tablet, Mobile mode or in FSE Editor.
 *
 * @param {import('./blocks.js').OtterNodeCSSOptions } options The options.
 * @return {import('./blocks.js').OtterNodeCSSReturn} The name of the node and function handler.
 */
const useCSSNode = (options = {}) => {
  const [cssList, setCSSProps] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useState)({
    css: [],
    media: []
  });
  const [settings, setSettings] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useState)({
    node: null,
    cssNodeName: ''
  });

  /**
   *	Set CSS of the node.
   *
   * The `css` and `media` have a 1-1 relationship.
   *
   * @param {string[]} css   A list with CSS code.
   * @param {string[]} media A list CSS media options. One for each CSS item.
   *
   * @example Simple usage.
   *
   * setNodeCSS([
   * 			`.o-review-comparison_buttons span {
   * 				background: ${ attributes.buttonColor } !important;
   * 				color: ${ attributes.buttonText } !important;
   * 			}`
   * ]);
   *
   * @example CSS with Media.
   * setNodeCSS([
   * 			`{
   * 				${ attributes.customTitleFontSize && `--title-text-size: ${ attributes.customTitleFontSize }px;` }
   * 				${ attributes.customDescriptionFontSize && `--description-text-size: ${ attributes.customDescriptionFontSize }px;` }
   * 			}`,
   * 			`{
   * 				${ attributes.customTitleFontSizeTablet && `--title-text-size: ${ attributes.customTitleFontSizeTablet }px;` }
   * 				${ attributes.customDescriptionFontSizeTablet && `--description-text-size: ${ attributes.customDescriptionFontSizeTablet }px;` }
   * 			}`,
   * 			`{
   * 				${ attributes.customTitleFontSizeMobile && `--title-text-size: ${ attributes.customTitleFontSizeMobile }px;` }
   * 				${ attributes.customDescriptionFontSizeMobile && `--description-text-size: ${ attributes.customDescriptionFontSizeMobile }px;` }
   * 			}`
   * 		], [
   * 			'@media ( min-width: 960px )',
   * 			'@media ( min-width: 600px ) and ( max-width: 960px )',
   * 			'@media ( max-width: 600px )'
   * 		]
   * );
   */
  const setNodeCSS = (css = [], media = []) => {
    setCSSProps({
      css,
      media
    });
  };
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {
    let anchor;

    // Create the CSS node.
    const n = document.createElement('style');
    n.type = 'text/css';
    n.setAttribute('data-generator', 'otter-blocks');
    setTimeout(() => {
      // A small delay for the iFrame to properly initialize.
      anchor = parent.document.querySelector('iframe[name="editor-canvas"]')?.contentWindow.document.head || document.head;
      anchor?.appendChild(n);
    }, 500);
    setSettings({
      node: n,
      cssNodeName: options?.selector ?? `o-node-${(0,uuid__WEBPACK_IMPORTED_MODULE_6__["default"])()}`
    });
    return () => {
      anchor?.removeChild(n);
    };
  }, []);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {
    if (settings.node && settings.cssNodeName && cssList.media !== undefined) {
      // Create the CSS text by combining the list of CSS items with their media..
      const text = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.zip)(cssList.css, cssList.media).map(x => {
        const [css, media] = x;
        if (media) {
          return `${media} { \n\t .${settings.cssNodeName}${options?.appendToRoot ? '' : ' '}${css} }`;
        }
        return `.${settings.cssNodeName}${options?.appendToRoot ? '' : ' '}${css}`;
      }).join('\n') || '';
      settings.node.textContent = text;
    }
  }, [cssList.css, cssList.media, settings.node, settings.cssNodeName]);
  return [settings.cssNodeName, setNodeCSS, setSettings];
};

/**
 * Get the iframe of the editor. Use in FSE or Mobile/Tablet Preview for Page/Post.
 */
const getEditorIframe = () => document.querySelector('iframe[name^="editor-canvas"]');
const pendingIframeScriptCallbacks = new Map();
const pendingIframeScriptInflight = new Set();

/**
 * Run all queued callbacks for a script copied into the editor iframe.
 *
 * @param {string} assetSelectorId The id selector of the asset.
 */
const flushIframeScriptCallbacks = assetSelectorId => {
  const queue = pendingIframeScriptCallbacks.get(assetSelectorId);
  if (!queue?.length) {
    return;
  }
  pendingIframeScriptCallbacks.delete(assetSelectorId);
  queue.forEach(cb => cb());
};

/**
 * Queue a callback until an iframe script asset has finished loading.
 *
 * @param {string}   assetSelectorId The id selector of the asset.
 * @param {Function} callback        The callback.
 */
const queueIframeScriptCallback = (assetSelectorId, callback) => {
  if (!pendingIframeScriptCallbacks.has(assetSelectorId)) {
    pendingIframeScriptCallbacks.set(assetSelectorId, []);
  }
  pendingIframeScriptCallbacks.get(assetSelectorId).push(callback);
};

/**
 * Whether a copied iframe script node has finished loading.
 *
 * @param {HTMLScriptElement} scriptEl The script element.
 * @return {boolean} True when the script is ready.
 */
const isIframeScriptLoaded = scriptEl => {
  return Boolean(scriptEl.complete || 'complete' === scriptEl.readyState || 'loaded' === scriptEl.readyState);
};

/**
 * Whether a copied iframe script has finished executing in the iframe window.
 *
 * @param {Window}                 iframeWindow    The iframe window.
 * @param {string}                 assetSelectorId The id selector of the asset.
 * @param {HTMLScriptElement|null} scriptEl        The copied script element.
 * @return {boolean} True when the asset is ready to use.
 */
const isIframeScriptReady = (iframeWindow, assetSelectorId, scriptEl) => {
  if ('#leaflet-js' === assetSelectorId) {
    return Boolean(iframeWindow?.L);
  }
  return Boolean(scriptEl && isIframeScriptLoaded(scriptEl));
};

/**
 * Wait until a copied iframe script is ready, then flush queued callbacks.
 *
 * @param {string}                 assetSelectorId The id selector of the asset.
 * @param {Window}                 iframeWindow    The iframe window.
 * @param {HTMLScriptElement|null} scriptEl        The copied script element.
 */
const waitForIframeScriptReady = (assetSelectorId, iframeWindow, scriptEl) => {
  const tryFlush = () => {
    if (isIframeScriptReady(iframeWindow, assetSelectorId, scriptEl)) {
      flushIframeScriptCallbacks(assetSelectorId);
      return true;
    }
    return false;
  };
  if (tryFlush()) {
    return;
  }
  if (scriptEl && !scriptEl.dataset.otterIframeCallbackBound) {
    scriptEl.dataset.otterIframeCallbackBound = 'true';
    scriptEl.addEventListener('load', tryFlush);
  }
  let attempts = 0;
  const poll = () => {
    if (!pendingIframeScriptCallbacks.has(assetSelectorId)) {
      return;
    }
    if (tryFlush() || 300 < attempts++) {
      return;
    }
    requestAnimationFrame(poll);
  };
  requestAnimationFrame(poll);
};

/**
 * Copy the JS node asset from main document to the iframe.
 *
 * WordPress can inject scripts into the canvas iframe natively: anything
 * enqueued on the `enqueue_block_assets` hook is collected by
 * `_wp_get_iframed_editor_assets()` and printed inside the iframe at boot
 * (see the `is_admin()` branch in `inc/class-registration.php`, which already
 * uses this for editor styles). We deliberately do NOT use that for the heavy
 * third-party scripts (Leaflet ~150KB, Lottie player ~280KB, Glide): the
 * iframe assets are resolved once, server-side, on editor load, so the native
 * route would ship them in every editor session even when no such block is
 * used. Copying on demand from the parent document keeps them lazy, at the
 * cost of the load/readiness tracking below. If that trade-off ever flips,
 * delete this machinery and enqueue the scripts on `enqueue_block_assets`.
 *
 * @param {string}   assetSelectorId The id of the asset.
 * @param {Function} callback        The callback.
 */
const copyScriptAssetToIframe = (assetSelectorId, callback) => {
  const iframe = getEditorIframe();
  callback ??= () => {};
  if (!iframe?.contentWindow?.document) {
    return;
  }
  const iframeWindow = iframe.contentWindow;
  const iframeDocument = iframeWindow.document;
  const existing = iframeDocument.querySelector(assetSelectorId);
  if (existing) {
    if (isIframeScriptReady(iframeWindow, assetSelectorId, existing)) {
      callback?.();
    } else {
      queueIframeScriptCallback(assetSelectorId, callback);
      waitForIframeScriptReady(assetSelectorId, iframeWindow, existing);
    }
    return;
  }
  if (pendingIframeScriptInflight.has(assetSelectorId)) {
    queueIframeScriptCallback(assetSelectorId, callback);
    return;
  }
  const original = document.querySelector(assetSelectorId);
  if (!Boolean(original)) {
    console.warn(`Selector: ${assetSelectorId} is invalid.`);
    return;
  }
  pendingIframeScriptInflight.add(assetSelectorId);
  queueIframeScriptCallback(assetSelectorId, callback);
  const script = iframeDocument.createElement('script');
  script.onload = () => {
    pendingIframeScriptInflight.delete(assetSelectorId);
    waitForIframeScriptReady(assetSelectorId, iframeWindow, script);
  };
  script.onerror = () => {
    pendingIframeScriptInflight.delete(assetSelectorId);
    pendingIframeScriptCallbacks.delete(assetSelectorId);
  };
  script.id = original.id;
  script.type = 'text/javascript';
  iframeDocument.head.appendChild(script);
  script.src = original.src;
};

/**
 * Mount the shared Otter icon gradient definition into a document.
 *
 * Block icons in the iframed editor (`apiVersion: 3`) reference
 * `fill: url(#o-icon-fill)` from CSS, so the gradient must live in the same
 * document as the SVG icons.
 *
 * @param {Document} ownerDocument The document that should own the gradient.
 */
const mountIconGradient = ownerDocument => {
  if (!ownerDocument?.body || ownerDocument.querySelector('svg.o-icon-gradient')) {
    return;
  }
  const gradient = ownerDocument.createElement('div');
  gradient.setAttribute('style', 'height: 0; width: 0; overflow: hidden;');
  gradient.setAttribute('aria-hidden', 'true');
  gradient.innerHTML = `
		<svg xmlns="http://www.w3.org/2000/svg" class="o-icon-gradient" height="0" width="0" style="opacity: 0">
			<defs>
				<linearGradient id="o-icon-fill">
					<stop offset="0%" stop-color="#ED6F57" stop-opacity="1"></stop>
					<stop offset="100%" stop-color="#F22B6C" stop-opacity="1"></stop>
				</linearGradient>
			</defs>
		</svg>
	`.trim();
  ownerDocument.body.appendChild(gradient);
};

/**
 * Ensure the Otter icon gradient exists in the editor and canvas iframe.
 */
const mountIconGradientForEditor = () => {
  mountIconGradient(document);
  const iframe = getEditorIframe();
  if (iframe?.contentDocument) {
    mountIconGradient(iframe.contentDocument);
  }
};

/**
 * Keep the icon gradient available when the editor canvas iframe appears.
 */
const watchEditorIframeIconGradient = () => {
  mountIconGradientForEditor();
  const observer = new MutationObserver(() => {
    mountIconGradientForEditor();
  });
  observer.observe(document.body, {
    childList: true,
    subtree: true
  });
  document.addEventListener('load', event => {
    if (event.target?.name?.startsWith?.('editor-canvas')) {
      mountIconGradientForEditor();
    }
  }, true);
};

/**
 * Get the document that owns a block's DOM element.
 *
 * In the iframed editor (`apiVersion: 3`) the block lives inside the editor
 * canvas iframe, so its `ownerDocument` is the iframe document — not the
 * top-level `document`. Reading from the element's `ownerDocument` is the
 * pattern recommended by the WordPress block migration guide and is correct in
 * nested, FSE and Tablet/Mobile preview contexts too. Falls back to the
 * top-level `document` when no element is available yet (e.g. before the ref is
 * attached) or when the editor is not iframed.
 *
 * @param {HTMLElement|{current: ?HTMLElement}|null} [refOrElement] The block element or a ref to it.
 * @return {Document} The document that owns the element.
 */
const getBlockDocument = refOrElement => {
  const element = refOrElement?.current ?? refOrElement;
  return element?.ownerDocument ?? document;
};

/**
 * Get the window that owns a block's DOM element.
 *
 * Companion to {@link getBlockDocument}. Use this to read editor globals (e.g.
 * `themeisleGutenberg`), browser APIs (`location`, `getComputedStyle`) or
 * third-party libraries from within the iframed editor instead of reaching for
 * the top-level `window`.
 *
 * @param {HTMLElement|{current: ?HTMLElement}|null} [refOrElement] The block element or a ref to it.
 * @return {Window} The window that owns the element.
 */
const getBlockWindow = refOrElement => {
  return getBlockDocument(refOrElement).defaultView ?? window;
};

/**
 * Run an effect against a block's DOM element and its owning document/window.
 *
 * Thin wrapper over `useRefEffect` that hands the callback the element plus the
 * `ownerDocument`/`defaultView` it belongs to, so third-party libraries (Glide,
 * Leaflet, Google Maps, …) initialise against the iframed editor's document
 * rather than the top-level one. Return a cleanup function as usual. Spread the
 * returned ref callback onto the target element (it can be merged with other
 * refs via `@wordpress/compose`'s `useMergeRefs`).
 *
 * @param {(element: HTMLElement, ownerDocument: Document, ownerWindow: Window) => (void | (() => void))} callback     The setup callback.
 * @param {Array}                                                                                         dependencies Effect dependencies, forwarded to `useRefEffect`.
 * @return {Function} A ref callback to attach to the target element.
 */
const useBlockElementEffect = (callback, dependencies) => {
  return (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_5__.useRefEffect)(element => {
    const ownerDocument = element?.ownerDocument ?? document;
    const ownerWindow = ownerDocument.defaultView ?? window;
    return callback(element, ownerDocument, ownerWindow);
  }, dependencies);
};
const buildGetSyncValue = (name, attributes, defaultAttributes) => {
  return field => {
    if (attributes?.isSynced?.includes(field)) {
      return getDefaultValueByField({
        name,
        field,
        defaultAttributes,
        attributes
      });
    }
    return attributes?.[field];
  };
};

/**
 * Get the reusable block content by id.
 *
 * @param {string} id The id of the reusable block.
 * @return {BlockInstance[]|*[]} The reusable block content.
 */
function pullReusableBlockContentById(id) {
  const reusableBlocks = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core').getEntityRecords('postType', 'wp_block');
  if (!reusableBlocks) {
    return [];
  }
  const reusableBlock = reusableBlocks.find(block => block.id === id);
  if (!reusableBlock || undefined === reusableBlock.content) {
    return [];
  }
  return (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.parse)(reusableBlock.content.raw ?? reusableBlock.content);
}

/**
 * Insert a block below the given block.
 *
 * @param {string} clientId The client id of the reference block.
 * @param {any}    block    The block to insert.
 * @see https://github.com/WordPress/gutenberg/blob/e448fa70163ce936eae9aec454ca99f5a6287f15/packages/block-editor/src/store/actions.js#L1604-L1622
 */
function insertBlockBelow(clientId, block) {
  const {
    getBlockRootClientId,
    getTemplateLock,
    getBlockIndex
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core/block-editor');
  const {
    insertBlock,
    insertBlocks
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.dispatch)('core/block-editor');
  const rootClientId = getBlockRootClientId(clientId);
  const isLocked = getTemplateLock(rootClientId);
  if (isLocked) {
    return;
  }
  const index = getBlockIndex(clientId, rootClientId);

  // If the block is an array of blocks, insert them all.
  if (Array.isArray(block)) {
    return insertBlocks(block, index + 1, rootClientId);
  }
  insertBlock(block, index + 1, rootClientId);
}
class GlobalStateMemory {
  constructor() {
    this.states = Object.create(null);
    window.addEventListener('message', this.handleMessage.bind(this));
  }

  /**
   * Handle the message event.
   *
   * @param {MessageEvent} event The message event.
   */
  handleMessage(event) {
    if ('object' === typeof event.data && null !== event.data && 'otterMemoryState' in event.data) {
      const {
        key,
        value,
        location,
        action
      } = event.data.otterMemoryState;
      if ('set' === action) {
        if (this.states[location] === undefined) {
          this.states[location] = Object.create(null);
        }
        this.states[location][key] = value;
      }
      if ('get' === action) {
        (window.parent !== undefined ? window?.parent : window).postMessage?.({
          otterMemoryState: {
            key,
            location,
            value: this.getState(location, key),
            action: 'value'
          }
        });
      }
    }
  }

  /**
   * Get the state value.
   * @param {string} location The location of the state.
   * @param {string} key      The key of the state.
   * @return {undefined|*}
   */
  getState(location, key) {
    if (this.states[location] === undefined) {
      return undefined;
    }
    return this.states[location][key];
  }
}

/**
 * The global state memory.
 *
 * @param {string} key          The key of the state.
 * @param {any}    defaultValue The default value of the state.
 * @return {unknown[]}
 */
function useTabSwitch(key, defaultValue) {
  const location = 'tab';
  const [tab, setTab] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useState)(defaultValue);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {
    /**
     * Retrieve the initial state from the parent via bi-directional communication.
     * @param event
     */
    const listener = event => {
      if ('object' === typeof event.data && null !== event.data && 'otterMemoryState' in event.data) {
        const {
          key: componentKey,
          value,
          location,
          action
        } = event.data.otterMemoryState;
        if ('tab' === location && key === componentKey && 'value' === action) {
          setTab(value ?? defaultValue);
        }
      }
    };
    window.addEventListener('message', listener);

    // Request the state from the parent.
    (window.parent !== undefined ? window?.parent : window).postMessage({
      otterMemoryState: {
        key,
        location,
        action: 'get'
      }
    });
    return () => {
      window.removeEventListener('message', listener);
    };
  }, []);
  return [tab, value => {
    /**
     * Update the state in the parent.
     */
    (window.parent !== undefined ? window?.parent : window).postMessage?.({
      otterMemoryState: {
        key,
        location,
        value,
        action: 'set'
      }
    });
    setTab(value);
  }];
}

/**
 * Get all registered patterns.
 *
 * @return {Array.<{name: string, title: string, content: string, categories: string[], source: string | undefined, blockTypes: string[]|undefined}>}
 */
function pullPatterns() {
  return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core')?.getBlockPatterns() ?? [];
}

/**
 * Get all registered patterns that are part of the Otter Blocks category.
 *
 * @return {{name: string, title: string, content: string, categories: string[], source: (string|undefined), blockTypes: (string[]|undefined)}[]}
 */
function pullOtterPatterns() {
  return pullPatterns().filter(pattern => pattern?.name?.startsWith('otter-blocks/') || pattern?.name?.startsWith('otter-pro/'));
}

/***/ }),

/***/ "./src/blocks/helpers/icons.js":
/*!*************************************!*\
  !*** ./src/blocks/helpers/icons.js ***!
  \*************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AIGenerationIcon: function() { return /* binding */ AIGenerationIcon; },
/* harmony export */   StarFilled: function() { return /* binding */ StarFilled; },
/* harmony export */   StarHalf: function() { return /* binding */ StarHalf; },
/* harmony export */   accordionIcon: function() { return /* binding */ accordionIcon; },
/* harmony export */   accordionItemIcon: function() { return /* binding */ accordionItemIcon; },
/* harmony export */   aiGeneration: function() { return /* binding */ aiGeneration; },
/* harmony export */   aiLayoutGeneratorIcon: function() { return /* binding */ aiLayoutGeneratorIcon; },
/* harmony export */   alignBottom: function() { return /* binding */ alignBottom; },
/* harmony export */   alignCenter: function() { return /* binding */ alignCenter; },
/* harmony export */   alignTop: function() { return /* binding */ alignTop; },
/* harmony export */   businessHoursIcon: function() { return /* binding */ businessHoursIcon; },
/* harmony export */   buttonIcon: function() { return /* binding */ buttonIcon; },
/* harmony export */   buttonsIcon: function() { return /* binding */ buttonsIcon; },
/* harmony export */   cartIcon: function() { return /* binding */ cartIcon; },
/* harmony export */   check: function() { return /* binding */ check; },
/* harmony export */   circleIcon: function() { return /* binding */ circleIcon; },
/* harmony export */   close: function() { return /* binding */ close; },
/* harmony export */   cols112: function() { return /* binding */ cols112; },
/* harmony export */   cols12: function() { return /* binding */ cols12; },
/* harmony export */   cols121: function() { return /* binding */ cols121; },
/* harmony export */   cols131: function() { return /* binding */ cols131; },
/* harmony export */   cols21: function() { return /* binding */ cols21; },
/* harmony export */   cols211: function() { return /* binding */ cols211; },
/* harmony export */   cols2Equal: function() { return /* binding */ cols2Equal; },
/* harmony export */   cols2Grid: function() { return /* binding */ cols2Grid; },
/* harmony export */   cols3Equal: function() { return /* binding */ cols3Equal; },
/* harmony export */   cols3Grid: function() { return /* binding */ cols3Grid; },
/* harmony export */   cols4Equal: function() { return /* binding */ cols4Equal; },
/* harmony export */   cols5Equal: function() { return /* binding */ cols5Equal; },
/* harmony export */   cols6Equal: function() { return /* binding */ cols6Equal; },
/* harmony export */   colsCollapsed: function() { return /* binding */ colsCollapsed; },
/* harmony export */   colsFull: function() { return /* binding */ colsFull; },
/* harmony export */   columnIcon: function() { return /* binding */ columnIcon; },
/* harmony export */   columnsIcon: function() { return /* binding */ columnsIcon; },
/* harmony export */   comparisonTableIcon: function() { return /* binding */ comparisonTableIcon; },
/* harmony export */   contentAiGenerationIcon: function() { return /* binding */ contentAiGenerationIcon; },
/* harmony export */   countdownIcon: function() { return /* binding */ countdownIcon; },
/* harmony export */   faIcon: function() { return /* binding */ faIcon; },
/* harmony export */   flipIcon: function() { return /* binding */ flipIcon; },
/* harmony export */   formAiGeneration: function() { return /* binding */ formAiGeneration; },
/* harmony export */   formFieldIcon: function() { return /* binding */ formFieldIcon; },
/* harmony export */   formIcon: function() { return /* binding */ formIcon; },
/* harmony export */   googleMapIcon: function() { return /* binding */ googleMapIcon; },
/* harmony export */   headingIcon: function() { return /* binding */ headingIcon; },
/* harmony export */   heartFilledIcon: function() { return /* binding */ heartFilledIcon; },
/* harmony export */   heartIcon: function() { return /* binding */ heartIcon; },
/* harmony export */   iconListIcon: function() { return /* binding */ iconListIcon; },
/* harmony export */   iconListItemIcon: function() { return /* binding */ iconListItemIcon; },
/* harmony export */   lottieIcon: function() { return /* binding */ lottieIcon; },
/* harmony export */   mapIcon: function() { return /* binding */ mapIcon; },
/* harmony export */   otterIcon: function() { return /* binding */ otterIcon; },
/* harmony export */   otterIconColored: function() { return /* binding */ otterIconColored; },
/* harmony export */   otterMascot: function() { return /* binding */ otterMascot; },
/* harmony export */   popupIcon: function() { return /* binding */ popupIcon; },
/* harmony export */   popupScratch: function() { return /* binding */ popupScratch; },
/* harmony export */   popupWithForm: function() { return /* binding */ popupWithForm; },
/* harmony export */   popupWithImageAndText: function() { return /* binding */ popupWithImageAndText; },
/* harmony export */   postsIcon: function() { return /* binding */ postsIcon; },
/* harmony export */   progressIcon: function() { return /* binding */ progressIcon; },
/* harmony export */   reviewIcon: function() { return /* binding */ reviewIcon; },
/* harmony export */   rowsCollapsed: function() { return /* binding */ rowsCollapsed; },
/* harmony export */   searchIcon: function() { return /* binding */ searchIcon; },
/* harmony export */   sharingIcon: function() { return /* binding */ sharingIcon; },
/* harmony export */   sliderIcon: function() { return /* binding */ sliderIcon; },
/* harmony export */   tabsIcon: function() { return /* binding */ tabsIcon; },
/* harmony export */   tabsItemIcon: function() { return /* binding */ tabsItemIcon; },
/* harmony export */   timelineIcon: function() { return /* binding */ timelineIcon; }
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__);
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



const otterIcon = ({
  className
}) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 29 32",
    width: "20",
    height: "20",
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('otter-icon', className),
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M19.831 7.877c0.001-0.003 0.001-0.005 0.001-0.009s-0-0.006-0.001-0.009l0 0c-0.047-0.081-0.092-0.164-0.132-0.247l-0.057-0.115c-0.277-0.498-0.381-0.99-1.033-1.064h-0.045c-0.001 0-0.002 0-0.003 0-0.486 0-0.883 0.382-0.908 0.862l-0 0.002c0.674 0.126 1.252 0.278 1.813 0.468l-0.092-0.027 0.283 0.096 0.147 0.053s0.028 0 0.028-0.011z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M23.982 13.574c-0.008-2.41-0.14-4.778-0.39-7.112l0.026 0.299 0.070-0.019c0.459-0.139 0.787-0.558 0.787-1.053 0-0.479-0.307-0.887-0.735-1.037l-0.008-0.002h-0.026c-0.479-0.164-0.874-0.468-1.149-0.861l-0.005-0.007c-2.7-3.96-8.252-3.781-8.252-3.781s-5.55-0.179-8.25 3.781c-0.28 0.401-0.676 0.704-1.14 0.862l-0.016 0.005c-0.441 0.148-0.754 0.557-0.754 1.040 0 0.009 0 0.017 0 0.026l-0-0.001c-0 0.010-0.001 0.022-0.001 0.034 0 0.493 0.335 0.907 0.789 1.029l0.007 0.002 0.045 0.011c-0.224 2.034-0.356 4.403-0.364 6.801l-0 0.012s-9.493 13.012-1.277 17.515c4.733 2.431 6.881-0.769 6.881-0.769s1.397-1.661-1.784-3.355v-4.609c0.006-0.344 0.282-0.621 0.625-0.628h1.212v-0.59c0-0.275 0.223-0.498 0.498-0.498v0h1.665c0.274 0.001 0.496 0.224 0.496 0.498 0 0 0 0 0 0v0 0.59h2.721v-0.59c0-0.275 0.223-0.498 0.498-0.498v0h1.665c0.271 0.005 0.49 0.226 0.49 0.498 0 0 0 0 0 0v0 0.59h1.209c0 0 0 0 0 0 0.349 0 0.633 0.28 0.639 0.627v4.584c-3.193 1.703-1.784 3.355-1.784 3.355s2.148 3.193 6.879 0.769c8.222-4.503-1.269-17.515-1.269-17.515zM22.586 10.261c-0.097 1.461-0.67 2.772-1.563 3.797l0.007-0.008c-1.703 2.010-4.407 3.249-6.721 4.432v0c-2.325-1.177-5.026-2.416-6.736-4.432-0.883-1.019-1.455-2.329-1.555-3.769l-0.001-0.020c-0.126-2.22 0.583-5.929 3.044-6.74 2.416-0.788 3.947 1.288 4.494 2.227 0.152 0.258 0.429 0.428 0.745 0.428s0.593-0.17 0.743-0.424l0.002-0.004c0.551-0.932 2.080-3.008 4.494-2.22 2.474 0.805 3.174 4.513 3.046 6.734z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M19.463 10.087h-0.028c-0.192 0.026-0.121 0.251-0.047 0.356 0.254 0.349 0.407 0.787 0.407 1.26 0 0.006-0 0.012-0 0.018v-0.001c-0.001 0.469-0.255 0.878-0.633 1.1l-0.006 0.003c-0.739 0.426-1.377-0.145-2.054-0.398-0.72-0.269-1.552-0.434-2.42-0.455l-0.009-0v-1.033c1.020-0.233 1.894-0.76 2.551-1.486l0.004-0.004c0.151-0.163 0.244-0.383 0.244-0.623 0-0.316-0.159-0.595-0.402-0.76l-0.003-0.002c-0.768-0.551-1.728-0.881-2.764-0.881-1.054 0-2.029 0.341-2.819 0.92l0.013-0.009c-0.224 0.166-0.367 0.429-0.367 0.726 0 0.226 0.083 0.433 0.221 0.591l-0.001-0.001c0.665 0.751 1.55 1.295 2.553 1.53l0.033 0.007v1.050c-0.742 0.021-1.448 0.14-2.118 0.343l0.057-0.015c-0.341 0.103-0.631 0.219-0.908 0.358l0.033-0.015c-0.519 0.26-1.037 0.436-1.58 0.121-0.371-0.213-0.617-0.607-0.617-1.058 0-0.002 0-0.004 0-0.007v0c0-0.002 0-0.004 0-0.007 0-0.47 0.153-0.905 0.411-1.257l-0.004 0.006c0.047-0.068 0.089-0.17 0.026-0.241s-0.189 0-0.27 0.030c-0.189 0.099-0.348 0.227-0.479 0.381l-0.002 0.002c-0.245 0.296-0.394 0.679-0.394 1.097 0 0.004 0 0.007 0 0.011v-0.001c0.008 0.706 0.393 1.321 0.964 1.651l0.009 0.005c0.296 0.178 0.654 0.283 1.036 0.283 0.364 0 0.706-0.095 1.001-0.263l-0.010 0.005c0.877-0.461 1.917-0.731 3.019-0.731 0.069 0 0.137 0.001 0.206 0.003l-0.010-0h0.030c1.277 0 2.382 0.266 3.266 0.775 0.27 0.159 0.594 0.253 0.94 0.253 0.001 0 0.002 0 0.003 0h-0c0.355-0.002 0.688-0.098 0.974-0.265l-0.009 0.005c0.606-0.357 1.007-1.007 1.007-1.75 0-0.001 0-0.003 0-0.004v0c0.001-0.026 0.002-0.056 0.002-0.086 0-0.625-0.34-1.171-0.846-1.462l-0.008-0.004c-0.056-0.040-0.125-0.065-0.199-0.070l-0.001-0zM13.101 8.831c-0.238 0.213-0.468 0.581-0.832 0.345-0.061-0.041-0.114-0.086-0.161-0.136l-0-0c-0.063-0.063-0.101-0.15-0.101-0.247 0-0.133 0.074-0.248 0.182-0.308l0.002-0.001c0.594-0.309 1.203-0.543 1.884-0.49-0.324 0.281-0.649 0.56-0.973 0.837z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M15.89 13.578c-0.367 0.483-0.941 0.792-1.588 0.792s-1.221-0.309-1.585-0.787l-0.004-0.005c-0.064-0.103-0.177-0.171-0.306-0.171-0.199 0-0.36 0.161-0.36 0.36 0 0.091 0.034 0.174 0.090 0.238l-0-0c0.499 0.659 1.283 1.080 2.164 1.080s1.665-0.421 2.159-1.073l0.005-0.007c0.043-0.059 0.068-0.132 0.068-0.212 0-0.116-0.055-0.22-0.14-0.286l-0.001-0.001c-0.059-0.045-0.134-0.072-0.215-0.072-0.117 0-0.221 0.056-0.286 0.143l-0.001 0.001z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M18.507 11.707c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M17.389 11.049c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M10.798 11.707c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M11.918 11.049c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M8.773 7.877c-0.001-0.003-0.002-0.005-0.002-0.009s0.001-0.006 0.002-0.009l-0 0c0.047-0.081 0.089-0.164 0.132-0.247 0.019-0.038 0.036-0.079 0.057-0.115 0.275-0.498 0.379-0.99 1.033-1.064h0.045c0 0 0.001 0 0.001 0 0.487 0 0.884 0.382 0.91 0.862l0 0.002c-0.678 0.124-1.261 0.277-1.827 0.468l0.092-0.027-0.275 0.096-0.1 0.036-0.045 0.017s-0.023 0-0.023-0.011z"
    })]
  });
};
const otterIconColored = ({
  className
}) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    xmlns: "http://www.w3.org/2000/svg",
    width: "20",
    height: "20",
    viewBox: "0 0 20 20",
    fill: "none",
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('otter-icon', className),
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.G, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M19.9877 9.42008C19.6369 9.61724 19.3785 10.0999 19.1922 10.38C19.3704 10.3719 19.6396 10.38 19.9061 10.3474C19.5651 12.7604 18.4405 14.9944 16.7053 16.7054C15.6732 17.7477 14.448 18.5791 13.098 19.1529C10.5336 20.2407 7.70811 20.2883 5.31094 19.2576C4.29167 18.8247 3.36554 18.1991 2.58336 17.4152C1.21259 16.0355 0.334714 14.2424 0.0855683 12.3136C0.478525 12.149 0.765424 11.6092 0.961223 11.3101C0.642655 11.3103 0.324535 11.334 0.00942443 11.3808C-0.100712 8.55259 1.00745 5.57482 3.29177 3.29186C6.55508 0.0285557 11.2379 -0.836221 14.8779 0.823987C14.7269 1.02115 14.6059 1.2319 14.4999 1.38827C14.7936 1.37195 15.3157 1.39643 15.6978 1.2523C16.0056 1.43293 16.3009 1.63418 16.5816 1.85465C16.515 1.95935 16.4456 2.05589 16.398 2.13747C16.534 2.13747 16.7135 2.13747 16.9106 2.12115C17.0833 2.26664 17.2533 2.42301 17.4151 2.58481C19.248 4.41906 20.0978 6.89102 19.9877 9.42008Z",
        fill: "#E8D3C9"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M4.32515 5.25665C3.92192 6.11059 3.77512 7.06318 3.90255 7.99889C4.02998 8.93461 4.42617 9.81325 5.04307 10.5283C5.78956 11.3645 6.80118 11.907 7.79105 12.4318C8.1473 12.6208 8.51714 12.8153 8.92097 12.8506C9.44718 12.8969 9.95843 12.6671 10.4167 12.406C11.5996 11.7357 12.6615 10.8016 13.3047 9.60365C13.9478 8.40574 14.1314 6.92774 13.6174 5.66864C13.3523 5.04048 12.9456 4.48207 12.429 4.03699C11.486 3.2291 10.2823 2.79004 9.04063 2.80101C8.43429 2.81396 7.83536 2.93698 7.273 3.16406C6.72912 3.36529 6.19611 3.39385 5.69166 3.70794C5.10339 4.08984 4.63083 4.62542 4.32515 5.25665Z",
        fill: "#D6AF99"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M13.1008 19.1488C12.6689 19.3318 12.2256 19.4867 11.7738 19.6125C11.5236 19.6832 11.2707 19.7485 11.0137 19.7933C10.9838 19.7933 10.9579 19.8042 10.928 19.8124C10.9172 19.811 10.9062 19.811 10.8954 19.8124C10.0118 19.9817 9.10938 20.0306 8.21268 19.9578C7.92865 19.9366 7.64591 19.9008 7.36558 19.8504C7.31397 19.8449 7.26269 19.8368 7.21193 19.826H7.19561L7.07732 19.8015C6.83665 19.7525 6.60006 19.6941 6.36483 19.6261C6.00688 19.5234 5.65582 19.398 5.31377 19.2508C5.24487 18.9778 5.20971 18.6975 5.20907 18.4159C5.15469 17.2072 5.10302 16.0024 5.05271 14.7937C5.01716 14.4481 5.04154 14.0989 5.12477 13.7616C5.18474 13.5696 5.28262 13.3916 5.41263 13.238C5.54264 13.0845 5.70213 12.9587 5.88165 12.8679C6.06118 12.7771 6.2571 12.7233 6.4578 12.7096C6.65851 12.6959 6.85992 12.7226 7.05012 12.7881C8.63555 12.5297 10.2726 12.2809 11.8336 12.6521C12.1926 12.7378 12.5692 12.8751 12.7772 13.181C12.9472 13.434 12.9689 13.7521 12.988 14.0567C13.0605 15.3104 13.133 16.5649 13.2055 17.8204C13.2327 18.2759 13.2545 18.7368 13.1008 19.1488Z",
        fill: "#F4816B"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M12.6452 8.15827C12.7187 7.47841 12.0361 6.85431 11.3535 6.93453C11.1316 6.97029 10.9165 7.04 10.7158 7.14121C10.5294 7.21597 10.3327 7.26182 10.1325 7.27718C9.81839 7.34244 9.5179 7.47841 9.2038 7.49745C8.93186 7.52056 8.57698 7.5532 8.31183 7.46346L7.57351 7.21599L7.40218 7.15344C7.2061 7.06715 6.99944 7.00725 6.7876 6.97532C6.01528 6.89782 5.30551 7.71228 5.5489 8.471C5.79229 9.22972 6.72777 9.36841 7.39403 9.18621C7.67413 9.11007 7.93791 8.99313 8.22345 8.92651C8.711 8.83154 9.21264 8.83523 9.69874 8.93739C10.1869 9.02169 10.6669 9.1495 11.1577 9.20933C11.7981 9.29363 12.4916 8.91563 12.6289 8.24801C12.6344 8.22082 12.6452 8.1909 12.6452 8.15827Z",
        fill: "#E8D3C9"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M8.21258 15.6802V19.966C7.92855 19.9448 7.64581 19.9089 7.36548 19.8586V15.6802C7.3657 15.5064 7.40363 15.3347 7.47663 15.1769C7.54964 15.0192 7.65599 14.8791 7.78835 14.7665C7.9211 14.8789 8.0278 15.0189 8.10106 15.1766C8.17432 15.3344 8.21237 15.5062 8.21258 15.6802Z",
        fill: "#D87768"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M11.7737 17.3839V19.6152C11.5235 19.6859 11.2706 19.7512 11.0136 19.7961C10.9837 19.7961 10.9579 19.8069 10.928 19.8151V17.3839C10.9282 16.9735 11.0787 16.5774 11.3508 16.2703C11.6236 16.5771 11.7741 16.9734 11.7737 17.3839Z",
        fill: "#F59085"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M7.89865 6.5035C7.82719 6.54284 7.76612 6.59863 7.72049 6.66625C7.67485 6.73387 7.64597 6.81138 7.63623 6.89238C7.6383 6.94844 7.65369 7.00321 7.68111 7.05215C7.70854 7.10109 7.74722 7.1428 7.79396 7.17384C7.88831 7.23528 7.99969 7.26527 8.11213 7.2595C8.30157 7.24621 8.4826 7.17608 8.63154 7.05826C8.78032 6.94126 8.91698 6.80962 9.03945 6.6653C9.0742 6.63585 9.10242 6.59948 9.12232 6.55851C9.14222 6.51754 9.15336 6.47287 9.15503 6.42736C9.12783 6.20164 8.78791 6.24379 8.62746 6.24243C8.36436 6.257 8.11116 6.3477 7.89865 6.5035Z",
        fill: "#E8D3C9"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M12.0756 6.35666C12.0763 6.35353 12.0763 6.35027 12.0756 6.34714C12.0498 6.30227 12.0253 6.2574 12.0035 6.21117C11.9926 6.19077 11.9831 6.16902 11.9709 6.14862C11.82 5.87668 11.7629 5.60473 11.4066 5.56666H11.3808C11.2524 5.56576 11.1286 5.61423 11.035 5.70204C10.9413 5.78986 10.885 5.91031 10.8777 6.03848C11.1999 6.09813 11.5179 6.17898 11.8295 6.28051L11.9845 6.33354L12.0389 6.35258L12.0647 6.36209C12.0658 6.36252 12.0669 6.36271 12.0681 6.36266C12.0692 6.36261 12.0703 6.36232 12.0714 6.36181C12.0724 6.36129 12.0733 6.36057 12.074 6.35968C12.0748 6.35879 12.0753 6.35776 12.0756 6.35666Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M14.3489 9.47719C14.3489 9.47719 14.3489 7.40363 14.1504 5.75023C14.1631 5.74517 14.1763 5.74153 14.1898 5.73935C14.3124 5.70316 14.4203 5.62893 14.4979 5.52739C14.5755 5.42585 14.6188 5.30226 14.6215 5.17449C14.6242 5.04673 14.5862 4.92141 14.513 4.81665C14.4398 4.71189 14.3352 4.63313 14.2143 4.59175H14.198C13.942 4.50432 13.7209 4.33703 13.5671 4.11449C12.8791 3.10015 11.8498 2.58346 10.9496 2.31831C10.3317 2.13562 9.69042 2.04401 9.04604 2.04637C8.35768 2.04746 7.67354 2.15384 7.01735 2.36182C6.14986 2.63377 5.18174 3.15182 4.52364 4.11721C4.36993 4.33921 4.14865 4.50564 3.89274 4.59175C3.77192 4.63227 3.6672 4.71031 3.59382 4.8145C3.52045 4.91869 3.48226 5.04358 3.48482 5.17099C3.48245 5.30229 3.52435 5.43057 3.60378 5.53516C3.6832 5.63974 3.79553 5.71454 3.92265 5.74751L3.94712 5.75566C3.88186 6.28187 3.83835 6.84343 3.81115 7.37916C3.74997 8.51724 3.74997 9.48263 3.74997 9.48263C3.74997 9.48263 1.42214 12.6535 1.22362 15.5007C1.12028 16.9216 1.54723 18.2596 3.04564 19.0795C5.63725 20.4106 6.81612 18.658 6.81612 18.658C6.81612 18.658 7.58163 17.747 5.83712 16.8196V14.3042C5.83784 14.213 5.87455 14.1259 5.93924 14.0617C6.00393 13.9975 6.09136 13.9615 6.18249 13.9615H6.84467V13.6379C6.84467 13.5658 6.87332 13.4966 6.92432 13.4456C6.97532 13.3946 7.04449 13.366 7.11661 13.366H8.02762C8.09974 13.366 8.16891 13.3946 8.21991 13.4456C8.27091 13.4966 8.29956 13.5658 8.29956 13.6379V13.9615H9.78981V13.6379C9.78981 13.5658 9.81846 13.4966 9.86946 13.4456C9.92046 13.3946 9.98962 13.366 10.0617 13.366H10.9728C11.0449 13.366 11.114 13.3946 11.165 13.4456C11.216 13.4966 11.2447 13.5658 11.2447 13.6379V13.9615H11.9082C11.9989 13.9619 12.0857 13.9981 12.1496 14.0624C12.2136 14.1266 12.2495 14.2135 12.2495 14.3042V16.8169C10.5077 17.7442 11.2746 18.6552 11.2746 18.6552C11.2746 18.6552 12.4494 20.4079 15.0437 19.0768C19.5512 16.6089 14.3489 9.47719 14.3489 9.47719ZM13.5861 7.66198C13.5354 8.43053 13.2351 9.16149 12.7309 9.7437C11.7954 10.8437 10.3187 11.5236 9.04876 12.1708C7.77607 11.5236 6.29535 10.8437 5.35715 9.7437C4.8555 9.16014 4.5564 8.42977 4.50461 7.66198C4.4339 6.4464 4.82006 4.41363 6.17433 3.97036C7.49733 3.53661 8.33627 4.67469 8.63541 5.1941C8.67753 5.26489 8.73721 5.32361 8.80867 5.36458C8.88013 5.40555 8.96096 5.42739 9.04333 5.42797C9.12588 5.42833 9.20708 5.4069 9.2787 5.36584C9.35032 5.32477 9.40984 5.26553 9.45124 5.1941C9.75717 4.67469 10.5934 3.53525 11.9178 3.97036C13.2707 4.41363 13.6541 6.4464 13.5861 7.66198Z",
        fill: "#87574C"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M11.9763 7.60351C11.946 7.58302 11.9108 7.57083 11.8743 7.56816H11.858C11.7533 7.58176 11.7927 7.70413 11.8335 7.7626C11.9807 7.96822 12.0583 8.21546 12.0551 8.46829C12.0541 8.59201 12.02 8.71319 11.9564 8.81932C11.8928 8.92546 11.802 9.01269 11.6935 9.072C11.2855 9.30451 10.9415 8.9945 10.569 8.85445C10.144 8.70162 9.69741 8.61762 9.24598 8.60562V8.03182C9.78596 7.91128 10.2753 7.62625 10.6465 7.21599C10.695 7.1622 10.7316 7.09864 10.7536 7.02959C10.7756 6.96053 10.7825 6.88757 10.774 6.8156C10.7655 6.74362 10.7418 6.67429 10.7043 6.61226C10.6668 6.55023 10.6165 6.49692 10.5567 6.45591C10.1115 6.14086 9.57875 5.97303 9.03329 5.97596C8.48782 5.97889 7.95695 6.15242 7.51507 6.47223C7.4601 6.51237 7.41409 6.5635 7.37994 6.62238C7.34579 6.68125 7.32427 6.74659 7.31672 6.81423C7.30918 6.88187 7.31578 6.95034 7.33612 7.01529C7.35645 7.08024 7.39007 7.14026 7.43484 7.19152C7.80594 7.6164 8.30264 7.91214 8.85302 8.0359V8.6097C8.47005 8.61985 8.09011 8.68066 7.7231 8.79054C7.55681 8.83782 7.39487 8.89923 7.23904 8.9741C6.9535 9.11007 6.66932 9.21205 6.37291 9.03937C6.26953 8.98066 6.18374 8.89535 6.12444 8.7923C6.06515 8.68925 6.03451 8.57222 6.0357 8.45333C6.03418 8.20663 6.11081 7.96578 6.25461 7.76532C6.28181 7.72725 6.30356 7.67014 6.26821 7.62935C6.23286 7.58856 6.16351 7.62935 6.12 7.64566C6.02013 7.69831 5.93146 7.7699 5.85894 7.85642C5.71284 8.02755 5.63405 8.24602 5.6373 8.47101C5.63957 8.65652 5.69034 8.8382 5.78456 8.99802C5.87878 9.15783 6.01317 9.29022 6.17439 9.38202C6.34253 9.48028 6.5333 9.5332 6.72804 9.53558C6.92277 9.53797 7.11478 9.48974 7.28527 9.39561C7.8313 9.11543 8.43948 8.97836 9.0529 8.99722C9.05781 8.99848 9.06295 8.99848 9.06786 8.99722C9.6917 8.98021 10.3091 9.12695 10.8586 9.42281C11.0173 9.51459 11.1974 9.56292 11.3807 9.56292C11.5641 9.56292 11.7442 9.51459 11.9029 9.42281C12.072 9.32549 12.2124 9.18519 12.3098 9.01612C12.4072 8.84706 12.4582 8.65525 12.4576 8.46013C12.4667 8.28643 12.4262 8.11374 12.341 7.96211C12.2558 7.81047 12.1293 7.68613 11.9763 7.60351ZM8.388 6.88014C8.25203 6.99028 8.13102 7.1956 7.9325 7.06915C7.90018 7.04675 7.87012 7.02124 7.84276 6.993C7.8218 6.97182 7.80603 6.94607 7.79669 6.91778C7.78734 6.88948 7.78467 6.85941 7.78888 6.82991C7.7931 6.80041 7.80408 6.77229 7.82098 6.74774C7.83787 6.7232 7.86022 6.70289 7.88627 6.68843C8.1967 6.4998 8.55521 6.40533 8.91829 6.41648L8.388 6.88014Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M9.915 9.48126C9.81366 9.6161 9.68234 9.72552 9.53143 9.80088C9.38052 9.87624 9.21415 9.91547 9.04547 9.91547C8.87679 9.91547 8.71042 9.87624 8.55951 9.80088C8.4086 9.72552 8.27728 9.6161 8.17593 9.48126C8.14456 9.43925 8.09778 9.41142 8.04589 9.4039C7.994 9.39638 7.94124 9.40978 7.89923 9.44115C7.85722 9.47253 7.82939 9.5193 7.82187 9.5712C7.81435 9.62309 7.82775 9.67584 7.85912 9.71785C7.99751 9.90144 8.17663 10.0504 8.38238 10.1529C8.58814 10.2555 8.81489 10.3089 9.04479 10.3089C9.27469 10.3089 9.50144 10.2555 9.7072 10.1529C9.91295 10.0504 10.0921 9.90144 10.2305 9.71785C10.246 9.69714 10.2573 9.67357 10.2637 9.64849C10.2701 9.62341 10.2716 9.59731 10.2679 9.57168C10.2642 9.54605 10.2556 9.52139 10.2424 9.49911C10.2292 9.47683 10.2117 9.45737 10.191 9.44183C10.1703 9.4263 10.1467 9.41499 10.1217 9.40857C10.0966 9.40214 10.0705 9.40072 10.0448 9.40438C10.0192 9.40804 9.99456 9.41672 9.97228 9.42991C9.95 9.4431 9.93054 9.46055 9.915 9.48126Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M11.1577 8.64913C11.2643 8.64913 11.3508 8.56268 11.3508 8.45605C11.3508 8.34941 11.2643 8.26297 11.1577 8.26297C11.051 8.26297 10.9646 8.34941 10.9646 8.45605C10.9646 8.56268 11.051 8.64913 11.1577 8.64913Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M10.5446 8.28743C10.6513 8.28743 10.7377 8.20099 10.7377 8.09435C10.7377 7.98772 10.6513 7.90128 10.5446 7.90128C10.438 7.90128 10.3516 7.98772 10.3516 8.09435C10.3516 8.20099 10.438 8.28743 10.5446 8.28743Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M6.93307 8.64913C7.0397 8.64913 7.12615 8.56268 7.12615 8.45605C7.12615 8.34941 7.0397 8.26297 6.93307 8.26297C6.82643 8.26297 6.73999 8.34941 6.73999 8.45605C6.73999 8.56268 6.82643 8.64913 6.93307 8.64913Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M7.54635 8.28743C7.65299 8.28743 7.73943 8.20099 7.73943 8.09435C7.73943 7.98772 7.65299 7.90128 7.54635 7.90128C7.43972 7.90128 7.35327 7.98772 7.35327 8.09435C7.35327 8.20099 7.43972 8.28743 7.54635 8.28743Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M6.01525 6.35664C6.01445 6.35352 6.01445 6.35025 6.01525 6.34713C6.04109 6.30226 6.06556 6.25739 6.08868 6.21115C6.09955 6.19076 6.10907 6.169 6.11995 6.14861C6.27088 5.87667 6.32799 5.60472 6.68559 5.56665H6.71007C6.83819 5.56646 6.96151 5.61543 7.05461 5.70347C7.1477 5.7915 7.20348 5.91189 7.21044 6.03983C6.88812 6.09915 6.57014 6.18 6.25864 6.28186L6.10227 6.33489L6.04789 6.35392L6.02341 6.36344C6.02341 6.36344 6.01525 6.36208 6.01525 6.35664Z",
        fill: "#53484A"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M13.3525 15.1282C13.3523 15.3089 13.323 15.4884 13.2655 15.6598C13.2118 15.8229 13.1363 15.9779 13.0411 16.1207C13.0003 16.1903 12.9548 16.2571 12.9051 16.3206C12.8496 16.3777 12.7911 16.4317 12.7297 16.4824L12.7066 16.5042C12.6386 16.5627 12.5625 16.617 12.4904 16.6714L12.4659 16.6905L12.436 16.7081C12.4143 16.7217 12.3966 16.7353 12.3748 16.7462C12.3531 16.7571 12.3341 16.7734 12.315 16.7843L12.2824 16.8033L12.2525 16.8196C12.2497 16.7825 12.2497 16.7453 12.2525 16.7081V15.8162C12.2525 15.4762 12.2525 15.1363 12.2525 14.7937V14.3042C12.2525 14.2135 12.2166 14.1266 12.1526 14.0624C12.0886 13.9981 12.0018 13.9619 11.9112 13.9615H11.2463V13.6379C11.2463 13.5658 11.2176 13.4966 11.1666 13.4456C11.1156 13.3946 11.0465 13.366 10.9743 13.366H10.062C9.98985 13.366 9.92068 13.3946 9.86968 13.4456C9.81868 13.4966 9.79003 13.5658 9.79003 13.6379V13.9615H8.30115V13.6379C8.30115 13.5658 8.27249 13.4966 8.2215 13.4456C8.1705 13.3946 8.10133 13.366 8.0292 13.366H7.1182C7.04607 13.366 6.9769 13.3946 6.9259 13.4456C6.8749 13.4966 6.84625 13.5658 6.84625 13.6379V13.9615H6.18271C6.13754 13.9613 6.09277 13.9701 6.05096 13.9872C6.00916 14.0043 5.97114 14.0295 5.93907 14.0613C5.907 14.0931 5.88151 14.131 5.86405 14.1726C5.8466 14.2143 5.83753 14.259 5.83735 14.3042V16.6714C5.8412 16.7167 5.8412 16.7622 5.83735 16.8074C5.62372 16.6941 5.42806 16.5498 5.25675 16.3791C5.17926 16.3062 5.11161 16.2234 5.05551 16.133C5.16311 15.994 5.26298 15.8492 5.35465 15.6992C5.22956 15.7074 5.03648 15.6992 4.8502 15.7264C4.77619 15.5342 4.73794 15.3301 4.73734 15.1241C4.7369 15.0596 4.74053 14.9951 4.74822 14.931C4.86978 14.7846 4.97936 14.6286 5.07591 14.4646H4.86923C5.34105 13.3252 7.03389 12.4699 9.04627 12.4699C10.0345 12.4547 11.0113 12.6826 11.8908 13.1335C11.8201 13.2327 11.7548 13.3333 11.7099 13.4054C11.8991 13.4057 12.0881 13.3929 12.2756 13.3673C12.9446 13.8419 13.3525 14.4551 13.3525 15.1282Z",
        fill: "#775049"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M4.56173 9.71378C3.03477 10.9334 1.76752 13.589 1.22363 15.5007C1.42215 12.6535 3.74182 9.47719 3.74182 9.47719C3.74182 9.47719 3.74182 8.5118 3.80301 7.37372C3.84176 7.88946 3.96677 8.39504 4.17285 8.8694C4.05771 9.01407 3.95232 9.16624 3.85739 9.32491C3.98113 9.31675 4.17829 9.3249 4.36185 9.29771C4.42983 9.43912 4.49646 9.57917 4.56173 9.71378Z",
        fill: "#775049"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M9.04627 2.03956C8.35791 2.04065 7.67377 2.14703 7.01758 2.35501C7.22969 2.45427 7.42549 2.55897 7.60905 2.66639C7.51251 2.79284 7.43229 2.93833 7.36566 3.03079C7.60034 3.03533 7.83478 3.01344 8.06456 2.96552C8.1611 3.03623 8.24812 3.10965 8.3365 3.18172C8.29163 3.2497 8.2522 3.31769 8.21684 3.368C8.29707 3.368 8.40448 3.368 8.52006 3.35712C8.61198 3.45013 8.69654 3.55014 8.77297 3.65626C8.79314 3.68406 8.81962 3.70669 8.85022 3.7223C8.88083 3.73791 8.91469 3.74604 8.94905 3.74604C8.9834 3.74604 9.01727 3.73791 9.04787 3.7223C9.07848 3.70669 9.10496 3.68406 9.12513 3.65626C9.46914 3.16404 10.1014 2.70446 10.9539 2.31694C10.335 2.13201 9.69228 2.03857 9.04627 2.03956Z",
        fill: "#775049"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M16.107 12.6372C16.035 12.4672 15.9615 12.2972 15.884 12.1354C15.6814 11.6935 15.4652 11.2856 15.2613 10.928C15.1688 10.7635 15.0804 10.6126 14.9893 10.4725C14.6209 9.85655 14.3421 9.47719 14.3421 9.47719C14.3421 9.47719 14.3421 8.5118 14.2809 7.37372C14.2211 8.31192 13.8404 9.04888 13.5222 9.71378C13.6754 9.83888 13.8268 9.97485 13.9764 10.1217C14.1123 10.2577 14.2483 10.4072 14.3748 10.5636C14.4346 10.6316 14.4876 10.6996 14.5447 10.7744C14.4455 10.9035 14.3639 11.0463 14.2973 11.1401C14.4237 11.132 14.6127 11.1401 14.7976 11.117C15.0714 11.5 15.3211 11.8997 15.5455 12.3136C15.412 12.4654 15.2936 12.6297 15.1919 12.8044C15.3894 12.805 15.5866 12.7913 15.7821 12.7636C16.2263 13.6403 16.5873 14.5566 16.8603 15.5007C16.7978 14.538 16.4878 13.5373 16.107 12.6372Z",
        fill: "#775049"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Defs, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("clipPath", {
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
          width: "20",
          height: "19.9986",
          fill: "white"
        })
      })
    })]
  });
};
const accordionIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 10H4v5h16v-5ZM4 9a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H4Zm16-4H4v2h16V5ZM4 4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H4Zm16 14H4v2h16v-2ZM4 17a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    })
  });
};
const accordionItemIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M3 10a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 10H4v4h16v-4ZM4 9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H4Zm16-4H4v2h16V5ZM4 4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H4Zm16 13H4v2h16v-2ZM4 16a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    })]
  });
};
const headingIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M15.999 6.455v12.39h.651c.364 0 .546.133.546.399v.357c0 .266-.182.399-.546.399h-2.541c-.364 0-.546-.133-.546-.399v-.357c0-.266.182-.399.546-.399h.651v-5.88H6.843v5.88h.651c.364 0 .546.133.546.399v.357c0 .266-.182.399-.546.399H4.953c-.364 0-.546-.133-.546-.399v-.357c0-.266.182-.399.546-.399h.651V6.455h-.651c-.364 0-.546-.133-.546-.399v-.357c0-.266.182-.399.546-.399h2.541c.364 0 .546.133.546.399v.357c0 .266-.182.399-.546.399h-.651v5.355h7.917V6.455h-.651c-.364 0-.546-.133-.546-.399v-.357c0-.266.182-.399.546-.399h2.541c.364 0 .546.133.546.399v.357c0 .266-.182.399-.546.399h-.651Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M17.5 3a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 5.5a.5.5 0 0 1-.5-.5V1a.5.5 0 0 1 1 0v4a.5.5 0 0 1-.5.5Z",
      clipRule: "evenodd"
    })]
  });
};
const buttonsIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 5H4v5h16V5ZM4 4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M5.5 7a.5.5 0 0 0 0 1h13a.5.5 0 0 0 0-1h-13ZM20 14H4v5h16v-5ZM4 13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M5.618 16a.5.5 0 0 0 0 1h12.764a.5.5 0 0 0 0-1H5.618Z",
      clipRule: "evenodd"
    })]
  });
};
const buttonIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 9H4v5h16V9ZM4 8a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M5.618 11a.5.5 0 0 0 0 1h12.764a.5.5 0 0 0 0-1H5.618Z",
      clipRule: "evenodd"
    })]
  });
};
const circleIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Zm0-1.346a7.654 7.654 0 1 1 0-15.308 7.654 7.654 0 0 1 0 15.308ZM12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Zm0-3.346a6.654 6.654 0 1 1 0-13.308 6.654 6.654 0 0 1 0 13.308Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M6.005 18.713a9 9 0 0 1-2.115-2.81.355.355 0 0 1 .01-.335.615.615 0 0 1 .378-.296c.316-.091.812.079 1.128.615a7.655 7.655 0 1 0 8.1-11.392c-.61-.122-.934-.535-.951-.864a.615.615 0 0 1 .155-.454.355.355 0 0 1 .314-.119 9 9 0 1 1-7.019 15.655Zm-3.016-2.377c-.4-.832.123-1.768 1.011-2.025.888-.256 1.798.272 2.267 1.068a6.655 6.655 0 1 0 7.042-9.903c-.905-.182-1.703-.869-1.753-1.791-.049-.923.664-1.725 1.581-1.62A10 10 0 1 1 2.99 16.337Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M4.182 14.868c-.867.318-1.324 1.289-.866 2.091A10 10 0 1 0 13.921 2.186c-.906-.177-1.68.566-1.704 1.49-.024.923.717 1.671 1.606 1.924a6.654 6.654 0 1 1-7.304 10.174c-.524-.761-1.47-1.224-2.337-.906Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M6.36 19.013a9 9 0 0 1-2.175-2.55.355.355 0 0 1-.015-.335.615.615 0 0 1 .357-.321c.308-.114.816.021 1.168.534a7.653 7.653 0 1 0 8.402-11.703c-.599-.17-.889-.607-.88-.936a.615.615 0 0 1 .19-.441.355.355 0 0 1 .322-.093 9 9 0 1 1-7.37 15.845ZM3.315 16.96c-.458-.802-.001-1.773.866-2.091.868-.318 1.813.145 2.337.906A6.655 6.655 0 1 0 13.823 5.6c-.889-.253-1.63-1-1.606-1.924.024-.924.798-1.667 1.704-1.49A10 10 0 1 1 3.316 16.96Z",
      clipRule: "evenodd"
    })]
  });
};
const countdownIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M9 9H3v6h6V9ZM3 8a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1H3Zm18 1h-6v6h6V9Zm-6-1a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1h-6Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M11 10a1 1 0 1 1 2 0 1 1 0 1 1-2 0Zm0 4a1 1 0 1 1 2 0 1 1 0 1 1-2 0Z"
    })]
  });
};
const flipIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M11.5 7V4h1v3A2.5 2.5 0 0 0 15 9.5h4v1h-4A3.5 3.5 0 0 1 11.5 7Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M11 4H5v16h14v-8a8 8 0 0 0-8-8ZM5 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-8a9 9 0 0 0-9-9H5Z",
      clipRule: "evenodd"
    })]
  });
};
const faIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 4H4v16h16V4ZM4 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M11.776 7.454a.25.25 0 0 1 .448 0l1.187 2.406a.25.25 0 0 0 .189.136l2.654.386a.25.25 0 0 1 .139.427l-1.921 1.872a.25.25 0 0 0-.072.221l.453 2.644a.25.25 0 0 1-.362.263l-2.375-1.248a.25.25 0 0 0-.232 0L9.509 15.81a.25.25 0 0 1-.362-.263l.453-2.644a.25.25 0 0 0-.072-.221l-1.92-1.872a.25.25 0 0 1 .138-.427l2.654-.386a.25.25 0 0 0 .189-.136l1.187-2.406Z"
    })]
  });
};
const formIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M19 3H5v18h14V3ZM5 2a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H5Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M17 5H7v2h10V5ZM7 4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H7Zm10 7H7v1h10v-1ZM7 10a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H7Zm10 5H7v4h10v-4ZM7 14a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H7Z",
      clipRule: "evenodd"
    })]
  });
};
const formFieldIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M19 10H5v4h14v-4ZM5 9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H5Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M6 12.5a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1h-8a.5.5 0 0 1-.5-.5Z"
    })]
  });
};
const googleMapIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M16.453 13.552C17.429 11.962 18 10.499 18 9.125 18 5.725 15.297 3 12 3S6 5.726 6 9.125c0 1.374.57 2.837 1.547 4.427.975 1.586 2.285 3.19 3.648 4.859l.004.004.801.983c.267-.33.535-.657.801-.983l.004-.004c1.363-1.669 2.673-3.273 3.648-4.86Zm-3.813 6.645c.31-.384.624-.769.939-1.153C16.286 15.732 19 12.412 19 9.125 19 5.19 15.866 2 12 2S5 5.19 5 9.125c0 3.287 2.714 6.607 5.421 9.919.315.384.629.769.939 1.153.216.268.43.535.64.803.21-.268.424-.535.64-.803ZM15.5 9a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Zm-1 0a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z",
      clipRule: "evenodd"
    })
  });
};
const iconListIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 6H9v2h11V6ZM9 5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H9Zm11 6H9v2h11v-2ZM9 10a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H9Zm11 6H9v2h11v-2ZM9 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H9ZM6 6H4v2h2V6ZM4 5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H4Zm2 6H4v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H4Zm2 6H4v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    })
  });
};
const iconListItemIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 6H9v2h11V6ZM9 5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H9Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M8 11a1 1 0 0 1 1-1h11a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 11H9v2h11v-2ZM9 10a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H9Zm11 6H9v2h11v-2ZM9 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H9ZM6 6H4v2h2V6ZM4 5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M3 11a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M6 11H4v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H4Zm2 6H4v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    })]
  });
};
const mapIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M8.872 8.64a.5.5 0 0 0-.41 0l-5.667 2.55a.5.5 0 0 0-.295.457v8.806a.5.5 0 0 0 .705.456l4.846-2.18a1.5 1.5 0 0 1 1.231 0l5.846 2.63a.5.5 0 0 0 .41 0l5.667-2.55a.5.5 0 0 0 .295-.456V9.547a.5.5 0 0 0-.705-.456l-4.846 2.18a1.5 1.5 0 0 1-1.231 0l-5.846-2.63Zm-.82-.911a1.5 1.5 0 0 1 1.23 0l5.846 2.63a.5.5 0 0 0 .41 0l4.846-2.18A1.5 1.5 0 0 1 22.5 9.547v8.806a1.5 1.5 0 0 1-.884 1.368l-5.667 2.55a1.5 1.5 0 0 1-1.231 0l-5.846-2.63a.5.5 0 0 0-.41 0l-4.846 2.18A1.5 1.5 0 0 1 1.5 20.453v-8.806a1.5 1.5 0 0 1 .884-1.368l5.667-2.55Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M16.515 13.662C18.255 11.396 20 9.123 20 6.875 20 4.183 17.985 2 15.5 2S11 4.183 11 6.875c0 2.25 1.745 4.52 3.485 6.787.343.446.686.892 1.015 1.338.33-.446.672-.892 1.015-1.338ZM15.5 8.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm-2.4 6.2a.5.5 0 0 1 .7-.1l4 3a.5.5 0 0 1-.6.8l-4-3a.5.5 0 0 1-.1-.7Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M17.9 14.7a.5.5 0 0 0-.7-.1l-4 3a.5.5 0 0 0 .6.8l4-3a.5.5 0 0 0 .1-.7Z",
      clipRule: "evenodd"
    })]
  });
};
const lottieIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M16.917 5.26c.302-.046.747-.01.58-.01a.75.75 0 0 1 .007 1.5.879.879 0 0 1-.2-.014c-.034-.006-.05-.01-.16.007-.128.02-.367.086-.71.33-.707.502-1.83 1.74-3.235 4.74-1.464 3.126-2.915 4.744-4.07 5.578-.579.418-1.078.636-1.456.747a2.858 2.858 0 0 1-.464.099 1.897 1.897 0 0 1-.2.013h-.033s-.002 0 .024-.75l-.026.75a.75.75 0 0 1 .029-1.5H7m.003 0a1.372 1.372 0 0 0 .246-.05c.21-.063.556-.203 1.001-.524.891-.644 2.2-2.03 3.591-5 1.45-3.095 2.709-4.605 3.723-5.326.517-.367.974-.531 1.353-.59",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 4H4v16h16V4ZM4 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4Z",
      clipRule: "evenodd"
    })]
  });
};
const popupIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M3 9.5a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-3.5a.5.5 0 0 1 1 0V21a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 21V10A1.5 1.5 0 0 1 3 8.5h1.531a.5.5 0 1 1 0 1H3Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M21 3H8v11h13V3ZM8 2a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H8Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M14.45 4.55h4.5a.5.5 0 0 1 .5.5v4.5a.5.5 0 1 1-1 0V6.257l-4.096 4.097a.5.5 0 0 1-.707-.708l4.096-4.096H14.45a.5.5 0 0 1 0-1Z",
      clipRule: "evenodd"
    })]
  });
};
const postsIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M7 5H5v2h2V5ZM5 4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H5Zm2 7H5v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H5Zm2 7H5v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H5Zm8-11h-2v2h2V5Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1h-2Zm2 7h-2v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-2Zm2 7h-2v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-2Zm8-11h-2v2h2V5Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1h-2Zm2 7h-2v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-2Zm2 7h-2v2h2v-2Zm-2-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-2Z",
      clipRule: "evenodd"
    })
  });
};
const progressIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M21 10H3v4h18v-4ZM3 9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H3Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M13 10H3v4h10a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1ZM3 9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h10a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2H3Z",
      clipRule: "evenodd"
    })]
  });
};
const reviewIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M1.717 8.588a.5.5 0 0 1 .695.13l2.264 3.297a.5.5 0 1 1-.825.566L1.588 9.283a.5.5 0 0 1 .13-.695Zm20.566 0a.5.5 0 0 1 .13.695l-2.264 3.298a.5.5 0 1 1-.825-.566l2.264-3.298a.5.5 0 0 1 .695-.13Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M19 13H5v7h14v-7ZM5 12a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-7a1 1 0 0 0-1-1H5Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M11.776 3.454a.25.25 0 0 1 .448 0l1.04 2.108a.25.25 0 0 0 .189.137l2.326.338a.25.25 0 0 1 .138.426l-1.683 1.64a.25.25 0 0 0-.072.222l.397 2.316a.25.25 0 0 1-.362.264l-2.08-1.094a.25.25 0 0 0-.233 0l-2.08 1.094a.25.25 0 0 1-.363-.264l.397-2.316a.25.25 0 0 0-.072-.221L8.083 6.463a.25.25 0 0 1 .139-.426l2.325-.338a.25.25 0 0 0 .189-.137l1.04-2.108Z"
    })]
  });
};
const columnsIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M21 4H3v16h18V4ZM3 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H3Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M19 15H5v3h14v-3ZM5 14a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1H5Zm5-8H5v6h5V6ZM5 5a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H5Zm14 1h-5v1h5V6Zm-5-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-5Zm5 5h-5v2h5v-2Zm-5-1a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-5Z",
      clipRule: "evenodd"
    })]
  });
};
const columnIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M21 4H3v16h18V4ZM3 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H3Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M4 6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M7 6H5v12h2V6ZM5 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H5Zm8 1h-2v12h2V6Zm-2-1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2Zm8 1h-2v12h2V6Zm-2-1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2Z",
      clipRule: "evenodd"
    })]
  });
};
const sharingIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "m14.69 6.154-6.715 4.268a.5.5 0 0 1-.537-.844l6.716-4.268.536.844Zm-7.122 7.094a.5.5 0 0 1 .684-.18l6.432 3.752-.504.864-6.432-3.752a.5.5 0 0 1-.18-.684Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M17 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm0 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM6 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z",
      clipRule: "evenodd"
    })]
  });
};
const sliderIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M2 5H1a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h1v-1H1V6h1V5Zm20 14h1V6h-1V5h1a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-1v-1Zm-6.5-8a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm0 1a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm-8-3.87v8.37h9.207L7.5 8.13Zm-1-.904a.6.6 0 0 1 1.004-.444l10.64 9.674a.6.6 0 0 1-.403 1.044H7.1a.6.6 0 0 1-.6-.6V7.226Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M3 3v18a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1Zm1 0v18h16V3H4Z",
      clipRule: "evenodd"
    })]
  });
};
const tabsIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M11.726 4.722c-1.033-.345-2.398-.243-3.628.003a.5.5 0 0 1-.196-.98c1.27-.255 2.851-.403 4.14.028.658.22 1.257.596 1.688 1.199.431.602.663 1.386.663 2.366a.5.5 0 0 1-1 0c0-.821-.193-1.388-.476-1.784-.283-.396-.688-.664-1.191-.832Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M15.726 4.722c-1.033-.345-2.398-.243-3.628.003a.5.5 0 0 1-.196-.98c1.27-.255 2.851-.403 4.14.028.658.22 1.257.596 1.688 1.199.431.602.663 1.386.663 2.366a.5.5 0 0 1-1 0c0-.821-.192-1.388-.476-1.784-.283-.396-.688-.664-1.192-.832Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "m8.449 7.878-.091-.9-.035-.365c-.073-.795-.126-1.366-.5-1.83C7.468 4.338 6.57 3.763 4 3.887v16.01h16V7.877H8.449ZM3 3.866v16.03a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V7.878a1 1 0 0 0-1-1H9.353l-.03-.33C9.182 4.893 8.99 2.632 3.91 2.891a.968.968 0 0 0-.91.975Z",
      clipRule: "evenodd"
    })]
  });
};
const tabsItemIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "m8.449 8.002-.091-.9-.035-.365c-.073-.793-.126-1.362-.499-1.826C7.467 4.468 6.57 3.893 4 4.017V20h16V8.002H8.449ZM3 3.996V20a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V8.002a1 1 0 0 0-1-1H9.353l-.03-.33C9.182 5.02 8.99 2.762 3.91 3.02a.968.968 0 0 0-.91.976Z",
      clipRule: "evenodd"
    })
  });
};
const searchIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z",
      clipRule: "evenodd"
    })
  });
};
const cartIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("path", {
      d: "M11 18.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm6 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("path", {
      fillRule: "evenodd",
      d: "M2.5 4a.5.5 0 0 1 .5-.5h.78a1.5 1.5 0 0 1 1.422 1.026L6.36 8h12.286a1.5 1.5 0 0 1 1.434 1.941l-1.385 4.5a1.5 1.5 0 0 1-1.434 1.059H8.74a1.5 1.5 0 0 1-1.434-1.059L5.524 8.653l-1.27-3.811a.5.5 0 0 0-.475-.342H3a.5.5 0 0 1-.5-.5Zm4.177 5 1.584 5.147a.5.5 0 0 0 .478.353h8.522a.5.5 0 0 0 .478-.353l1.385-4.5A.5.5 0 0 0 18.646 9H6.677Z",
      clipRule: "evenodd"
    })]
  });
};
const businessHoursIcon = () => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg",
    className: "o-block-icon",
    width: "24",
    height: "24",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M16.347 8.36a.477.477 0 0 1-.694 0l-3.12-3.243L9.415 8.36a.477.477 0 0 1-.693 0 .524.524 0 0 1 0-.72l3.466-3.604a.48.48 0 0 1 .693 0l3.467 3.604a.524.524 0 0 1 0 .72Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M20 9H4v10h16V9ZM4 8h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      fillRule: "evenodd",
      d: "M8 15.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5Zm-3-3a.5.5 0 0 1 .5-.5h13a.5.5 0 0 1 0 1h-13a.5.5 0 0 1-.5-.5Z",
      clipRule: "evenodd"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M14 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z"
    })]
  });
};
const StarFilled = ({
  className
}) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 24 24",
    className: className,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"
    })
  });
};
const StarHalf = ({
  className
}) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 24 24",
    className: className,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M9.518 8.783a.25.25 0 00.188-.137l2.069-4.192a.25.25 0 01.448 0l2.07 4.192a.25.25 0 00.187.137l4.626.672a.25.25 0 01.139.427l-3.347 3.262a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.363.264l-4.137-2.176a.25.25 0 00-.233 0l-4.138 2.175a.25.25 0 01-.362-.263l.79-4.607a.25.25 0 00-.072-.222L4.753 9.882a.25.25 0 01.14-.427l4.625-.672zM12 14.533c.28 0 .559.067.814.2l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39v7.143z"
    })
  });
};
const check = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M18.3 5.6L9.9 16.9l-4.6-3.4-.9 2.4 5.8 4.3 9.3-12.6z"
  })
});
const close = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
  })
});
const colsFull = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    })
  });
};
const cols2Equal = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "22.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols12 = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "16.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols21 = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "28.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols3Equal = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "28.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "16.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols112 = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "22.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "12.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols211 = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "22.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "32.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols121 = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "13.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "31.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols131 = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "11.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "33.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols4Equal = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "13.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "32.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "22.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols5Equal = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "10.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "34.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "26.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "18.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const colsCollapsed = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "4",
      y: "22.9",
      width: "40",
      height: "2.2"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "22.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const rowsCollapsed = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
      viewBox: "0 0 48 48",
      xmlns: "http://www.w3.org/1999/xlink",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
        x: "6",
        y: "22.9",
        width: "36",
        height: "2.2"
      })]
    })
  });
};
const cols6Equal = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "10.4",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "35.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "29.4",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "16.4",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "22.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const cols2Grid = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "4",
      y: "18.9",
      width: "40",
      height: "2.2"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "22.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "4",
      y: "26.9",
      width: "40",
      height: "2.2"
    })]
  });
};
const cols3Grid = props => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    viewBox: "0 0 48 48",
    xmlns: "http://www.w3.org/1999/xlink",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M41.8,13.2V34.8H6.2V13.2H41.8M42,11H6a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H42a2,2,0,0,0,2-2V13a2,2,0,0,0-2-2Z"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "4",
      y: "22.9",
      width: "40",
      height: "2.2"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "28.9",
      y: "13",
      width: "2.2",
      height: "22"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
      x: "16.9",
      y: "13",
      width: "2.2",
      height: "22"
    })]
  });
};
const alignBottom = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M15 4H9v11h6V4zM4 18.5V20h16v-1.5H4z"
  })
});
const alignCenter = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M20 11h-5V4H9v7H4v1.5h5V20h6v-7.5h5z"
  })
});
const alignTop = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M9 20h6V9H9v11zM4 4v1.5h16V4H4z"
  })
});
const popupScratch = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  width: "48",
  height: "48",
  viewBox: "0 0 48 48",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg",
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "1.5",
    y: "8.5",
    width: "45",
    height: "31",
    rx: "0.5",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "42",
    y: "11",
    width: "2",
    height: "2",
    rx: "1",
    fill: "#ED6F57"
  })]
});
const popupWithForm = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  width: "48",
  height: "48",
  viewBox: "0 0 48 48",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg",
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "1.5",
    y: "8.5",
    width: "45",
    height: "31",
    rx: "0.5",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "42",
    y: "11",
    width: "2",
    height: "2",
    rx: "1",
    fill: "#ED6F57"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "16.5",
    y: "14.5",
    width: "15",
    height: "19",
    rx: "0.5",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "18.5",
    y: "16.5",
    width: "11",
    height: "3",
    rx: "0.5",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "18.5",
    y: "22.5",
    width: "11",
    height: "2",
    rx: "0.5",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "18.5",
    y: "26.5",
    width: "11",
    height: "5",
    rx: "0.5",
    stroke: "#ED6F57",
    fill: "none"
  })]
});
const popupWithImageAndText = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  width: "48",
  height: "48",
  viewBox: "0 0 48 48",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg",
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Circle, {
    cx: "37.5",
    cy: "21.5",
    r: "2",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M29 28.9V19.2261C29 19.1392 29.103 19.0937 29.1673 19.1521L34.5 24L39.8086 28.826C39.8762 28.8875 39.8327 29 39.7413 29H34.5H29.1C29.0448 29 29 28.9552 29 28.9Z",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("mask", {
    id: "path-3-inside-1_3034_34948",
    fill: "white",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M25 16C25 15.4477 25.4477 15 26 15H42C42.5523 15 43 15.4477 43 16V32C43 32.5523 42.5523 33 42 33H26C25.4477 33 25 32.5523 25 32V16Z"
    })
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M24 16C24 14.8954 24.8954 14 26 14H42C43.1046 14 44 14.8954 44 16H42H26H24ZM44 32C44 33.1046 43.1046 34 42 34H26C24.8954 34 24 33.1046 24 32H26H42H44ZM26 34C24.8954 34 24 33.1046 24 32V16C24 14.8954 24.8954 14 26 14V16V32V34ZM42 14C43.1046 14 44 14.8954 44 16V32C44 33.1046 43.1046 34 42 34V32V16V14Z",
    fill: "#ED6F57",
    mask: "url(#path-3-inside-1_3034_34948)"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M5 18H21",
    stroke: "#ED6F57",
    strokeLinecap: "round",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M5 22H21",
    stroke: "#ED6F57",
    strokeLinecap: "round",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M5 26H21",
    stroke: "#ED6F57",
    strokeLinecap: "round",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M5 30H13.8889",
    stroke: "#ED6F57",
    strokeLinecap: "round",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "1.5",
    y: "8.5",
    width: "45",
    height: "31",
    rx: "0.5",
    stroke: "#ED6F57",
    fill: "none"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Rect, {
    x: "42",
    y: "11",
    width: "2",
    height: "2",
    rx: "1",
    fill: "#ED6F57"
  })]
});
function AIGenerationIcon() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    "data-target": "generator-icon",
    xmlns: "http://www.w3.org/2000/svg",
    width: "24",
    height: "24",
    viewBox: "0 0 24 24",
    fill: "none",
    style: {
      color: 'transparent'
    },
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M6 17V21",
      stroke: "url(#paint0_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M4 19H8",
      stroke: "url(#paint1_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M17 3V7",
      stroke: "url(#paint2_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M15 5H19",
      stroke: "url(#paint3_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M6.5 5C6.5 6.933 8.067 8.5 10 8.5",
      stroke: "url(#paint4_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M10 8.5C8.067 8.5 6.5 10.067 6.5 12",
      stroke: "url(#paint5_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M6.5 12C6.5 10.067 4.933 8.5 3 8.5",
      stroke: "url(#paint6_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M3 8.5C4.933 8.5 6.5 6.933 6.5 5",
      stroke: "url(#paint7_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M11.609 15.778C14.202 15.778 16.304 13.676 16.304 11.083",
      stroke: "url(#paint8_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M16.3051 11.083C16.3051 13.676 18.4071 15.778 21.0001 15.778",
      stroke: "url(#paint9_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M21.0001 15.7781C18.4071 15.7781 16.3051 17.8801 16.3051 20.4731",
      stroke: "url(#paint10_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "M16.305 20.4731C16.305 17.8801 14.203 15.7781 11.61 15.7781",
      stroke: "url(#paint11_linear_3599_37937)",
      strokeWidth: "1.5",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Defs, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint0_linear_3599_37937",
        x1: "6",
        y1: "17",
        x2: "6",
        y2: "21",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint1_linear_3599_37937",
        x1: "6",
        y1: "18.5",
        x2: "6",
        y2: "19.5",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint2_linear_3599_37937",
        x1: "17",
        y1: "3",
        x2: "17",
        y2: "7",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint3_linear_3599_37937",
        x1: "17",
        y1: "4.5",
        x2: "17",
        y2: "5.5",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint4_linear_3599_37937",
        x1: "8.25",
        y1: "5",
        x2: "8.25",
        y2: "8.5",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint5_linear_3599_37937",
        x1: "8.25",
        y1: "8.5",
        x2: "8.25",
        y2: "12",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint6_linear_3599_37937",
        x1: "4.75",
        y1: "8.5",
        x2: "4.75",
        y2: "12",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint7_linear_3599_37937",
        x1: "4.75",
        y1: "5",
        x2: "4.75",
        y2: "8.5",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint8_linear_3599_37937",
        x1: "13.9565",
        y1: "11.083",
        x2: "13.9565",
        y2: "15.778",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint9_linear_3599_37937",
        x1: "18.6526",
        y1: "11.083",
        x2: "18.6526",
        y2: "15.778",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint10_linear_3599_37937",
        x1: "18.6526",
        y1: "15.7781",
        x2: "18.6526",
        y2: "20.4731",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
        id: "paint11_linear_3599_37937",
        x1: "13.9575",
        y1: "15.7781",
        x2: "13.9575",
        y2: "20.4731",
        gradientUnits: "userSpaceOnUse",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          stopColor: "#ED6F57"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
          offset: "1",
          stopColor: "#F22B6C"
        })]
      })]
    })]
  });
}

/** Static element for {@link Icon} and legacy call sites. */
const aiGeneration = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(AIGenerationIcon, {});
const formAiGeneration = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  width: "20",
  height: "21",
  viewBox: "0 0 20 21",
  fill: "none",
  style: {
    color: 'transparent'
  },
  xmlns: "http://www.w3.org/2000/svg",
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M17.5044 8.5V20C17.5044 20.3 17.3044 20.5 17.0044 20.5H3.00439C2.70439 20.5 2.50439 20.3 2.50439 20V2C2.50439 1.7 2.70439 1.5 3.00439 1.5H12.8044",
    stroke: "url(#paint0_linear_3726_618)",
    strokeLinecap: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M5.00439 3.5H10.0044C10.3044 3.5 10.5044 3.7 10.5044 4V6C10.5044 6.3 10.3044 6.5 10.0044 6.5H5.00439C4.70439 6.5 4.50439 6.3 4.50439 6V4C4.50439 3.7 4.70439 3.5 5.00439 3.5Z",
    stroke: "url(#paint1_linear_3726_618)"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M5.00439 9.5H13.0044C13.3044 9.5 13.5044 9.7 13.5044 10V11C13.5044 11.3 13.3044 11.5 13.0044 11.5H5.00439C4.70439 11.5 4.50439 11.3 4.50439 11V10C4.50439 9.7 4.70439 9.5 5.00439 9.5Z",
    stroke: "url(#paint2_linear_3726_618)"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M5.00439 13.5H15.0044C15.3044 13.5 15.5044 13.7 15.5044 14V18C15.5044 18.3 15.3044 18.5 15.0044 18.5H5.00439C4.70439 18.5 4.50439 18.3 4.50439 18V14C4.50439 13.7 4.70439 13.5 5.00439 13.5Z",
    stroke: "url(#paint3_linear_3726_618)"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M16.0044 7C16.0044 5.3 17.3044 4 19.0044 4C17.3044 4 16.0044 2.7 16.0044 1C16.0044 2.7 14.7044 4 13.0044 4C13.8044 4 14.6044 4.3 15.1044 4.9C15.7044 5.4 16.0044 6.2 16.0044 7Z",
    stroke: "url(#paint4_linear_3726_618)",
    strokeLinecap: "round",
    strokeLinejoin: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Defs, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint0_linear_3726_618",
      x1: "10.0044",
      y1: "1",
      x2: "10.0044",
      y2: "21",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint1_linear_3726_618",
      x1: "7.50439",
      y1: "3",
      x2: "7.50439",
      y2: "7",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint2_linear_3726_618",
      x1: "9.00439",
      y1: "9",
      x2: "9.00439",
      y2: "12",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint3_linear_3726_618",
      x1: "10.0044",
      y1: "13",
      x2: "10.0044",
      y2: "19",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint4_linear_3726_618",
      x1: "16.0057",
      y1: "1",
      x2: "16.0057",
      y2: "7.0025",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    })]
  })]
});
const contentAiGenerationIcon = (props = {}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  width: "20",
  height: "21",
  viewBox: "0 0 20 21",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg",
  style: {
    color: 'transparent'
  },
  ...props,
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M17.5044 8.49112V19.9911C17.5044 20.2911 17.3044 20.4911 17.0044 20.4911H3.00439C2.70439 20.4911 2.50439 20.2911 2.50439 19.9911V1.99112C2.50439 1.69112 2.70439 1.49112 3.00439 1.49112H12.8044",
    stroke: "url(#paint0_linear_1006_2437)",
    strokeLinecap: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M5.50439 4.49112H9.50439",
    stroke: "url(#paint1_linear_1006_2437)",
    strokeLinecap: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M5.50439 8.49112H13.5044",
    stroke: "url(#paint2_linear_1006_2437)",
    strokeLinecap: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M5.50439 12.4911H14.5044",
    stroke: "url(#paint3_linear_1006_2437)",
    strokeLinecap: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M5.50439 16.4911H14.5044",
    stroke: "url(#paint4_linear_1006_2437)",
    strokeLinecap: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M16.0044 6.99112C16.0044 5.29112 17.3044 3.99112 19.0044 3.99112C17.3044 3.99112 16.0044 2.69112 16.0044 0.991119C16.0044 2.69112 14.7044 3.99112 13.0044 3.99112C13.8044 3.99112 14.6044 4.29112 15.1044 4.89112C15.7044 5.39112 16.0044 6.19112 16.0044 6.99112Z",
    stroke: "url(#paint5_linear_1006_2437)",
    strokeLinecap: "round",
    strokeLinejoin: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Defs, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint0_linear_1006_2437",
      x1: "10.0044",
      y1: "1.49112",
      x2: "10.0044",
      y2: "20.4911",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint1_linear_1006_2437",
      x1: "7.50439",
      y1: "4.24112",
      x2: "7.50439",
      y2: "5.74112",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint2_linear_1006_2437",
      x1: "9.50439",
      y1: "8.24112",
      x2: "9.50439",
      y2: "9.74112",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint3_linear_1006_2437",
      x1: "10.0044",
      y1: "12.2411",
      x2: "10.0044",
      y2: "13.7411",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint4_linear_1006_2437",
      x1: "10.0044",
      y1: "16.2411",
      x2: "10.0044",
      y2: "17.7411",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint5_linear_1006_2437",
      x1: "16.0044",
      y1: "0.991119",
      x2: "16.0044",
      y2: "6.99112",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    })]
  })]
});
const aiLayoutGeneratorIcon = (props = {}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  width: "21",
  height: "21",
  viewBox: "0 0 21 21",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg",
  style: {
    color: 'transparent'
  },
  ...props,
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M19.5 8V19.5C19.5 19.8 19.3 20 19 20H1C0.7 20 0.5 19.8 0.5 19.5V1.5C0.5 1.2 0.7 1 1 1H12.8",
    stroke: "url(#paint0_linear_1036_1071)",
    strokeLinecap: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M17 6.5C17 4.8 18.3 3.5 20 3.5C18.3 3.5 17 2.2 17 0.5C17 2.2 15.7 3.5 14 3.5C14.8 3.5 15.6 3.8 16.1 4.4C16.7 4.9 17 5.7 17 6.5Z",
    stroke: "url(#paint1_linear_1036_1071)",
    strokeLinecap: "round",
    strokeLinejoin: "round"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M3 3H10C10.3 3 10.5 3.2 10.5 3.5V9.5C10.5 9.8 10.3 10 10 10H3C2.7 10 2.5 9.8 2.5 9.5V3.5C2.5 3.2 2.7 3 3 3Z",
    stroke: "url(#paint2_linear_1036_1071)"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M3 12H10C10.3 12 10.5 12.2 10.5 12.5V17.5C10.5 17.8 10.3 18 10 18H3C2.7 18 2.5 17.8 2.5 17.5V12.5C2.5 12.2 2.7 12 3 12Z",
    stroke: "url(#paint3_linear_1036_1071)"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "none",
    d: "M13 9H17C17.3 9 17.5 9.2 17.5 9.5V17.5C17.5 17.8 17.3 18 17 18H13C12.7 18 12.5 17.8 12.5 17.5V9.5C12.5 9.2 12.7 9 13 9Z",
    stroke: "url(#paint4_linear_1036_1071)"
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Defs, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint0_linear_1036_1071",
      x1: "10",
      y1: "0.99",
      x2: "10",
      y2: "19.99",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint1_linear_1036_1071",
      x1: "17",
      y1: "0.49",
      x2: "17",
      y2: "6.49",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint2_linear_1036_1071",
      x1: "6.5",
      y1: "2.5",
      x2: "6.5",
      y2: "10.5",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint3_linear_1036_1071",
      x1: "6.5",
      y1: "11.5",
      x2: "6.5",
      y2: "18.5",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint4_linear_1036_1071",
      x1: "15",
      y1: "8.5",
      x2: "15",
      y2: "18.5",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    })]
  })]
});
const comparisonTableIcon = (props = {}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg",
  ...props,
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.G, {
    "clip-path": "url(#clip0_1028_2592)",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("path", {
      d: "M20 3H4C3.45 3 3 3.45 3 4V19C3 19.55 3.45 20 4 20H11.502C12.052 20 12.502 19.55 12.502 19V12H20C20.55 12 21 11.55 21 11V4C21 3.45 20.55 3 20 3ZM11.502 19H4V12H11.502V19ZM4 4H20V11H12.502V3.82L11.502 3.64V11H4V4Z",
      fill: "url(#paint0_linear_1028_2592)"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("path", {
      d: "M16.8007 12.7084C16.8822 12.5432 17.1178 12.5432 17.1993 12.7084L18.1239 14.5818C18.1562 14.6474 18.2188 14.6929 18.2912 14.7034L20.3586 15.0038C20.5409 15.0303 20.6137 15.2543 20.4818 15.3829L18.9858 16.8411C18.9334 16.8922 18.9095 16.9657 18.9219 17.0378L19.275 19.0969C19.3062 19.2785 19.1156 19.4169 18.9526 19.3312L17.1034 18.359C17.0387 18.325 16.9613 18.325 16.8966 18.359L15.0474 19.3312C14.8844 19.4169 14.6938 19.2785 14.725 19.0969L15.0781 17.0378C15.0905 16.9657 15.0666 16.8922 15.0142 16.8411L13.5182 15.3829C13.3863 15.2543 13.4591 15.0303 13.6414 15.0038L15.7088 14.7034C15.7812 14.6929 15.8438 14.6474 15.8761 14.5818L16.8007 12.7084Z",
      fill: "url(#paint1_linear_1028_2592)"
    })]
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Defs, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint0_linear_1028_2592",
      x1: "12",
      y1: "3",
      x2: "12",
      y2: "20",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.LinearGradient, {
      id: "paint1_linear_1028_2592",
      x1: "17",
      y1: "12.3046",
      x2: "17",
      y2: "19.5407",
      gradientUnits: "userSpaceOnUse",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        stopColor: "#ED6F57"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("stop", {
        offset: "1",
        stopColor: "#F22B6C"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("clipPath", {
      id: "clip0_1028_2592",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("rect", {
        width: "18",
        height: "17",
        fill: "white",
        transform: "translate(3 3)"
      })
    })]
  })]
});

// Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.
const heartIcon = (props = {}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 512 512",
  ...props,
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"
  })
});
const heartFilledIcon = (props = {}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 512 512",
  ...props,
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    d: "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"
  })
});

// Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.
const timelineIcon = (props = {}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 640 512",
  ...props,
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
    fill: "#ED6F57",
    d: "M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"
  })
});
const otterMascot = ({
  className
}) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
    fill: "none",
    height: "120",
    viewBox: "0 0 105 120",
    width: "105",
    xmlns: "http://www.w3.org/2000/svg",
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('otter-icon', className),
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m20.878 21.3949c-2.7016 5.6791-3.6852 12.0143-2.8314 18.2372s3.5083 12.0663 7.6416 16.8214c5.0014 5.5612 11.7793 9.1693 18.4114 12.6597 2.3868 1.257 4.8648 2.5501 7.5705 2.7852 3.5256.3075 6.951-1.2208 10.0211-2.957 7.9257-4.458 15.0407-10.6703 19.3497-18.637 4.3091-7.9666 5.539-17.796 2.0954-26.1695-1.7766-4.1776-4.5015-7.8912-7.9622-10.8513-6.3183-5.37277-14.3829-8.29272-22.7023-8.21977-4.0625.08614-8.0753.90423-11.8431 2.4144-3.6441 1.33832-7.2152 1.52822-10.595 3.61707-3.9414 2.5398-7.1076 6.1016-9.1557 10.2996z",
      fill: "#d6af99"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m79.6746 113.784c-2.8938 1.217-5.8638 2.247-8.8914 3.084-1.6762.47-3.3707.904-5.0925 1.202-.2004 0-.3735.073-.574.127-.0726-.009-.146-.009-.2186 0-5.92 1.126-11.9662 1.451-17.9742.967-1.9029-.141-3.7973-.379-5.6755-.714-.3458-.037-.6894-.091-1.0295-.163h-.1093l-.7926-.162c-1.6125-.326-3.1976-.715-4.7736-1.167-2.3983-.683-4.7504-1.517-7.0421-2.496-.4617-1.815-.6973-3.68-.7015-5.552-.3644-8.039-.7106-16.0508-1.0477-24.0897-.2381-2.2984-.0748-4.6203.4829-6.8635.4017-1.277 1.0576-2.4611 1.9286-3.4821.8711-1.021 1.9396-1.8581 3.1425-2.4618 1.2028-.6037 2.5154-.9618 3.8602-1.0529 1.3447-.0911 2.6942.0865 3.9685.5223 10.6224-1.7181 21.5909-3.373 32.0493-.9043 2.405.5697 4.9285 1.483 6.3223 3.5176 1.1388 1.682 1.2846 3.7979 1.4121 5.8235.4859 8.3374.9717 16.6808 1.4576 25.0299.1822 3.03.328 6.095-.7015 8.835z",
      fill: "#f4816b"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m76.6224 40.6922c.4919-4.5214-4.0813-8.672-8.6546-8.1385-1.4868.2379-2.9279.7015-4.2726 1.3745-1.2487.4972-2.5667.8022-3.9082.9043-2.1044.434-4.1178 1.3383-6.2222 1.4649-1.822.1537-4.1997.3708-5.9762-.2261l-4.9467-1.6457-1.1479-.416c-1.3138-.5739-2.6984-.9723-4.1178-1.1846-5.1745-.5154-9.9299 4.9012-8.2992 9.947s7.8984 5.9682 12.3623 4.7564c1.8767-.5064 3.644-1.284 5.5572-1.7271 3.2665-.6316 6.6275-.607 9.8844.0723 3.2705.5607 6.4863 1.4107 9.7751 1.8086 4.2908.5606 8.937-1.9533 9.8571-6.3932.0364-.1809.1093-.3798.1093-.5968z",
      fill: "#e8d3c9"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m46.9236 90.7166v28.5024c-1.9029-.141-3.7973-.379-5.6756-.714v-27.7884c.0016-1.156.2556-2.2979.7448-3.347.4891-1.0491 1.2017-1.9804 2.0885-2.7297.8894.7476 1.6043 1.6784 2.0951 2.7277.4909 1.0493.7458 2.1921.7472 3.349z",
      fill: "#d87768"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m70.7832 102.047v14.839c-1.6763.47-3.3708.904-5.0926 1.203-.2004 0-.3735.072-.5739.126v-16.168c.0018-2.7291 1.0095-5.3634 2.8332-7.4059 1.8274 2.0403 2.8357 4.676 2.8333 7.4059z",
      fill: "#f59085"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m44.8198 29.6875c-.4788.2616-.888.6326-1.1938 1.0823-.3057.4497-.4992.9652-.5645 1.5039.0139.3728.117.7371.3007 1.0625.1838.3255.4429.6029.7561.8093.6321.4086 1.3784.6081 2.1317.5697 1.2693-.0883 2.4822-.5548 3.4801-1.3383.9968-.7781 1.9124-1.6536 2.733-2.6133.2328-.1959.4219-.4378.5552-.7103.1333-.2724.208-.5695.2192-.8722-.1822-1.5011-2.4598-1.2208-3.5347-1.2298-1.7628.0968-3.4592.7-4.883 1.7362z",
      fill: "#e8d3c9"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m72.8053 28.7107c.005-.0208.005-.0425 0-.0633-.1731-.2984-.3371-.5968-.4829-.9043-.0728-.1356-.1366-.2803-.2186-.416-1.0112-1.8085-1.3938-3.617-3.7807-3.8702h-.1731c-.8601-.0061-1.6896.3163-2.317.9003-.6274.5841-1.0046 1.3851-1.0537 2.2375 2.159.3967 4.2894.9344 6.377 1.6096l1.0386.3527.3644.1266.1731.0633c.0071.0028.0148.004.0225.0037s.0152-.0022.0221-.0057c.0069-.0034.0129-.0082.0178-.0141s.0084-.0128.0105-.0201z",
      fill: "#53484a"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m88.0376 49.4636s0-13.7902-1.3301-24.7861c.0851-.0336.1737-.0578.2642-.0723.8212-.2407 1.544-.7344 2.0638-1.4096.5199-.6753.81-1.4973.8282-2.347.0183-.8497-.2362-1.6831-.7266-2.3798-.4904-.6966-1.1913-1.2205-2.0014-1.4957h-.1093c-1.7151-.5814-3.1968-1.694-4.2271-3.1739-4.6097-6.74589-11.506-10.18212-17.5369-11.94544-4.1402-1.214989-8.4368-1.8242439-12.7541-1.8085422-4.612.0072335-9.1958.7147182-13.5922 2.0979022-5.8122 1.80854-12.2986 5.25381-16.7079 11.67408-1.0299 1.4764-2.5124 2.5833-4.2271 3.1559-.8094.2695-1.5111.7885-2.0027 1.4814s-.7474 1.5235-.7303 2.3708c-.0159.8733.2649 1.7264.797 2.4219.5322.6956 1.2847 1.193 2.1365 1.4122l.1639.0543c-.4372 3.4995-.7288 7.2342-.911 10.797-.4099 7.5687-.4099 13.989-.4099 13.989s-15.59646 21.0876-16.9265343 40.023c-.6923657 9.4496 2.1681943 18.3473 12.2075343 23.8003 17.3638 8.853 25.2622-2.803 25.2622-2.803s5.129-6.059-6.5593-12.2259v-16.729c.0048-.606.2508-1.1856.6842-1.6124.4334-.4269 1.0192-.6664 1.6298-.6663h4.4366v-2.1522c0-.4797.192-.9397.5337-1.2788.3416-.3392.8051-.5297 1.2883-.5297h6.1038c.4832 0 .9466.1905 1.2883.5297.3417.3391.5337.7991.5337 1.2788v2.1522h9.9846v-2.1522c0-.4797.192-.9397.5337-1.2788.3417-.3392.8051-.5297 1.2883-.5297h6.1038c.4832 0 .9466.1905 1.2883.5297.3417.3391.5337.7991.5337 1.2788v2.1522h4.4457c.6073.0024 1.1889.2435 1.6174.6706.4286.4271.6692 1.0053.6692 1.6081v16.7109c-11.67 6.167-6.5319 12.226-6.5319 12.226s7.8711 11.656 25.2531 2.803c30.2002-16.4125-4.6552-63.8414-4.6552-63.8414zm-5.1108-12.072c-.3397 5.1111-2.3518 9.9723-5.7302 13.8443-6.2677 7.3156-16.1613 11.8369-24.6701 16.1412-8.527-4.3043-18.4479-8.8256-24.7338-16.1412-3.361-3.8809-5.3651-8.7382-5.712-13.8443-.4738-8.0842 2.1135-21.603 11.1871-24.551 8.8641-2.88459 14.485 4.6841 16.4893 8.1385.2822.4707.682.8613 1.1608 1.1337.4788.2725 1.0203.4177 1.5722.4216.5531.0024 1.0971-.1401 1.577-.4132s.8786-.6671 1.156-1.1421c2.0498-3.4544 7.6525-11.03213 16.5257-8.1385 9.0645 2.948 11.6335 16.4668 11.178 24.551z",
      fill: "#87574c"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.G, {
      fill: "#53484a",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "m72.1402 37.0027c-.2031-.1363-.4387-.2174-.6832-.2351h-.1093c-.7015.0904-.4373.9042-.164 1.2931.9859 1.3674 1.5062 3.0117 1.4849 4.6931-.0072.8228-.2356 1.6287-.6616 2.3346-.426.7058-1.0342 1.2859-1.7616 1.6804-2.7331 1.5463-5.0379-.5154-7.5341-1.4468-2.8471-1.0164-5.8395-1.5751-8.8641-1.6549v-3.816c3.6179-.8016 6.8963-2.6972 9.3834-5.4256.3254-.3578.57-.7804.7174-1.2397.1474-.4592.1942-.9445.1372-1.4231-.0569-.4787-.2163-.9397-.4673-1.3523-.2511-.4125-.5882-.7671-.9886-1.0398-2.9834-2.0952-6.5525-3.2113-10.2071-3.1919-3.6546.0195-7.2115 1.1735-10.1721 3.3004-.3682.267-.6766.607-.9053.9986-.2288.3915-.373.826-.4236 1.2759-.0505.4498-.0063.9052.13 1.3371.1362.432.3615.8311.6614 1.172 2.4864 2.8257 5.8143 4.7925 9.5018 5.6156v3.816c-2.5659.0675-5.1115.4719-7.5705 1.2027-1.1141.3144-2.1991.7228-3.2431 1.2207-1.9131.9043-3.8172 1.5825-5.8031.4341-.6927-.3905-1.2675-.9578-1.6648-1.6431-.3972-.6853-.6025-1.4637-.5945-2.2543-.0102-1.6407.5032-3.2425 1.4667-4.5756.1822-.2532.3279-.633.0911-.9043-.2369-.2713-.7015 0-.993.1085-.6691.3502-1.2632.8262-1.7492 1.4016-.9788 1.1381-1.5067 2.5911-1.4849 4.0873.0152 1.2337.3553 2.442.9866 3.5049.6313 1.0628 1.5317 1.9432 2.6119 2.5537 1.1265.6536 2.4047 1.0055 3.7094 1.0213 1.3047.0159 2.5912-.3049 3.7335-.9308 3.6584-1.8634 7.7332-2.775 11.8431-2.6496.0329.0085.0673.0085.1002 0 4.1798-.1131 8.3164.8628 11.998 2.8304 1.0633.6104 2.2699.9318 3.4982.9318 1.2284 0 2.435-.3214 3.4983-.9318 1.1331-.6472 2.0737-1.5803 2.7264-2.7046.6528-1.1243.9945-2.4.9905-3.6976.0606-1.1552-.2103-2.3037-.7812-3.3121s-1.4183-1.8354-2.4438-2.3848zm-24.0414-4.8107c-.911.7324-1.7218 2.0979-3.0519 1.2569-.2166-.149-.4179-.3186-.6013-.5064-.1404-.1409-.246-.3121-.3086-.5003-.0627-.1881-.0806-.3882-.0523-.5843.0282-.1962.1018-.3832.215-.5465.1132-.1632.2629-.2982.4375-.3945 2.0799-1.2544 4.4819-1.8827 6.9145-1.8085z"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "m58.3292 49.4907c-.679.8968-1.5588 1.6245-2.57 2.1256-1.0111.5012-2.1257.7621-3.2559.7621-1.1301 0-2.2448-.2609-3.2559-.7621-1.0111-.5011-1.8909-1.2288-2.57-2.1256-.2102-.2794-.5236-.4644-.8713-.5144-.3476-.0501-.7011.039-.9826.2477-.2814.2086-.4679.5197-.5183.8648s.0394.696.2496.9754c.9272 1.2209 2.1273 2.2114 3.5059 2.8935 1.3785.6821 2.8978 1.0371 4.4381 1.0371s3.0596-.355 4.4381-1.0371 2.5787-1.6726 3.5058-2.8935c.1041-.1378.1799-.2945.2229-.4613.0431-.1668.0526-.3404.0281-.5109-.0246-.1704-.0827-.3344-.1711-.4826-.0883-.1481-.2053-.2776-.344-.3809-.1388-.1033-.2967-.1785-.4648-.2212-.168-.0427-.3429-.0522-.5146-.0279-.1718.0244-.337.0821-.4862.1698-.1493.0877-.2797.2038-.3838.3415z"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "m66.6559 43.9566c.7145 0 1.2937-.5749 1.2937-1.2841s-.5792-1.2841-1.2937-1.2841c-.7144 0-1.2936.5749-1.2936 1.2841s.5792 1.2841 1.2936 1.2841z"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "m62.5475 41.5513c.7145 0 1.2937-.5749 1.2937-1.2841s-.5792-1.284-1.2937-1.284c-.7144 0-1.2936.5748-1.2936 1.284s.5792 1.2841 1.2936 1.2841z"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "m38.3512 43.9566c.7145 0 1.2937-.5749 1.2937-1.2841s-.5792-1.2841-1.2937-1.2841c-.7144 0-1.2936.5749-1.2936 1.2841s.5792 1.2841 1.2936 1.2841z"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "m42.4596 41.5513c.7145 0 1.2937-.5749 1.2937-1.2841s-.5792-1.284-1.2937-1.284c-.7144 0-1.2936.5748-1.2936 1.284s.5792 1.2841 1.2936 1.2841z"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
        d: "m32.2018 28.7106c-.0054-.0208-.0054-.0425 0-.0633.1731-.2984.3371-.5968.4919-.9043.0729-.1356.1367-.2803.2096-.4159 1.0112-1.8086 1.3938-3.6171 3.7898-3.8703h.1639c.8585-.0013 1.6847.3244 2.3085.9099.6237.5854.9974 1.3861 1.0441 2.237-2.1596.3944-4.29.9322-6.3771 1.6096l-1.0477.3526-.3644.1266-.1639.0633s-.0547-.009-.0547-.0452z"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m81.3598 87.0448c-.0009 1.2021-.1978 2.3961-.583 3.5357-.3595 1.0844-.8652 2.1156-1.5032 3.0655-.2736.4626-.578.9067-.911 1.3293-.3719.3794-.7642.7387-1.1752 1.076l-.1549.1447c-.4555.3889-.9656.7506-1.4485 1.1123l-.1639.1266-.2005.1175c-.1457.0905-.2642.1809-.4099.2532-.1458.0724-.2733.1809-.4009.2532l-.2186.1266-.2004.1085c-.0182-.2468-.0182-.4946 0-.7415v-5.932c0-2.2607 0-4.5213 0-6.8001v-3.2554c0-.6028-.2406-1.181-.6692-1.6081s-1.0102-.6682-1.6174-.6706h-4.4549v-2.1522c0-.4796-.1919-.9397-.5336-1.2788-.3417-.3392-.8052-.5297-1.2884-.5297h-6.1128c-.4833 0-.9467.1905-1.2884.5297-.3417.3391-.5337.7992-.5337 1.2788v2.1522h-9.9755v-2.1522c0-.4796-.1919-.9397-.5336-1.2788-.3417-.3392-.8052-.5297-1.2884-.5297h-6.1037c-.4833 0-.9467.1905-1.2884.5297-.3417.3391-.5337.7992-.5337 1.2788v2.1522h-4.4457c-.3026-.0012-.6026.0568-.8827.1707-.2801.1138-.5348.2813-.7497.493-.2149.2116-.3857.4631-.5026.7402s-.1777.5744-.1789.8748v15.7434c.0258.3009.0258.6034 0 .9042-1.4313-.7535-2.7422-1.7134-3.89-2.8484-.5192-.4851-.9725-1.0353-1.3483-1.6367.7209-.9243 1.39-1.8873 2.0042-2.8847-.8381.0543-2.1318 0-3.3798.1809-.4959-1.2784-.7522-2.636-.7562-4.0059-.0029-.4291.0214-.858.0729-1.2841.8144-.9738 1.5487-2.011 2.1955-3.1016h-1.3847c3.1612-7.5778 14.5032-13.2657 27.9861-13.2657 6.6211-.1011 13.1657 1.4143 19.0583 4.4129-.4737.6601-.911 1.3292-1.2116 1.8085 1.2676.0017 2.5338-.0829 3.7897-.2532 4.4822 3.1559 7.2152 7.2342 7.2152 11.7103z",
      fill: "#775049"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m22.4634 51.0371c-10.2306 8.1113-18.72123 25.7717-22.3652555 38.4857 1.3300655-18.9354 16.8718555-40.0591 16.8718555-40.0591s0-6.4204.4099-13.9891c.2597 3.4299 1.0973 6.7922 2.478 9.947-.7715.9621-1.4775 1.9741-2.1136 3.0293.8291-.0543 2.15 0 3.3799-.1809.4555.9405.9019 1.8719 1.3392 2.7671z",
      fill: "#775049"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m52.5082.00005208c-4.612.00723348-9.1957.71471792-13.5922 2.09790792 1.4212.66011 2.733 1.3564 3.9629 2.07078-.6468.84097-1.1843 1.80854-1.6307 2.42344 1.5723.0302 3.1431-.1154 4.6826-.43405.6468.47022 1.2298.95852 1.822 1.43779-.3007.45213-.5648.90427-.8017 1.23885.5375 0 1.2572 0 2.0315-.07234.6159.61855 1.1825 1.28367 1.6945 1.98937.1352.1849.3126.3355.5176.4392.2051.1038.432.1579.6622.1579.2301 0 .457-.0541.6621-.1579.2051-.1037.3824-.2543.5176-.4392 2.3049-3.27344 6.541-6.32987 12.2531-8.90704-4.1472-1.229837-8.4532-1.85131202-12.7815-1.84470792z",
      fill: "#775049"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
      d: "m99.8168 70.4789c-.4829-1.1303-.9748-2.2607-1.4941-3.3368-1.3574-2.9388-2.8059-5.6516-4.1724-8.0299-.6195-1.0941-1.2116-2.0979-1.822-3.0293-2.4688-4.0963-4.3364-6.6192-4.3364-6.6192s0-6.4204-.4099-13.9891c-.4009 6.2395-2.9517 11.1406-5.0835 15.5625 1.0264.8319 2.0407 1.7362 3.0428 2.7128.911.9043 1.822 1.899 2.6693 2.9389.4008.4521.7561.9042 1.1387 1.4016-.665.859-1.2116 1.8085-1.658 2.4325.8472-.0543 2.1135 0 3.3525-.1537 1.834 2.5473 3.5074 5.2049 5.0105 7.9575-.8939 1.0096-1.6872 2.1029-2.3686 3.2644 1.3228.0038 2.6441-.0869 3.9538-.2712 2.9765 5.8301 5.3945 11.9244 7.2245 18.2029-.419-6.4022-2.496-13.0576-5.0472-19.0439z",
      fill: "#775049"
    })]
  });
};

/***/ }),

/***/ "./src/blocks/helpers/use-settings.js":
/*!********************************************!*\
  !*** ./src/blocks/helpers/use-settings.js ***!
  \********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api */ "@wordpress/api");
/* harmony import */ var _wordpress_api__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__);
/**
 * WordPress dependencies.
 */





/**
 * useSettings Hook, modifed for Otter usage.
 *
 * useSettings hook to get/update WordPress' settings database.
 *
 * Setting field needs to be registered to REST for this function to work.
 *
 * This hook works similar to get_option and update_option in PHP just without the option for a default value.
 * For notificiations to work, you need to add a Snackbar section to your React codebase if it isn't being
 * used inside the block editor.
 *
 * @see https://github.com/WordPress/gutenberg/blob/trunk/packages/editor/src/components/editor-snackbars/index.js
 * @author  Hardeep Asrani <hardeepasrani@gmail.com>
 * @version 1.1
 * @return {[(optionName: string) => any, (option: string, value: any, success?: string, noticeId?: string, onSuccess: Function) => void, 'loading' | 'loaded' | 'error' | 'saving']} [ getOption, updateOption, status ]
 */
let updatedSettings = {};
const useSettings = () => {
  const {
    createNotice
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices');
  const [status, setStatus] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)('loading');
  const [settings, setSettings] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)({});
  (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => {
    // Bail out if settings are already loaded.
    if (Object.keys(settings).length) {
      return;
    }
    const {
      getEntityRecord
    } = select('core');
    const request = getEntityRecord('root', 'site');
    if (request) {
      setStatus('loaded');
      setSettings(request);
    }
  }, [settings]);

  /**
   * Get the value of the given option.
   *
   * @param {string} option Option name.
   * @return {any} Option value.
   */
  const getOption = option => {
    return updatedSettings?.[option] || settings?.[option];
  };

  /**
   * Set the value of the given option. Also set the message to be displayed on success Notice.
   *
   * @param {string}    option    Option name.
   * @param {any}       value     Option value.
   * @param {string?}   success   Success message for Notice.
   * @param {string?}   noticeId  Notice ID.
   * @param {Function?} onSuccess Callback function to be executed on success.
   * @param {Function?} onError   Callback function to be executed on error.
   */
  const updateOption = (option, value, success = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Settings saved.', 'otter-blocks'), noticeId = undefined, onSuccess = () => {}, onError = () => {}) => {
    setStatus('saving');
    const save = new (_wordpress_api__WEBPACK_IMPORTED_MODULE_0___default().models).Settings({
      [option]: value
    }).save();
    save.success((response, status) => {
      if ('success' === status) {
        setStatus('loaded');
        createNotice('success', success, {
          isDismissible: true,
          type: 'snackbar',
          id: noticeId
        });
      }
      if ('error' === status) {
        setStatus('error');
        createNotice('error', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('An unknown error occurred.', 'otter-blocks'), {
          isDismissible: true,
          type: 'snackbar',
          id: noticeId
        });
      }
      updatedSettings = response;
      setSettings(response);
      onSuccess?.(response);
    });
    save.error(response => {
      setStatus('error');
      createNotice('error', response?.responseJSON?.message ?? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('An unknown error occurred.', 'otter-blocks'), {
        isDismissible: true,
        type: 'snackbar',
        id: noticeId
      });
      onError?.(response);
    });
  };
  return [getOption, updateOption, status];
};
/* harmony default export */ __webpack_exports__["default"] = (useSettings);

/***/ }),

/***/ "./src/blocks/plugins/options/global-defaults/defaults.js":
/*!****************************************************************!*\
  !*** ./src/blocks/plugins/options/global-defaults/defaults.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
const defaultsAttrs = {
  'themeisle-blocks/button-group': {},
  'themeisle-blocks/button': {},
  'themeisle-blocks/font-awesome-icons': {},
  'themeisle-blocks/advanced-columns': {},
  'themeisle-blocks/advanced-column': {},
  'themeisle-blocks/accordion': {},
  'themeisle-blocks/review': {
    features: []
  },
  'themeisle-blocks/form': {},
  'themeisle-blocks/tabs': {},
  'themeisle-blocks/advanced-heading': {}
};
/* harmony default export */ __webpack_exports__["default"] = (defaultsAttrs);

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/accent.js":
/*!*******************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/accent.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ACCENT_PRESETS: function() { return /* binding */ ACCENT_PRESETS; },
/* harmony export */   accentContent: function() { return /* binding */ accentContent; },
/* harmony export */   previewAccent: function() { return /* binding */ previewAccent; }
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/**
 * WordPress dependencies.
 */


/**
 * Accent recoloring engine for the Design Library.
 *
 * Every accent — preset or custom — is a single hex. From it we derive a
 * Tailwind-like shade ramp (50–950) in OKLCH: fixed lightness per shade so
 * contrast relationships survive any hue, chroma scaled from the picked
 * color so muted picks give muted ramps.
 *
 * Two recolor paths, one ramp:
 *
 * - Previews: Atomic Wind utilities resolve through Tailwind v4 theme
 *   variables (--color-indigo-600), so a pattern recolors by overriding
 *   those variables inside its preview iframe — no markup change, no
 *   re-parse. Classic Otter patterns carry hexes in attributes, so they
 *   get a content rewrite instead (sentinel palette → ramp).
 *
 * - Insertion: everything is baked into the markup. Atomic Wind hue
 *   classes become arbitrary-value classes (bg-indigo-600 → bg-[#xxxxxx])
 *   that the runtime Tailwind generator compiles like any other class, so
 *   inserted content has no dependency on the library or the site theme.
 */

const ACCENT_PRESETS = [{
  color: '#2563eb',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Blue', 'otter-blocks')
}, {
  color: '#059669',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Green', 'otter-blocks')
}, {
  color: '#e11d48',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Red', 'otter-blocks')
}];
const SHADES = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];

// Per-shade OKLCH lightness and chroma, averaged across Tailwind's
// chromatic families. Chroma is the fully-saturated curve — it gets
// scaled down toward the picked color's own chroma.
const SHADE_L = {
  50: 0.975,
  100: 0.94,
  200: 0.89,
  300: 0.81,
  400: 0.71,
  500: 0.62,
  600: 0.55,
  700: 0.48,
  800: 0.42,
  900: 0.37,
  950: 0.27
};
const SHADE_C = {
  50: 0.013,
  100: 0.027,
  200: 0.055,
  300: 0.1,
  400: 0.16,
  500: 0.21,
  600: 0.23,
  700: 0.2,
  800: 0.17,
  900: 0.13,
  950: 0.085
};

// OKLCH hue (around shade 600) of each chromatic Tailwind family.
// Neutrals (slate, gray, zinc, neutral, stone) are never recolored.
const FAMILY_HUES = {
  red: 27,
  orange: 50,
  amber: 76,
  yellow: 96,
  lime: 130,
  green: 148,
  emerald: 163,
  teal: 183,
  cyan: 215,
  sky: 230,
  blue: 263,
  indigo: 275,
  violet: 293,
  purple: 303,
  fuchsia: 322,
  pink: 350,
  rose: 18
};

// Classic Otter patterns opt into recoloring by using this exact palette
// (Tailwind indigo). Each hex found in their markup is swapped for the
// same shade of the derived ramp.
const SENTINELS = {
  50: '#eef2ff',
  100: '#e0e7ff',
  200: '#c7d2fe',
  300: '#a5b4fc',
  400: '#818cf8',
  500: '#6366f1',
  600: '#4f46e5',
  700: '#4338ca',
  800: '#3730a3',
  900: '#312e81',
  950: '#1e1b4b'
};

// --- Color math: sRGB hex ↔ OKLCH, with chroma-reducing gamut clamp. ---

const srgbToLinear = channel => {
  const c = channel / 255;
  return 0.04045 >= c ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
};
const linearToSrgb = c => {
  const v = 0.0031308 >= c ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;
  return Math.round(255 * Math.min(1, Math.max(0, v)));
};
const hexToOklch = hex => {
  let value = hex.replace('#', '');
  if (3 === value.length) {
    value = value.split('').map(c => c + c).join('');
  }
  const r = srgbToLinear(parseInt(value.slice(0, 2), 16));
  const g = srgbToLinear(parseInt(value.slice(2, 4), 16));
  const b = srgbToLinear(parseInt(value.slice(4, 6), 16));
  const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);
  const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);
  const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);
  const L = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
  const a = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
  const bb = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
  const C = Math.sqrt(a * a + bb * bb);
  let H = Math.atan2(bb, a) * 180 / Math.PI;
  if (0 > H) {
    H += 360;
  }
  return {
    L,
    C,
    H
  };
};

// Linear sRGB for an OKLCH color; channels outside [0, 1] mean out of gamut.
const oklchToLinear = (L, C, H) => {
  const a = C * Math.cos(H * Math.PI / 180);
  const bb = C * Math.sin(H * Math.PI / 180);
  const l = Math.pow(L + 0.3963377774 * a + 0.2158037573 * bb, 3);
  const m = Math.pow(L - 0.1055613458 * a - 0.0638541728 * bb, 3);
  const s = Math.pow(L - 0.0894841775 * a - 1.291485548 * bb, 3);
  return [4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s, -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s, -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s];
};
const oklchToHex = (L, C, H) => {
  let rgb = oklchToLinear(L, C, H);

  // Out of gamut: keep lightness and hue, walk chroma down until it fits.
  if (rgb.some(channel => -0.0001 > channel || 1.0001 < channel)) {
    let low = 0;
    let high = C;
    for (let i = 0; 12 > i; i++) {
      const mid = (low + high) / 2;
      rgb = oklchToLinear(L, mid, H);
      if (rgb.some(channel => -0.0001 > channel || 1.0001 < channel)) {
        high = mid;
      } else {
        low = mid;
      }
    }
    rgb = oklchToLinear(L, low, H);
  }
  return '#' + rgb.map(channel => linearToSrgb(channel).toString(16).padStart(2, '0')).join('');
};
const ramps = new Map();

/**
 * Shade ramp for a hue, scaled by the picked color's chroma.
 *
 * @param {number}  hue    OKLCH hue.
 * @param {number}  chroma Picked color's chroma.
 * @param {?string} anchor Picked hex — placed verbatim into its
 *                         nearest-lightness slot, so a brand color shows
 *                         up exactly where the design uses that shade.
 * @return {Object} Shade → hex.
 */
const buildRamp = (hue, chroma, anchor = null) => {
  const key = Math.round(hue) + ':' + chroma.toFixed(3) + ':' + (anchor || '');
  if (!ramps.has(key)) {
    const scale = Math.min(chroma / 0.23, 1.15);
    const ramp = {};

    // Slide the whole lightness curve so it passes exactly through the
    // anchor at its nearest slot — the ramp stays smooth and the picked
    // color appears verbatim where the design uses that shade.
    let nearest = null;
    let delta = 0;
    if (anchor) {
      const {
        L
      } = hexToOklch(anchor);

      // Button-weight colors anchor straight into the 600 slot —
      // "make the buttons this color" is what picking an accent
      // means. Lighter or darker picks land at their nearest slot
      // instead, so a pastel doesn't become an unreadable button.
      if (0.45 <= L && 0.65 >= L) {
        nearest = 600;
      } else {
        nearest = SHADES.reduce((best, shade) => Math.abs(SHADE_L[shade] - L) < Math.abs(SHADE_L[best] - L) ? shade : best);
      }
      delta = L - SHADE_L[nearest];
    }
    SHADES.forEach(shade => {
      ramp[shade] = oklchToHex(Math.min(0.99, Math.max(0.05, SHADE_L[shade] + delta)), SHADE_C[shade] * scale, hue);
    });
    if (anchor) {
      ramp[nearest] = anchor.toLowerCase();
    }
    ramps.set(key, ramp);
  }
  return ramps.get(key);
};
const FAMILY_PATTERN = Object.keys(FAMILY_HUES).join('|');
const SHADE_PATTERN = SHADES.join('|');
const familyRegex = new RegExp(`-(${FAMILY_PATTERN})-(${SHADE_PATTERN})\\b`, 'g');

// Same match with the utility in front (bg-indigo-600 → "bg"), to weigh
// structural color usage against incidental text color.
const utilityRegex = new RegExp(`([a-z]+)-(${FAMILY_PATTERN})-(${SHADE_PATTERN})\\b`, 'g');
const GRADIENT_UTILITIES = ['from', 'via', 'to'];
const familiesCache = new Map();

/**
 * Chromatic families to recolor, primary first.
 *
 * The primary is the family carrying the pattern's structural color —
 * backgrounds, gradients, borders; text-only usage is a weak signal so
 * star ratings and the like never win. Beyond the primary, only gradient
 * stops recolor: they have to move with the accent or gradients tear,
 * while other secondary colors (gold stars, multi-color tiles) are
 * authorial choices that should survive an accent change.
 *
 * @param {Object} pattern Block pattern.
 * @return {Array} Family names.
 */
const getFamilies = pattern => {
  if (!familiesCache.has(pattern.name)) {
    const counts = {};
    const structural = {};
    const inGradient = [];
    for (const match of (pattern.content || '').matchAll(utilityRegex)) {
      const [, utility, family] = match;
      counts[family] = (counts[family] || 0) + 1;
      if ('text' !== utility) {
        structural[family] = (structural[family] || 0) + 1;
      }
      if (GRADIENT_UTILITIES.includes(utility) && !inGradient.includes(family)) {
        inGradient.push(family);
      }
    }
    const families = Object.keys(counts);

    // Families that usually mean star ratings, not accent — they may
    // only claim primary through structural use (e.g. amber buttons),
    // never on text color alone.
    const SEMANTIC = ['amber', 'yellow'];
    let candidates = families.filter(family => 0 < (structural[family] || 0));
    if (!candidates.length) {
      candidates = families.filter(family => !SEMANTIC.includes(family));
    }
    if (!candidates.length) {
      familiesCache.set(pattern.name, []);
    } else {
      const primary = candidates.sort((a, b) => (structural[b] || 0) - (structural[a] || 0) || counts[b] - counts[a])[0];
      familiesCache.set(pattern.name, [primary, ...inGradient.filter(family => family !== primary)]);
    }
  }
  return familiesCache.get(pattern.name);
};

/**
 * Ramps for every chromatic family in a pattern: the dominant family takes
 * the picked hue, companions (e.g. the other stops of a gradient) shift by
 * the same hue delta so multi-hue designs keep their character.
 *
 * @param {Object} pattern Block pattern.
 * @param {string} accent  Picked hex.
 * @return {?Object} Family → ramp, or null when there is nothing to recolor.
 */
const getFamilyRamps = (pattern, accent) => {
  const families = getFamilies(pattern);
  if (!families.length) {
    return null;
  }
  const {
    C,
    H
  } = hexToOklch(accent);
  const primaryHue = FAMILY_HUES[families[0]];
  const result = {};
  families.forEach((family, index) => {
    const delta = FAMILY_HUES[family] - primaryHue;
    let hue = ((H + delta) % 360 + 360) % 360;

    // Companions keep their hue distance from the accent, but a shifted
    // stop landing in the olive band looks muddy next to any accent —
    // mirror it to the same distance on the accent's other side, unless
    // the accent itself lives there or the mirror is just as muddy.
    const muddy = value => 62 < value && 140 > value;
    if (0 !== index && muddy(hue) && !muddy(H)) {
      const mirrored = ((H - delta) % 360 + 360) % 360;
      if (!muddy(mirrored)) {
        hue = mirrored;
      }
    }
    result[family] = buildRamp(hue, C, 0 === index ? accent : null);
  });
  return result;
};
const sentinelRegexes = {};
SHADES.forEach(shade => {
  sentinelRegexes[shade] = new RegExp(SENTINELS[shade], 'gi');
});
const hasSentinels = content => SHADES.some(shade => {
  sentinelRegexes[shade].lastIndex = 0;
  return sentinelRegexes[shade].test(content);
});
const replaceSentinels = (content, ramp) => {
  let result = content;
  SHADES.forEach(shade => {
    sentinelRegexes[shade].lastIndex = 0;
    result = result.replace(sentinelRegexes[shade], ramp[shade]);
  });
  return result;
};
const previewCache = new Map();

/**
 * Recolored rendering of a pattern for previews.
 *
 * Atomic Wind patterns keep their markup and get a CSS-variable override
 * stylesheet for the preview iframe; classic patterns with sentinel hexes
 * get a derived pattern (new name, so downstream parse caches stay
 * correct). Patterns with nothing to recolor pass through untouched.
 *
 * @param {Object}  pattern Block pattern.
 * @param {?string} accent  Picked hex, or null for the original colors.
 * @return {Object} { pattern, css }
 */
const previewAccent = (pattern, accent) => {
  if (!accent) {
    return {
      pattern,
      css: ''
    };
  }
  const key = pattern.name + '|' + accent;
  if (!previewCache.has(key)) {
    const familyRamps = getFamilyRamps(pattern, accent);
    let css = '';
    if (familyRamps) {
      const declarations = Object.keys(familyRamps).flatMap(family => SHADES.map(shade => `--color-${family}-${shade}: ${familyRamps[family][shade]} !important;`)).join(' ');
      css = `:root, body { ${declarations} }`;
    }
    let result = {
      pattern,
      css
    };
    if (hasSentinels(pattern.content || '')) {
      const {
        C,
        H
      } = hexToOklch(accent);
      const ramp = buildRamp(H, C, accent);
      result = {
        pattern: {
          ...pattern,
          name: pattern.name + '@' + accent,
          baseName: pattern.name,
          content: replaceSentinels(pattern.content, ramp)
        },
        css
      };
    }
    previewCache.set(key, result);
  }
  return previewCache.get(key);
};

/**
 * Pattern content with the accent baked into the markup, for insertion.
 *
 * @param {Object}  pattern Block pattern.
 * @param {?string} accent  Picked hex, or null for the original colors.
 * @return {string} Content.
 */
const accentContent = (pattern, accent) => {
  if (!accent) {
    return pattern.content;
  }
  let {
    content
  } = pattern;
  const familyRamps = getFamilyRamps(pattern, accent);
  if (familyRamps) {
    content = content.replace(familyRegex, (match, family, shade) => familyRamps[family] ? `-[${familyRamps[family][shade]}]` : match);
  }
  if (hasSentinels(content)) {
    const {
      C,
      H
    } = hexToOklch(accent);
    content = replaceSentinels(content, buildRamp(H, C, accent));
  }
  return content;
};

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/atomic.js":
/*!*******************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/atomic.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useAtomicCss: function() { return /* binding */ useAtomicCss; },
/* harmony export */   useAtomicCssForContent: function() { return /* binding */ useAtomicCssForContent; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/**
 * WordPress dependencies.
 */


// Atomic Wind blocks are styled by Tailwind classes, and their CSS is
// JIT-generated against the editor canvas — preview iframes never get it
// reliably (they clone a one-time snapshot of the canvas stylesheet, which
// is stale or empty if the generator hasn't run, and never covers classes
// that only exist in pattern markup). Generate the CSS for the pattern's
// own markup instead, through the API the Tailwind generator script exposes,
// and pass it into the preview alongside its content.

// Generated CSS per pattern, cached for the session.
const cache = new Map();

// vh units break inside BlockPreview: the iframe's height is continuously
// fitted to its content, so a viewport-height section measures against
// itself and inflates the preview (100vh never converges at all). Resolve
// vh lengths against a fixed virtual viewport height instead, overridable
// per preview through --parent-vh. Selectors are safe from the regex: in
// arbitrary-value class names ( .min-h-\[90vh\] ) the unit is always
// followed by an escaped bracket, dash or underscore, which the lookahead
// rejects — in declaration values it ends the token.
const VH_LENGTH = /(\d*\.?\d+)(?:[sdl])?vh(?![\w\\[-])/g;
const rewritePreviewVh = css => css.replace(VH_LENGTH, (match, amount) => `calc(var(--parent-vh, 850px) * ${amount} / 100)`);

// Pull every class token out of serialized pattern markup. Tailwind ignores
// tokens that aren't utilities, so over-collecting (block classes, layout
// classes) is harmless.
const extractClasses = content => {
  const classes = new Set();
  for (const [, value] of content.matchAll(/\bclass="([^"]*)"/g)) {
    value.split(/\s+/).forEach(token => token && classes.add(token));
  }
  return Array.from(classes);
};

// Returns { css, isReady } for a chunk of serialized block markup, keyed by
// cacheKey. isReady is immediately true for markup without Atomic Wind blocks
// (and when the generator script isn't loaded, e.g. the blocks are disabled —
// they'd preview as missing anyway); for the rest it flips once the Tailwind
// CSS has been generated, so callers can hold the skeleton until the preview
// can paint fully styled. Use this directly when you hold raw markup (e.g. live
// blocks serialized on the fly); patterns go through useAtomicCss below.
const useAtomicCssForContent = (content, cacheKey) => {
  const needsAtomic = content.includes('atomic-wind/') && Boolean(window.atomicWindGenerateCss);
  const [css, setCss] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(() => cache.get(cacheKey));
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
    const cached = cache.get(cacheKey);
    setCss(cached);
    if (!needsAtomic || undefined !== cached) {
      return;
    }
    let cancelled = false;
    window.atomicWindGenerateCss(extractClasses(content)).then(generated => {
      const rewritten = rewritePreviewVh(generated);
      cache.set(cacheKey, rewritten);
      if (!cancelled) {
        setCss(rewritten);
      }
    })

    // Don't cache failures: show the preview unstyled rather than
    // skeleton forever, but let a remount retry.
    .catch(() => {
      if (!cancelled) {
        setCss('');
      }
    });
    return () => {
      cancelled = true;
    };
  }, [cacheKey, needsAtomic]);
  return {
    css: css || '',
    isReady: !needsAtomic || undefined !== css
  };
};

// Pattern flavor of useAtomicCssForContent: a pattern's name is a stable cache
// key and its content never changes, so the two map one-to-one.
const useAtomicCss = pattern => useAtomicCssForContent(pattern.content, pattern.name);

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/cloudLibraryPlaceholder.js":
/*!************************************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/cloudLibraryPlaceholder.js ***!
  \************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/cloud.mjs");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);




/* harmony default export */ __webpack_exports__["default"] = (() => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
  className: "o-library__tc-placeholder",
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_3__["default"], {
    icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_4__["default"],
    size: 40
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("h2", {
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Add External Sources', 'otter-blocks')
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("p", {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Import templates from any site using Templates Cloud. Free Sources included.', 'otter-blocks')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("p", {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Share patterns between your own sites.', 'otter-blocks')
    })]
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("br", {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
    href: `${window.themeisleGutenberg.optionsPath}&scrollTo=tc#integrations`,
    variant: "link",
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Go to settings to add sources', 'otter-blocks')
  })]
}));

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/editor.scss":
/*!*********************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/editor.scss ***!
  \*********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ "./src/blocks/plugins/patterns-library/enableAtomicWind.js":
/*!*****************************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/enableAtomicWind.js ***!
  \*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/update.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/layout.mjs");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _helpers_use_settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/use-settings */ "./src/blocks/helpers/use-settings.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__);
/**
 * WordPress dependencies.
 */





/**
 * Internal dependencies.
 */


const ATOMIC_WIND_OPTION = 'themeisle_blocks_settings_atomic_wind_blocks';

/**
 * Gate shown in place of a feature when the Atomic Wind blocks it depends on are
 * disabled. Lets the user flip the setting in one click, then asks for the reload
 * the new block registrations need to load. Copy is overridable so the same gate
 * can front the Design Library, the AI generator, or anything else atomic-only.
 *
 * @param {Object} props
 * @param {string} [props.title]       Heading shown before enabling.
 * @param {string} [props.description] Body copy shown before enabling.
 */
const EnableAtomicWind = ({
  title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Atomic Wind blocks are required', 'otter-blocks'),
  description = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The Design Library is built on Otter\'s Atomic Wind blocks, which are currently disabled. Enable them to browse and insert templates.', 'otter-blocks')
} = {}) => {
  const [, updateOption, status] = (0,_helpers_use_settings__WEBPACK_IMPORTED_MODULE_3__["default"])();
  const [enabled, setEnabled] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(false);
  const isSaving = 'saving' === status;
  const enable = () => {
    updateOption(ATOMIC_WIND_OPTION, true, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Atomic Wind blocks enabled.', 'otter-blocks'), 'o-library-atomic-wind', () => setEnabled(true));
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
    className: "o-library__gate",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
      className: "o-library__gate-icon",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_5__["default"], {
        icon: enabled ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"] : _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"],
        size: 40
      })
    }), !enabled ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("h2", {
        children: title
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("p", {
        children: description
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
        variant: "primary",
        className: "o-library__gate-action",
        onClick: enable,
        isBusy: isSaving,
        disabled: isSaving,
        children: isSaving ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enabling…', 'otter-blocks') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable Atomic Wind blocks', 'otter-blocks')
      })]
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("h2", {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Almost there — reload to continue', 'otter-blocks')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("p", {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Atomic Wind blocks are now enabled. Reload the editor to load them. Save any pending changes first.', 'otter-blocks')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
        variant: "primary",
        className: "o-library__gate-action",
        onClick: () => window.location.reload(),
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Reload editor', 'otter-blocks')
      })]
    })]
  });
};
/* harmony default export */ __webpack_exports__["default"] = (EnableAtomicWind);

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/library.js":
/*!********************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/library.js ***!
  \********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks");
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/close.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/search.mjs");
/* harmony import */ var _helpers_block_utility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/block-utility */ "./src/blocks/helpers/block-utility.js");
/* harmony import */ var _helpers_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/icons */ "./src/blocks/helpers/icons.js");
/* harmony import */ var _sidebar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sidebar */ "./src/blocks/plugins/patterns-library/sidebar.js");
/* harmony import */ var _topbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./topbar */ "./src/blocks/plugins/patterns-library/topbar.js");
/* harmony import */ var _template__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./template */ "./src/blocks/plugins/patterns-library/template.js");
/* harmony import */ var _preview__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./preview */ "./src/blocks/plugins/patterns-library/preview.js");
/* harmony import */ var _cloudLibraryPlaceholder__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./cloudLibraryPlaceholder */ "./src/blocks/plugins/patterns-library/cloudLibraryPlaceholder.js");
/* harmony import */ var _enableAtomicWind__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./enableAtomicWind */ "./src/blocks/plugins/patterns-library/enableAtomicWind.js");
/* harmony import */ var _smart__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./smart */ "./src/blocks/plugins/patterns-library/smart.js");
/* harmony import */ var _accent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./accent */ "./src/blocks/plugins/patterns-library/accent.js");
/* harmony import */ var _onboarding_utils_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../onboarding/utils.js */ "./src/onboarding/utils.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__);
/**
 * WordPress dependencies.
 */








/**
 * Internal dependencies.
 */












// WP 7.0 stamps blocks inlined from wp:pattern refs with metadata.patternName
// and locks them into content-only mode. Inserts are unsynced copies — drop
// the stamp, keep the rest of metadata (bindings, labels).

const stripPatternAttribution = blocks => blocks.map(block => {
  const metadata = {
    ...(block.attributes?.metadata || {})
  };
  delete metadata.patternName;
  return {
    ...block,
    attributes: {
      ...block.attributes,
      metadata: Object.keys(metadata).length ? metadata : undefined
    },
    innerBlocks: stripPatternAttribution(block.innerBlocks || [])
  };
});
const CLOUD_EMPTY_CATEGORY = 'cloud-empty';

// Section categories bucketed into meaningful sidebar groups. Mirrors the
// taxonomy registered in inc/class-patterns.php. Groups only render the
// categories that at least one pattern actually uses, so empty (future)
// categories listed here stay hidden until patterns adopt them.
const SECTION_GROUPS = [{
  id: 'structure',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Layout & Structure', 'otter-blocks'),
  categories: ['header', 'page-sections']
}, {
  id: 'content',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Content', 'otter-blocks'),
  categories: ['features', 'gallery', 'team', 'text', 'blog', 'faq', 'timeline', 'portfolio']
}, {
  id: 'convert',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Conversion', 'otter-blocks'),
  categories: ['call-to-action', 'forms', 'pricing', 'contact', 'newsletter', 'waitlist']
}, {
  id: 'proof',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Social Proof', 'otter-blocks'),
  categories: ['testimonials', 'stats', 'case-studies', 'clients']
}, {
  id: 'media',
  label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Media', 'otter-blocks'),
  categories: ['video', 'maps', 'icons']
}];

// Categories that are containers, not browsable destinations.
const HIDDEN_CATEGORIES = ['otter-blocks', 'featured', 'pages'];

// Refine facets where each pattern has exactly one value, so selecting a tag
// replaces any other active tag in the same group instead of ANDing with it.
// Tone and layout are single-value by nature; among curated metadata only
// `style` is exclusive (a pattern has one style, but can serve many use cases).
const EXCLUSIVE_META_GROUPS = ['style'];

// The exclusivity bucket a tag belongs to, or null when it stacks freely.
const exclusiveBucket = tag => {
  if ('tone' === tag.kind || 'layout' === tag.kind || 'access' === tag.kind) {
    return tag.kind;
  }
  if ('meta' === tag.kind && EXCLUSIVE_META_GROUPS.includes(tag.group)) {
    return 'meta:' + tag.group;
  }
  return null;
};
const isPackCategory = name => name.endsWith('-pack');
const isCloudCategory = name => name.startsWith('ti-tc-');

// A pattern's stable identity: the slug stays constant when it switches from an
// upsell (`otter-blocks/<slug>`) to the real Pro version (`otter-pro/<slug>`).
const slugOf = name => (name || '').split('/').pop();
const isPagePattern = pattern => pattern.categories.some(category => isPackCategory(category) || 'pages' === category);

// Block types that aren't registered at all (e.g. a disabled block module)
// parse into core/missing wrappers — collect their original names.
const findMissingBlocks = blocks => blocks.flatMap(block => [...('core/missing' === block.name && block.attributes?.originalName ? [block.attributes.originalName] : []), ...findMissingBlocks(block.innerBlocks || [])]);
const Library = ({
  onClose
}) => {
  const {
    insertBlocks
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useDispatch)('core/block-editor');
  const {
    createSuccessNotice,
    createWarningNotice
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useDispatch)('core/notices');
  const {
    set
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useDispatch)('core/preferences');
  const {
    clientID,
    favorites,
    columns,
    accent
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useSelect)(select => {
    const {
      getSelectedBlockClientId
    } = select('core/block-editor');
    const {
      get
    } = select('core/preferences');
    return {
      clientID: getSelectedBlockClientId(),
      favorites: get('themeisle/otter-blocks', 'patterns-favorites') || [],
      columns: get('themeisle/otter-blocks', 'patterns-columns') || 3,
      accent: get('themeisle/otter-blocks', 'patterns-accent') || null
    };
  }, []);

  // Every template is built on Atomic Wind blocks, which only register when
  // their setting is on. With them off the library can't render or insert
  // anything, so gate the whole thing behind a one-click enable prompt.
  const atomicWindEnabled = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useSelect)(select => Boolean(select('core/blocks').getBlockType('atomic-wind/box')), []);
  const setColumns = value => set('themeisle/otter-blocks', 'patterns-columns', value);
  const setAccent = value => set('themeisle/otter-blocks', 'patterns-accent', value);

  // Match by slug so a pattern favorited as an upsell stays favorited once Pro
  // registers it; the stored value keeps its original full name.
  const toggleFavorite = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useCallback)(name => {
    const slug = slugOf(name);
    if (favorites.some(favorite => slugOf(favorite) === slug)) {
      set('themeisle/otter-blocks', 'patterns-favorites', favorites.filter(favorite => slugOf(favorite) !== slug));
    } else {
      set('themeisle/otter-blocks', 'patterns-favorites', [...favorites, name]);
    }
  }, [favorites]);

  // Slug set for favorite membership checks across the library.
  const favoriteSlugs = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => new Set(favorites.map(slugOf)), [favorites]);

  // Return only raw store references from useSelect — filtering in the
  // callback would produce a fresh array on every store change, which
  // useSelect's shallow comparison treats as a new value.
  const {
    allPatterns,
    allCategories,
    isResolvingPatterns
  } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useSelect)(select => {
    const {
      getBlockPatterns,
      getBlockPatternCategories,
      hasFinishedResolution
    } = select('core');
    return {
      allPatterns: getBlockPatterns(),
      allCategories: getBlockPatternCategories() || [],
      isResolvingPatterns: !hasFinishedResolution('getBlockPatterns') || !hasFinishedResolution('getBlockPatternCategories')
    };
  }, []);
  const registeredPatterns = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => allPatterns?.filter(pattern => pattern?.categories && pattern?.categories.includes('otter-blocks')) || [], [allPatterns]);

  // Static Pro upsell cards. With a license, Otter Pro registers the real
  // patterns (otter-pro/<slug>, also tagged otter-blocks) and they arrive in
  // registeredPatterns above — so drop any upsell whose slug is already
  // registered, leaving only the not-yet-unlocked ones as upsells.
  const proUpsells = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => (window.themeisleGutenberg?.proPatterns || []).map(pattern => ({
    ...pattern,
    content: '',
    categories: pattern.categories || ['otter-blocks'],
    keywords: pattern.keywords || [],
    elements: pattern.elements || [],
    isPro: true
  })), []);
  const patterns = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    const registeredSlugs = new Set(registeredPatterns.map(pattern => slugOf(pattern.name)));
    return [...registeredPatterns, ...proUpsells.filter(pattern => !registeredSlugs.has(slugOf(pattern.name)))];
  }, [registeredPatterns, proUpsells]);

  // A stored favorite can point at a pattern that's neither registered nor an
  // upsell anymore; it can't render when filtered, so count only favorites
  // (by slug) that still resolve to a known pattern.
  const favCount = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    const known = new Set(patterns.map(pattern => slugOf(pattern.name)));
    let count = 0;
    favoriteSlugs.forEach(slug => {
      if (known.has(slug)) {
        count++;
      }
    });
    return count;
  }, [patterns, favoriteSlugs]);
  const {
    sectionGroups,
    collections,
    tcCategories,
    categoryLabels
  } = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    const usedCategories = [...new Set(patterns.flatMap(pattern => pattern.categories))];
    const categoryLabels = {};
    allCategories.forEach(category => {
      categoryLabels[category.name] = category.label;
    });

    // Patterns in the "header" category are heroes.
    categoryLabels.header = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Hero', 'otter-blocks');
    const sectionCategories = usedCategories.filter(name => !HIDDEN_CATEGORIES.includes(name) && !isPackCategory(name) && !isCloudCategory(name));
    const sectionGroups = SECTION_GROUPS.map(group => ({
      ...group,
      categories: group.categories.filter(name => sectionCategories.includes(name)).map(name => ({
        name,
        label: categoryLabels[name] || name
      }))
    })).filter(group => Boolean(group.categories.length));
    const leftovers = sectionCategories.filter(name => !SECTION_GROUPS.some(group => group.categories.includes(name)));
    if (leftovers.length) {
      sectionGroups.push({
        id: 'more',
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('More', 'otter-blocks'),
        categories: leftovers.map(name => ({
          name,
          label: categoryLabels[name] || name
        })).sort((a, b) => a.label.localeCompare(b.label))
      });
    }

    // Packs that contain at least one free (registered) pattern; the rest
    // are Pro-only collections.
    const freePackCategories = new Set();
    patterns.forEach(pattern => {
      if (!pattern.isPro) {
        pattern.categories.forEach(category => {
          if (isPackCategory(category)) {
            freePackCategories.add(category);
          }
        });
      }
    });
    const collections = usedCategories.filter(isPackCategory).map(name => {
      const label = (categoryLabels[name] || name).replace(/\s*\(Pages\)\s*$/, '');
      categoryLabels[name] = label;
      return {
        name,
        label,
        isPro: !freePackCategories.has(name)
      };
    })
    // Free packs first, then Pro; alphabetical within each group.
    .sort((a, b) => a.isPro === b.isPro ? a.label.localeCompare(b.label) : a.isPro ? 1 : -1);
    const tcCategories = usedCategories.filter(isCloudCategory).map(name => ({
      name,
      label: categoryLabels[name] || name
    })).sort((a, b) => a.label.localeCompare(b.label));
    return {
      sectionGroups,
      collections,
      tcCategories,
      categoryLabels
    };
  }, [patterns, allCategories]);
  const [mode, setModeRaw] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)('sections');
  const [activeCategory, setActiveCategory] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)('all');
  const [query, setQuery] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)('');

  // The input tracks `query` keystroke by keystroke; everything downstream
  // (token parsing, fuzzy search, filtering) reads the debounced copy so
  // the grid doesn't churn mid-word. Clearing skips the delay — stale
  // results lingering after the field empties read as a bug.
  const [debouncedQuery, setDebouncedQuery] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)('');
  const updateDebouncedQuery = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__.useDebounce)(setDebouncedQuery, 250);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {
    if (!query) {
      updateDebouncedQuery.cancel();
      setDebouncedQuery('');
      return;
    }
    updateDebouncedQuery(query);
  }, [query, updateDebouncedQuery]);
  const [favOnly, setFavOnly] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)(false);
  const [sort, setSort] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)('featured');
  const [activeTags, setActiveTags] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)([]);
  const [preview, setPreview] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)(null);
  const isPage = 'pages' === mode;
  const setMode = value => {
    setModeRaw(value);
    setActiveCategory('all');
  };

  // Patterns in the current mode, before any filtering.
  const modePatterns = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    return patterns.filter(pattern => isPage === isPagePattern(pattern));
  }, [patterns, isPage]);

  // Per-category counts for the sidebar, independent of search and filters.
  const counts = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    const counts = {
      all: modePatterns.length
    };
    modePatterns.forEach(pattern => {
      pattern.categories.forEach(category => {
        counts[category] = (counts[category] || 0) + 1;
      });
    });
    return counts;
  }, [modePatterns]);

  // Scope: mode + category. Used for tag suggestions and filtering.
  const scope = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    return modePatterns.filter(pattern => 'all' === activeCategory || pattern.categories.includes(activeCategory));
  }, [modePatterns, activeCategory]);
  const parsed = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.parseQuery)(debouncedQuery), [debouncedQuery]);

  // Fuzzy matching for the free-text part of the query, so typos and
  // partial words still find patterns. Indexed over all patterns — the
  // scope filters below narrow the results.
  const searchIndex = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.createSearchIndex)(patterns, categoryLabels), [patterns, categoryLabels]);
  const textMatches = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.fuzzyMatches)(searchIndex, parsed.text), [searchIndex, parsed]);

  // Refine tags with live counts. The suggested set stays stable per scope
  // (it doesn't reshuffle as you filter), but each tag's count is recomputed
  // against the current search, favorites and active tags so it reflects what
  // clicking it would actually return — and any tag that would yield nothing
  // is flagged disabled, so a filter never leads to an empty grid.
  const tags = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    const suggested = (0,_smart__WEBPACK_IMPORTED_MODULE_14__.suggestTags)(scope, 12);

    // Everything except the tag facets: these always constrain the counts.
    const base = scope.filter(pattern => !favOnly || favoriteSlugs.has(slugOf(pattern.name))).filter(pattern => parsed.tokens.every(token => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.matchToken)(pattern, token))).filter(pattern => !textMatches || textMatches.has(pattern.name));
    return suggested.map(tag => {
      const bucket = exclusiveBucket(tag);

      // Selecting a tag in an exclusive group replaces that group's current
      // choice, so its count ignores other active tags in the same bucket;
      // independent tags stack on top of every active tag.
      const others = activeTags.filter(item => !bucket || exclusiveBucket(item) !== bucket);
      const count = base.filter(pattern => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.matchToken)(pattern, tag) && others.every(token => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.matchToken)(pattern, token))).length;
      return {
        ...tag,
        count,
        disabled: 0 === count
      };
    });
  }, [scope, favOnly, favoriteSlugs, parsed, textMatches, activeTags]);

  // Clear tag selections when the scope changes.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {
    setActiveTags([]);
  }, [mode, activeCategory]);
  const toggleTag = tag => {
    setActiveTags(current => {
      if (current.some(item => item.key === tag.key)) {
        return current.filter(item => item.key !== tag.key);
      }

      // Single-choice facets (tone, layout, style) would AND into an empty
      // set if two values were active, so selecting one drops any other tag
      // in the same exclusivity bucket.
      const bucket = exclusiveBucket(tag);
      const kept = bucket ? current.filter(item => exclusiveBucket(item) !== bucket) : current;
      return [...kept, {
        key: tag.key,
        kind: tag.kind,
        group: tag.group,
        value: tag.value
      }];
    });
  };

  // Removing a parsed token strips its source word from the query string.
  const onRemoveToken = token => {
    setQuery(current => current.split(/\s+/).filter(word => word.toLowerCase() !== token.word).join(' '));
  };
  const primaryCategoryLabel = pattern => {
    const category = pattern.categories.find(name => !HIDDEN_CATEGORIES.includes(name));
    return category ? categoryLabels[category] || '' : '';
  };
  const filteredPatterns = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    let result = scope.filter(pattern => !favOnly || favoriteSlugs.has(slugOf(pattern.name))).filter(pattern => parsed.tokens.every(token => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.matchToken)(pattern, token))).filter(pattern => activeTags.every(token => (0,_smart__WEBPACK_IMPORTED_MODULE_14__.matchToken)(pattern, token))).filter(pattern => !textMatches || textMatches.has(pattern.name));
    if ('az' === sort) {
      result = [...result].sort((a, b) => a.title.localeCompare(b.title));
    } else if ('za' === sort) {
      result = [...result].sort((a, b) => b.title.localeCompare(a.title));
    } else if (textMatches) {
      result = [...result].sort((a, b) => textMatches.get(a.name) - textMatches.get(b.name));
    }
    return result;
  }, [scope, parsed, activeTags, favOnly, favoriteSlugs, sort, textMatches]);

  // "More like this" suggestions for the preview overlay.
  const similarPatterns = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    if (!preview) {
      return [];
    }
    return (0,_smart__WEBPACK_IMPORTED_MODULE_14__.similar)(preview, patterns.filter(pattern => isPagePattern(preview) === isPagePattern(pattern)), 4);
  }, [preview, patterns]);
  const insertPattern = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useCallback)(pattern => {
    // Pro upsell cards carry no content — they can't be inserted. Send the
    // user to the Pro patterns page in a new tab and leave the library open
    // so they can keep browsing.
    if (pattern.isPro) {
      const url = window.themeisleGutenberg?.patternsLink || window.themeisleGutenberg?.upgradeLink;
      if (url) {
        window.open(url, '_blank');
      }
      return;
    }

    // With Pro active the upsell banner removes itself right after
    // insertion anyway — skip it up front. Inline wp:pattern refs while
    // parsing: inserted raw they render locked, or not at all for
    // unregistered slugs.
    const blocks = stripPatternAttribution((0,_onboarding_utils_js__WEBPACK_IMPORTED_MODULE_16__.resolvePatternBlocks)((0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_1__.parse)((0,_accent__WEBPACK_IMPORTED_MODULE_15__.accentContent)(pattern, accent)), allPatterns)).filter(block => _template__WEBPACK_IMPORTED_MODULE_10__.UPSELL_BLOCK !== block.name || !Boolean(window.themeisleGutenberg?.hasPro));

    // Inserting unregistered blocks would just dump raw markup into the
    // canvas — tell the user what's missing instead. Atomic Wind blocks
    // only register when their toggle in Otter's settings is on, so for
    // those we can point at the fix directly.
    const missing = [...new Set(findMissingBlocks(blocks))];
    if (missing.length) {
      const needsAtomicWind = missing.some(name => name.startsWith('atomic-wind/'));
      const optionsPath = window.themeisleGutenberg?.optionsPath;
      createWarningNotice(needsAtomicWind ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(
      // translators: %s is the name of the template.
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('"%s" needs the Atomic Wind blocks, which are currently disabled. Enable them in Otter\'s settings, then insert the template again.', 'otter-blocks'), pattern.title) : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(
      // translators: %1$s is the name of the template, %2$s is a list of block names.
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('"%1$s" needs blocks that aren\'t available on this site: %2$s', 'otter-blocks'), pattern.title, missing.join(', ')), {
        isDismissible: true,
        actions: needsAtomicWind && optionsPath ? [{
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Open Otter settings', 'otter-blocks'),
          onClick: () => window.open(optionsPath, '_blank')
        }] : []
      });
      onClose();
      return;
    }

    // Blocks disabled in the Block Manager are folded into the editor's
    // allowedBlockTypes setting, and insertBlocks silently drops every
    // block that isn't allowed. Inserting a chosen template is explicit
    // intent — lift the restriction for the duration of the insert.
    const {
      allowedBlockTypes
    } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.select)('core/block-editor').getSettings();
    const {
      updateSettings
    } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.dispatch)('core/block-editor');
    updateSettings({
      allowedBlockTypes: true
    });
    try {
      if (clientID) {
        (0,_helpers_block_utility__WEBPACK_IMPORTED_MODULE_6__.insertBlockBelow)(clientID, blocks);
      } else {
        insertBlocks(blocks);
      }
    } finally {
      updateSettings({
        allowedBlockTypes
      });
    }
    createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(
    // translators: %s is the name of the inserted template.
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('"%s" inserted.', 'otter-blocks'), pattern.title), {
      type: 'snackbar'
    });
    onClose();
  }, [clientID, accent, allPatterns]);
  const resetFilters = () => {
    setQuery('');
    setFavOnly(false);
    setActiveCategory('all');
    setActiveTags([]);
  };
  const onRequestClose = () => {
    if (preview) {
      setPreview(null);
      return;
    }
    onClose();
  };
  const isCloudPlaceholder = CLOUD_EMPTY_CATEGORY === activeCategory;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Modal, {
    onRequestClose: onRequestClose,
    className: "o-library__modal",
    overlayClassName: "o-library__overlay",
    __experimentalHideHeader: true,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("header", {
      className: "o-library__head",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
        className: "o-library__brand",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
          className: "o-library__logo",
          children: (0,_helpers_icons__WEBPACK_IMPORTED_MODULE_7__.otterMascot)({})
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("h1", {
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Design Library', 'otter-blocks')
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("button", {
        className: "o-library__iconbtn",
        "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Close library', 'otter-blocks'),
        onClick: onClose,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_18__["default"], {
          icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_19__["default"],
          size: 24
        })
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
      className: "o-library__body",
      children: [!atomicWindEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_enableAtomicWind__WEBPACK_IMPORTED_MODULE_13__["default"], {}), atomicWindEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.Fragment, {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_sidebar__WEBPACK_IMPORTED_MODULE_8__["default"], {
          mode: mode,
          setMode: setMode,
          activeCategory: activeCategory,
          setActiveCategory: setActiveCategory,
          sectionGroups: sectionGroups,
          collections: collections,
          tcCategories: tcCategories,
          counts: counts,
          isLoading: isResolvingPatterns,
          accent: accent,
          setAccent: setAccent,
          showCloudPlaceholder: !tcCategories.length && Boolean(window?.themeisleGutenberg?.hasPatternSources),
          cloudEmptyCategory: CLOUD_EMPTY_CATEGORY
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("main", {
          className: "o-library__main",
          children: [isResolvingPatterns && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.Fragment, {
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_topbar__WEBPACK_IMPORTED_MODULE_9__.TopbarSkeleton, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_topbar__WEBPACK_IMPORTED_MODULE_9__.TagRowSkeleton, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
              className: "o-library__scroll",
              "aria-busy": "true",
              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
                className: "o-library__grid",
                style: {
                  '--o-lib-cols': columns
                },
                children: Array.from({
                  length: columns * 3
                }).map((_, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
                  className: `o-library__card is-skeleton${isPage ? ' is-page' : ''}`,
                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
                    className: "o-library__thumb",
                    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
                      className: "o-library__thumb-skeleton"
                    })
                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
                    className: "o-library__card-foot",
                    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
                      className: "o-library__skeleton-line"
                    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
                      className: "o-library__skeleton-line is-short"
                    })]
                  })]
                }, index))
              })
            })]
          }), isCloudPlaceholder && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_cloudLibraryPlaceholder__WEBPACK_IMPORTED_MODULE_12__["default"], {}), !isCloudPlaceholder && !isResolvingPatterns && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.Fragment, {
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_topbar__WEBPACK_IMPORTED_MODULE_9__["default"], {
              query: query,
              setQuery: setQuery,
              count: filteredPatterns.length,
              favCount: favCount,
              favOnly: favOnly,
              setFavOnly: setFavOnly,
              sort: sort,
              setSort: setSort,
              columns: columns,
              setColumns: setColumns,
              tokens: parsed.tokens,
              onRemoveToken: onRemoveToken,
              categoryLabels: categoryLabels
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_topbar__WEBPACK_IMPORTED_MODULE_9__.SmartTagRow, {
              tags: tags,
              active: activeTags.map(tag => tag.key),
              onToggle: toggleTag
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
              className: "o-library__scroll",
              children: [!filteredPatterns.length && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
                className: "o-library__empty",
                children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_18__["default"], {
                  icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_20__["default"],
                  size: 40
                }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("h3", {
                  children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No templates match', 'otter-blocks')
                }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("p", {
                  children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Try a different search or clear your filters.', 'otter-blocks')
                }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("button", {
                  className: "o-library__btn is-ghost",
                  onClick: resetFilters,
                  children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Clear filters', 'otter-blocks')
                })]
              }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
                className: "o-library__grid",
                style: {
                  '--o-lib-cols': columns
                },
                children: filteredPatterns.map(pattern => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_template__WEBPACK_IMPORTED_MODULE_10__["default"], {
                  pattern: pattern,
                  categoryLabel: primaryCategoryLabel(pattern),
                  isPage: isPage,
                  isFavorite: favoriteSlugs.has(slugOf(pattern.name)),
                  accent: accent,
                  onInsert: insertPattern,
                  onPreview: setPreview,
                  onFavorite: toggleFavorite
                }, pattern.name))
              })]
            })]
          })]
        })]
      })]
    }), preview && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_preview__WEBPACK_IMPORTED_MODULE_11__["default"], {
      pattern: preview,
      categoryLabel: primaryCategoryLabel(preview),
      isPage: isPagePattern(preview),
      isFavorite: favoriteSlugs.has(slugOf(preview.name)),
      accent: accent,
      similar: similarPatterns,
      onFavorite: () => toggleFavorite(preview.name),
      onClose: () => setPreview(null),
      onInsert: () => insertPattern(preview),
      onPreviewOther: setPreview
    })]
  });
};
/* harmony default export */ __webpack_exports__["default"] = (Library);

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/preview.js":
/*!********************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/preview.js ***!
  \********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-intersection-observer */ "./node_modules/react-intersection-observer/dist/index.mjs");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/lock.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/plus.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/close.mjs");
/* harmony import */ var _helpers_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/icons */ "./src/blocks/helpers/icons.js");
/* harmony import */ var _template__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./template */ "./src/blocks/plugins/patterns-library/template.js");
/* harmony import */ var _accent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./accent */ "./src/blocks/plugins/patterns-library/accent.js");
/* harmony import */ var _atomic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./atomic */ "./src/blocks/plugins/patterns-library/atomic.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__);
/**
 * External dependencies.
 */



/**
 * WordPress dependencies.
 */




/**
 * Internal dependencies.
 */





const SimilarCard = ({
  pattern,
  accent,
  onClick
}) => {
  // Defer each card's BlockPreview until it nears the viewport, so opening the
  // dialog doesn't mount every preview at once and stall the first paint.
  const {
    ref,
    inView
  } = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_8__.useInView)({
    threshold: 0,
    rootMargin: '200px',
    triggerOnce: true
  });
  const thumb = pattern.isPro ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_template__WEBPACK_IMPORTED_MODULE_4__.ProThumb, {
    pattern: pattern
  }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_template__WEBPACK_IMPORTED_MODULE_4__.QueuedPreview, {
    pattern: pattern,
    accent: accent
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("button", {
    className: "o-library__similar-card",
    onClick: onClick,
    ref: ref,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", {
      className: "o-library__similar-thumb",
      children: inView ? thumb : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_template__WEBPACK_IMPORTED_MODULE_4__.Skeleton, {})
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", {
      className: "o-library__similar-name",
      children: pattern.title
    })]
  });
};
const Preview = ({
  pattern,
  categoryLabel,
  isPage = false,
  isFavorite = false,
  accent = null,
  similar = [],
  onFavorite,
  onClose,
  onInsert,
  onPreviewOther
}) => {
  const isPro = Boolean(pattern.isPro);
  const {
    pattern: derived,
    css: accentCss
  } = (0,_accent__WEBPACK_IMPORTED_MODULE_5__.previewAccent)(pattern, accent);
  const {
    css: atomicCss,
    isReady: hasAtomicCss
  } = (0,_atomic__WEBPACK_IMPORTED_MODULE_6__.useAtomicCss)(derived);

  // Jumping between patterns via "More like this" keeps the modal mounted —
  // start each pattern at the top of its preview.
  const bodyRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    bodyRef.current?.scrollTo(0, 0);
  }, [pattern.name]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
    className: "o-library__pv-scrim",
    role: "presentation",
    onClick: onClose,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
      className: "o-library__pv",
      role: "dialog",
      "aria-modal": "true",
      "aria-label": pattern.title,
      onClick: event => event.stopPropagation(),
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
        className: "o-library__pv-head",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
            className: "o-library__pv-title",
            children: pattern.title
          }), Boolean(categoryLabel) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
            className: "o-library__pv-cat",
            children: categoryLabel
          })]
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
          className: "o-library__pv-actions",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("button", {
            className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__iconbtn', {
              'is-fav': isFavorite
            }),
            title: isFavorite ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Remove from favorites', 'otter-blocks') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Add to favorites', 'otter-blocks'),
            onClick: onFavorite,
            children: (isFavorite ? _helpers_icons__WEBPACK_IMPORTED_MODULE_3__.heartFilledIcon : _helpers_icons__WEBPACK_IMPORTED_MODULE_3__.heartIcon)({
              width: 20,
              height: 20
            })
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("button", {
            className: "o-library__btn is-primary is-large",
            onClick: onInsert,
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_9__["default"], {
              icon: isPro ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"] : _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__["default"],
              size: 20
            }), isPro ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Get with Otter Pro', 'otter-blocks') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Insert template', 'otter-blocks')]
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("button", {
            className: "o-library__iconbtn",
            title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Close preview', 'otter-blocks'),
            onClick: onClose,
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_9__["default"], {
              icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_12__["default"],
              size: 20
            })
          })]
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
        className: "o-library__pv-body",
        ref: bodyRef,
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
          className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__pv-frame', {
            'is-page': isPage,
            'is-pro': isPro
          }),
          children: isPro ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_template__WEBPACK_IMPORTED_MODULE_4__.ProThumb, {
            pattern: pattern
          }) :
          /* Keyed per pattern: swapping blocks inside a live BlockPreview
           re-renders its iframe in place, flashing the whole frame white.
           Remounting through the async queue shows the skeleton instead. */
          hasAtomicCss ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_template__WEBPACK_IMPORTED_MODULE_4__.AsyncPreview, {
            placeholder: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
              className: "o-library__pv-skeleton"
            }),
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_template__WEBPACK_IMPORTED_MODULE_4__.ParsedPreview, {
              pattern: derived,
              css: [atomicCss, accentCss],
              placeholder: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
                className: "o-library__pv-skeleton"
              })
            })
          }, derived.name) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
            className: "o-library__pv-skeleton"
          })
        }), Boolean(similar.length) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
          className: "o-library__similar",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
            className: "o-library__similar-head",
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('More like this', 'otter-blocks')
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
            className: "o-library__similar-row",
            children: similar.map(item => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(SimilarCard, {
              pattern: item,
              accent: accent,
              onClick: () => onPreviewOther(item)
            }, item.name))
          })]
        })]
      })]
    })
  });
};
/* harmony default export */ __webpack_exports__["default"] = (Preview);

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/sidebar.js":
/*!********************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/sidebar.js ***!
  \********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/layout.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/page.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/chevron-down.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/lock.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/external.mjs");
/* harmony import */ var _accent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./accent */ "./src/blocks/plugins/patterns-library/accent.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
/**
 * External dependencies.
 */


/**
 * WordPress dependencies.
 */





/**
 * Internal dependencies.
 */


const CategoryRow = ({
  id,
  label,
  count,
  isActive,
  onSelect,
  className,
  children,
  afterLabel
}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", {
  className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__cat', className, {
    'is-active': isActive
  }),
  onClick: () => onSelect(id),
  children: [children, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
    className: "o-library__cat-label",
    children: label
  }), afterLabel, undefined !== count && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
    className: "o-library__count",
    children: count
  })]
});

// Skeleton mirror of the category nav: an "all" row plus a few grouped rows,
// so the sidebar keeps its width and rhythm while pattern categories resolve
// rather than reflowing once they land.
const NAV_SKELETON = [{
  rows: [62, 74, 58]
}, {
  rows: [70, 54, 80, 66]
}, {
  rows: [60, 76]
}];
const NavSkeleton = () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
    className: "o-library__cat is-skeleton",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
      className: "o-library__shimmer",
      style: {
        width: '55%',
        height: 13,
        borderRadius: 4
      }
    })
  }), NAV_SKELETON.map((group, groupIndex) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
    className: "o-library__group",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
      className: "o-library__group-head is-static",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
        className: "o-library__shimmer",
        style: {
          width: 86,
          height: 9,
          borderRadius: 3
        }
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
      className: "o-library__group-body",
      children: group.rows.map((width, rowIndex) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
        className: "o-library__cat is-skeleton",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
          className: "o-library__shimmer",
          style: {
            width: `${width}%`,
            height: 12,
            borderRadius: 4
          }
        })
      }, rowIndex))
    })]
  }, groupIndex))]
});
const AccentPanel = ({
  accent,
  setAccent,
  isLoading
}) => {
  const [pickerOpen, setPickerOpen] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(false);
  const isCustom = Boolean(accent) && !_accent__WEBPACK_IMPORTED_MODULE_4__.ACCENT_PRESETS.some(preset => preset.color === accent);

  // Shimmer the swatch row while patterns resolve so the whole library reads
  // as one loading surface, then settles into the real picker in place.
  if (isLoading) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      className: "o-library__accent",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
        className: "o-library__accent-head",
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Accent color', 'otter-blocks')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
        className: "o-library__accent-row",
        "aria-hidden": "true",
        children: Array.from({
          length: _accent__WEBPACK_IMPORTED_MODULE_4__.ACCENT_PRESETS.length + 2
        }).map((_, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
          className: "o-library__shimmer",
          style: {
            width: 26,
            height: 26,
            borderRadius: '50%'
          }
        }, index))
      })]
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
    className: "o-library__accent",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
      className: "o-library__accent-head",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Accent color', 'otter-blocks')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      className: "o-library__accent-row",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__swatch is-default', {
          'is-active': !accent
        }),
        title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Original colors', 'otter-blocks'),
        "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Original colors', 'otter-blocks'),
        onClick: () => setAccent(null)
      }), _accent__WEBPACK_IMPORTED_MODULE_4__.ACCENT_PRESETS.map(preset => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__swatch', {
          'is-active': accent === preset.color
        }),
        style: {
          background: preset.color
        },
        title: preset.label,
        "aria-label": preset.label,
        onClick: () => setAccent(preset.color)
      }, preset.color)), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("span", {
        className: "o-library__swatch-wrap",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
          className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__swatch is-custom', {
            'is-active': isCustom
          }),
          style: isCustom ? {
            background: accent
          } : undefined,
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Custom color', 'otter-blocks'),
          "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Custom color', 'otter-blocks'),
          onClick: () => setPickerOpen(!pickerOpen)
        }), pickerOpen && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Popover, {
          className: "o-library__accent-popover",
          placement: "top-start",
          onClose: () => setPickerOpen(false),
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ColorPicker, {
            color: isCustom ? accent : '#2563eb',
            enableAlpha: false,
            onChange: value => setAccent(value.slice(0, 7))
          })
        })]
      })]
    })]
  });
};
const Sidebar = ({
  mode,
  setMode,
  activeCategory,
  setActiveCategory,
  sectionGroups,
  collections,
  tcCategories,
  counts,
  isLoading,
  accent,
  setAccent,
  showCloudPlaceholder,
  cloudEmptyCategory
}) => {
  const [collapsed, setCollapsed] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)([]);
  const toggleGroup = id => {
    setCollapsed(current => current.includes(id) ? current.filter(group => group !== id) : [...current, id]);
  };
  const segments = [{
    id: 'sections',
    icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"],
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Sections', 'otter-blocks')
  }, {
    id: 'pages',
    icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"],
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Pages', 'otter-blocks')
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("aside", {
    className: "o-library__sidebar",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
      className: "o-library__seg-wrap",
      children: segments.map(segment => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__seg', {
          'is-active': mode === segment.id
        }),
        onClick: () => setMode(segment.id),
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_8__["default"], {
          icon: segment.icon,
          size: 20
        }), segment.label]
      }, segment.id))
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("nav", {
      className: "o-library__nav",
      "aria-busy": isLoading,
      children: [isLoading && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(NavSkeleton, {}), !isLoading && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(CategoryRow, {
          id: "all",
          label: 'pages' === mode ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('All Pages', 'otter-blocks') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('All Sections', 'otter-blocks'),
          count: counts.all,
          isActive: 'all' === activeCategory,
          onSelect: setActiveCategory
        }), 'sections' === mode && sectionGroups.map(group => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
          className: "o-library__group",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", {
            className: "o-library__group-head",
            onClick: () => toggleGroup(group.id),
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_8__["default"], {
              icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__["default"],
              size: 20,
              style: {
                transform: collapsed.includes(group.id) ? 'rotate(-90deg)' : 'none'
              }
            }), group.label]
          }), !collapsed.includes(group.id) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
            className: "o-library__group-body",
            children: group.categories.map(category => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(CategoryRow, {
              id: category.name,
              label: category.label,
              count: counts[category.name] || 0,
              isActive: activeCategory === category.name,
              onSelect: setActiveCategory
            }, category.name))
          })]
        }, group.id)), 'pages' === mode && Boolean(collections.length) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
          className: "o-library__group",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
            className: "o-library__group-head is-static",
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Collections', 'otter-blocks')
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
            className: "o-library__group-body",
            children: collections.map(collection => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(CategoryRow, {
              id: collection.name,
              label: collection.label,
              count: counts[collection.name] || 0,
              isActive: activeCategory === collection.name,
              onSelect: setActiveCategory,
              className: "is-collection",
              afterLabel: collection.isPro ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
                className: "o-library__coll-lock",
                title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Pro', 'otter-blocks'),
                children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_8__["default"], {
                  icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"],
                  size: 14
                })
              }) : undefined
            }, collection.name))
          })]
        }), 'sections' === mode && Boolean(tcCategories.length) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
          className: "o-library__group",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
            className: "o-library__group-head is-static",
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Cloud Libraries', 'otter-blocks')
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
            className: "o-library__group-body",
            children: tcCategories.map(category => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(CategoryRow, {
              id: category.name,
              label: category.label,
              count: counts[category.name] || 0,
              isActive: activeCategory === category.name,
              onSelect: setActiveCategory
            }, category.name))
          })]
        }), 'sections' === mode && showCloudPlaceholder && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
          className: "o-library__group",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
            className: "o-library__group-head is-static",
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Cloud Libraries', 'otter-blocks')
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
            className: "o-library__group-body",
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(CategoryRow, {
              id: cloudEmptyCategory,
              label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Add Sources', 'otter-blocks'),
              isActive: activeCategory === cloudEmptyCategory,
              onSelect: setActiveCategory
            })
          })]
        })]
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(AccentPanel, {
      accent: accent,
      setAccent: setAccent,
      isLoading: isLoading
    }), !Boolean(window.themeisleGutenberg?.hasPro) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("a", {
      className: "o-library__upsell",
      href: "https://themeisle.com/plugins/otter-blocks/patterns/",
      target: "_blank",
      rel: "noopener noreferrer",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_8__["default"], {
        icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__["default"],
        size: 24
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("strong", {
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Premium Designs', 'otter-blocks')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Unlock more with Otter Pro', 'otter-blocks')
        })]
      })]
    })]
  });
};
/* harmony default export */ __webpack_exports__["default"] = (Sidebar);

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/smart.js":
/*!******************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/smart.js ***!
  \******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createSearchIndex: function() { return /* binding */ createSearchIndex; },
/* harmony export */   fuzzyMatches: function() { return /* binding */ fuzzyMatches; },
/* harmony export */   getAccess: function() { return /* binding */ getAccess; },
/* harmony export */   getElements: function() { return /* binding */ getElements; },
/* harmony export */   getLayout: function() { return /* binding */ getLayout; },
/* harmony export */   getMeta: function() { return /* binding */ getMeta; },
/* harmony export */   getSearchText: function() { return /* binding */ getSearchText; },
/* harmony export */   getSlugWords: function() { return /* binding */ getSlugWords; },
/* harmony export */   getTone: function() { return /* binding */ getTone; },
/* harmony export */   matchToken: function() { return /* binding */ matchToken; },
/* harmony export */   parseQuery: function() { return /* binding */ parseQuery; },
/* harmony export */   similar: function() { return /* binding */ similar; },
/* harmony export */   suggestTags: function() { return /* binding */ suggestTags; },
/* harmony export */   tokenLabel: function() { return /* binding */ tokenLabel; }
/* harmony export */ });
/* harmony import */ var fuse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fuse.js */ "./node_modules/fuse.js/dist/fuse.mjs");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/**
 * External dependencies.
 */


/**
 * WordPress dependencies.
 */


/**
 * Smart filtering engine for the Design Library.
 *
 * Registered patterns carry no structured metadata besides categories, so
 * searchable "element" attributes are derived from each pattern's block
 * markup. Powers smart search tokens, the refine tag row and the
 * "More like this" suggestions.
 */

// Element id → markup fragments that signal its presence.
const ELEMENT_SIGNALS = {
  button: ['wp:button', 'wp:themeisle-blocks/button', 'wp:atomic-wind/link'],
  form: ['wp:themeisle-blocks/form'],
  image: ['wp:image', 'wp:cover', 'wp:gallery', 'wp:media-text', '<img'],
  map: ['wp:themeisle-blocks/google-map', 'wp:themeisle-blocks/leaflet-map'],
  carousel: ['wp:themeisle-blocks/slider'],
  countdown: ['wp:themeisle-blocks/countdown'],
  progress: ['wp:themeisle-blocks/progress-bar', 'wp:themeisle-blocks/circle-counter'],
  quote: ['wp:quote', 'wp:pullquote'],
  video: ['wp:video', 'wp:embed']
};
const ELEMENT_LABELS = {
  button: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Has button', 'otter-blocks'),
  form: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Has form', 'otter-blocks'),
  image: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Photos', 'otter-blocks'),
  map: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Has map', 'otter-blocks'),
  carousel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Carousel', 'otter-blocks'),
  countdown: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Countdown', 'otter-blocks'),
  progress: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Progress bars', 'otter-blocks'),
  quote: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Quote', 'otter-blocks'),
  video: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Video', 'otter-blocks')
};

// Elements offered as refine toggles. "button" is excluded — nearly every
// pattern has one, so it never meaningfully narrows a result set.
const REFINE_ELEMENTS = ['image', 'form', 'carousel', 'countdown', 'map', 'video', 'progress', 'quote'];
const TONE_LABELS = {
  light: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Light', 'otter-blocks'),
  dark: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Dark', 'otter-blocks')
};

// Free vs Pro (upsell) patterns.
const ACCESS_LABELS = {
  free: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Free', 'otter-blocks'),
  pro: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pro', 'otter-blocks')
};

// Column layouts, derived from the widest CSS grid in a pattern. Offered as
// single-select refine tags ("show me the 3-column features").
const LAYOUT_ORDER = ['cols-2', 'cols-3', 'cols-4'];
const LAYOUT_LABELS = {
  'cols-2': (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('2 columns', 'otter-blocks'),
  'cols-3': (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('3 columns', 'otter-blocks'),
  'cols-4': (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('4+ columns', 'otter-blocks')
};

// Author-curated metadata, carried on each pattern's `keywords` as
// `group:value` tokens (e.g. `style:editorial`, `use:saas`). Unlike the
// derived facets above, these describe intent the markup can't reveal.
// Groups render in this order, ahead of the derived facets; values within a
// group fall back to a title-cased token when no explicit label exists.
const META_GROUPS = ['style', 'use', 'feat'];

// Groups where a pattern carries a single value, so the refine tags are
// mutually exclusive (picking one replaces the other).
const EXCLUSIVE_META_GROUPS = ['style'];
const META_GROUP_LABELS = {
  style: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Style', 'otter-blocks'),
  use: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Use case', 'otter-blocks'),
  feat: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Feature', 'otter-blocks')
};
const META_VALUE_LABELS = {
  style: {
    clean: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Clean', 'otter-blocks'),
    classic: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Classic', 'otter-blocks'),
    gradient: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Gradient', 'otter-blocks'),
    neon: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Neon', 'otter-blocks'),
    mesh: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Mesh', 'otter-blocks'),
    poster: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Poster', 'otter-blocks'),
    glass: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Glass', 'otter-blocks'),
    editorial: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Editorial', 'otter-blocks')
  }
};

// Search word → token. token = { kind: 'element'|'category', value }
const VOCAB = {
  button: {
    kind: 'element',
    value: 'button'
  },
  buttons: {
    kind: 'element',
    value: 'button'
  },
  image: {
    kind: 'element',
    value: 'image'
  },
  images: {
    kind: 'element',
    value: 'image'
  },
  photo: {
    kind: 'element',
    value: 'image'
  },
  photos: {
    kind: 'element',
    value: 'image'
  },
  picture: {
    kind: 'element',
    value: 'image'
  },
  map: {
    kind: 'element',
    value: 'map'
  },
  maps: {
    kind: 'element',
    value: 'map'
  },
  countdown: {
    kind: 'element',
    value: 'countdown'
  },
  timer: {
    kind: 'element',
    value: 'countdown'
  },
  progress: {
    kind: 'element',
    value: 'progress'
  },
  quote: {
    kind: 'element',
    value: 'quote'
  },
  quotes: {
    kind: 'element',
    value: 'quote'
  },
  video: {
    kind: 'element',
    value: 'video'
  },
  signup: {
    kind: 'element',
    value: 'form'
  },
  'sign-up': {
    kind: 'element',
    value: 'form'
  },
  subscribe: {
    kind: 'category',
    value: 'newsletter'
  },
  newsletter: {
    kind: 'category',
    value: 'newsletter'
  },
  email: {
    kind: 'element',
    value: 'form'
  },
  'opt-in': {
    kind: 'element',
    value: 'form'
  },
  optin: {
    kind: 'element',
    value: 'form'
  },
  hero: {
    kind: 'category',
    value: 'header'
  },
  heroes: {
    kind: 'category',
    value: 'header'
  },
  header: {
    kind: 'category',
    value: 'header'
  },
  headers: {
    kind: 'category',
    value: 'header'
  },
  cta: {
    kind: 'category',
    value: 'call-to-action'
  },
  feature: {
    kind: 'category',
    value: 'features'
  },
  features: {
    kind: 'category',
    value: 'features'
  },
  form: {
    kind: 'category',
    value: 'forms'
  },
  forms: {
    kind: 'category',
    value: 'forms'
  },
  gallery: {
    kind: 'category',
    value: 'gallery'
  },
  team: {
    kind: 'category',
    value: 'team'
  },
  pricing: {
    kind: 'category',
    value: 'pricing'
  },
  price: {
    kind: 'category',
    value: 'pricing'
  },
  testimonial: {
    kind: 'category',
    value: 'testimonials'
  },
  testimonials: {
    kind: 'category',
    value: 'testimonials'
  },
  review: {
    kind: 'category',
    value: 'testimonials'
  },
  reviews: {
    kind: 'category',
    value: 'testimonials'
  },
  faq: {
    kind: 'category',
    value: 'faq'
  },
  faqs: {
    kind: 'category',
    value: 'faq'
  },
  question: {
    kind: 'category',
    value: 'faq'
  },
  questions: {
    kind: 'category',
    value: 'faq'
  },
  contact: {
    kind: 'category',
    value: 'contact'
  },
  waitlist: {
    kind: 'category',
    value: 'waitlist'
  },
  stats: {
    kind: 'category',
    value: 'stats'
  },
  stat: {
    kind: 'category',
    value: 'stats'
  },
  statistic: {
    kind: 'category',
    value: 'stats'
  },
  statistics: {
    kind: 'category',
    value: 'stats'
  },
  metric: {
    kind: 'category',
    value: 'stats'
  },
  metrics: {
    kind: 'category',
    value: 'stats'
  },
  logo: {
    kind: 'category',
    value: 'clients'
  },
  logos: {
    kind: 'category',
    value: 'clients'
  },
  client: {
    kind: 'category',
    value: 'clients'
  },
  clients: {
    kind: 'category',
    value: 'clients'
  },
  partner: {
    kind: 'category',
    value: 'clients'
  },
  partners: {
    kind: 'category',
    value: 'clients'
  },
  portfolio: {
    kind: 'category',
    value: 'portfolio'
  },
  timeline: {
    kind: 'category',
    value: 'timeline'
  },
  blog: {
    kind: 'category',
    value: 'blog'
  },
  news: {
    kind: 'category',
    value: 'blog'
  },
  post: {
    kind: 'category',
    value: 'blog'
  },
  posts: {
    kind: 'category',
    value: 'blog'
  },
  article: {
    kind: 'category',
    value: 'blog'
  },
  articles: {
    kind: 'category',
    value: 'blog'
  },
  icon: {
    kind: 'category',
    value: 'icons'
  },
  icons: {
    kind: 'category',
    value: 'icons'
  },
  illustration: {
    kind: 'category',
    value: 'icons'
  },
  illustrations: {
    kind: 'category',
    value: 'icons'
  },
  rating: {
    kind: 'category',
    value: 'testimonials'
  },
  ratings: {
    kind: 'category',
    value: 'testimonials'
  },
  stars: {
    kind: 'category',
    value: 'testimonials'
  },
  study: {
    kind: 'category',
    value: 'case-studies'
  },
  studies: {
    kind: 'category',
    value: 'case-studies'
  },
  videos: {
    kind: 'element',
    value: 'video'
  },
  dark: {
    kind: 'tone',
    value: 'dark'
  },
  night: {
    kind: 'tone',
    value: 'dark'
  },
  midnight: {
    kind: 'tone',
    value: 'dark'
  },
  light: {
    kind: 'tone',
    value: 'light'
  },
  bright: {
    kind: 'tone',
    value: 'light'
  },
  free: {
    kind: 'access',
    value: 'free'
  },
  pro: {
    kind: 'access',
    value: 'pro'
  }
};
const STOPWORDS = ['a', 'an', 'the', 'with', 'and', 'or', 'on', 'in', 'of', 'for', 'to', 'that', 'has', 'section', 'sections', 'template', 'templates', 'pattern', 'patterns', 'block', 'blocks'];

// Categories that carry no meaning for similarity scoring.
const GENERIC_CATEGORIES = ['otter-blocks', 'featured', 'pages'];
const elementsCache = new Map();
const searchTextCache = new Map();
const toneCache = new Map();
const layoutCache = new Map();
const metaCache = new Map();

// Atomic Wind dark-section backgrounds: a neutral/slate/zinc/gray/stone shade
// at 800+ (solid fill or gradient origin), or pure black.
const DARK_BG = /\b(?:bg|from)-(?:neutral|slate|zinc|gray|stone)-(?:8|9)\d0\b|\bbg-black\b/;

/**
 * Visible copy extracted from a pattern's markup, for fuzzy search.
 *
 * Block-delimiter comments are stripped first — that also removes every
 * className / attribute JSON blob, so what's left is the rendered text
 * (headings, body, button labels). Capped so a long page pattern's footer
 * boilerplate can't drown out its hero copy.
 *
 * @param {Object} pattern Block pattern.
 * @return {string} Searchable text.
 */
const getSearchText = pattern => {
  if (!searchTextCache.has(pattern.name)) {
    const text = (pattern.content || '').replace(/<!--[\s\S]*?-->/g, ' ') // block delimiters (+ class/attr JSON)
    .replace(/<[^>]+>/g, ' ') // remaining HTML tags
    .replace(/&#8217;|&#8216;/g, '\'').replace(/&#8211;|&#8212;/g, '-').replace(/&amp;/g, '&').replace(/&#?\w+;/g, ' ') // drop any other entities
    .replace(/\s+/g, ' ').trim().slice(0, 600);
    searchTextCache.set(pattern.name, text);
  }
  return searchTextCache.get(pattern.name);
};

/**
 * Meaningful words from a pattern's slug (e.g. "stats-poster-figures" →
 * "stats poster figures"). Slugs carry style/intent the title often drops.
 *
 * @param {Object} pattern Block pattern.
 * @return {string} Space-joined slug words.
 */
const getSlugWords = pattern => (pattern.name || '').split('/').pop().split('-').filter(word => 2 < word.length && !STOPWORDS.includes(word)).join(' ');

/**
 * Elements detected in a pattern's markup.
 *
 * @param {Object} pattern Block pattern.
 * @return {Array} Element ids.
 */
const getElements = pattern => {
  // Pro upsell cards ship no content; their facets are precomputed server-side.
  if (pattern.isPro) {
    return pattern.elements || [];
  }
  if (!elementsCache.has(pattern.name)) {
    const content = pattern.content || '';
    elementsCache.set(pattern.name, Object.keys(ELEMENT_SIGNALS).filter(element => ELEMENT_SIGNALS[element].some(signal => content.includes(signal))));
  }
  return elementsCache.get(pattern.name);
};

/**
 * Relative luminance of a #hex color (0 = black, 1 = white).
 *
 * @param {string} hex Hex color, with or without leading #.
 * @return {number} Luminance.
 */
const luminance = hex => {
  let value = hex.replace('#', '');
  if (3 === value.length) {
    value = value.split('').map(char => char + char).join('');
  }
  const channel = pair => {
    const linear = parseInt(pair, 16) / 255;
    return linear <= 0.03928 ? linear / 12.92 : Math.pow((linear + 0.055) / 1.055, 2.4);
  };
  return 0.2126 * channel(value.slice(0, 2)) + 0.7152 * channel(value.slice(2, 4)) + 0.0722 * channel(value.slice(4, 6));
};

/**
 * The visual tone of a pattern, from its outermost section background.
 *
 * Atomic Wind patterns open with a `section` box whose className carries the
 * background; classic patterns set a `backgroundColor` hex on the first
 * wrapper. Anything else (or an undetectable background) is treated as light.
 *
 * @param {Object} pattern Block pattern.
 * @return {string} 'dark' or 'light'.
 */
const getTone = pattern => {
  if (pattern.isPro) {
    return pattern.tone || 'light';
  }
  if (!toneCache.has(pattern.name)) {
    const content = pattern.content || '';
    let tone = 'light';
    const section = content.match(/wp:atomic-wind\/box \{"tagName":"section"[^}]*"className":"([^"]*)"/);
    if (section) {
      tone = DARK_BG.test(section[1]) ? 'dark' : 'light';
    } else {
      const background = content.match(/"backgroundColor":"(#[0-9a-fA-F]{3,8})"/);
      if (background && luminance(background[1]) < 0.4) {
        tone = 'dark';
      }
    }
    toneCache.set(pattern.name, tone);
  }
  return toneCache.get(pattern.name);
};

/**
 * The dominant column layout of a pattern, from the widest CSS grid in its
 * markup (`grid-cols-N`). Patterns with no multi-column grid (single-column,
 * flex stacks) return null and carry no layout facet.
 *
 * @param {Object} pattern Block pattern.
 * @return {?string} 'cols-2', 'cols-3', 'cols-4', or null.
 */
const getLayout = pattern => {
  if (pattern.isPro) {
    return pattern.layout || null;
  }
  if (!layoutCache.has(pattern.name)) {
    const columns = [...(pattern.content || '').matchAll(/grid-cols-(\d)/g)].map(match => Number(match[1]));
    const widest = columns.length ? Math.max(...columns) : 0;
    layoutCache.set(pattern.name, 4 <= widest ? 'cols-4' : 3 === widest ? 'cols-3' : 2 === widest ? 'cols-2' : null);
  }
  return layoutCache.get(pattern.name);
};

/**
 * Author-curated metadata for a pattern, parsed from its `keywords`.
 *
 * Keywords of the form `group:value` (e.g. `style:editorial`) become a
 * group → values map; bare keywords are ignored here (they still feed the
 * native inserter's keyword search).
 *
 * @param {Object} pattern Block pattern.
 * @return {Object} group → array of values.
 */
/**
 * Whether a pattern belongs to the free or the Pro tier.
 *
 * A pattern is Pro either when it's an upsell card (`isPro`, unlicensed sites)
 * or when it's a real Pro pattern fetched by Otter Pro and registered under the
 * `otter-pro/` namespace (licensed sites). Keying off only `isPro` would drop
 * the Free/Pro facet once a licensed library is populated, because the live
 * patterns that replace the upsells carry no `isPro` flag.
 *
 * @param {Object} pattern Block pattern.
 * @return {string} 'free' or 'pro'.
 */
const getAccess = pattern => pattern.isPro || pattern?.name?.startsWith('otter-pro/') ? 'pro' : 'free';
const getMeta = pattern => {
  if (!metaCache.has(pattern.name)) {
    const map = {};
    (pattern.keywords || []).forEach(keyword => {
      const separator = keyword.indexOf(':');
      if (0 < separator) {
        const group = keyword.slice(0, separator);
        const value = keyword.slice(separator + 1);
        if (!map[group]) {
          map[group] = [];
        }
        map[group].push(value);
      }
    });
    metaCache.set(pattern.name, map);
  }
  return metaCache.get(pattern.name);
};

/**
 * Display label for a metadata value, falling back to a title-cased token.
 *
 * @param {string} group Group name.
 * @param {string} value Value token.
 * @return {string} Label.
 */
const metaValueLabel = (group, value) => META_VALUE_LABELS[group] && META_VALUE_LABELS[group][value] || value.charAt(0).toUpperCase() + value.slice(1).replace(/-/g, ' ');

/**
 * Human label for a token.
 *
 * @param {Object} token          Token.
 * @param {Object} categoryLabels Category name → label map.
 * @return {string} Label.
 */
const tokenLabel = (token, categoryLabels = {}) => {
  if ('category' === token.kind) {
    return categoryLabels[token.value] || token.value;
  }
  if ('tone' === token.kind) {
    return TONE_LABELS[token.value] || token.value;
  }
  if ('access' === token.kind) {
    return ACCESS_LABELS[token.value] || token.value;
  }
  if ('layout' === token.kind) {
    return LAYOUT_LABELS[token.value] || token.value;
  }
  if ('meta' === token.kind) {
    return metaValueLabel(token.group, token.value);
  }
  return ELEMENT_LABELS[token.value] || token.value;
};

/**
 * Parse a search query into structured tokens and leftover text terms.
 *
 * Each token remembers its source word so the UI can strip it from the
 * query string when dismissed.
 *
 * @param {string} query Search query.
 * @return {Object} { tokens, text }
 */
const parseQuery = query => {
  const words = query.toLowerCase().split(/\s+/).filter(Boolean);
  const tokens = [];
  const text = [];
  const seen = [];
  words.forEach(word => {
    const clean = word.replace(/[^\w-]/g, '');
    const token = VOCAB[clean];
    if (token) {
      const key = token.kind + ':' + token.value;
      if (!seen.includes(key)) {
        seen.push(key);
        tokens.push({
          ...token,
          word
        });
      }
    } else if (clean && !STOPWORDS.includes(clean)) {
      text.push(clean);
    }
  });
  return {
    tokens,
    text
  };
};

/**
 * Fuzzy search index over pattern titles and category labels.
 *
 * @param {Array}  patterns       Patterns to index.
 * @param {Object} categoryLabels Category name → label map.
 * @return {Fuse} Search index.
 */
const createSearchIndex = (patterns, categoryLabels) => new fuse_js__WEBPACK_IMPORTED_MODULE_1__["default"](patterns.map(pattern => ({
  name: pattern.name,
  title: pattern.title,
  slug: getSlugWords(pattern),
  categories: (pattern.categories || []).map(category => categoryLabels[category] || '').filter(Boolean),
  description: pattern.description || '',
  text: getSearchText(pattern)
})), {
  keys: [{
    name: 'title',
    weight: 3
  }, {
    name: 'description',
    weight: 2
  }, {
    name: 'slug',
    weight: 1.5
  }, {
    name: 'categories',
    weight: 1.5
  }, {
    name: 'text',
    weight: 0.5
  }],
  includeScore: true,
  ignoreLocation: true,
  minMatchCharLength: 2,
  threshold: 0.35
});

/**
 * Score patterns against free-text search terms.
 *
 * Terms are searched one at a time and intersected — every term has to
 * match somewhere, but each gets typo tolerance on its own. Scores
 * accumulate across terms so callers can rank by relevance (Fuse scores
 * are 0 = perfect, so lower is better).
 *
 * @param {Fuse}  index Search index from createSearchIndex.
 * @param {Array} terms Free-text terms from parseQuery.
 * @return {?Map} Pattern name → score, or null when there is nothing to match.
 */
const fuzzyMatches = (index, terms) => {
  if (!terms.length) {
    return null;
  }
  let scores = null;
  terms.forEach(term => {
    const termScores = new Map();
    index.search(term).forEach(({
      item,
      score
    }) => {
      if (!scores || scores.has(item.name)) {
        termScores.set(item.name, (scores?.get(item.name) || 0) + score);
      }
    });
    scores = termScores;
  });
  return scores;
};

/**
 * Whether a pattern matches a token.
 *
 * @param {Object} pattern Block pattern.
 * @param {Object} token   Token.
 * @return {boolean} Whether it matches.
 */
const matchToken = (pattern, token) => {
  if ('category' === token.kind) {
    return pattern.categories.includes(token.value);
  }
  if ('tone' === token.kind) {
    return getTone(pattern) === token.value;
  }
  if ('access' === token.kind) {
    return getAccess(pattern) === token.value;
  }
  if ('layout' === token.kind) {
    return getLayout(pattern) === token.value;
  }
  if ('meta' === token.kind) {
    return (getMeta(pattern)[token.group] || []).includes(token.value);
  }
  return getElements(pattern).includes(token.value);
};

/**
 * Suggested refinement tags for the patterns currently in scope.
 *
 * Tone (light / dark) leads — it's the most-scanned distinction and only two
 * chips, so it always stays in view — followed by author-curated metadata
 * (style, use case, …), then column layout and element facets. A facet only
 * appears when it actually splits the scope (matched by at least two
 * patterns, but not all of them); elements are then ordered so the most
 * evenly-balanced ones come first.
 *
 * @param {Array}  scope Patterns in the current mode + category.
 * @param {number} max   Maximum number of tags.
 * @return {Array} [{ key, kind, value, label, count, group?, tone? }]
 */
const suggestTags = (scope, max = 12) => {
  const total = scope.length;
  const splits = count => 2 <= count && count < total;

  // Free vs Pro facet — leads the row so it's always the first refinement.
  const accessCounts = {
    free: 0,
    pro: 0
  };
  scope.forEach(pattern => {
    accessCounts[getAccess(pattern)] += 1;
  });
  const accessTags = ['free', 'pro'].filter(value => splits(accessCounts[value])).map(value => ({
    key: 'access:' + value,
    kind: 'access',
    value,
    label: ACCESS_LABELS[value],
    count: accessCounts[value]
  }));

  // Curated metadata facets.
  const metaTags = [];
  META_GROUPS.forEach(group => {
    const counts = {};
    scope.forEach(pattern => {
      (getMeta(pattern)[group] || []).forEach(value => {
        counts[value] = (counts[value] || 0) + 1;
      });
    });
    Object.keys(counts).filter(value => splits(counts[value])).sort((a, b) => counts[b] - counts[a]).forEach(value => {
      metaTags.push({
        key: 'meta:' + group + ':' + value,
        kind: 'meta',
        group,
        value,
        label: metaValueLabel(group, value),
        count: counts[value]
      });
    });
  });

  // Tone facet.
  const toneCounts = {
    dark: 0,
    light: 0
  };
  scope.forEach(pattern => {
    toneCounts[getTone(pattern)] += 1;
  });
  const toneTags = ['dark', 'light'].filter(tone => splits(toneCounts[tone])).map(tone => ({
    key: 'tone:' + tone,
    kind: 'tone',
    value: tone,
    label: TONE_LABELS[tone],
    count: toneCounts[tone],
    tone
  }));

  // Column-layout facet.
  const layoutCounts = {};
  scope.forEach(pattern => {
    const layout = getLayout(pattern);
    if (layout) {
      layoutCounts[layout] = (layoutCounts[layout] || 0) + 1;
    }
  });
  const layoutTags = LAYOUT_ORDER.filter(layout => splits(layoutCounts[layout] || 0)).map(layout => ({
    key: 'layout:' + layout,
    kind: 'layout',
    value: layout,
    label: LAYOUT_LABELS[layout],
    count: layoutCounts[layout]
  }));

  // Element facets.
  const elementCounts = {};
  scope.forEach(pattern => {
    getElements(pattern).forEach(element => {
      if (REFINE_ELEMENTS.includes(element)) {
        elementCounts[element] = (elementCounts[element] || 0) + 1;
      }
    });
  });
  const elementTags = Object.keys(elementCounts).map(element => ({
    key: 'element:' + element,
    kind: 'element',
    value: element,
    label: ELEMENT_LABELS[element],
    count: elementCounts[element]
  })).filter(tag => splits(tag.count)).sort((a, b) => Math.abs(a.count / total - 0.45) - Math.abs(b.count / total - 0.45));
  return [...accessTags, ...toneTags, ...metaTags, ...layoutTags, ...elementTags].slice(0, max);
};

/**
 * Patterns most similar to the given one, by shared categories and elements.
 *
 * @param {Object} pattern    Reference pattern.
 * @param {Array}  candidates Patterns of the same type to score.
 * @param {number} k          Maximum results.
 * @return {Array} Top-k similar patterns.
 */
const similar = (pattern, candidates, k = 4) => {
  const elements = getElements(pattern);
  const categories = pattern.categories.filter(category => !GENERIC_CATEGORIES.includes(category));
  return candidates.filter(candidate => candidate.name !== pattern.name).map(candidate => {
    let score = 0;
    candidate.categories.forEach(category => {
      if (categories.includes(category)) {
        score += 3;
      }
    });
    getElements(candidate).forEach(element => {
      if (elements.includes(element)) {
        score += 1;
      }
    });
    return {
      candidate,
      score
    };
  }).sort((a, b) => b.score - a.score).slice(0, k).map(item => item.candidate);
};

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/template.js":
/*!*********************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/template.js ***!
  \*********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AsyncPreview: function() { return /* binding */ AsyncPreview; },
/* harmony export */   LivePreview: function() { return /* binding */ LivePreview; },
/* harmony export */   ParsedPreview: function() { return /* binding */ ParsedPreview; },
/* harmony export */   ProThumb: function() { return /* binding */ ProThumb; },
/* harmony export */   QueuedPreview: function() { return /* binding */ QueuedPreview; },
/* harmony export */   Skeleton: function() { return /* binding */ Skeleton; },
/* harmony export */   UPSELL_BLOCK: function() { return /* binding */ UPSELL_BLOCK; },
/* harmony export */   parsePattern: function() { return /* binding */ parsePattern; }
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-intersection-observer */ "./node_modules/react-intersection-observer/dist/index.mjs");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks");
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/lock.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/plus.mjs");
/* harmony import */ var _helpers_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/icons */ "./src/blocks/helpers/icons.js");
/* harmony import */ var _accent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./accent */ "./src/blocks/plugins/patterns-library/accent.js");
/* harmony import */ var _atomic__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./atomic */ "./src/blocks/plugins/patterns-library/atomic.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__);
/**
 * External dependencies.
 */



/**
 * WordPress dependencies.
 */






/**
 * Internal dependencies.
 */




// Queues previews so they render one at a time during idle frames,
// like the core inserter. Not available before WP 6.4 — render directly then.

const AsyncPreview = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.BlockPreview.Async || (({
  children
}) => children);

// Pattern content embeds this Pro-upsell banner. Its edit component
// dispatches removeBlock on itself when Otter Pro is active, which crashes
// the modal when it mounts inside a BlockPreview — never preview it.
const UPSELL_BLOCK = 'themeisle-blocks/patterns-upsell';
const Skeleton = () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
  className: "o-library__thumb-skeleton"
});

// A stable hue per pattern name, for the screenshot placeholder gradient.
const hueFromName = (name = '') => {
  let hue = 0;
  for (let index = 0; index < name.length; index++) {
    hue = (hue * 31 + name.charCodeAt(index)) % 360;
  }
  return hue;
};

// Pro patterns ship no content — only a screenshot. The image is served from a
// (swappable) base URL that may not be populated yet, so fall back to a tinted
// placeholder carrying the pattern title until a real screenshot loads.
const ProThumb = ({
  pattern
}) => {
  const [failed, setFailed] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useState)(false);
  const hue = hueFromName(pattern.name);
  if (failed || !pattern.screenshot) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
      className: "o-library__shot is-fallback",
      style: {
        '--o-lib-hue': hue
      },
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", {
        children: pattern.title
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("img", {
    className: "o-library__shot",
    src: pattern.screenshot,
    alt: pattern.title,
    loading: "lazy",
    onError: () => setFailed(true)
  });
};

// Parsing a pattern is the expensive synchronous part of a preview, and
// tiles unmount/remount as they scroll in and out of view — keep the
// parsed blocks around so a remount only pays for the iframe.
const parsedBlocks = new Map();
const parsePattern = pattern => {
  if (!parsedBlocks.has(pattern.name)) {
    parsedBlocks.set(pattern.name, (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.parse)(pattern.content).filter(block => UPSELL_BLOCK !== block.name));
  }
  return parsedBlocks.get(pattern.name);
};

// Previews (by key) whose iframe has painted once this session.
const renderedOnce = new Set();

// Wraps a live BlockPreview so the placeholder can stay on top until the
// blocks have actually painted inside the iframe. Mounting a BlockPreview
// doesn't mean it has painted: the iframe boots, styles are cloned in and the
// blocks portal in over several frames, all showing as a white rectangle. Keep
// the iframe hidden with the placeholder on top until the block layout actually
// exists inside the iframe document, then crossfade (see .o-library__live in
// editor.scss). Reusable across the pattern library and the AI section preview
// — callers that already hold parsed blocks (instead of a pattern) pass them in
// directly with a stable previewKey to key the crossfade.
// A realistic on-screen aspect for full-viewport sections. Inside a BlockPreview
// the iframe auto-grows to its content, so `100vh` / `min-h-screen` resolve
// against that grown height — a "full screen" hero renders far too tall (and, for
// a beat before layout settles, too short). Remap the common full-viewport height
// utilities to a height derived from the preview width so the section keeps a
// believable screen aspect. (Partial arbitrary values like min-h-[80vh] are left
// alone — there's no static way to scale an arbitrary vh value.)
const SCREEN_ASPECT_RATIO = 16 / 10;
const buildViewportHeightCss = viewportWidth => {
  const screenHeight = Math.round(viewportWidth / SCREEN_ASPECT_RATIO);
  const props = {
    'min-h': 'min-height',
    'h': 'height',
    'max-h': 'max-height'
  };
  const fullValues = ['screen', '[100vh]', '[100svh]', '[100dvh]', '[100lvh]'];
  const escapeClass = value => value.replace(/[[\]]/g, char => '\\' + char);
  const rules = [];
  for (const [prefix, prop] of Object.entries(props)) {
    for (const value of fullValues) {
      rules.push(`.${escapeClass(`${prefix}-${value}`)}{${prop}:${screenHeight}px!important}`);
    }
  }
  return rules.join('\n');
};
const LivePreview = ({
  blocks,
  previewKey,
  css = (/** @type {Array} */[]),
  viewportWidth = 1400,
  placeholder = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Skeleton, {}),
  className = 'o-library__live',
  normalizeViewport = false
}) => {
  const containerRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useRef)(null);
  const [isReady, setIsReady] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useState)(false);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {
    setIsReady(false);
    let frame;

    // If the layout never shows up (no-iframe previews on older WP, an
    // empty pattern), reveal anyway rather than shimmer forever.
    const deadline = setTimeout(() => {
      cancelAnimationFrame(frame);
      setIsReady(true);
    }, 4000);
    const check = () => {
      const frameDocument = containerRef.current?.querySelector('iframe')?.contentDocument;

      // Blocks portal in before the linked stylesheets finish loading,
      // and unstyled content renders at the wrong size (SVGs especially).
      // A link's `sheet` stays null until it has loaded and parsed —
      // require every stylesheet too, not just the layout. Links that
      // fail to load keep a null sheet; the deadline covers those.
      const hasLayout = Boolean(frameDocument?.querySelector('.block-editor-block-list__layout'));
      const hasStyles = hasLayout && Array.from(frameDocument.querySelectorAll('link[rel="stylesheet"]')).every(link => null !== link.sheet);
      if (hasLayout && hasStyles) {
        clearTimeout(deadline);
        renderedOnce.add(previewKey);
        setIsReady(true);
        return;
      }
      frame = requestAnimationFrame(check);
    };
    frame = requestAnimationFrame(check);
    return () => {
      clearTimeout(deadline);
      cancelAnimationFrame(frame);
    };
  }, [previewKey]);
  const styles = css.filter(Boolean).map(value => ({
    css: value
  }));

  // Preview-only: keep full-viewport sections at a realistic aspect (frontend
  // keeps its real vh — this stylesheet is never inserted there).
  if (normalizeViewport) {
    styles.push({
      css: buildViewportHeightCss(viewportWidth)
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(className, {
      'is-ready': isReady
    }),
    ref: containerRef,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.BlockPreview, {
      blocks: blocks,
      viewportWidth: viewportWidth,
      additionalStyles: styles.length ? styles : undefined
    }), !isReady && placeholder]
  });
};
const ParsedPreview = ({
  pattern,
  css = [],
  placeholder = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Skeleton, {})
}) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(LivePreview, {
  blocks: parsePattern(pattern),
  previewKey: pattern.name,
  css: css,
  viewportWidth: pattern.viewportWidth || 1400,
  placeholder: placeholder
});

// Shows a skeleton until the idle queue reaches this preview, then parses
// and renders it — both the parse and the iframe mount happen off the
// critical path, one pattern at a time. Patterns the user has already seen
// skip the queue: their parse and images are cached, so the iframe boots
// near-instantly and a remount only flashes the skeleton for a few frames.
const QueuedPreview = ({
  pattern,
  accent = null
}) => {
  // Atomic Wind patterns recolor through CSS variables (same markup, same
  // parse cache); classic patterns come back as a derived pattern whose
  // new name keys the caches naturally.
  const {
    pattern: derived,
    css
  } = (0,_accent__WEBPACK_IMPORTED_MODULE_6__.previewAccent)(pattern, accent);

  // Atomic Wind utilities first, accent variables after so they win.
  const {
    css: atomicCss,
    isReady: hasAtomicCss
  } = (0,_atomic__WEBPACK_IMPORTED_MODULE_7__.useAtomicCss)(derived);

  // Skipping the queue is decided once per pattern name, not per render:
  // the first paint adds the name to renderedOnce, so re-checking on a
  // later render (the first accent change re-renders every tile) would
  // flip the branch below from AsyncPreview to a bare ParsedPreview — a
  // different element type, which remounts the iframe and flashes every
  // tile's skeleton at once.
  const skipQueue = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useMemo)(() => renderedOnce.has(derived.name), [derived.name]);
  if (!hasAtomicCss) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Skeleton, {});
  }
  if (skipQueue) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(ParsedPreview, {
      pattern: derived,
      css: [atomicCss, css]
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(AsyncPreview, {
    placeholder: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Skeleton, {}),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(ParsedPreview, {
      pattern: derived,
      css: [atomicCss, css]
    })
  });
};
const Template = ({
  pattern,
  categoryLabel,
  isPage = false,
  isFavorite = false,
  accent = null,
  onInsert = () => {},
  onPreview = () => {},
  onFavorite = () => {}
}) => {
  // Mount the iframe preview only while the card is near the viewport and
  // drop back to the skeleton once it scrolls far away — keeping every
  // seen preview alive accumulates hundreds of live iframes over a long
  // browse, so the window bounds how many exist at once (roughly a screen
  // and a half of cards). Scrolling back remounts almost instantly: the
  // parse is cached and renderedOnce skips the idle queue. The margin is
  // deeper below than above: browsing moves downward, so mount ahead of
  // the scroll.
  const {
    ref,
    inView
  } = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_9__.useInView)({
    threshold: 0,
    rootMargin: '300px 0px 600px 0px'
  });
  const isPro = Boolean(pattern.isPro);

  // Both the live previews and the Pro screenshots only render once the card
  // nears the viewport — the screenshot's <img> is also natively lazy — so a
  // long library never mounts hundreds of previews or fetches every upsell
  // image up front.
  const thumbnail = !inView ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Skeleton, {}) : isPro ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(ProThumb, {
    pattern: pattern
  }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(QueuedPreview, {
    pattern: pattern,
    accent: accent
  });
  const favoriteButton = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("button", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__fav', {
      'is-on': isFavorite
    }),
    title: isFavorite ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Remove from favorites', 'otter-blocks') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Add to favorites', 'otter-blocks'),
    onClick: () => onFavorite(pattern.name),
    children: (isFavorite ? _helpers_icons__WEBPACK_IMPORTED_MODULE_5__.heartFilledIcon : _helpers_icons__WEBPACK_IMPORTED_MODULE_5__.heartIcon)({
      width: 16,
      height: 16
    })
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__card', {
      'is-page': isPage
    }),
    ref: ref,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
      className: "o-library__thumb",
      children: [thumbnail, isPro && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("span", {
        className: "o-library__pro-badge",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"], {
          icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__["default"],
          size: 14
        }), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Pro', 'otter-blocks')]
      }), favoriteButton, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
        className: "o-library__card-overlay",
        role: "presentation",
        onClick: event => {
          if (event.target !== event.currentTarget) {
            return;
          }

          // Clicking a Pro card anywhere does the same as "Get with
          // Pro"; free cards open the preview.
          if (isPro) {
            onInsert(pattern);
          } else {
            onPreview(pattern);
          }
        },
        children: [!isPro && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("button", {
          className: "o-library__btn is-ghost is-ondark",
          onClick: () => onPreview(pattern),
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Preview', 'otter-blocks')
        }), isPro ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("button", {
          className: "o-library__btn is-primary",
          onClick: () => onInsert(pattern),
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"], {
            icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__["default"],
            size: 18
          }), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Get with Pro', 'otter-blocks')]
        }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("button", {
          className: "o-library__btn is-primary",
          onClick: () => onInsert(pattern),
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"], {
            icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_12__["default"],
            size: 20
          }), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Insert', 'otter-blocks')]
        })]
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
      className: "o-library__card-foot",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", {
        className: "o-library__card-name",
        children: pattern.title
      }), Boolean(categoryLabel) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", {
        className: "o-library__card-cat",
        children: categoryLabel
      })]
    })]
  });
};
/* harmony default export */ __webpack_exports__["default"] = ((0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.memo)(Template));

/***/ }),

/***/ "./src/blocks/plugins/patterns-library/topbar.js":
/*!*******************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/topbar.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   SmartTagRow: function() { return /* binding */ SmartTagRow; },
/* harmony export */   TagRowSkeleton: function() { return /* binding */ TagRowSkeleton; },
/* harmony export */   TopbarSkeleton: function() { return /* binding */ TopbarSkeleton; }
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/icon/index.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/search.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/close-small.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/columns.mjs");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/check.mjs");
/* harmony import */ var _helpers_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/icons */ "./src/blocks/helpers/icons.js");
/* harmony import */ var _smart__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./smart */ "./src/blocks/plugins/patterns-library/smart.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
/**
 * External dependencies.
 */


/**
 * WordPress dependencies.
 */




/**
 * Internal dependencies.
 */



const COLUMN_OPTIONS = [2, 3, 4];
const Topbar = ({
  query,
  setQuery,
  count,
  favCount,
  favOnly,
  setFavOnly,
  sort,
  setSort,
  columns,
  setColumns,
  tokens,
  onRemoveToken,
  categoryLabels
}) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
    className: "o-library__topbar",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      className: "o-library__searchwrap",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"], {
        icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"],
        size: 22
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", {
        className: "o-library__search",
        type: "search",
        placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Try “hero with email signup”…', 'otter-blocks'),
        value: query,
        onChange: event => setQuery(event.target.value)
      }), Boolean(query) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
        className: "o-library__clear",
        "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Clear search', 'otter-blocks'),
        onClick: () => setQuery(''),
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"], {
          icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_8__["default"],
          size: 18
        })
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      className: "o-library__filters",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__chip', {
          'is-on': favOnly
        }),
        onClick: () => setFavOnly(!favOnly),
        children: [(favOnly ? _helpers_icons__WEBPACK_IMPORTED_MODULE_3__.heartFilledIcon : _helpers_icons__WEBPACK_IMPORTED_MODULE_3__.heartIcon)({
          width: 15,
          height: 15
        }), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Favorites', 'otter-blocks'), 0 < favCount && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
          className: "o-library__chip-count",
          children: favCount
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
        className: "o-library__sep"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("select", {
        className: "o-library__sort",
        value: sort,
        onChange: event => setSort(event.target.value),
        "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Sort', 'otter-blocks'),
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("option", {
          value: "featured",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Featured', 'otter-blocks')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("option", {
          value: "az",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Name A–Z', 'otter-blocks')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("option", {
          value: "za",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Name Z–A', 'otter-blocks')
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu, {
        icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__["default"],
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Columns', 'otter-blocks'),
        toggleProps: {
          className: 'o-library__colsbtn'
        },
        popoverProps: {
          placement: 'bottom-end'
        },
        children: ({
          onClose
        }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.MenuGroup, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Columns', 'otter-blocks'),
          children: COLUMN_OPTIONS.map(value => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.MenuItem, {
            icon: value === columns ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"] : null,
            onClick: () => {
              setColumns(value);
              onClose();
            },
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(
            // translators: %d is the number of grid columns.
            (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('%d columns', 'otter-blocks'), value)
          }, value))
        })
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      className: "o-library__resultline",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("span", {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("strong", {
          children: count
        }), ' ' + (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__._n)('template', 'templates', count, 'otter-blocks')]
      }), Boolean(tokens.length) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("span", {
        className: "o-library__understood",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
          className: "o-library__understood-label",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('matching', 'otter-blocks')
        }), tokens.map(token => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", {
          className: "o-library__token",
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Remove this filter', 'otter-blocks'),
          onClick: () => onRemoveToken(token),
          children: [(0,_smart__WEBPACK_IMPORTED_MODULE_4__.tokenLabel)(token, categoryLabels), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"], {
            icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_8__["default"],
            size: 16
          })]
        }, token.kind + token.value))]
      })]
    })]
  });
};

// Loading stand-in for the topbar. Mirrors the search field, filter cluster
// and result line so the controls land in the same place once patterns
// resolve, instead of dropping in above the grid.
const TopbarSkeleton = () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
  className: "o-library__topbar",
  "aria-hidden": "true",
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
    className: "o-library__shimmer",
    style: {
      flex: '1 1 280px',
      maxWidth: 440,
      height: 38,
      borderRadius: 9
    }
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
    className: "o-library__filters",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
      className: "o-library__shimmer",
      style: {
        width: 104,
        height: 34,
        borderRadius: 8
      }
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
      className: "o-library__sep"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
      className: "o-library__shimmer",
      style: {
        width: 92,
        height: 34,
        borderRadius: 8
      }
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
      className: "o-library__shimmer",
      style: {
        width: 38,
        height: 34,
        borderRadius: 8
      }
    })]
  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
    className: "o-library__resultline",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
      className: "o-library__shimmer",
      style: {
        width: 96,
        height: 13,
        borderRadius: 4
      }
    })
  })]
});

// Varied pill widths so the refine row reads as a row of tags rather than a
// uniform bar while it loads.
const TAG_SKELETON_WIDTHS = [68, 86, 58, 94, 72, 62, 80];
const TagRowSkeleton = () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
  className: "o-library__tagrow",
  "aria-hidden": "true",
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
    className: "o-library__tagrow-label",
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Refine', 'otter-blocks')
  }), TAG_SKELETON_WIDTHS.map((width, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
    className: "o-library__shimmer",
    style: {
      width,
      height: 28,
      borderRadius: 999
    }
  }, index))]
});
const SmartTagRow = ({
  tags,
  active,
  onToggle
}) => {
  if (!tags.length) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
    className: "o-library__tagrow",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
      className: "o-library__tagrow-label",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Refine', 'otter-blocks')
    }), tags.map(tag => {
      const isOn = active.includes(tag.key);

      // An active tag stays clickable so it can be turned off, even
      // when it currently matches nothing in combination.
      const isDisabled = Boolean(tag.disabled) && !isOn;
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__tag', {
          'is-on': isOn,
          'is-tone': Boolean(tag.tone),
          'is-style': 'meta' === tag.kind && 'style' === tag.group
        }),
        disabled: isDisabled,
        onClick: () => onToggle(tag),
        children: [tag.tone && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
          className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('o-library__tag-dot', `is-${tag.tone}`)
        }), tag.label, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
          className: "o-library__tag-count",
          children: tag.count
        })]
      }, tag.key);
    })]
  });
};
/* harmony default export */ __webpack_exports__["default"] = (Topbar);

/***/ }),

/***/ "./src/onboarding/utils.js":
/*!*********************************!*\
  !*** ./src/onboarding/utils.js ***!
  \*********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   findBlock: function() { return /* binding */ findBlock; },
/* harmony export */   recordEvent: function() { return /* binding */ recordEvent; },
/* harmony export */   resolvePatternBlocks: function() { return /* binding */ resolvePatternBlocks; }
/* harmony export */ });
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks");
/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__);
/**
 * WordPress dependencies.
 */



/**
 * Recursively inline `core/pattern` blocks by replacing each with the parsed
 * content of the pattern it references. BlockPreview renders patterns via the
 * block-editor data store, which isn't hydrated in the onboarding wizard's
 * isolated provider, so without this step every `wp:pattern` reference shows
 * up as blank in the preview.
 *
 * @param {Array}  blocks   Parsed blocks.
 * @param {Array}  patterns Registered patterns from `select('core').getBlockPatterns()`.
 * @param {number} depth    Recursion guard for pattern-in-pattern cycles.
 * @return {Array}
 */
const resolvePatternBlocks = (blocks, patterns, depth = 0) => {
  if (!Array.isArray(blocks) || !Array.isArray(patterns) || !patterns.length || 4 < depth) {
    return blocks;
  }
  const byName = patterns.reduce((acc, pattern) => {
    if (pattern?.name) {
      acc[pattern.name] = pattern;
    }
    return acc;
  }, {});
  const resolve = block => {
    if (!block) {
      return [];
    }
    if ('core/pattern' === block.name) {
      const slug = block.attributes?.slug;
      const pattern = slug ? byName[slug] : null;
      if (pattern?.content) {
        return resolvePatternBlocks((0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__.parse)(pattern.content), patterns, depth + 1);
      }
      return [];
    }
    if (block.innerBlocks?.length) {
      return [{
        ...block,
        innerBlocks: block.innerBlocks.flatMap(resolve)
      }];
    }
    return [block];
  };
  return blocks.flatMap(resolve);
};
const findBlock = (blocksAr, name) => {
  const foundBlock = blocksAr.find(block => block.name === name);
  if (foundBlock) {
    return foundBlock;
  }
  return blocksAr.reduce((found, block) => {
    if (found) {
      return found;
    }
    if (block.innerBlocks && Array.isArray(block.innerBlocks)) {
      return findBlock(block.innerBlocks, name);
    }
    return undefined;
  }, undefined);
};
const recordEvent = async (data = {}) => {
  if (window.otterOnboardingData?.isDev) {
    return;
  }
  try {
    const {
      setSessionID
    } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.dispatch)('otter/onboarding');
    const {
      getSessionID
    } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('otter/onboarding');
    const {
      getCurrentTheme
    } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core');
    const trackingId = getSessionID();
    const response = await fetch('https://api.themeisle.com/tracking/onboarding', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        _id: trackingId,
        data: {
          slug: getCurrentTheme()?.template || getCurrentTheme()?.stylesheet,
          license_id: window.otterOnboardingData?.license,
          site: window.otterOnboardingData?.rootUrl || '',
          ...data
        }
      })
    });
    if (!response.ok) {
      console.error(`HTTP error! Status: ${response.status}`);
      return false;
    }
    const jsonResponse = await response.json();
    const validCodes = ['success', 'invalid']; // Add valid codes to this array

    if (!validCodes.includes(jsonResponse.code)) {
      return false;
    }
    if ('invalid' === jsonResponse.code) {
      console.error(jsonResponse.message);
      return false;
    }
    const responseData = jsonResponse.data;
    if (responseData?.id && '' === trackingId) {
      setSessionID(responseData.id);
    }
    return responseData.id || false;
  } catch (error) {
    console.error(error);
    return false;
  }
};

/***/ }),

/***/ "@wordpress/api":
/*!*****************************!*\
  !*** external ["wp","api"] ***!
  \*****************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["api"];

/***/ }),

/***/ "@wordpress/block-editor":
/*!*************************************!*\
  !*** external ["wp","blockEditor"] ***!
  \*************************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["blockEditor"];

/***/ }),

/***/ "@wordpress/blocks":
/*!********************************!*\
  !*** external ["wp","blocks"] ***!
  \********************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["blocks"];

/***/ }),

/***/ "@wordpress/components":
/*!************************************!*\
  !*** external ["wp","components"] ***!
  \************************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["components"];

/***/ }),

/***/ "@wordpress/compose":
/*!*********************************!*\
  !*** external ["wp","compose"] ***!
  \*********************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["compose"];

/***/ }),

/***/ "@wordpress/data":
/*!******************************!*\
  !*** external ["wp","data"] ***!
  \******************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["data"];

/***/ }),

/***/ "@wordpress/dom-ready":
/*!**********************************!*\
  !*** external ["wp","domReady"] ***!
  \**********************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["domReady"];

/***/ }),

/***/ "@wordpress/element":
/*!*********************************!*\
  !*** external ["wp","element"] ***!
  \*********************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["element"];

/***/ }),

/***/ "@wordpress/i18n":
/*!******************************!*\
  !*** external ["wp","i18n"] ***!
  \******************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["i18n"];

/***/ }),

/***/ "@wordpress/primitives":
/*!************************************!*\
  !*** external ["wp","primitives"] ***!
  \************************************/
/***/ (function(module) {

"use strict";
module.exports = window["wp"]["primitives"];

/***/ }),

/***/ "lodash":
/*!*************************!*\
  !*** external "lodash" ***!
  \*************************/
/***/ (function(module) {

"use strict";
module.exports = window["lodash"];

/***/ }),

/***/ "react":
/*!************************!*\
  !*** external "React" ***!
  \************************/
/***/ (function(module) {

"use strict";
module.exports = window["React"];

/***/ }),

/***/ "react/jsx-runtime":
/*!**********************************!*\
  !*** external "ReactJSXRuntime" ***!
  \**********************************/
/***/ (function(module) {

"use strict";
module.exports = window["ReactJSXRuntime"];

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	!function() {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = function(module) {
/******/ 			var getter = module && module.__esModule ?
/******/ 				function() { return module['default']; } :
/******/ 				function() { return module; };
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	!function() {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = function(exports, definition) {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	!function() {
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	!function() {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = function(exports) {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	}();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
!function() {
"use strict";
/*!******************************************************!*\
  !*** ./src/blocks/plugins/patterns-library/index.js ***!
  \******************************************************/
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/dom-ready */ "@wordpress/dom-ready");
/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor.scss */ "./src/blocks/plugins/patterns-library/editor.scss");
/* harmony import */ var _helpers_icons_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/icons.js */ "./src/blocks/helpers/icons.js");
/* harmony import */ var _library_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./library.js */ "./src/blocks/plugins/patterns-library/library.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__);
/**
 * WordPress dependencies.
 */






/**
 * Internal dependencies.
 */




const ModalButton = () => {
  const [isOpen, setOpen] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(false);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.Fragment, {
    children: [isOpen && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_library_js__WEBPACK_IMPORTED_MODULE_7__["default"], {
      onClose: () => setOpen(false)
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
      variant: "secondary",
      icon: _helpers_icons_js__WEBPACK_IMPORTED_MODULE_6__.otterIcon,
      className: "o-library__button",
      onClick: () => setOpen(true)
      // The button is appended into the editor header NavigableToolbar; mark it as a
      // toolbar item so it is keyboard-navigable and does not trip the
      // "custom components as toolbar controls" deprecation (WP 5.6+).
      ,
      "data-toolbar-item": "true",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Design Library', 'otter-blocks')
    })]
  });
};
const initPatternsLibrary = () => {
  const buttonDiv = document.createElement('div');
  buttonDiv.classList.add('o-library__wrapper');
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.createRoot)(buttonDiv).render(/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(ModalButton, {}));
  (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.subscribe)(() => {
    setTimeout(() => {
      const toolbar = document.querySelector('.edit-post-header-toolbar');
      if (toolbar) {
        toolbar.appendChild(buttonDiv);
      }
    }, 1);
  });
};
if (Boolean(window.themeisleGutenberg.hasModule.patternsLibrary)) {
  _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_4___default()(initPatternsLibrary);
}
}();
/******/ })()
;
//# sourceMappingURL=index.js.map