diff --git a/assets/counter.js b/assets/counter.js
new file mode 100644
index 0000000..cf2eda0
--- /dev/null
+++ b/assets/counter.js
@@ -0,0 +1,308 @@
+// Counter animations: uses Odometer library for odometer mode; keeps other modes intact.
+(function () {
+ // Check if user prefers reduced motion
+ const prefersReducedMotion = () => {
+ return window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ };
+
+ // Smooth easing function for polished marketing counters
+ const easeOutCubic = (t) => 1 - Math.pow(1 - t, 3);
+
+ // Generate random number similar to target
+ const randomLike = (target, decimals) => {
+ const pow = Math.pow(10, decimals);
+ const max = Math.max(1, Math.abs(target));
+ const n = Math.random() * max;
+ return Math.round(n * pow) / pow;
+ };
+
+ // Parse duration from various formats: "2s", "2.5s", "2500", "2500ms"
+ const parseDuration = (raw, fallback = 1600) => {
+ if (raw == null || raw === '') return fallback;
+
+ const s = String(raw).trim().toLowerCase();
+ const sec = s.endsWith('s') && !s.endsWith('ms');
+ const ms = s.endsWith('ms');
+ const n = parseFloat(s.replace(/(ms|s)$/, ''));
+
+ if (isNaN(n)) return fallback;
+
+ let val = sec ? n * 1000 : n;
+ // Treat small integers as seconds
+ if (!sec && !ms && val < 50) val *= 1000;
+
+ return Math.max(0, Math.round(val));
+ };
+
+ // Build Odometer format string based on decimal places
+ const odometerFormat = (decimals) => {
+ return decimals > 0 ? `(,ddd).${'d'.repeat(decimals)}` : '(,ddd)';
+ };
+
+ // Initialize or reuse Odometer instance
+ const ensureOdometer = (el, decimals, durationMs) => {
+ const Odo = window.Odometer;
+ if (!Odo) return null;
+
+ const desiredFormat = odometerFormat(decimals);
+ const existing = el.__odometer;
+
+ // Check if existing instance needs update
+ if (existing) {
+ let changed = false;
+
+ if (existing.options) {
+ if (existing.options.duration !== durationMs) {
+ existing.options.duration = durationMs;
+ changed = true;
+ }
+ if (existing.options.format !== desiredFormat) {
+ existing.options.format = desiredFormat;
+ changed = true;
+ }
+ } else {
+ changed = true;
+ }
+
+ if (!changed) return existing;
+
+ // Clean up existing instance
+ try {
+ el.__odometer = null;
+ el.classList.remove('odometer');
+ } catch (_) { }
+ }
+
+ // Create new Odometer instance
+ const odo = new Odo({
+ el,
+ value: 0,
+ duration: Number.isFinite(durationMs) ? Number(durationMs) : 1600,
+ format: desiredFormat,
+ });
+
+ el.__odometer = odo;
+ return odo;
+ };
+
+ // Main function to run counter animations
+ const run = () => {
+ const els = document.querySelectorAll('.has-number-counter, number-counter.has-number-counter');
+ if (!els.length) return;
+
+ // Check for reduced motion preference
+ const reducedMotion = prefersReducedMotion();
+
+ // Animate individual counter element
+ const animate = (el) => {
+ const target = parseFloat(el.dataset.countTo ?? el.textContent);
+ if (isNaN(target)) return;
+
+ const rawDuration = el.dataset.duration ?? '1600';
+ const duration = parseDuration(rawDuration, 1600);
+
+ // Determine animation mode
+ const requested = String(el.dataset.anim ?? '').trim().toLowerCase();
+ const forceOdo = el.hasAttribute('data-odometer') || requested === 'odometer';
+ const mode = forceOdo ? 'odometer' : (requested || 'ease');
+
+ const decimals = (String(target).split('.')[1] || '').length;
+
+ // If user prefers reduced motion and element respects it, show final value immediately
+ if (reducedMotion) {
+ // Display final value without animation
+ const formatted = Number(target).toLocaleString(undefined, {
+ minimumFractionDigits: decimals,
+ maximumFractionDigits: decimals,
+ });
+ el.textContent = formatted;
+ el.setAttribute('data-final', formatted);
+
+ // Add a class to indicate animation was skipped for styling purposes
+ el.classList.add('animation-skipped');
+ return;
+ }
+
+ // Format number with locale-specific formatting
+ const renderNumber = (val) => {
+ el.textContent = Number(val).toLocaleString(undefined, {
+ minimumFractionDigits: decimals,
+ maximumFractionDigits: decimals,
+ });
+ };
+
+ // Cleanup if not using odometer mode
+ if (mode !== 'odometer') {
+ if (el.__odometer) {
+ try { el.__odometer = null; } catch (e) { }
+ }
+ if (el.classList.contains('odometer')) {
+ el.classList.remove('odometer');
+ }
+ }
+
+ // ODOMETER MODE
+ if (mode === 'odometer') {
+ const odo = ensureOdometer(el, decimals, duration);
+
+ // Fallback to ease animation if library missing
+ if (!odo) {
+ let startTime = null;
+ const step = (ts) => {
+ if (!startTime) startTime = ts;
+ const raw = Math.min((ts - startTime) / duration, 1);
+ const p = easeOutCubic(raw);
+ const value = target * p;
+
+ renderNumber(value);
+
+ if (raw < 1) {
+ requestAnimationFrame(step);
+ } else {
+ renderNumber(target);
+ const formatted = Number(target).toLocaleString(undefined, {
+ minimumFractionDigits: decimals,
+ maximumFractionDigits: decimals,
+ });
+ el.setAttribute('data-final', formatted);
+ }
+ };
+ renderNumber(0);
+ requestAnimationFrame(step);
+ return;
+ }
+
+ // Initialize with zero and trigger animation
+ renderNumber(0);
+
+ requestAnimationFrame(() => {
+ // Ensure duration is applied
+ if (odo.options && odo.options.duration !== duration) {
+ odo.options.duration = duration;
+ }
+ odo.update(target);
+ const seconds = Math.max(0, Math.round(duration)) / 1000;
+ el.style.setProperty('--odo-duration', `${seconds}s`);
+ });
+
+ // Set final attribute when animation completes
+ const setFinal = () => {
+ const formatted = Number(target).toLocaleString(undefined, {
+ minimumFractionDigits: decimals,
+ maximumFractionDigits: decimals,
+ });
+ el.setAttribute('data-final', formatted);
+ };
+
+ // Handle completion with event listener and timeout fallback
+ let done = false;
+ const onDone = () => {
+ if (done) return;
+ done = true;
+ setFinal();
+ el.removeEventListener('odometerdone', onDone);
+ };
+
+ el.addEventListener('odometerdone', onDone, { once: true });
+ setTimeout(onDone, duration + 120);
+ return;
+ }
+
+ // NON-ODOMETER MODES (ease/linear/steps/scramble)
+ let startTime = null;
+
+ const step = (ts) => {
+ if (!startTime) startTime = ts;
+ const raw = Math.min((ts - startTime) / duration, 1);
+
+ let p = raw;
+
+ let value;
+ switch (mode) {
+ case 'steps': {
+ const steps = 20;
+ const snapped = Math.ceil(p * steps) / steps;
+ value = target * snapped;
+ break;
+ }
+ case 'scramble': {
+ value = raw < 0.8
+ ? randomLike(target, decimals)
+ : target * easeOutCubic((raw - 0.8) / 0.2);
+ break;
+ }
+ case 'linear':
+ default:
+ value = target * p;
+ break;
+ }
+
+ renderNumber(value);
+
+ if (raw < 1) {
+ requestAnimationFrame(step);
+ } else {
+ renderNumber(target);
+ const formatted = Number(target).toLocaleString(undefined, {
+ minimumFractionDigits: decimals,
+ maximumFractionDigits: decimals,
+ });
+ el.setAttribute('data-final', formatted);
+ }
+ };
+
+ // Initialize starting value for non-odometer modes
+ el.textContent = '';
+ el.append(
+ document.createTextNode(
+ (0).toLocaleString(undefined, {
+ minimumFractionDigits: decimals,
+ maximumFractionDigits: decimals,
+ })
+ )
+ );
+ requestAnimationFrame(step);
+ };
+
+ // Intersection Observer for scroll-triggered animations
+ const io = new IntersectionObserver(
+ (entries, obs) => {
+ entries.forEach((entry) => {
+ if (!entry.isIntersecting) return;
+ animate(entry.target);
+ obs.unobserve(entry.target);
+ });
+ },
+ { threshold: 0.2 }
+ );
+
+ // Process each counter element
+ els.forEach((el) => {
+ // Check if animation should start on scroll (default: true)
+ const onScrollAttr = (el.dataset.onScroll ?? 'true').toString().toLowerCase();
+ const onScroll = onScrollAttr !== 'false';
+
+ if (onScroll) {
+ io.observe(el); // Start when scrolled into view
+ } else {
+ animate(el); // Start immediately
+ }
+ });
+ };
+
+ // Initialize after fonts are ready to prevent metric jumps
+ const start = () => {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', run);
+ } else {
+ run();
+ }
+ };
+
+ // Wait for fonts to load before starting
+ if (document.fonts && 'ready' in document.fonts) {
+ document.fonts.ready.then(start);
+ } else {
+ start();
+ }
+})();
\ No newline at end of file
diff --git a/blablablocks-formats.php b/blablablocks-formats.php
index a1a5246..d21f4af 100644
--- a/blablablocks-formats.php
+++ b/blablablocks-formats.php
@@ -94,6 +94,15 @@ function blablablocks_register_assets()
[],
$version
);
+
+ // Register Odometer library for counter animation.
+ wp_register_script(
+ 'odometer-lib',
+ 'https://cdn.jsdelivr.net/npm/odometer@0.4.8/odometer.min.js',
+ [],
+ '0.4.8',
+ true
+ );
}
add_action('init', 'blablablocks_register_assets');
@@ -112,3 +121,20 @@ function blablablocks_formats_enqueue_assets()
}
}
add_action('enqueue_block_assets', 'blablablocks_formats_enqueue_assets');
+
+/**
+ * Enqueue counter animation script.
+ *
+ * This script is used for the counter format to animate number changes.
+ */
+function blablablocks_formats_enqueue_counter_animation()
+{
+ wp_enqueue_script(
+ 'blablablocks-counter-frontend',
+ plugins_url('assets/counter.js', __FILE__),
+ ['odometer-lib'],
+ '1.0.0',
+ true
+ );
+}
+add_action('wp_enqueue_scripts', 'blablablocks_formats_enqueue_counter_animation');
diff --git a/package-lock.json b/package-lock.json
index 1ec9f56..217ebec 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,9 @@
"name": "blablablocks-formats",
"version": "1.0.0",
"license": "MIT",
+ "dependencies": {
+ "@wordpress/block-editor": "^15.1.0"
+ },
"devDependencies": {
"@wordpress/eslint-plugin": "^17.8.0",
"@wordpress/icons": "^10.22.0",
@@ -30,9 +33,46 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@ariakit/core": {
+ "version": "0.4.15",
+ "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.4.15.tgz",
+ "integrity": "sha512-vvxmZvkNhiisKM+Y1TbGMUfVVchV/sWu9F0xw0RYADXcimWPK31dd9JnIZs/OQ5pwAryAHmERHwuGQVESkSjwQ==",
+ "license": "MIT"
+ },
+ "node_modules/@ariakit/react": {
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.17.tgz",
+ "integrity": "sha512-HQaIboE2axtlncJz1hRTaiQfJ1GGjhdtNcAnPwdjvl2RybfmlHowIB+HTVBp36LzroKPs/M4hPCxk7XTaqRZGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@ariakit/react-core": "0.4.17"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ariakit"
+ },
+ "peerDependencies": {
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/@ariakit/react-core": {
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.17.tgz",
+ "integrity": "sha512-kFF6n+gC/5CRQIyaMTFoBPio2xUe0k9rZhMNdUobWRmc/twfeLVkODx+8UVYaNyKilTge8G0JFqwvFKku/jKEw==",
+ "license": "MIT",
+ "dependencies": {
+ "@ariakit/core": "0.4.15",
+ "@floating-ui/dom": "^1.0.0",
+ "use-sync-external-store": "^1.2.0"
+ },
+ "peerDependencies": {
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/@babel/code-frame": {
"version": "7.26.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.25.9",
@@ -99,7 +139,6 @@
},
"node_modules/@babel/generator": {
"version": "7.27.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.27.0",
@@ -203,7 +242,6 @@
},
"node_modules/@babel/helper-module-imports": {
"version": "7.25.9",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/traverse": "^7.25.9",
@@ -294,7 +332,6 @@
},
"node_modules/@babel/helper-string-parser": {
"version": "7.25.9",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -302,7 +339,6 @@
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.25.9",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -343,7 +379,6 @@
},
"node_modules/@babel/parser": {
"version": "7.27.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.27.0"
@@ -1669,7 +1704,6 @@
},
"node_modules/@babel/runtime": {
"version": "7.25.7",
- "dev": true,
"license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
@@ -1680,7 +1714,6 @@
},
"node_modules/@babel/template": {
"version": "7.27.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.26.2",
@@ -1693,7 +1726,6 @@
},
"node_modules/@babel/traverse": {
"version": "7.27.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.26.2",
@@ -1710,7 +1742,6 @@
},
"node_modules/@babel/types": {
"version": "7.27.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.25.9",
@@ -1786,6 +1817,12 @@
"@csstools/css-tokenizer": "^3.0.1"
}
},
+ "node_modules/@date-fns/tz": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.3.1.tgz",
+ "integrity": "sha512-LnBOyuj+piItX/D5BWBSckBsuZyOt7Jg2obGNiObq7qjl1A2/8F+i4RS8/MmkSdnw6hOe6afrJLCWrUWZw5Mlw==",
+ "license": "MIT"
+ },
"node_modules/@discoveryjs/json-ext": {
"version": "0.5.7",
"dev": true,
@@ -1803,6 +1840,180 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.13.5",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz",
+ "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/serialize": "^1.3.3",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/babel-plugin/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
+ "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/sheet": "^1.4.0",
+ "@emotion/utils": "^1.4.2",
+ "@emotion/weak-memoize": "^0.4.0",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/css": {
+ "version": "11.13.5",
+ "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz",
+ "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/babel-plugin": "^11.13.5",
+ "@emotion/cache": "^11.13.5",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/sheet": "^1.4.0",
+ "@emotion/utils": "^1.4.2"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
+ "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz",
+ "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
+ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
+ "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.13.5",
+ "@emotion/cache": "^11.14.0",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+ "@emotion/utils": "^1.4.2",
+ "@emotion/weak-memoize": "^0.4.0",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
+ "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/unitless": "^0.10.0",
+ "@emotion/utils": "^1.4.2",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
+ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/styled": {
+ "version": "11.14.1",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz",
+ "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.13.5",
+ "@emotion/is-prop-valid": "^1.3.0",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+ "@emotion/utils": "^1.4.2"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.0.0-rc.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
+ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz",
+ "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
+ "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
+ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
+ "license": "MIT"
+ },
"node_modules/@es-joy/jsdoccomment": {
"version": "0.41.0",
"dev": true,
@@ -1943,6 +2154,44 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
+ "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.10"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.3.tgz",
+ "integrity": "sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.7.3",
+ "@floating-ui/utils": "^0.2.10"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz",
+ "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
+ "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
+ "license": "MIT"
+ },
"node_modules/@formatjs/ecma402-abstract": {
"version": "2.3.4",
"dev": true,
@@ -2375,7 +2624,6 @@
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.8",
- "dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
@@ -2388,7 +2636,6 @@
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.0.0"
@@ -2396,7 +2643,6 @@
},
"node_modules/@jridgewell/set-array": {
"version": "1.2.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.0.0"
@@ -2413,12 +2659,10 @@
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0",
- "dev": true,
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
- "dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -2680,117 +2924,520 @@
"node": ">=10"
}
},
- "node_modules/@rtsao/scc": {
- "version": "1.1.0",
- "dev": true,
+ "node_modules/@radix-ui/primitive": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz",
+ "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==",
"license": "MIT"
},
- "node_modules/@sentry-internal/tracing": {
- "version": "7.120.3",
- "dev": true,
+ "node_modules/@radix-ui/react-compose-refs": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
+ "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
"license": "MIT",
- "dependencies": {
- "@sentry/core": "7.120.3",
- "@sentry/types": "7.120.3",
- "@sentry/utils": "7.120.3"
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
},
- "engines": {
- "node": ">=8"
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
- "node_modules/@sentry/core": {
- "version": "7.120.3",
- "dev": true,
+ "node_modules/@radix-ui/react-context": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
+ "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
"license": "MIT",
- "dependencies": {
- "@sentry/types": "7.120.3",
- "@sentry/utils": "7.120.3"
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
},
- "engines": {
- "node": ">=8"
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
- "node_modules/@sentry/integrations": {
- "version": "7.120.3",
- "dev": true,
+ "node_modules/@radix-ui/react-dialog": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz",
+ "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==",
"license": "MIT",
"dependencies": {
- "@sentry/core": "7.120.3",
- "@sentry/types": "7.120.3",
- "@sentry/utils": "7.120.3",
- "localforage": "^1.8.1"
+ "@radix-ui/primitive": "1.1.2",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-dismissable-layer": "1.1.10",
+ "@radix-ui/react-focus-guards": "1.1.2",
+ "@radix-ui/react-focus-scope": "1.1.7",
+ "@radix-ui/react-id": "1.1.1",
+ "@radix-ui/react-portal": "1.1.9",
+ "@radix-ui/react-presence": "1.1.4",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-slot": "1.2.3",
+ "@radix-ui/react-use-controllable-state": "1.2.2",
+ "aria-hidden": "^1.2.4",
+ "react-remove-scroll": "^2.6.3"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
}
},
- "node_modules/@sentry/node": {
- "version": "7.120.3",
- "dev": true,
+ "node_modules/@radix-ui/react-dismissable-layer": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz",
+ "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==",
"license": "MIT",
"dependencies": {
- "@sentry-internal/tracing": "7.120.3",
- "@sentry/core": "7.120.3",
- "@sentry/integrations": "7.120.3",
- "@sentry/types": "7.120.3",
- "@sentry/utils": "7.120.3"
+ "@radix-ui/primitive": "1.1.2",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-callback-ref": "1.1.1",
+ "@radix-ui/react-use-escape-keydown": "1.1.1"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
}
},
- "node_modules/@sentry/types": {
- "version": "7.120.3",
- "dev": true,
+ "node_modules/@radix-ui/react-focus-guards": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz",
+ "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==",
"license": "MIT",
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
- "node_modules/@sentry/utils": {
- "version": "7.120.3",
- "dev": true,
+ "node_modules/@radix-ui/react-focus-scope": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz",
+ "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==",
"license": "MIT",
"dependencies": {
- "@sentry/types": "7.120.3"
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-callback-ref": "1.1.1"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
}
},
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "dev": true,
- "license": "BSD-3-Clause",
+ "node_modules/@radix-ui/react-id": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
+ "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
+ "license": "MIT",
"dependencies": {
- "@hapi/hoek": "^9.0.0"
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@sinonjs/commons": {
- "version": "3.0.1",
- "dev": true,
- "license": "BSD-3-Clause",
+ "node_modules/@radix-ui/react-portal": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz",
+ "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==",
+ "license": "MIT",
"dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-presence": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz",
+ "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-primitive": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
+ "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-slot": "1.2.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-slot": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
+ "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-callback-ref": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
+ "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-controllable-state": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
+ "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-effect-event": "0.0.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-effect-event": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
+ "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-escape-keydown": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz",
+ "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-callback-ref": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-layout-effect": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
+ "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@react-spring/animated": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz",
+ "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==",
+ "license": "MIT",
+ "dependencies": {
+ "@react-spring/shared": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/core": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz",
+ "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==",
+ "license": "MIT",
+ "dependencies": {
+ "@react-spring/animated": "~9.7.5",
+ "@react-spring/shared": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/react-spring/donate"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/rafz": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz",
+ "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==",
+ "license": "MIT"
+ },
+ "node_modules/@react-spring/shared": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz",
+ "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==",
+ "license": "MIT",
+ "dependencies": {
+ "@react-spring/rafz": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/types": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz",
+ "integrity": "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==",
+ "license": "MIT"
+ },
+ "node_modules/@react-spring/web": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.5.tgz",
+ "integrity": "sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@react-spring/animated": "~9.7.5",
+ "@react-spring/core": "~9.7.5",
+ "@react-spring/shared": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sentry-internal/tracing": {
+ "version": "7.120.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "7.120.3",
+ "@sentry/types": "7.120.3",
+ "@sentry/utils": "7.120.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "7.120.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/types": "7.120.3",
+ "@sentry/utils": "7.120.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/integrations": {
+ "version": "7.120.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "7.120.3",
+ "@sentry/types": "7.120.3",
+ "@sentry/utils": "7.120.3",
+ "localforage": "^1.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/node": {
+ "version": "7.120.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.120.3",
+ "@sentry/core": "7.120.3",
+ "@sentry/integrations": "7.120.3",
+ "@sentry/types": "7.120.3",
+ "@sentry/utils": "7.120.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/types": {
+ "version": "7.120.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "7.120.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/types": "7.120.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.5",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -3061,6 +3708,43 @@
"url": "https://github.com/sponsors/gregberge"
}
},
+ "node_modules/@tannin/compile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz",
+ "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==",
+ "license": "MIT",
+ "dependencies": {
+ "@tannin/evaluate": "^1.2.0",
+ "@tannin/postfix": "^1.1.0"
+ }
+ },
+ "node_modules/@tannin/evaluate": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz",
+ "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==",
+ "license": "MIT"
+ },
+ "node_modules/@tannin/plural-forms": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz",
+ "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==",
+ "license": "MIT",
+ "dependencies": {
+ "@tannin/compile": "^1.1.0"
+ }
+ },
+ "node_modules/@tannin/postfix": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz",
+ "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==",
+ "license": "MIT"
+ },
+ "node_modules/@tannin/sprintf": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@tannin/sprintf/-/sprintf-1.3.1.tgz",
+ "integrity": "sha512-3auu6Wqm4TR6gvOh1Dgh1d2k9+arNmu3T0JLiUJoJMgayeHr450OuWeZIMTE4CUuq51rwn/NI9S5InT0JuTxQw==",
+ "license": "MIT"
+ },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"dev": true,
@@ -3226,6 +3910,18 @@
"@types/node": "*"
}
},
+ "node_modules/@types/gradient-parser": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-0.1.3.tgz",
+ "integrity": "sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/highlight-words-core": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/highlight-words-core/-/highlight-words-core-1.2.1.tgz",
+ "integrity": "sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA==",
+ "license": "MIT"
+ },
"node_modules/@types/http-errors": {
"version": "2.0.4",
"dev": true,
@@ -3295,6 +3991,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/mousetrap": {
+ "version": "1.6.15",
+ "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.15.tgz",
+ "integrity": "sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==",
+ "license": "MIT"
+ },
"node_modules/@types/node": {
"version": "22.14.1",
"dev": true,
@@ -3318,12 +4020,10 @@
},
"node_modules/@types/parse-json": {
"version": "4.0.2",
- "dev": true,
"license": "MIT"
},
"node_modules/@types/prop-types": {
"version": "15.7.14",
- "dev": true,
"license": "MIT"
},
"node_modules/@types/qs": {
@@ -3338,7 +4038,6 @@
},
"node_modules/@types/react": {
"version": "18.3.20",
- "dev": true,
"license": "MIT",
"dependencies": {
"@types/prop-types": "*",
@@ -3347,7 +4046,6 @@
},
"node_modules/@types/react-dom": {
"version": "18.3.6",
- "dev": true,
"license": "MIT",
"peerDependencies": {
"@types/react": "^18.0.0"
@@ -3726,6 +4424,24 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/@use-gesture/core": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz",
+ "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==",
+ "license": "MIT"
+ },
+ "node_modules/@use-gesture/react": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz",
+ "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==",
+ "license": "MIT",
+ "dependencies": {
+ "@use-gesture/core": "10.3.1"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0"
+ }
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
"dev": true,
@@ -3898,6 +4614,49 @@
}
}
},
+ "node_modules/@wordpress/a11y": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.28.0.tgz",
+ "integrity": "sha512-t044nEo5tBXwPkj9mFGj12/k7EaWaRJ2b5zLZYg6TK4VIrUhP1koC2rZ3VIL9p1UIDq52CESJdN3Qp4ehv4Y/g==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/dom-ready": "^4.28.0",
+ "@wordpress/i18n": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/api-fetch": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-7.28.0.tgz",
+ "integrity": "sha512-5dYLsGFnhB6FdjZqJby2sOY69Gx34j4qpecC7OMdkib+WgjG8Uapb+TgRK2s6yry15vvcAx+aR6Yq09aDXdePQ==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/url": "^4.28.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/autop": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-4.28.0.tgz",
+ "integrity": "sha512-XIVAoRkbYWLsZNbbP8JZGKF+dDKUFpj2wfSWk7GcOR8fHGNx5uXeNpWI+1vaWFowpldRVD2UFXdA/jK6wbR66g==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
"node_modules/@wordpress/babel-plugin-import-jsx-pragma": {
"version": "4.41.0",
"dev": true,
@@ -4106,6 +4865,153 @@
"npm": ">=8.19.2"
}
},
+ "node_modules/@wordpress/blob": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.28.0.tgz",
+ "integrity": "sha512-UaxK4/nxOfUoPvYdr7yNsg+rMNZm6AEzsP4F2E9MXXqCtJG+nbLaW7EdaLARV40hYsbOUmRH2qhJd6SyvcIEqA==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/block-editor": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-15.1.0.tgz",
+ "integrity": "sha512-8EngkF8QLjUbNpsPHRP8PPi/+Fvl9d4YldBMqgij+slCePtci+0AS5E7821TwDHPnk3QO32QvOk2AxvrNZGciw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@emotion/react": "^11.7.1",
+ "@emotion/styled": "^11.6.0",
+ "@react-spring/web": "^9.4.5",
+ "@wordpress/a11y": "^4.28.0",
+ "@wordpress/api-fetch": "^7.28.0",
+ "@wordpress/blob": "^4.28.0",
+ "@wordpress/block-serialization-default-parser": "^5.28.0",
+ "@wordpress/blocks": "^15.1.0",
+ "@wordpress/commands": "^1.28.0",
+ "@wordpress/components": "^30.1.0",
+ "@wordpress/compose": "^7.28.0",
+ "@wordpress/data": "^10.28.0",
+ "@wordpress/date": "^5.28.0",
+ "@wordpress/deprecated": "^4.28.0",
+ "@wordpress/dom": "^4.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/escape-html": "^3.28.0",
+ "@wordpress/hooks": "^4.28.0",
+ "@wordpress/html-entities": "^4.28.0",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/icons": "^10.28.0",
+ "@wordpress/is-shallow-equal": "^5.28.0",
+ "@wordpress/keyboard-shortcuts": "^5.28.0",
+ "@wordpress/keycodes": "^4.28.0",
+ "@wordpress/notices": "^5.28.0",
+ "@wordpress/preferences": "^4.28.0",
+ "@wordpress/priority-queue": "^3.28.0",
+ "@wordpress/private-apis": "^1.28.0",
+ "@wordpress/rich-text": "^7.28.0",
+ "@wordpress/style-engine": "^2.28.0",
+ "@wordpress/token-list": "^3.28.0",
+ "@wordpress/upload-media": "^0.13.0",
+ "@wordpress/url": "^4.28.0",
+ "@wordpress/warning": "^3.28.0",
+ "@wordpress/wordcount": "^4.28.0",
+ "change-case": "^4.1.2",
+ "clsx": "^2.1.1",
+ "colord": "^2.7.0",
+ "deepmerge": "^4.3.0",
+ "diff": "^4.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "memize": "^2.1.0",
+ "parsel-js": "^1.1.2",
+ "postcss": "^8.4.21",
+ "postcss-prefix-selector": "^1.16.0",
+ "postcss-urlrebase": "^1.4.0",
+ "react-autosize-textarea": "^7.1.0",
+ "react-easy-crop": "^5.0.6",
+ "remove-accents": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/block-serialization-default-parser": {
+ "version": "5.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-5.28.0.tgz",
+ "integrity": "sha512-qCVJvizRw7AG7DSDR3/aghj4UqzJ0zNDbrUXAP8Jaq9g/p3UWBYJRmLmiNXTnP+JVUp5Grb1utncG5atszQGZg==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/blocks": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-15.1.0.tgz",
+ "integrity": "sha512-/wRU3h9XFHuSRmA+IqYpMXDPrUvjhYznmG08CDpsf3XFb3aY+6Lqy2YDQuSMjDamxJN3CeFjiRdfKz/t4dGqsQ==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/autop": "^4.28.0",
+ "@wordpress/blob": "^4.28.0",
+ "@wordpress/block-serialization-default-parser": "^5.28.0",
+ "@wordpress/data": "^10.28.0",
+ "@wordpress/deprecated": "^4.28.0",
+ "@wordpress/dom": "^4.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/hooks": "^4.28.0",
+ "@wordpress/html-entities": "^4.28.0",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/is-shallow-equal": "^5.28.0",
+ "@wordpress/private-apis": "^1.28.0",
+ "@wordpress/rich-text": "^7.28.0",
+ "@wordpress/shortcode": "^4.28.0",
+ "@wordpress/warning": "^3.28.0",
+ "change-case": "^4.1.2",
+ "colord": "^2.7.0",
+ "fast-deep-equal": "^3.1.3",
+ "hpq": "^1.3.0",
+ "is-plain-object": "^5.0.0",
+ "memize": "^2.1.0",
+ "react-is": "^18.3.0",
+ "remove-accents": "^0.5.0",
+ "showdown": "^1.9.1",
+ "simple-html-tokenizer": "^0.5.7",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/blocks/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
"node_modules/@wordpress/browserslist-config": {
"version": "6.24.0",
"dev": true,
@@ -4115,6 +5021,187 @@
"npm": ">=8.19.2"
}
},
+ "node_modules/@wordpress/commands": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-1.28.0.tgz",
+ "integrity": "sha512-iokqHdXs9WrFw7Rf9MVJSW3+Z8aJbpUDkLQpIYbL/PX3WTz05nEIUI/p45fH3vPoOeoJqVZ8YwC6uvnoUxy9Cw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/components": "^30.1.0",
+ "@wordpress/data": "^10.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/icons": "^10.28.0",
+ "@wordpress/keyboard-shortcuts": "^5.28.0",
+ "@wordpress/private-apis": "^1.28.0",
+ "clsx": "^2.1.1",
+ "cmdk": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/components": {
+ "version": "30.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-30.1.0.tgz",
+ "integrity": "sha512-5joJLLp7Rqbvd3uvJImeGpqZ9ZwXduKQwwZ4gECG2P+v4OYwRytyufqtwU+iLWH++3Kjy+1v1Tbh4qhxwkxqDw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@ariakit/react": "^0.4.15",
+ "@babel/runtime": "7.25.7",
+ "@emotion/cache": "^11.7.1",
+ "@emotion/css": "^11.7.1",
+ "@emotion/react": "^11.7.1",
+ "@emotion/serialize": "^1.0.2",
+ "@emotion/styled": "^11.6.0",
+ "@emotion/utils": "^1.0.0",
+ "@floating-ui/react-dom": "2.0.8",
+ "@types/gradient-parser": "0.1.3",
+ "@types/highlight-words-core": "1.2.1",
+ "@use-gesture/react": "^10.3.1",
+ "@wordpress/a11y": "^4.28.0",
+ "@wordpress/compose": "^7.28.0",
+ "@wordpress/date": "^5.28.0",
+ "@wordpress/deprecated": "^4.28.0",
+ "@wordpress/dom": "^4.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/escape-html": "^3.28.0",
+ "@wordpress/hooks": "^4.28.0",
+ "@wordpress/html-entities": "^4.28.0",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/icons": "^10.28.0",
+ "@wordpress/is-shallow-equal": "^5.28.0",
+ "@wordpress/keycodes": "^4.28.0",
+ "@wordpress/primitives": "^4.28.0",
+ "@wordpress/private-apis": "^1.28.0",
+ "@wordpress/rich-text": "^7.28.0",
+ "@wordpress/warning": "^3.28.0",
+ "change-case": "^4.1.2",
+ "clsx": "^2.1.1",
+ "colord": "^2.7.0",
+ "date-fns": "^3.6.0",
+ "deepmerge": "^4.3.0",
+ "fast-deep-equal": "^3.1.3",
+ "framer-motion": "^11.1.9",
+ "gradient-parser": "1.0.2",
+ "highlight-words-core": "^1.2.2",
+ "is-plain-object": "^5.0.0",
+ "memize": "^2.1.0",
+ "path-to-regexp": "^6.2.1",
+ "re-resizable": "^6.4.0",
+ "react-colorful": "^5.3.1",
+ "react-day-picker": "^9.7.0",
+ "remove-accents": "^0.5.0",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/components/node_modules/path-to-regexp": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
+ "license": "MIT"
+ },
+ "node_modules/@wordpress/components/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@wordpress/compose": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.28.0.tgz",
+ "integrity": "sha512-PanDO0gHlH5JiU8JZSAlee6N2u+AsOM0t1vyXGz249B7aTymtRNL5hvavFGIeEMFF/fzHXrsBBW5xvLRlO74YQ==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@types/mousetrap": "^1.6.8",
+ "@wordpress/deprecated": "^4.28.0",
+ "@wordpress/dom": "^4.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/is-shallow-equal": "^5.28.0",
+ "@wordpress/keycodes": "^4.28.0",
+ "@wordpress/priority-queue": "^3.28.0",
+ "@wordpress/undo-manager": "^1.28.0",
+ "change-case": "^4.1.2",
+ "clipboard": "^2.0.11",
+ "mousetrap": "^1.6.5",
+ "use-memo-one": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/data": {
+ "version": "10.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.28.0.tgz",
+ "integrity": "sha512-MqUI5+ehvxgkWH4kTbFkotIRq5y7iLFNPwVR31eKLseJizx67pJ7Y3smj9cR5mILpAXCW5e5o8dVgSQSDt8p+Q==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/compose": "^7.28.0",
+ "@wordpress/deprecated": "^4.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/is-shallow-equal": "^5.28.0",
+ "@wordpress/priority-queue": "^3.28.0",
+ "@wordpress/private-apis": "^1.28.0",
+ "@wordpress/redux-routine": "^5.28.0",
+ "deepmerge": "^4.3.0",
+ "equivalent-key-map": "^0.2.2",
+ "is-plain-object": "^5.0.0",
+ "is-promise": "^4.0.0",
+ "redux": "^5.0.1",
+ "rememo": "^4.0.2",
+ "use-memo-one": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/date": {
+ "version": "5.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.28.0.tgz",
+ "integrity": "sha512-1cKE7KEIOsylM4vOFGk8pvXUKlSf33GpxyOWDCuhba8NOfXenx8+gGezFB8ym+JBokPnRIYa4Ub0JYvUdya1Pg==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/deprecated": "^4.28.0",
+ "moment": "^2.29.4",
+ "moment-timezone": "^0.5.40"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
"node_modules/@wordpress/dependency-extraction-webpack-plugin": {
"version": "6.22.0",
"dev": true,
@@ -4135,6 +5222,47 @@
"dev": true,
"license": "BSD"
},
+ "node_modules/@wordpress/deprecated": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.28.0.tgz",
+ "integrity": "sha512-ylWrIsBH1dkETs59XWIvQKqdKtXK9sxyrFHJMEnrVPw4Sxbdx0R5YSBY/kXdp3xwhhsoi9BrVUmtIgA2MnxL1A==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/hooks": "^4.28.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/dom": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.28.0.tgz",
+ "integrity": "sha512-k0/sG6LIJoQyWhsQz+g2KRSChu2Dvrj+go5M3PZURgj/ONUxe3NE9A4Syci2Ga2911oItKg3kiYyPnpgzzxL+g==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/deprecated": "^4.28.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/dom-ready": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.28.0.tgz",
+ "integrity": "sha512-kry2EKpIrXbOwxnZ8tDr1ZfvSRLnKzTa35xlEtkIVyjDE8K+k7CCMbz5+9pFyo+uwVjk9yjJ9SHcviMr985WSA==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
"node_modules/@wordpress/e2e-test-utils-playwright": {
"version": "1.22.0",
"dev": true,
@@ -4156,14 +5284,15 @@
}
},
"node_modules/@wordpress/element": {
- "version": "6.22.0",
- "dev": true,
+ "version": "6.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.28.0.tgz",
+ "integrity": "sha512-FSojQxfsaDXwc11nMgc/OlIgq1BgjpNf9m2Smw1Z3GmVq8J4E6wAFpJuoUPwyjON4i1apiWl/bqQA84yT9C84g==",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
"@types/react": "^18.2.79",
"@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^3.22.0",
+ "@wordpress/escape-html": "^3.28.0",
"change-case": "^4.1.2",
"is-plain-object": "^5.0.0",
"react": "^18.3.0",
@@ -4175,8 +5304,9 @@
}
},
"node_modules/@wordpress/escape-html": {
- "version": "3.22.0",
- "dev": true,
+ "version": "3.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.28.0.tgz",
+ "integrity": "sha512-LDcr26vX7OkcvHMjAFxg0vNmI7cP5lzLs+HbnwM1H9h0dsj3svIWXXFF/7lQl7sbI9+rjF0GkR1Fgd+DvF7zxw==",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -4317,25 +5447,86 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@wordpress/eslint-plugin/node_modules/type-fest": {
- "version": "0.20.2",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
+ "node_modules/@wordpress/eslint-plugin/node_modules/type-fest": {
+ "version": "0.20.2",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/hooks": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.28.0.tgz",
+ "integrity": "sha512-NE7ObdwcVDNHz19UVOjcbO6BlRLXQtRnZWWyFLNttFTmXEJo5wNbG1hTPaDQCGdV71mmHvGYJat9JqY04tIO9g==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/html-entities": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.28.0.tgz",
+ "integrity": "sha512-lc3y3LqOmviEow/+2jX3lP5KC2hp6IectpHtfzjR6T08P4mCgPFSmL4Br3IXFLUin0Ohq1CCdbwINwmsrcFXng==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/i18n": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.1.0.tgz",
+ "integrity": "sha512-C7GJ0xjGF2bMrcMsnNdSaRr+vufaUhsFOOEFtUi/YjYtjwBbCkNck+2IGrO8MwHYBVPq+elQZIAA0tiix+rW0w==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@tannin/sprintf": "^1.3.1",
+ "@wordpress/hooks": "^4.28.0",
+ "gettext-parser": "^1.3.1",
+ "memize": "^2.1.0",
+ "tannin": "^1.2.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "bin": {
+ "pot-to-php": "tools/pot-to-php.js"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
"node_modules/@wordpress/icons": {
- "version": "10.22.0",
- "dev": true,
+ "version": "10.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.28.0.tgz",
+ "integrity": "sha512-+RByHLELe5mOtz1Z3mOgRGzBPJ/pMGRFE66xIw69gh3VDLs0w7qQgZSN+bzIz9pIHIzgwdRTj23Du60RLui66Q==",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
- "@wordpress/element": "^6.22.0",
- "@wordpress/primitives": "^4.22.0"
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/primitives": "^4.28.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/is-shallow-equal": {
+ "version": "5.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.28.0.tgz",
+ "integrity": "sha512-J6sT5yk/FnB7DM7tyFfLuSzmqaHQxZpfT9P9fexvAYtbpDR8VTT96d+R5HWV1fQaT1+AFSOiJnElhN/Eo9uOqw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
},
"engines": {
"node": ">=18.12.0",
@@ -4375,6 +5566,57 @@
"jest": ">=29"
}
},
+ "node_modules/@wordpress/keyboard-shortcuts": {
+ "version": "5.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.28.0.tgz",
+ "integrity": "sha512-CeSc8jrHIw6akx9XiKpHTFebcMmcc5IiukRo3ZAu540A9vXnY+Izz6esG7mRUIfylWy6nB3pqxF3VdQXelNe8A==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/data": "^10.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/keycodes": "^4.28.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/keycodes": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.28.0.tgz",
+ "integrity": "sha512-clQ5bYq4QRW4809cjwwolY77cvAGMAZnEskINg1qYo8VaIyezuF/qkDTPyGGAHR7JawXs/TxLAgOi2kwXpbU7g==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/i18n": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/notices": {
+ "version": "5.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.28.0.tgz",
+ "integrity": "sha512-yYxlPqbqij5Ugq04XfSZZ7QxEyFhOkz4GUxaHJgywK2JXRm+WNsjxUwGbTf0zP/hDakiSIQ5CWM6PTIL6gEzHw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/a11y": "^4.28.0",
+ "@wordpress/data": "^10.28.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0"
+ }
+ },
"node_modules/@wordpress/npm-package-json-lint-config": {
"version": "5.22.0",
"dev": true,
@@ -4403,6 +5645,33 @@
"postcss": "^8.0.0"
}
},
+ "node_modules/@wordpress/preferences": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.28.0.tgz",
+ "integrity": "sha512-2YmvXMCl+MK/e+eKZlpnnjJkBBltscnurt9fsYJBtZlOcCpNp2KZXPZm0ZsuEXCd9mnLnXpyVO513hZxWs1/0g==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/a11y": "^4.28.0",
+ "@wordpress/components": "^30.1.0",
+ "@wordpress/compose": "^7.28.0",
+ "@wordpress/data": "^10.28.0",
+ "@wordpress/deprecated": "^4.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/icons": "^10.28.0",
+ "@wordpress/private-apis": "^1.28.0",
+ "clsx": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@wordpress/prettier-config": {
"version": "4.22.0",
"dev": true,
@@ -4416,12 +5685,13 @@
}
},
"node_modules/@wordpress/primitives": {
- "version": "4.22.0",
- "dev": true,
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.28.0.tgz",
+ "integrity": "sha512-Zv8RBd7urure+nDgzvNXFDy8WrKavzrM3xxy6OQL7lwn4jG50BDCP1L6LS76oGy8uVAOqJVUIFEeWGGt0B6Fnw==",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
- "@wordpress/element": "^6.22.0",
+ "@wordpress/element": "^6.28.0",
"clsx": "^2.1.1"
},
"engines": {
@@ -4432,6 +5702,78 @@
"react": "^18.0.0"
}
},
+ "node_modules/@wordpress/priority-queue": {
+ "version": "3.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.28.0.tgz",
+ "integrity": "sha512-+K0LdQJMxzAJuvdeAHXftn4TyLtgn6EOgNthOrfZUygn1023M73qAQPIU9hszSPeq7lqXNCJLeYvCK6+WPPdsw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "requestidlecallback": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/private-apis": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.28.0.tgz",
+ "integrity": "sha512-NOO2bcbzzR07K7T6nqi5/VJaqkv9KgxLgkWvElKRHaekUNVyePFNXLPf0iO01vqltJHljxN9nk//edmsFTmFuQ==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/redux-routine": {
+ "version": "5.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.28.0.tgz",
+ "integrity": "sha512-aMqVXlFKyi8XXJO5uhiov8CKJGbRnRudUt/wJ3Bv3l4Ac6TOWnSJ10+gSY7hicXYhcn79HvlVjXSxShxA448Iw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "is-plain-object": "^5.0.0",
+ "is-promise": "^4.0.0",
+ "rungen": "^0.3.2"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "redux": ">=4"
+ }
+ },
+ "node_modules/@wordpress/rich-text": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.28.0.tgz",
+ "integrity": "sha512-TI5HOBMkFDP7y8X/2Gw16Vv7tDP7clLMueN5NhFfnwattKWMopt3bcXLWZPBBLSzAa7ueuvR97ybC+f8qdumEA==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/a11y": "^4.28.0",
+ "@wordpress/compose": "^7.28.0",
+ "@wordpress/data": "^10.28.0",
+ "@wordpress/deprecated": "^4.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/escape-html": "^3.28.0",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/keycodes": "^4.28.0",
+ "colord": "2.9.3",
+ "memize": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0"
+ }
+ },
"node_modules/@wordpress/scripts": {
"version": "30.15.0",
"dev": true,
@@ -4616,6 +5958,34 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@wordpress/shortcode": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-4.28.0.tgz",
+ "integrity": "sha512-ff0gP8vOv7s5sHyA2DWpwupHlHOiDnvL7o+EQJoD2q+SNVpX1jm7Td1SOhKcEE6dtc/6epvRoul6J90yaB8ESA==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "memize": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/style-engine": {
+ "version": "2.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-2.28.0.tgz",
+ "integrity": "sha512-BHtd76WNDhYSctwX4xbs8gyqv/af8w3mdMW/pE4gKf85ntznwYnWxks25VpuE0cZ2GoNpg0RDFU8QZL3DAjcKw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "change-case": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
"node_modules/@wordpress/stylelint-config": {
"version": "23.14.0",
"dev": true,
@@ -4634,10 +6004,105 @@
"stylelint-scss": "^6.4.0"
}
},
+ "node_modules/@wordpress/token-list": {
+ "version": "3.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-3.28.0.tgz",
+ "integrity": "sha512-S045LH/3cc8Q1A+QuScVP1RtsIwXGm9yA7d/C8C6zQWW3x4aXigcNjOn3K3NpqghUj+tm7PmjJLJJw9Q9kxLvQ==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/undo-manager": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.28.0.tgz",
+ "integrity": "sha512-z6OaR1ebkpQ1ycpxp119ZzBXuRMS7kjfY67G4SAMyzoN7Bmllt0TEb/E25Y5SUk0dQJPC6Sxpzna+KB5qBhoBw==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/is-shallow-equal": "^5.28.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/upload-media": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/upload-media/-/upload-media-0.13.0.tgz",
+ "integrity": "sha512-LfwGLhgVBTYKhQUYV3/iG82ThtCNTG9KXh1sWr2l8B9SNQk9PGpnc+wus0vo/MGrSJSQLQRWuu6B/csWDwrQqA==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "@wordpress/api-fetch": "^7.28.0",
+ "@wordpress/blob": "^4.28.0",
+ "@wordpress/compose": "^7.28.0",
+ "@wordpress/data": "^10.28.0",
+ "@wordpress/element": "^6.28.0",
+ "@wordpress/i18n": "^6.1.0",
+ "@wordpress/preferences": "^4.28.0",
+ "@wordpress/private-apis": "^1.28.0",
+ "@wordpress/url": "^4.28.0",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/upload-media/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@wordpress/url": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.28.0.tgz",
+ "integrity": "sha512-bzPHaZJshxIg7UvXTXSPeIB6+MwBKJBenaufU0VGoFeWOTUCUxQDWZcU3ESCJ9DIb10soERr2BOu6jpk3RVI5A==",
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "remove-accents": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
"node_modules/@wordpress/warning": {
- "version": "3.24.0",
- "dev": true,
+ "version": "3.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.28.0.tgz",
+ "integrity": "sha512-Hn2wrdgBDRcmBjpEXd5q+bz4qvLMSYoZa0b3uo1Ja9ONNh8eHGnILIAxBk/OmFrCjmXqY6bydTVBRcvXaBq0MQ==",
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/wordcount": {
+ "version": "4.28.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-4.28.0.tgz",
+ "integrity": "sha512-6/tZ7KpVjKRREegyFtV2k+T+zlZSetCvGHzZfbDW5gB3eWOftUUrGbvrJTXTF0FDlYFWStQ1EKPDb2/4zwTNxQ==",
"license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7"
+ },
"engines": {
"node": ">=18.12.0",
"npm": ">=8.19.2"
@@ -4897,6 +6362,18 @@
"sprintf-js": "~1.0.2"
}
},
+ "node_modules/aria-hidden": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
+ "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/aria-query": {
"version": "5.3.2",
"dev": true,
@@ -5157,6 +6634,12 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/autosize": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz",
+ "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==",
+ "license": "MIT"
+ },
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"dev": true,
@@ -5267,6 +6750,37 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/babel-plugin-macros": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
+ "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "cosmiconfig": "^7.0.0",
+ "resolve": "^1.19.0"
+ },
+ "engines": {
+ "node": ">=10",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/babel-plugin-macros/node_modules/cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.4.13",
"dev": true,
@@ -5703,7 +7217,6 @@
},
"node_modules/callsites": {
"version": "3.1.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -5711,7 +7224,6 @@
},
"node_modules/camel-case": {
"version": "4.1.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"pascal-case": "^3.1.2",
@@ -5785,7 +7297,6 @@
},
"node_modules/capital-case": {
"version": "1.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
@@ -5810,7 +7321,6 @@
},
"node_modules/change-case": {
"version": "4.1.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"camel-case": "^4.1.2",
@@ -5951,6 +7461,17 @@
"webpack": "*"
}
},
+ "node_modules/clipboard": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
+ "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
+ "license": "MIT",
+ "dependencies": {
+ "good-listener": "^1.2.2",
+ "select": "^1.1.2",
+ "tiny-emitter": "^2.0.0"
+ }
+ },
"node_modules/cliui": {
"version": "8.0.1",
"dev": true,
@@ -5992,12 +7513,27 @@
},
"node_modules/clsx": {
"version": "2.1.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
+ "node_modules/cmdk": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz",
+ "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "^1.1.1",
+ "@radix-ui/react-dialog": "^1.1.6",
+ "@radix-ui/react-id": "^1.1.0",
+ "@radix-ui/react-primitive": "^2.0.2"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^18 || ^19 || ^19.0.0-rc"
+ }
+ },
"node_modules/co": {
"version": "4.6.0",
"dev": true,
@@ -6030,7 +7566,6 @@
},
"node_modules/colord": {
"version": "2.9.3",
- "dev": true,
"license": "MIT"
},
"node_modules/colorette": {
@@ -6111,6 +7646,11 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/computed-style": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz",
+ "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w=="
+ },
"node_modules/concat-map": {
"version": "0.0.1",
"dev": true,
@@ -6167,7 +7707,6 @@
},
"node_modules/constant-case": {
"version": "3.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
@@ -6639,7 +8178,6 @@
},
"node_modules/csstype": {
"version": "3.1.3",
- "dev": true,
"license": "MIT"
},
"node_modules/cwd": {
@@ -6728,6 +8266,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/date-fns": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
+ "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
+ "node_modules/date-fns-jalali": {
+ "version": "4.1.0-0",
+ "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz",
+ "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==",
+ "license": "MIT"
+ },
"node_modules/debounce": {
"version": "1.2.1",
"dev": true,
@@ -6735,7 +8289,6 @@
},
"node_modules/debug": {
"version": "4.4.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -6751,7 +8304,6 @@
},
"node_modules/decamelize": {
"version": "1.2.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -6813,7 +8365,6 @@
},
"node_modules/deepmerge": {
"version": "4.3.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -6942,6 +8493,12 @@
"node": ">=0.4.0"
}
},
+ "node_modules/delegate": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
+ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
+ "license": "MIT"
+ },
"node_modules/depd": {
"version": "2.0.0",
"dev": true,
@@ -6984,11 +8541,26 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/detect-node-es": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
+ "license": "MIT"
+ },
"node_modules/devtools-protocol": {
"version": "0.0.1436416",
"dev": true,
"license": "BSD-3-Clause"
},
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
"node_modules/diff-sequences": {
"version": "29.6.3",
"dev": true,
@@ -7094,7 +8666,6 @@
},
"node_modules/dot-case": {
"version": "3.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
@@ -7172,6 +8743,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
"node_modules/end-of-stream": {
"version": "1.4.4",
"dev": true,
@@ -7234,9 +8814,14 @@
"node": ">=4"
}
},
+ "node_modules/equivalent-key-map": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz",
+ "integrity": "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew==",
+ "license": "MIT"
+ },
"node_modules/error-ex": {
"version": "1.3.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-arrayish": "^0.2.1"
@@ -7428,7 +9013,6 @@
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -8407,7 +9991,6 @@
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
- "dev": true,
"license": "MIT"
},
"node_modules/fast-diff": {
@@ -8646,6 +10229,12 @@
"find-process": "bin/find-process.js"
}
},
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "license": "MIT"
+ },
"node_modules/find-up": {
"version": "4.1.0",
"dev": true,
@@ -8784,6 +10373,33 @@
"url": "https://github.com/sponsors/rawify"
}
},
+ "node_modules/framer-motion": {
+ "version": "11.18.2",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz",
+ "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-dom": "^11.18.1",
+ "motion-utils": "^11.18.1",
+ "tslib": "^2.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/is-prop-valid": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/is-prop-valid": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/fresh": {
"version": "0.5.2",
"dev": true,
@@ -8824,7 +10440,6 @@
},
"node_modules/function-bind": {
"version": "1.1.2",
- "dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -8867,7 +10482,6 @@
},
"node_modules/get-caller-file": {
"version": "2.0.5",
- "dev": true,
"license": "ISC",
"engines": {
"node": "6.* || 8.* || >= 10.*"
@@ -8896,6 +10510,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-nonce": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/get-package-type": {
"version": "0.1.0",
"dev": true,
@@ -8978,6 +10601,16 @@
"node": ">= 14"
}
},
+ "node_modules/gettext-parser": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz",
+ "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==",
+ "license": "MIT",
+ "dependencies": {
+ "encoding": "^0.1.12",
+ "safe-buffer": "^5.1.1"
+ }
+ },
"node_modules/glob": {
"version": "7.2.3",
"dev": true,
@@ -9072,7 +10705,6 @@
},
"node_modules/globals": {
"version": "11.12.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -9117,6 +10749,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/good-listener": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
+ "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
+ "license": "MIT",
+ "dependencies": {
+ "delegate": "^3.1.2"
+ }
+ },
"node_modules/gopd": {
"version": "1.2.0",
"dev": true,
@@ -9133,6 +10774,14 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/gradient-parser": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-1.0.2.tgz",
+ "integrity": "sha512-gR6nY33xC9yJoH4wGLQtZQMXDi6RI3H37ERu7kQCVUzlXjNedpZM7xcA489Opwbq0BSGohtWGsWsntupmxelMg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/graphemer": {
"version": "1.4.0",
"dev": true,
@@ -9236,7 +10885,6 @@
},
"node_modules/hasown": {
"version": "2.0.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -9247,13 +10895,33 @@
},
"node_modules/header-case": {
"version": "2.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"capital-case": "^1.0.4",
"tslib": "^2.0.3"
}
},
+ "node_modules/highlight-words-core": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.3.tgz",
+ "integrity": "sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==",
+ "license": "MIT"
+ },
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "node_modules/hoist-non-react-statics/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
"node_modules/homedir-polyfill": {
"version": "1.0.3",
"dev": true,
@@ -9340,6 +11008,12 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/hpq": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/hpq/-/hpq-1.4.0.tgz",
+ "integrity": "sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==",
+ "license": "MIT"
+ },
"node_modules/html-encoding-sniffer": {
"version": "3.0.0",
"dev": true,
@@ -9486,7 +11160,6 @@
},
"node_modules/iconv-lite": {
"version": "0.6.3",
- "dev": true,
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
@@ -9581,7 +11254,6 @@
},
"node_modules/import-fresh": {
"version": "3.3.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
@@ -9596,7 +11268,6 @@
},
"node_modules/import-fresh/node_modules/resolve-from": {
"version": "4.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -9749,7 +11420,6 @@
},
"node_modules/is-arrayish": {
"version": "0.2.1",
- "dev": true,
"license": "MIT"
},
"node_modules/is-async-function": {
@@ -9842,7 +11512,6 @@
},
"node_modules/is-core-module": {
"version": "2.16.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"hasown": "^2.0.2"
@@ -10066,7 +11735,6 @@
},
"node_modules/is-plain-object": {
"version": "5.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -10077,6 +11745,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/is-promise": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+ "license": "MIT"
+ },
"node_modules/is-regex": {
"version": "1.2.1",
"dev": true,
@@ -10950,7 +12624,6 @@
},
"node_modules/js-tokens": {
"version": "4.0.0",
- "dev": true,
"license": "MIT"
},
"node_modules/js-yaml": {
@@ -11024,7 +12697,6 @@
},
"node_modules/jsesc": {
"version": "3.1.0",
- "dev": true,
"license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
@@ -11040,7 +12712,6 @@
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
- "dev": true,
"license": "MIT"
},
"node_modules/json-schema-traverse": {
@@ -11390,9 +13061,20 @@
"url": "https://github.com/sponsors/antonk52"
}
},
+ "node_modules/line-height": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz",
+ "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==",
+ "license": "MIT",
+ "dependencies": {
+ "computed-style": "~0.1.3"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/lines-and-columns": {
"version": "1.2.4",
- "dev": true,
"license": "MIT"
},
"node_modules/linkify-it": {
@@ -11512,7 +13194,6 @@
},
"node_modules/loose-envify": {
"version": "1.4.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
@@ -11523,7 +13204,6 @@
},
"node_modules/lower-case": {
"version": "2.0.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"tslib": "^2.0.3"
@@ -11756,6 +13436,12 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/memize": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
+ "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
+ "license": "MIT"
+ },
"node_modules/meow": {
"version": "9.0.0",
"dev": true,
@@ -12005,6 +13691,48 @@
"node": ">=0.10.0"
}
},
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/moment-timezone": {
+ "version": "0.5.48",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz",
+ "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==",
+ "license": "MIT",
+ "dependencies": {
+ "moment": "^2.29.4"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/motion-dom": {
+ "version": "11.18.1",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz",
+ "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-utils": "^11.18.1"
+ }
+ },
+ "node_modules/motion-utils": {
+ "version": "11.18.1",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz",
+ "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==",
+ "license": "MIT"
+ },
+ "node_modules/mousetrap": {
+ "version": "1.6.5",
+ "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz",
+ "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==",
+ "license": "Apache-2.0 WITH LLVM-exception"
+ },
"node_modules/mrmime": {
"version": "2.0.1",
"dev": true,
@@ -12015,7 +13743,6 @@
},
"node_modules/ms": {
"version": "2.1.3",
- "dev": true,
"license": "MIT"
},
"node_modules/multicast-dns": {
@@ -12032,7 +13759,6 @@
},
"node_modules/nanoid": {
"version": "3.3.11",
- "dev": true,
"funding": [
{
"type": "github",
@@ -12075,7 +13801,6 @@
},
"node_modules/no-case": {
"version": "3.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"lower-case": "^2.0.2",
@@ -12147,6 +13872,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/normalize-wheel": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+ "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==",
+ "license": "BSD-3-Clause"
+ },
"node_modules/npm-bundled": {
"version": "1.1.2",
"dev": true,
@@ -12264,7 +13995,6 @@
},
"node_modules/object-assign": {
"version": "4.1.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -12545,7 +14275,6 @@
},
"node_modules/p-try": {
"version": "2.2.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -12615,7 +14344,6 @@
},
"node_modules/param-case": {
"version": "3.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"dot-case": "^3.0.4",
@@ -12624,7 +14352,6 @@
},
"node_modules/parent-module": {
"version": "1.0.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
@@ -12639,7 +14366,6 @@
},
"node_modules/parse-json": {
"version": "5.2.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.0.0",
@@ -12673,6 +14399,22 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
+ "node_modules/parsel-js": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/parsel-js/-/parsel-js-1.2.2.tgz",
+ "integrity": "sha512-AVJMlwQ4bL2Y0VvYJGk+Fp7eX4SCH2uFoNApmn4yKWACUewZ+alwW3tyoe1r5Z3aLYQTuAuPZIyGghMfO/Tlxw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/LeaVerou"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/leaverou"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/parseurl": {
"version": "1.3.3",
"dev": true,
@@ -12683,7 +14425,6 @@
},
"node_modules/pascal-case": {
"version": "3.1.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
@@ -12692,7 +14433,6 @@
},
"node_modules/path-case": {
"version": "3.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"dot-case": "^3.0.4",
@@ -12730,7 +14470,6 @@
},
"node_modules/path-parse": {
"version": "1.0.7",
- "dev": true,
"license": "MIT"
},
"node_modules/path-to-regexp": {
@@ -12740,7 +14479,6 @@
},
"node_modules/path-type": {
"version": "4.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -12753,7 +14491,6 @@
},
"node_modules/picocolors": {
"version": "1.1.1",
- "dev": true,
"license": "ISC"
},
"node_modules/picomatch": {
@@ -12959,7 +14696,6 @@
},
"node_modules/postcss": {
"version": "8.5.3",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -13437,6 +15173,15 @@
"postcss": "^8.4.31"
}
},
+ "node_modules/postcss-prefix-selector": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz",
+ "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "postcss": ">4 <9"
+ }
+ },
"node_modules/postcss-reduce-initial": {
"version": "6.1.0",
"dev": true,
@@ -13562,9 +15307,20 @@
"postcss": "^8.4.31"
}
},
+ "node_modules/postcss-urlrebase": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-urlrebase/-/postcss-urlrebase-1.4.0.tgz",
+ "integrity": "sha512-rRaxMmWvXrn8Rk1PqsxmaJwldRHsr0WbbASKKCZYxXwotHkM/5X/6IrwaEe8pdzpbNGCEY86yhYMN0MhgOkADA==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3.0"
+ }
+ },
"node_modules/postcss-value-parser": {
"version": "4.2.0",
- "dev": true,
"license": "MIT"
},
"node_modules/prelude-ls": {
@@ -13652,7 +15408,6 @@
},
"node_modules/prop-types": {
"version": "15.8.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
@@ -13662,7 +15417,6 @@
},
"node_modules/prop-types/node_modules/react-is": {
"version": "16.13.1",
- "dev": true,
"license": "MIT"
},
"node_modules/proxy-addr": {
@@ -13899,40 +15653,186 @@
"node": ">=0.10.0"
}
},
- "node_modules/react": {
- "version": "18.3.1",
- "dev": true,
+ "node_modules/re-resizable": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.11.2.tgz",
+ "integrity": "sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-autosize-textarea": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz",
+ "integrity": "sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g==",
+ "license": "MIT",
+ "dependencies": {
+ "autosize": "^4.0.2",
+ "line-height": "^0.3.1",
+ "prop-types": "^15.5.6"
+ },
+ "peerDependencies": {
+ "react": "^0.14.0 || ^15.0.0 || ^16.0.0",
+ "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/react-colorful": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz",
+ "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/react-day-picker": {
+ "version": "9.8.1",
+ "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.8.1.tgz",
+ "integrity": "sha512-kMcLrp3PfN/asVJayVv82IjF3iLOOxuH5TNFWezX6lS/T8iVRFPTETpHl3TUSTH99IDMZLubdNPJr++rQctkEw==",
+ "license": "MIT",
+ "dependencies": {
+ "@date-fns/tz": "^1.2.0",
+ "date-fns": "^4.1.0",
+ "date-fns-jalali": "^4.1.0-0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://github.com/sponsors/gpbl"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/react-day-picker/node_modules/date-fns": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-easy-crop": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.5.0.tgz",
+ "integrity": "sha512-OZzU+yXMhe69vLkDex+5QxcfT94FdcgVCyW2dBUw35ZoC3Is42TUxUy04w8nH1mfMKaizVdC3rh/wUfNW1mK4w==",
+ "license": "MIT",
+ "dependencies": {
+ "normalize-wheel": "^1.0.1",
+ "tslib": "^2.0.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.4.0",
+ "react-dom": ">=16.4.0"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "license": "MIT"
+ },
+ "node_modules/react-refresh": {
+ "version": "0.14.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-remove-scroll": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz",
+ "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==",
+ "license": "MIT",
+ "dependencies": {
+ "react-remove-scroll-bar": "^2.3.7",
+ "react-style-singleton": "^2.2.3",
+ "tslib": "^2.1.0",
+ "use-callback-ref": "^1.3.3",
+ "use-sidecar": "^1.1.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-remove-scroll-bar": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
+ "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
"license": "MIT",
"dependencies": {
- "loose-envify": "^1.1.0"
+ "react-style-singleton": "^2.2.2",
+ "tslib": "^2.0.0"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
+ "node": ">=10"
},
"peerDependencies": {
- "react": "^18.3.1"
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
- "node_modules/react-is": {
- "version": "18.3.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/react-refresh": {
- "version": "0.14.2",
- "dev": true,
+ "node_modules/react-style-singleton": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
+ "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
"license": "MIT",
+ "dependencies": {
+ "get-nonce": "^1.0.0",
+ "tslib": "^2.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
"node_modules/read-pkg": {
@@ -14053,6 +15953,12 @@
"node": ">=8"
}
},
+ "node_modules/redux": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
+ "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
+ "license": "MIT"
+ },
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"dev": true,
@@ -14092,7 +15998,6 @@
},
"node_modules/regenerator-runtime": {
"version": "0.14.1",
- "dev": true,
"license": "MIT"
},
"node_modules/regenerator-transform": {
@@ -14165,9 +16070,26 @@
"node": ">=6"
}
},
+ "node_modules/rememo": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/rememo/-/rememo-4.0.2.tgz",
+ "integrity": "sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ==",
+ "license": "MIT"
+ },
+ "node_modules/remove-accents": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
+ "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==",
+ "license": "MIT"
+ },
+ "node_modules/requestidlecallback": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/requestidlecallback/-/requestidlecallback-0.3.0.tgz",
+ "integrity": "sha512-TWHFkT7S9p7IxLC5A1hYmAYQx2Eb9w1skrXmQ+dS1URyvR8tenMLl4lHbqEOUnpEYxNKpkVMXUgknVpBZWXXfQ==",
+ "license": "MIT"
+ },
"node_modules/require-directory": {
"version": "2.1.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -14181,6 +16103,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "license": "ISC"
+ },
"node_modules/requireindex": {
"version": "1.2.0",
"dev": true,
@@ -14196,7 +16124,6 @@
},
"node_modules/resolve": {
"version": "1.22.10",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-core-module": "^2.16.0",
@@ -14357,6 +16284,12 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rungen": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/rungen/-/rungen-0.3.2.tgz",
+ "integrity": "sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw==",
+ "license": "MIT"
+ },
"node_modules/rxjs": {
"version": "7.8.2",
"dev": true,
@@ -14385,7 +16318,6 @@
},
"node_modules/safe-buffer": {
"version": "5.2.1",
- "dev": true,
"funding": [
{
"type": "github",
@@ -14435,7 +16367,6 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
- "dev": true,
"license": "MIT"
},
"node_modules/sass": {
@@ -14509,7 +16440,6 @@
},
"node_modules/scheduler": {
"version": "0.23.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
@@ -14564,6 +16494,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/select": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
+ "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==",
+ "license": "MIT"
+ },
"node_modules/select-hose": {
"version": "2.0.0",
"dev": true,
@@ -14646,7 +16582,6 @@
},
"node_modules/sentence-case": {
"version": "3.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
@@ -14746,6 +16681,12 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+ "license": "ISC"
+ },
"node_modules/set-function-length": {
"version": "1.2.2",
"dev": true,
@@ -14857,6 +16798,225 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/showdown": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.1.tgz",
+ "integrity": "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "yargs": "^14.2"
+ },
+ "bin": {
+ "showdown": "bin/showdown.js"
+ }
+ },
+ "node_modules/showdown/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/showdown/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/showdown/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/showdown/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "license": "MIT"
+ },
+ "node_modules/showdown/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "license": "MIT"
+ },
+ "node_modules/showdown/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/showdown/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/showdown/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/showdown/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/showdown/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "license": "ISC"
+ },
+ "node_modules/showdown/node_modules/yargs": {
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
+ "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.1"
+ }
+ },
+ "node_modules/showdown/node_modules/yargs-parser": {
+ "version": "15.0.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz",
+ "integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==",
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
"node_modules/side-channel": {
"version": "1.1.0",
"dev": true,
@@ -14930,6 +17090,12 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/simple-html-tokenizer": {
+ "version": "0.5.11",
+ "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz",
+ "integrity": "sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==",
+ "license": "MIT"
+ },
"node_modules/sirv": {
"version": "2.0.4",
"dev": true,
@@ -14983,7 +17149,6 @@
},
"node_modules/snake-case": {
"version": "3.0.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"dot-case": "^3.0.4",
@@ -15044,7 +17209,6 @@
},
"node_modules/source-map-js": {
"version": "1.2.1",
- "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -15810,6 +17974,12 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/stylis": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
+ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
+ "license": "MIT"
+ },
"node_modules/supports-color": {
"version": "7.2.0",
"dev": true,
@@ -15838,7 +18008,6 @@
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -15960,6 +18129,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/tannin": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz",
+ "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tannin/plural-forms": "^1.1.0"
+ }
+ },
"node_modules/tapable": {
"version": "2.2.1",
"dev": true,
@@ -16151,6 +18329,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/tiny-emitter": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
+ "license": "MIT"
+ },
"node_modules/tldts-core": {
"version": "6.1.86",
"dev": true,
@@ -16299,7 +18483,6 @@
},
"node_modules/tslib": {
"version": "2.8.1",
- "dev": true,
"license": "0BSD"
},
"node_modules/tsutils": {
@@ -16589,7 +18772,6 @@
},
"node_modules/upper-case": {
"version": "2.0.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"tslib": "^2.0.3"
@@ -16597,7 +18779,6 @@
},
"node_modules/upper-case-first": {
"version": "2.0.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"tslib": "^2.0.3"
@@ -16663,6 +18844,67 @@
"requires-port": "^1.0.0"
}
},
+ "node_modules/use-callback-ref": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
+ "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-memo-one": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
+ "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/use-sidecar": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
+ "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-node-es": "^1.1.0",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
+ "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"dev": true,
@@ -17281,6 +19523,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
+ "license": "ISC"
+ },
"node_modules/which-typed-array": {
"version": "1.1.19",
"dev": true,
@@ -17403,7 +19651,6 @@
},
"node_modules/yaml": {
"version": "1.10.2",
- "dev": true,
"license": "ISC",
"engines": {
"node": ">= 6"
diff --git a/package.json b/package.json
index 0e6534b..2302320 100644
--- a/package.json
+++ b/package.json
@@ -17,12 +17,15 @@
},
"prettier": "@wordpress/prettier-config",
"devDependencies": {
+ "@wordpress/eslint-plugin": "^17.8.0",
"@wordpress/icons": "^10.22.0",
"@wordpress/prettier-config": "^4.22.0",
"@wordpress/scripts": "^30.15.0",
- "@wordpress/eslint-plugin": "^17.8.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3"
+ },
+ "dependencies": {
+ "@wordpress/block-editor": "^15.1.0"
}
}
diff --git a/src/counter/edit.js b/src/counter/edit.js
new file mode 100644
index 0000000..33883f1
--- /dev/null
+++ b/src/counter/edit.js
@@ -0,0 +1,86 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { RichTextToolbarButton } from '@wordpress/block-editor';
+import { useState } from '@wordpress/element';
+import { dispatch } from '@wordpress/data';
+
+/**
+ * Internal dependencies
+ */
+import CounterIcon from './icon';
+import InlineUI from './inline-ui';
+
+/**
+ * Edit component for the Counter format.
+ *
+ * @param {Object} props - The component properties.
+ * @param {Object} props.value - The current value of the rich text.
+ * @param {Function} props.onChange - Function to update the rich text value.
+ * @param {Function} props.onFocus - Function to handle focus events.
+ * @param {boolean} props.isActive - Indicates if the format is currently active.
+ * @param {Object} props.contentRef - Reference to the editable content element.
+ * @param {Object} props.activeAttributes - The currently active attributes.
+ * @returns {JSX.Element} The rendered component.
+ */
+export function Edit({
+ value,
+ onChange,
+ onFocus,
+ isActive,
+ contentRef,
+ activeAttributes,
+}) {
+ const [isSettingOpen, setIsSettingOpen] = useState(false);
+
+ const isNumeric = (str) => /^[+-]?(\d+(\.\d+)?|\.\d+)$/.test(String(str).trim());
+
+ const onToggle = () => {
+ const { start, end, text } = value;
+ const selected = text.slice(start, end);
+
+ if (!selected) {
+ dispatch('core/notices').createNotice(
+ 'warning',
+ __('Select a number to animate.', 'blablablocks-formats'),
+ { type: 'snackbar' }
+ );
+ return;
+ }
+
+ if (!isNumeric(selected)) {
+ dispatch('core/notices').createNotice(
+ 'warning',
+ __('Selection must be a number (e.g. 1500 or 12.5).', 'blablablocks-formats'),
+ { type: 'snackbar' }
+ );
+ return;
+ }
+
+ setIsSettingOpen(true);
+ };
+
+ return (
+ <>
+ }
+ title={__('Counter', 'blablablocks-formats')}
+ onClick={onToggle}
+ isActive={isActive}
+ />
+
+ {isSettingOpen && (
+ setIsSettingOpen(false)}
+ contentRef={contentRef.current}
+ isActive={isActive}
+ value={value}
+ onChange={onChange}
+ onFocus={onFocus}
+ />
+ )}
+ >
+ );
+}
diff --git a/src/counter/editor.scss b/src/counter/editor.scss
new file mode 100644
index 0000000..da41e3a
--- /dev/null
+++ b/src/counter/editor.scss
@@ -0,0 +1,16 @@
+.block-editor-format-toolbar__blablablocks-number-counter-popover .components-popover__content {
+ padding: 16px;
+}
+
+.block-editor-format-toolbar__blablablocks-number-counter-popover .components-popover__content .bbb-animation-toggle {
+ width: 330px;
+}
+
+.block-editor-format-toolbar__blablablocks-number-counter-popover {
+
+ .reset-button {
+ margin-top: 1rem;
+ display: block;
+ margin-left: auto;
+ }
+}
\ No newline at end of file
diff --git a/src/counter/icon.js b/src/counter/icon.js
new file mode 100644
index 0000000..1d65a4e
--- /dev/null
+++ b/src/counter/icon.js
@@ -0,0 +1,14 @@
+/**
+ * Counter component renders an SVG icon that represents a counter.
+ *
+ * @return {JSX.Element} SVG component for a counter number icon.
+ */
+function CounterIcon() {
+ return (
+
+ )
+}
+export default CounterIcon;
diff --git a/src/counter/index.js b/src/counter/index.js
new file mode 100644
index 0000000..73b5516
--- /dev/null
+++ b/src/counter/index.js
@@ -0,0 +1,28 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { registerFormatType } from '@wordpress/rich-text';
+
+/**
+ * Internal dependencies
+ */
+import './editor.scss';
+import './style.scss';
+import { Edit } from './edit';
+
+/**
+ * Registers the Gradient Text format type.
+ */
+registerFormatType('blablablocks/number-counter', {
+ title: __('Counter', 'blablablocks-formats'),
+ tagName: 'number-counter',
+ className: 'has-number-counter',
+ edit: Edit,
+ attributes: {
+ 'data-anim': 'data-anim',
+ 'data-duration': 'data-duration',
+ 'data-count-to': 'data-count-to',
+ 'data-on-scroll': 'data-on-scroll',
+ }
+});
diff --git a/src/counter/inline-ui.js b/src/counter/inline-ui.js
new file mode 100644
index 0000000..34ba344
--- /dev/null
+++ b/src/counter/inline-ui.js
@@ -0,0 +1,131 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { removeFormat, useAnchor } from '@wordpress/rich-text';
+import {
+ Button,
+ Popover,
+ RangeControl,
+ ToggleControl,
+ __experimentalVStack as VStack,
+ __experimentalToggleGroupControl as ToggleGroupControl,
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption
+} from '@wordpress/components';
+
+/**
+ * Internal dependencies
+ */
+import { createFormatHelpers } from '../utils';
+
+/**
+ * InlineUI component for handling number counter formatting options.
+ *
+ * @param {Object} props - The component properties.
+ * @param {Object} props.activeAttributes - The currently active attributes.
+ * @param {Object} props.value - The current value of the rich text.
+ * @param {Function} props.onChange - Function to update the rich text value.
+ * @param {Function} props.onClose - Function to close the popover.
+ * @param {Object} props.contentRef - Reference to the editable content element.
+ * @param {boolean} props.isActive - Indicates if the format is currently active.
+ * @return {JSX.Element} - The rendered InlineUI component.
+ */
+function InlineUI({
+ activeAttributes,
+ value,
+ onChange,
+ onClose,
+ contentRef,
+ isActive,
+}) {
+ const name = 'blablablocks/number-counter'; // Format type name
+
+ const { update } = createFormatHelpers({
+ value,
+ onChange,
+ formatType: name,
+ activeAttributes,
+ });
+
+ const anchor = useAnchor({
+ editableContentElement: contentRef,
+ settings: { isActive },
+ });
+
+ const currentAnim = activeAttributes?.['data-anim'] || 'linear';
+ const currentDuration = parseInt(activeAttributes?.['data-duration'] || '1200', 10);
+ const currentOnScroll =
+ (activeAttributes?.['data-on-scroll'] ?? 'true').toString() !== 'false';
+
+ return (
+
+
+ update({ 'data-anim': anim })}
+ isBlock
+ __next40pxDefaultSize
+ >
+
+
+
+
+
+ update({ 'data-duration': String(duration) })}
+ min={300}
+ max={20000}
+ step={100}
+ />
+ update({ 'data-on-scroll': checked ? 'true' : 'false' })}
+ help={
+ currentOnScroll
+ ? __('Animate when this number enters the viewport.', 'blablablocks-formats')
+ : __('Animate immediately on load.', 'blablablocks-formats')
+ }
+ />
+
+
+
+ );
+}
+
+export default InlineUI;
\ No newline at end of file
diff --git a/src/counter/style.scss b/src/counter/style.scss
new file mode 100644
index 0000000..b090417
--- /dev/null
+++ b/src/counter/style.scss
@@ -0,0 +1,84 @@
+$odometer-duration: var(--odo-duration, 1.6s) !default;
+
+@mixin inline-block {
+ display: inline-block;
+ *vertical-align: auto;
+ *zoom: 1;
+ *display: inline;
+}
+
+.odometer {
+
+ &.odometer-auto-theme,
+ &.odometer-theme-default {
+ @include inline-block;
+ position: relative;
+
+ .odometer-digit {
+ @include inline-block;
+ position: relative;
+
+ .odometer-digit-spacer {
+ @include inline-block;
+ visibility: hidden;
+ }
+
+ .odometer-digit-inner {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: block;
+ text-align: left;
+ overflow: hidden;
+ }
+
+ .odometer-ribbon {
+ display: block;
+
+ &-inner {
+ display: block;
+ backface-visibility: hidden;
+ }
+ }
+
+ .odometer-value {
+ display: block;
+ transform: translateZ(0);
+
+ &.odometer-last-value {
+ position: absolute;
+ }
+ }
+ }
+
+ &.odometer-animating-up {
+ .odometer-ribbon-inner {
+ transition: transform $odometer-duration;
+ }
+
+ &.odometer-animating .odometer-ribbon-inner {
+ transform: translateY(-100%);
+ }
+ }
+
+ &.odometer-animating-down {
+ .odometer-ribbon-inner {
+ transform: translateY(-100%);
+ }
+
+ &.odometer-animating .odometer-ribbon-inner {
+ transition: transform $odometer-duration;
+ transform: translateY(0);
+ }
+ }
+ }
+}
+
+/* Reduced motion support */
+@media (prefers-reduced-motion: reduce) {
+ .odometer-ribbon-inner {
+ transition-duration: 0.1s !important;
+ }
+}
\ No newline at end of file
diff --git a/src/gradient-text/edit.js b/src/gradient-text/edit.js
new file mode 100644
index 0000000..0389f5b
--- /dev/null
+++ b/src/gradient-text/edit.js
@@ -0,0 +1,57 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { RichTextToolbarButton } from '@wordpress/block-editor';
+import { useState } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import InlineUI from './inline-ui';
+import GradientTextIcon from './icon';
+
+/**
+ * Edit component for the Infotip format.
+ *
+ * @param {Object} props - The component properties.
+ * @param {Object} props.value - The current value of the rich text.
+ * @param {Function} props.onChange - Function to update the rich text value.
+ * @param {Function} props.onFocus - Function to handle focus events.
+ * @param {boolean} props.isActive - Indicates if the format is currently active.
+ * @param {Object} props.contentRef - Reference to the editable content element.
+ * @param {Object} props.activeAttributes - The currently active attributes.
+ * @return {JSX.Element} - The rendered gradient text button.
+ */
+export function Edit({
+ value,
+ onChange,
+ onFocus,
+ isActive,
+ contentRef,
+ activeAttributes,
+}) {
+ const [isSettingOpen, setIsSettingOpen] = useState(false);
+
+ return (
+ <>
+ }
+ title={__('Gradient Text', 'blablablocks-formats')}
+ onClick={() => setIsSettingOpen(true)}
+ isActive={isActive}
+ />
+ {isSettingOpen && (
+ setIsSettingOpen(false)}
+ contentRef={contentRef.current}
+ isActive={isActive}
+ value={value}
+ onChange={onChange}
+ onFocus={onFocus}
+ />
+ )}
+ >
+ );
+}
diff --git a/src/gradient-text/editor.scss b/src/gradient-text/editor.scss
new file mode 100644
index 0000000..f59c126
--- /dev/null
+++ b/src/gradient-text/editor.scss
@@ -0,0 +1,17 @@
+.block-editor-format-toolbar__blablablocks-gradient-text-popover .components-popover__content {
+ padding: 16px;
+ width: 260px;
+}
+
+.block-editor-format-toolbar__blablablocks-gradient-text-popover .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button {
+ padding: 0px;
+}
+
+.block-editor-format-toolbar__blablablocks-gradient-text-popover {
+
+ .reset-button {
+ margin-top: 1rem;
+ display: block;
+ margin-left: auto;
+ }
+}
\ No newline at end of file
diff --git a/src/gradient-text/icon.js b/src/gradient-text/icon.js
new file mode 100644
index 0000000..a4d18e2
--- /dev/null
+++ b/src/gradient-text/icon.js
@@ -0,0 +1,24 @@
+/**
+ * GradientText component renders an SVG icon that represents a gradient text.
+ *
+ * @return {JSX.Element} SVG component for a gradient text icon.
+ */
+function GradientTextIcon() {
+ return (
+
+ );
+}
+
+export default GradientTextIcon;
diff --git a/src/gradient-text/index.js b/src/gradient-text/index.js
new file mode 100644
index 0000000..f33ec66
--- /dev/null
+++ b/src/gradient-text/index.js
@@ -0,0 +1,25 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { registerFormatType } from '@wordpress/rich-text';
+
+/**
+ * Internal dependencies
+ */
+import './editor.scss';
+import './style.scss';
+import { Edit } from './edit';
+
+/**
+ * Registers the Gradient Text format type.
+ */
+registerFormatType('blablablocks/gradient-text', {
+ title: __('Gradient Text', 'blablablocks-formats'),
+ tagName: 'gradient-text',
+ className: 'has-gradient-text',
+ edit: Edit,
+ attributes: {
+ style: 'style',
+ },
+});
diff --git a/src/gradient-text/inline-ui.js b/src/gradient-text/inline-ui.js
new file mode 100644
index 0000000..bb24410
--- /dev/null
+++ b/src/gradient-text/inline-ui.js
@@ -0,0 +1,95 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { removeFormat, useAnchor } from '@wordpress/rich-text';
+import {
+ __experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients
+} from '@wordpress/block-editor';
+import { Button, Popover, GradientPicker } from '@wordpress/components';
+
+/**
+ * Internal dependencies
+ */
+import { createFormatHelpers } from '../utils';
+
+/**
+ * InlineUI component for handling Gradient text formatting options.
+ *
+ * @param {Object} props - The component properties.
+ * @param {Object} props.activeAttributes - The currently active attributes.
+ * @param {Object} props.value - The current value of the rich text.
+ * @param {Function} props.onChange - Function to update the rich text value.
+ * @param {Function} props.onClose - Function to close the popover.
+ * @param {Object} props.contentRef - Reference to the editable content element.
+ * @param {boolean} props.isActive - Indicates if the format is currently active.
+ * @return {JSX.Element} - The rendered InlineUI component.
+ */
+function InlineUI({
+ activeAttributes,
+ value,
+ onChange,
+ onClose,
+ contentRef,
+ isActive,
+}) {
+ const name = 'blablablocks/gradient-text'; // Format type name
+ const PREFIX = 'background:';
+
+ // safely extract the raw gradient for the picker
+ const stored = activeAttributes?.style ?? '';
+ const pickerValue = stored.startsWith(PREFIX) ? stored.slice(PREFIX.length) : stored;
+
+ const { update } = createFormatHelpers({
+ value,
+ onChange,
+ formatType: name,
+ activeAttributes,
+ });
+
+ const anchor = useAnchor({
+ editableContentElement: contentRef,
+ settings: { isActive },
+ });
+
+ const colorGradientSettings = useMultipleOriginColorsAndGradients();
+
+ return (
+
+ {
+ if (!gradient) {
+ // remove the style
+ return update({ style: '' });
+ }
+ update({ style: `${PREFIX}${gradient}` });
+ }}
+ clearable={false}
+ />
+
+
+ );
+}
+
+export default InlineUI;
diff --git a/src/gradient-text/style.scss b/src/gradient-text/style.scss
new file mode 100644
index 0000000..0b5b882
--- /dev/null
+++ b/src/gradient-text/style.scss
@@ -0,0 +1,4 @@
+gradient-text {
+ -webkit-background-clip: text !important;
+ -webkit-text-fill-color: transparent;
+}
\ No newline at end of file
diff --git a/src/index.js b/src/index.js
index 2db2bf0..9506d29 100644
--- a/src/index.js
+++ b/src/index.js
@@ -3,3 +3,5 @@
*/
import './marker';
import './infotip';
+import './gradient-text';
+import './counter';