A calm place to write long-form, and publish it to the open social web. skypress.blog/
0

Configure Feed

Select the types of activity you want to include in your feed.

Replace isolated-block-editor with @wordpress/block-editor directly

Compose SkyEditor from the Gutenberg block-editor packages directly
instead of wrapping @automattic/isolated-block-editor, and upgrade the
whole @wordpress/* tree from IBE's frozen line to the current release.

IBE is effectively maintenance-only (Dependabot-only commits, README
self-describes as "experimental", pins Gutenberg 16.9) and it forced
the entire @wordpress/* tree to be version-pinned via a ~60-package
overrides map — what Decision 0003 called the project's biggest
maintenance liability. That override map only existed to reconcile
IBE's old pinned line against transitive caret ranges floating to a
newer one. Depending on @wordpress/block-editor directly at one
current line removes that collision: the tree resolves to a single
coherent copy of every store singleton with no overrides, so upgrading
becomes a normal version bump instead of regenerating the map.

SkyEditor now wires BlockEditorProvider over a header toolbar (Inserter
+ a fixed BlockToolbar + undo/redo + a BlockInspector cog popover) and
the canvas (BlockTools / WritingFlow / ObserveTyping / BlockList), with
app-level undo via useStateWithHistory. The prop contract, curated
allowlist, @-mention format/autocompleter, and media-upload filter are
unchanged. The reader/render split (Decision 0003, Finding 1) is
untouched — reading pages still use the dependency-free render.ts and
the render-fidelity test-lock still passes against the new packages.

Two sharp edges, both recorded in Decision 0021 and AGENTS.md:
- core-data/notices/date install as nested copies with no hoisted
top-level one, so each registers its store ("Store 'core' is already
registered"). Fixed with npm dedupe + an expanded resolve.dedupe in
both astro.config and vitest.config (deduping before the hoist breaks
the build).
- In vitest, @wordpress/* must be Vite-inlined (Node rejects
@wordpress/blocks' attribute-less JSON import) while moment stays
external, or moment-timezone's augmentation of moment breaks.

The floating block toolbar needs iframe/content-ref plumbing a bespoke
inline canvas doesn't provide, so a fixed BlockToolbar is placed in the
header per the framework's guidance for custom editors.

Verified: npm run check (0 errors), npm test (592 pass incl. the render
fidelity lock), npm run build, and an in-browser smoke test of /write
on the production preview (boot, insert, type, draft-save, undo/redo,
publish-enable, allowlist, clean console).

+2141 -2694
+22 -8
AGENTS.md
··· 19 19 20 20 ## Hard constraints (learned the hard way — see decisions) 21 21 22 - 1. **React 18 only.** The bundled `@wordpress/*` packages require `react@^18.3`. Do not 22 + 1. **React 18 only.** `@wordpress/block-editor@15.x` peer-depends on `react@^18`. Do not 23 23 introduce React 19. (Decision 0001) 24 - 2. **The entire `@wordpress/*` tree is version-pinned via `overrides` in 25 - `package.json`** to the exact line `@automattic/isolated-block-editor@2.30.0` bundles. 26 - Caret ranges otherwise pull a newer line and produce duplicate `@wordpress/data` / 27 - `core-data` registries → the editor crashes (`reading 'get' of undefined`). If you 28 - bump `isolated-block-editor`, **regenerate the whole override map** to its new line. 29 - (Decision 0003) 24 + 2. **SkyPress depends on `@wordpress/block-editor` and friends directly** at the current 25 + release line; there is **no `@wordpress/*` `overrides` map** (only `react`/`react-dom` 26 + stay pinned). Depending directly, the tree resolves to a single coherent copy of every 27 + store singleton — `@wordpress/data`, `core-data`, `element`, `blocks`, `block-editor` — 28 + without any overrides. The old duplicate-registry crash (`reading 'get' of undefined`) 29 + came specifically from IBE pinning an old line while transitive caret ranges floated a 30 + newer one; that root cause is gone. Upgrading is now a normal `@wordpress` version bump, 31 + **not** regenerating an override map. One caveat: `core-data` / `notices` / `date` install 32 + as multiple nested copies (no hoisted top-level one) and each registers its store → 33 + `Store "core" is already registered` + a split registry. The fix is the bundler dedupe 34 + backstop — run `npm dedupe`, then list them in `resolve.dedupe` in **both** 35 + `astro.config.mjs` and `vitest.config.ts` (deduping before the hoist *breaks* the build). 36 + (Decision 0021 — supersedes the pinning half of Decision 0003.) 30 37 3. **Reading pages must never import `@wordpress/*`.** The editor stack is browser-only 31 38 (touches `window`/`moment`/registries at import) and cannot render server-side. Use 32 39 the dependency-free `src/lib/blocks/render.ts`. `@wordpress` belongs only in the ··· 49 56 7. **OAuth is a browser public client** (`@atproto/oauth-client-browser`, Decision 0004). 50 57 In **dev you must serve on `http://127.0.0.1:<port>`, not `localhost`** (atproto 51 58 loopback requirement), and the loopback `client_id` must be path-less — see 52 - `src/lib/auth/oauth.ts`. Auth + editor live in the `Studio` client-only island. 59 + `src/lib/auth/oauth.ts`. Auth + editor live in the `Studio` client-only 60 + (`client:only="react"`) island — the editor is composed directly from 61 + `@wordpress/block-editor`, not by wrapping `IsolatedBlockEditor`. 53 62 8. **Colocated tests under `src/pages/` MUST be underscore-prefixed** (e.g. 54 63 `_index.meta.test.ts`). Astro's file router imports every `.ts` in `src/pages/` during 55 64 static-path collection; a `*.test.ts` there runs its top-level `import … from 'vitest'`, 56 65 which throws outside the vitest runner → the build's prerender server 500s 57 66 (`Vitest failed to access its internal state`). A leading `_` makes Astro ignore the 58 67 file as a route while vitest's `src/**/*.test.ts` glob still finds it. 68 + 9. **`@wordpress/*` is inlined via `ssr.noExternal` in the vitest config, but 69 + `moment`/`moment-timezone` stay external** (native CJS). Inlining moment breaks 70 + moment-timezone's augmentation of it (`moment.tz` ends up undefined). Separately, 71 + `@wordpress/block-editor` ships no types, so its surface is declared in 72 + `src/types/wordpress.d.ts`. 59 73 60 74 ## Product guardrails (from the brief) 61 75
+9 -8
README.md
··· 99 99 100 100 ## How it works 101 101 102 - - **Editor** (`/editor`): Automattic's [`isolated-block-editor`](https://github.com/Automattic/isolated-block-editor) 103 - (standalone Gutenberg) as a single `client:only` React island. The canonical content is 104 - the **Gutenberg block tree**. 102 + - **Editor** (`/editor`): Gutenberg composed directly from 103 + [`@wordpress/block-editor`](https://www.npmjs.com/package/@wordpress/block-editor) and 104 + friends, as a single `client:only` React island. The canonical content is the 105 + **Gutenberg block tree**. 105 106 - **Publish:** writes a `site.standard.publication` (once), a `site.standard.document` 106 107 (block tree + plain-text `textContent`), and a companion `app.bsky.feed.post` — the POSSE 107 108 pattern. Images upload to the PDS as blobs (`uploadBlob`); the document stores the typed ··· 150 151 151 152 ## Notes if you fork 152 153 153 - - **React 18 only.** The bundled `@wordpress/*` packages require `react@^18.3`; React 19 154 + - **React 18 only.** `@wordpress/block-editor@15.x` peer-depends on `react@^18`; React 19 154 155 will break the editor. 155 - - **The whole `@wordpress/*` tree is version-pinned** via `overrides` in `package.json` to 156 - the exact line `isolated-block-editor` bundles. Caret ranges otherwise pull a newer line 157 - and crash the editor with duplicate data registries. Bumping `isolated-block-editor` 158 - means regenerating that override map. 156 + - **`@wordpress/*` is depended on directly** at the current release line — there's no 157 + `@wordpress/*` `overrides` map (only `react`/`react-dom` stay pinned). The tree resolves 158 + to a single coherent copy of every data registry on its own, so upgrading is a normal 159 + `@wordpress` version bump rather than regenerating an override map. 159 160 - **Reading pages never import `@wordpress`** — the editor stack is browser-only and can't 160 161 render server-side. The reader uses the dependency-free `src/lib/blocks/render.ts`, whose 161 162 output fidelity is locked to the real serializer by tests.
+17 -26
astro.config.mjs
··· 1 1 // @ts-check 2 2 import { defineConfig } from 'astro/config'; 3 - import { fileURLToPath } from 'node:url'; 4 3 import react from '@astrojs/react'; 5 4 import cloudflare from '@astrojs/cloudflare'; 6 - 7 - const nodeModules = fileURLToPath( new URL( './node_modules', import.meta.url ) ); 8 5 9 6 // Static by default; the article/homepage routes render on demand (read-through 10 7 // renderer, SP4). Deployed to Cloudflare Pages (SP7). `nodejs_compat` (set in ··· 19 16 session: { driver: 'memory' }, 20 17 integrations: [ react() ], 21 18 vite: { 22 - // React 18 is required by the bundled @wordpress/* packages (Decision 0001). 23 - // Force a single React instance shared between the app and the editor. 24 19 resolve: { 25 - // React 18 is required by the bundled @wordpress/* packages (Decision 0001). 26 - // Force a single shared instance of React and the WP store registry. 27 - dedupe: [ 'react', 'react-dom', '@wordpress/element', '@wordpress/data' ], 20 + // React 18 is required by the @wordpress/* packages (Decision 0001). 21 + // Force a single shared instance of React and of every @wordpress store 22 + // singleton. core-data/notices/date are installed as multiple nested copies 23 + // (no hoisted top-level one); without deduping, each copy registers its store 24 + // at load → "Store 'core' is already registered" and a split registry. 25 + // Deduping collapses them to one copy in the bundle. (Decision 0021.) 26 + dedupe: [ 27 + 'react', 28 + 'react-dom', 29 + '@wordpress/element', 30 + '@wordpress/data', 31 + '@wordpress/core-data', 32 + '@wordpress/notices', 33 + '@wordpress/date', 34 + '@wordpress/blocks', 35 + '@wordpress/block-editor', 36 + ], 28 37 }, 29 38 // @wordpress/* packages expect these globals to exist at bundle time. 30 39 define: { ··· 37 46 // moment (CJS/ESM interop) and crashes at load. Bundling resolves it — the 38 47 // same reason it works under Vitest. (Decision 0003.) 39 48 noExternal: [ /^@wordpress\//, /^moment/, 'clsx', 'tslib' ], 40 - }, 41 - css: { 42 - preprocessorOptions: { 43 - scss: { 44 - // isolated-block-editor's style.scss does `@import '@wordpress/base-styles/...'`. 45 - // Bare specifiers only resolve when node_modules is on the Sass load path. 46 - loadPaths: [ nodeModules ], 47 - quietDeps: true, 48 - silenceDeprecations: [ 49 - 'import', 50 - 'global-builtin', 51 - 'color-functions', 52 - 'legacy-js-api', 53 - 'slash-div', 54 - 'mixed-decls', 55 - ], 56 - }, 57 - }, 58 49 }, 59 50 }, 60 51 } );
+185
docs/decisions/0021-block-editor-direct-dependency.md
··· 1 + # 0021 — Use the Gutenberg block editor directly; drop isolated-block-editor and the override map 2 + 3 + - **Status:** Accepted (validated empirically + full test/build/browser smoke pass) 4 + - **Date:** 2026-06-18 5 + - **Scope:** The editor island's dependency stack + `@wordpress/*` version management. 6 + **Supersedes Finding 2 of Decision 0003** ("The whole @wordpress tree must be 7 + version-pinned"). Finding 1 of 0003 (the reader/render split) is unchanged and still 8 + load-bearing — see Consequences. Decision 0003 is **not** deleted; read it for the 9 + history of the crash this decision finally resolves. 10 + 11 + ## Context 12 + 13 + SkyPress's editor was built on `@automattic/isolated-block-editor` (IBE) — a single 14 + package that wraps the Gutenberg block-editor stack behind an `<IsolatedBlockEditor>` 15 + component. That choice carried two costs: 16 + 17 + 1. **IBE is effectively maintenance-only.** Its recent commits are Dependabot-only 18 + bumps, its README still describes itself as "experimental", and it advertises 19 + `Requires: Gutenberg 16.9` — an old line with known WordPress 6.6+ incompatibilities. 20 + Building on it pinned SkyPress's editor to a stack the upstream is no longer actively 21 + evolving. 22 + 23 + 2. **IBE forced the entire `@wordpress/*` tree to be version-pinned.** IBE bundles an 24 + old `@wordpress` line (the `*.24.0` line), but several transitive packages declare 25 + caret ranges that npm floats to the *newest* matching line (`*.48.x`). That mismatch 26 + produced duplicate `@wordpress/data` / `core-data` registries → a split-brain store → 27 + `Cannot read properties of undefined (reading 'get')` at editor boot. Decision 0003 28 + fought this by pinning the **whole** `@wordpress/*` tree (~60 packages) to IBE's exact 29 + bundled versions via an `overrides` map — and 0003 itself called that map 30 + **"the project's biggest maintenance liability."** Every IBE bump would have required 31 + regenerating the entire map by hand. 32 + 33 + The maintainer feedback and the project owner both wanted to leave the outdated, pinned 34 + line behind and track the **current** release of each `@wordpress` package. Going direct 35 + decouples SkyPress's upgrade cadence from IBE's. 36 + 37 + ## Options 38 + 39 + - **A. Stay on IBE; keep the override map; periodically regenerate it.** Lowest immediate 40 + effort, but locks the editor to a maintenance-only wrapper on an old Gutenberg line, and 41 + keeps the ~60-package override map as a standing liability. Rejected. 42 + - **B. Stay on IBE but float `@wordpress/*` to current.** Not possible without forking — 43 + IBE's own direct deps pin the old line; floating the rest just re-creates the 44 + split-brain crash 0003 documented. Rejected. 45 + - **C. Drop IBE and compose the Gutenberg block-editor packages directly at the current 46 + release line, deleting the override map.** ✅ **Chosen.** More code in 47 + `SkyEditor.tsx` (we own the provider/toolbar/canvas composition IBE used to hide), but 48 + it removes the wrapper, removes the override map, and lets every `@wordpress` package 49 + track its current line. 50 + 51 + ## Decision 52 + 53 + Replace `@automattic/isolated-block-editor` with direct dependencies on the Gutenberg 54 + block-editor packages at the **current** release line, and **delete the override map.** 55 + 56 + ### Dependency swap (`package.json`) 57 + 58 + - **Removed:** `@automattic/isolated-block-editor`. 59 + - **Added (current line):** `@wordpress/block-editor@15.21.1`, 60 + `@wordpress/components@35.0.1`, `@wordpress/compose@8.1.1`, 61 + `@wordpress/format-library@5.48.1`, `@wordpress/hooks@4.48.1`, 62 + `@wordpress/keyboard-shortcuts@5.48.1`, `@wordpress/rich-text@7.48.1`, 63 + `@wordpress/data@10.48.1`, `@wordpress/icons@14.0.1`. 64 + - **Bumped:** `@wordpress/blocks@15.21.1`, `@wordpress/block-library@9.48.1`, 65 + `@wordpress/element@8.0.1`. 66 + - **Deleted the ~60-package `overrides` map.** The only remaining pins are 67 + `react`/`react-dom` at `18.3.1` (Decision 0001 still holds — block-editor's React peer 68 + is `^18`). 69 + - **Added** `@types/node@25.9.2` to `devDependencies` — it was previously only a 70 + transitive dep of the removed packages, and tests import `node:fs` / `node:path` / 71 + `node:url`. 72 + 73 + ### Editor composition (`src/components/SkyEditor.tsx`) 74 + 75 + `SkyEditor` is rewritten to compose Gutenberg primitives directly instead of rendering 76 + `<IsolatedBlockEditor settings={{ iso: { … } }} … />`: 77 + 78 + ``` 79 + ShortcutProvider 80 + └─ SlotFillProvider 81 + └─ BlockEditorProvider (value / onInput / onChange / settings) 82 + ├─ toolbar: Inserter + undo/redo Buttons + a BlockInspector-in-Popover cog 83 + └─ canvas: BlockTools 84 + └─ BlockEditorKeyboardShortcuts.Register 85 + └─ WritingFlow > ObserveTyping > BlockList 86 + └─ Popover.Slot 87 + ``` 88 + 89 + The **same prop contract is preserved** (`onChange`, `mediaUpload`, `initialBlocks`). 90 + Core blocks are registered and pruned to the curated allowlist via the existing 91 + `registerSkyPressBlocks()`; default inline formats come from a side-effect 92 + `import '@wordpress/format-library'`; the `@`-mention format/autocompleter 93 + (Decision 0019) and the `registerMediaUpload` `editor.MediaUpload`-disabling filter are 94 + unchanged. 95 + 96 + **Undo/redo is app-level**, via `useStateWithHistory` from `@wordpress/compose` 97 + (`onInput` = staged history, `onChange` = committed step), bound to `mod+z` / 98 + `mod+shift+z` through a capture-phase keydown handler. (IBE used to own this.) 99 + 100 + The editor island now imports the editor/component/block CSS itself — components, 101 + block-editor (style + content), block-library (common / style / editor / theme). 102 + `@wordpress/format-library` ships **no `build-style` export subpath**, so its CSS is 103 + intentionally not imported; its inline-format UI is styled by the components + 104 + block-editor stylesheets. 105 + 106 + ### Empirical finding — one current line de-dupes the registries 107 + 108 + Resolving the whole tree to the **current** line, with **no** override map, produces a 109 + **single** copy of every `@wordpress` store singleton: `data@10.48.1`, 110 + `core-data@7.48.1`, `element@8.0.1`, `blocks` / `block-editor@15.21.1`, 111 + `compose@8.1.1`, `sync@1.48.1`. The split-brain crash Decision 0003 fought was caused 112 + *specifically* by IBE pinning an **old** line while transitive caret ranges floated to a 113 + **newer** one. Remove the old pin and let the whole tree float to **one current line** and 114 + the registries are coherent and single. **The override map is therefore no longer 115 + needed** — its entire purpose was to reconcile the old-vs-new collision that no longer 116 + exists. 117 + 118 + One sharp edge remains, though, and it is **not** solved by removing overrides: 119 + `@wordpress/core-data` (registers the `core` store) and `@wordpress/notices` (registers 120 + `core/notices`) install as **multiple nested copies with no hoisted top-level one** — 121 + npm does not flatten them on its own. Each copy registers its store at module load, so 122 + the browser logs `Store "core" is already registered` / `Store "core/notices" is already 123 + registered` and you get a split registry. The fix is the bundler-level **dedupe backstop** 124 + (the same mechanism Decision 0003 already used for `data` / `element`): run `npm dedupe` 125 + to hoist a single top-level copy, and list `@wordpress/core-data`, `@wordpress/notices`, 126 + and `@wordpress/date` (alongside `data`, `element`, `blocks`, `block-editor`) in 127 + `resolve.dedupe` in **both** `astro.config.mjs` and `vitest.config.ts`. Without the 128 + hoisted copy, `resolve.dedupe` actually *breaks the build* (it points imports at a 129 + top-level `@wordpress/notices` that does not exist) — so `npm dedupe` first, then dedupe 130 + in the bundler. After both, the editor boots with a **clean console** (no store warnings) 131 + and the tests run without the `already registered` noise. 132 + 133 + ### Inline (non-iframe) composition 134 + 135 + The editor is composed inline (i.e. **not** inside `BlockCanvas`'s iframe) to fit 136 + SkyPress's seamless title → lede → body writing surface and to reuse the existing 137 + token-driven chrome styles (`src/styles/editor-chrome.css`, re-pointed from IBE's 138 + `.iso-editor` / `.interface-interface-skeleton__*` / `.edit-post-*` DOM to 139 + `.skypress-editor__toolbar` / `__body` / `__inspector` + the standard `.block-editor-*` 140 + classes). 141 + 142 + ### Test/build config 143 + 144 + - `vitest.config.ts`: add `ssr.noExternal: [/@wordpress\//]` so **Vite** (not Node's 145 + native ESM loader) transforms the `@wordpress` tree — Node rejects 146 + `@wordpress/blocks`' attribute-less `import … from './i18n-block.json'`, and a single 147 + inlined graph keeps the `@wordpress/data` + blocks store singletons consistent for the 148 + fidelity tests. **Crucially, `moment` / `moment-timezone` stay EXTERNAL** (native CJS): 149 + `moment-timezone` augments `moment` via `require('moment')`, which only lands on 150 + `@wordpress/date`'s default import when both resolve to Node's single CJS instance; 151 + inlining them splits the instance → `moment.tz` is undefined. A matching `define` for 152 + the `IS_GUTENBERG_PLUGIN` / `IS_WORDPRESS_CORE` globals is also added. 153 + - **Note the intentional config divergence:** the Cloudflare build in 154 + `astro.config.mjs` still *inlines* `moment` (there is no native `require` at the 155 + edge), so the two configs differ on purpose. 156 + - `src/types/wordpress.d.ts`: add an ambient `declare module '@wordpress/block-editor'` 157 + (the package ships no type declarations — no `types` field, missing build-types) 158 + covering the components SkyPress imports. 159 + 160 + ## Consequences 161 + 162 + - **Upgrading `@wordpress` is now a normal version bump.** Bump the packages together to 163 + their next current line and re-run the suite — there is no override map to regenerate. 164 + This retires the maintenance liability 0003 named. Two standing constraints survive the 165 + change: 166 + - **Keep `react` / `react-dom` pinned at `18.3.1`** (Decision 0001 — block-editor's 167 + React peer is `^18`; do not introduce React 19). 168 + - **Keep `moment` / `moment-timezone` EXTERNAL in `vitest.config.ts`** (see above) even 169 + while the Cloudflare build inlines `moment`. 170 + - **The reader/render split (Decision 0003, Finding 1) is unchanged and still 171 + load-bearing.** Reading pages still use the dependency-free `src/lib/blocks/render.ts`; 172 + `@wordpress/*` still appears only in the editor island + tests. The render-fidelity 173 + test-lock (`render.test.ts` vs `@wordpress/blocks.serialize()`) still passes against the 174 + new packages — adding a block still means adding a `render.ts` case **and** a fidelity 175 + assertion. 176 + - **We now own more editor composition.** The provider/toolbar/canvas wiring IBE hid lives 177 + in `SkyEditor.tsx`, including app-level undo/redo. The trade is deliberate: more local 178 + code, but no dependency on a maintenance-only wrapper and full control of the writing 179 + surface. 180 + - **Verified.** `npm test` (82 files, 592 tests incl. the render/serialize fidelity lock), 181 + `npm run check` (0 errors), `npm run build` (editor island bundles; reading pages still 182 + ship ~0 JS — the homepage loads only a ~2 KB `AccountMenu` island, not the editor), and a 183 + real browser smoke test of `/write`: editor boots, block insertion + typing work, the 184 + live block tree forwards to the publish flow ("Draft saved · N block(s)"), undo/redo 185 + enable, and Publish enables.
+126
docs/superpowers/plans/2026-06-18-block-editor-direct-plan.md
··· 1 + # Block editor: direct Gutenberg dependency — implementation plan 2 + 3 + > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development 4 + > (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps 5 + > use checkbox (`- [ ]`) syntax for tracking. **This plan has been executed — all phases are 6 + > marked done.** 7 + 8 + **Goal:** Replace `@automattic/isolated-block-editor` (IBE) with the Gutenberg 9 + block-editor packages used directly, upgrade the whole `@wordpress/*` tree to the current 10 + release line, and delete the ~60-package `overrides` map — without changing the editor's 11 + prop contract, the curated block allowlist, or the reader/render split. 12 + 13 + **Architecture:** `SkyEditor.tsx` composes Gutenberg primitives inline 14 + (`ShortcutProvider` > `SlotFillProvider` > `BlockEditorProvider` > toolbar + canvas) 15 + instead of rendering `<IsolatedBlockEditor>`. Undo/redo moves to app-level 16 + `useStateWithHistory`. The override map goes away because one current `@wordpress` line 17 + resolves to single store-singleton copies. See the design doc 18 + `2026-06-18-block-editor-direct-design.md` and Decision 0021. 19 + 20 + **Tech Stack:** React 18, TypeScript, Astro islands, the Gutenberg `@wordpress/*` 21 + packages at their current line, Vitest (jsdom + `@wordpress/blocks.serialize()` fidelity 22 + oracle), Vite (editor bundle), `@astrojs/cloudflare` (edge build), plain CSS. 23 + 24 + --- 25 + 26 + ## File touch list 27 + 28 + - **Modify** `package.json` — remove IBE; add/bump the direct `@wordpress/*` deps; delete 29 + the `overrides` map (keep only `react`/`react-dom@18.3.1`); add `@types/node` to devDeps. 30 + - **Modify** `src/components/SkyEditor.tsx` — rewrite to compose Gutenberg primitives 31 + directly; app-level undo/redo; same prop contract. 32 + - **Modify** `vitest.config.ts` — `ssr.noExternal: [/@wordpress\//]`; keep 33 + `moment`/`moment-timezone` external; `define` the IS_GUTENBERG_PLUGIN/IS_WORDPRESS_CORE 34 + globals. 35 + - **Modify** `src/types/wordpress.d.ts` — ambient `declare module '@wordpress/block-editor'`. 36 + - **Modify** `src/styles/editor-chrome.css` — re-point from `.iso-editor`/`.edit-post-*` to 37 + `.skypress-editor__*` + `.block-editor-*`. 38 + - **Create** `docs/decisions/0021-block-editor-direct-dependency.md` (ADR, supersedes 0003 39 + Finding 2). 40 + - **Create** `docs/superpowers/specs/2026-06-18-block-editor-direct-design.md` (design). 41 + - **Create** this plan. 42 + 43 + --- 44 + 45 + ### Phase 1 — Design + ADR ✅ DONE 46 + 47 + - [x] **Step 1:** Capture the rationale (IBE maintenance-only + "experimental" + 48 + `Requires: Gutenberg 16.9`; the override map as the standing liability per 0003) and the 49 + decision to go direct at the current line in a design doc. 50 + - [x] **Step 2:** Write ADR 0021, explicitly **superseding Finding 2 of Decision 0003** 51 + (not deleting 0003), recording the single-registry finding and why the override map is no 52 + longer needed. 53 + 54 + ### Phase 2 — Dependency swap + coherence check ✅ DONE 55 + 56 + - [x] **Step 1:** Remove `@automattic/isolated-block-editor`. 57 + - [x] **Step 2:** Add the direct deps at the current line (`block-editor@15.21.1`, 58 + `components@35.0.1`, `compose@8.1.1`, `format-library@5.48.1`, `hooks@4.48.1`, 59 + `keyboard-shortcuts@5.48.1`, `rich-text@7.48.1`, `data@10.48.1`, `icons@14.0.1`) and bump 60 + `blocks@15.21.1`, `block-library@9.48.1`, `element@8.0.1`. 61 + - [x] **Step 3:** Delete the ~60-package `overrides` map; keep only `react`/`react-dom` 62 + pinned at `18.3.1`. Add `@types/node@25.9.2` to devDeps. 63 + - [x] **Step 4:** Reinstall and **verify a single copy of every store singleton** 64 + (`data@10.48.1`, `core-data@7.48.1`, `element@8.0.1`, `blocks`/`block-editor@15.21.1`, 65 + `compose@8.1.1`, `sync@1.48.1`) — confirming the override map is unnecessary at one 66 + current line. 67 + 68 + ### Phase 3 — SkyEditor rewrite ✅ DONE 69 + 70 + - [x] **Step 1:** Replace `<IsolatedBlockEditor>` with the inline provider/toolbar/canvas 71 + tree (`ShortcutProvider` > `SlotFillProvider` > `BlockEditorProvider` > 72 + toolbar(`Inserter` + undo/redo + inspector cog) + canvas(`BlockTools` > 73 + `BlockEditorKeyboardShortcuts.Register` + `WritingFlow` > `ObserveTyping` > `BlockList`) 74 + + `Popover.Slot`). 75 + - [x] **Step 2:** Implement app-level undo/redo via `useStateWithHistory` 76 + (`onInput` = staged, `onChange` = committed) bound to `mod+z` / `mod+shift+z` with a 77 + capture-phase keydown handler. 78 + - [x] **Step 3:** Preserve the prop contract (`onChange`, `mediaUpload`, `initialBlocks`); 79 + keep `registerSkyPressBlocks()`, the side-effect `import '@wordpress/format-library'`, 80 + the `@`-mention format/autocompleter, and the `registerMediaUpload` filter unchanged. 81 + - [x] **Step 4:** Import the editor/component/block CSS in the island (components, 82 + block-editor style+content, block-library common/style/editor/theme); intentionally 83 + **skip** `@wordpress/format-library` CSS (no `build-style` export subpath). 84 + 85 + ### Phase 4 — CSS rework ✅ DONE 86 + 87 + - [x] **Step 1:** Re-point `src/styles/editor-chrome.css` from IBE's `.iso-editor` / 88 + `.interface-interface-skeleton__*` / `.edit-post-*` DOM to 89 + `.skypress-editor__toolbar` / `__body` / `__inspector` + the standard `.block-editor-*` 90 + classes. 91 + 92 + ### Phase 5 — Test/build/foundation-doc updates ✅ DONE 93 + 94 + - [x] **Step 1:** `vitest.config.ts` — add `ssr.noExternal: [/@wordpress\//]`; **keep 95 + `moment`/`moment-timezone` external** (CJS instance must stay single so `moment.tz` 96 + lands on `@wordpress/date`); add the IS_GUTENBERG_PLUGIN/IS_WORDPRESS_CORE `define`. 97 + - [x] **Step 2:** Confirm `astro.config.mjs` still inlines `moment` at the edge — the two 98 + configs intentionally differ; note it. 99 + - [x] **Step 3:** `src/types/wordpress.d.ts` — add the ambient 100 + `declare module '@wordpress/block-editor'` for the imported components (package ships no 101 + types). 102 + - [x] **Step 4:** Update foundation docs — AGENTS.md / Decision references — so the 103 + version-pinning constraint now points at the "normal `@wordpress` bump" model (keep 104 + `react@18`; keep `moment` external in vitest) rather than override-map regeneration. 105 + 106 + ### Phase 6 — Verification ✅ DONE 107 + 108 + - [x] **Step 1:** `npm test` → 82 files, 592 tests pass, **including** the 109 + render/serialize fidelity lock (`render.test.ts` vs `@wordpress/blocks.serialize()`). 110 + - [x] **Step 2:** `npm run check` → 0 errors. 111 + - [x] **Step 3:** `npm run build` → editor island bundles; **reading pages still ship 112 + ~0 JS** (homepage only loads a ~2 KB `AccountMenu` island, not the editor). 113 + - [x] **Step 4:** Real browser smoke test of `/write` → editor boots; block insertion + 114 + typing work; the live block tree forwards to the publish flow ("Draft saved · 115 + N block(s)"); undo/redo enable; Publish enables. 116 + 117 + --- 118 + 119 + ## Done criteria (all met) 120 + 121 + - IBE removed; `@wordpress/*` on the current line; override map deleted. 122 + - `SkyEditor` composes Gutenberg directly with the same prop contract; undo/redo 123 + app-level. 124 + - Reader/render split unchanged; fidelity test-lock green. 125 + - Full suite + check + build + browser smoke all pass. 126 + - Decision 0021 + design doc + this plan recorded.
+183
docs/superpowers/specs/2026-06-18-block-editor-direct-design.md
··· 1 + # Block editor: direct Gutenberg dependency — design 2 + 3 + **Date:** 2026-06-18 4 + **Status:** Design — implemented (see plan `2026-06-18-block-editor-direct-plan.md` and 5 + Decision 0021) 6 + **Branch:** `lisbon-v2` 7 + 8 + ## Summary 9 + 10 + Replace `@automattic/isolated-block-editor` (IBE) with the Gutenberg block-editor 11 + packages used **directly**, and upgrade the whole `@wordpress/*` tree from the frozen, 12 + IBE-bundled `*.24.0` line to the **current** release line. The editor island 13 + (`SkyEditor.tsx`) composes the Gutenberg primitives itself instead of leaning on IBE's 14 + `<IsolatedBlockEditor>` wrapper, and the ~60-package `overrides` map in `package.json` 15 + that Decision 0003 called "the project's biggest maintenance liability" is deleted. 16 + 17 + This is an internal dependency/architecture change. The editor's external prop contract 18 + (`onChange`, `mediaUpload`, `initialBlocks`), the curated block allowlist, the 19 + `@`-mention behaviour, and the reader/render split all stay the same. 20 + 21 + ## Goals 22 + 23 + - Stop depending on a maintenance-only, "experimental" wrapper that pins an old Gutenberg 24 + line (`Requires: Gutenberg 16.9`, known WP 6.6+ incompat). 25 + - Track the **current** release of each `@wordpress` package; decouple SkyPress's upgrade 26 + cadence from IBE's. 27 + - Delete the override map so future `@wordpress` upgrades are a normal version bump, not a 28 + hand-regenerated 60-package pin set. 29 + - Keep the editor's behaviour and prop contract identical so nothing downstream 30 + (`Studio`, `WriteStudio`, publish flow) has to change. 31 + - Keep the test/build suite green, including the render-fidelity test-lock. 32 + 33 + ## Non-goals 34 + 35 + - **Not** changing the reader/render path. Reading pages keep using the dependency-free 36 + `src/lib/blocks/render.ts`; `@wordpress/*` stays out of reading-page bundles 37 + (Decision 0003, Finding 1 — unchanged). 38 + - **Not** expanding the curated block allowlist (Decision 0002). The same blocks are 39 + registered and pruned. 40 + - **Not** moving the editor into `BlockCanvas`'s iframe. SkyPress wants a seamless 41 + title → lede → body surface and reuses its token-driven chrome styles; the editor stays 42 + composed inline. 43 + - **Not** introducing React 19. block-editor's React peer is `^18`; `react`/`react-dom` 44 + stay pinned at `18.3.1` (Decision 0001). 45 + - **Not** reworking undo/redo UX — only re-homing the implementation from IBE to 46 + app-level `useStateWithHistory`. 47 + 48 + ## Before / after 49 + 50 + ### Before (IBE) 51 + 52 + `SkyEditor` rendered a single wrapper: 53 + 54 + ``` 55 + <IsolatedBlockEditor 56 + settings={{ iso: { … } }} 57 + onSaveBlocks={…} 58 + onLoad={…} 59 + onError={…} 60 + /> 61 + ``` 62 + 63 + IBE owned the provider tree, toolbar, canvas, undo/redo, and the bundled `@wordpress` 64 + line. `package.json` carried a ~60-package `overrides` map pinning the entire 65 + `@wordpress/*` tree to IBE's exact bundled versions, plus a `vite.resolve.dedupe` 66 + backstop, to avoid the split-brain duplicate-registry crash (Decision 0003, Finding 2). 67 + 68 + ### After (direct) 69 + 70 + `SkyEditor` composes Gutenberg primitives itself: 71 + 72 + ``` 73 + ShortcutProvider 74 + └─ SlotFillProvider 75 + └─ BlockEditorProvider (value / onInput / onChange / settings) 76 + ├─ toolbar : Inserter + undo/redo Buttons + BlockInspector-in-Popover cog 77 + └─ canvas : BlockTools 78 + └─ BlockEditorKeyboardShortcuts.Register 79 + └─ WritingFlow > ObserveTyping > BlockList 80 + └─ Popover.Slot 81 + ``` 82 + 83 + `@wordpress/*` floats to one **current** line; the override map is gone; only 84 + `react`/`react-dom` stay pinned. 85 + 86 + ## Component composition 87 + 88 + - **`ShortcutProvider`** (`@wordpress/keyboard-shortcuts`) wraps everything so 89 + block-editor keyboard shortcuts register. 90 + - **`SlotFillProvider`** + **`Popover.Slot`** (`@wordpress/components`) host the floating 91 + block toolbar, inserter, and inspector popovers. 92 + - **`BlockEditorProvider`** (`@wordpress/block-editor`) is the store boundary. It receives 93 + `value` (the block tree), `onInput` (staged/intermediate change), `onChange` (committed 94 + change), and `settings`. 95 + - **Toolbar:** an `Inserter`, undo/redo `Button`s wired to the app-level history, and a 96 + cog button that opens a `BlockInspector` inside a `Popover`. 97 + - **Canvas:** `BlockTools` (floating block toolbar host) wrapping 98 + `BlockEditorKeyboardShortcuts.Register`, then `WritingFlow` > `ObserveTyping` > 99 + `BlockList` — the standard typing surface. 100 + - **Undo/redo:** app-level, via `useStateWithHistory` (`@wordpress/compose`). `onInput` 101 + stages history; `onChange` commits a step. A **capture-phase** keydown handler binds 102 + `mod+z` / `mod+shift+z`. 103 + - **Blocks/formats/mentions (unchanged):** `registerSkyPressBlocks()` registers core 104 + blocks and prunes to the allowlist; a side-effect `import '@wordpress/format-library'` 105 + loads default inline formats; the `@`-mention format/autocompleter (Decision 0019) and 106 + the `registerMediaUpload` `editor.MediaUpload`-disabling filter carry over verbatim. 107 + - **CSS:** the editor island imports its own stylesheets — components, block-editor 108 + (style + content), block-library (common / style / editor / theme). 109 + `@wordpress/format-library` ships **no `build-style` export subpath**, so its CSS is 110 + intentionally omitted; its inline-format UI is styled by the components + block-editor 111 + stylesheets. 112 + 113 + ## Dependency strategy 114 + 115 + - **Removed:** `@automattic/isolated-block-editor`. 116 + - **Added (current line):** `@wordpress/block-editor@15.21.1`, 117 + `@wordpress/components@35.0.1`, `@wordpress/compose@8.1.1`, 118 + `@wordpress/format-library@5.48.1`, `@wordpress/hooks@4.48.1`, 119 + `@wordpress/keyboard-shortcuts@5.48.1`, `@wordpress/rich-text@7.48.1`, 120 + `@wordpress/data@10.48.1`, `@wordpress/icons@14.0.1`. 121 + - **Bumped:** `@wordpress/blocks@15.21.1`, `@wordpress/block-library@9.48.1`, 122 + `@wordpress/element@8.0.1`. 123 + - **Deleted** the ~60-package `overrides` map. Only `react`/`react-dom` stay pinned at 124 + `18.3.1`. 125 + - **Added** `@types/node@25.9.2` to devDeps (was only a transitive dep of the removed 126 + packages; tests import `node:fs` / `node:path` / `node:url`). 127 + 128 + **Why this de-dupes the registries.** The split-brain crash Decision 0003 fought came 129 + from IBE pinning an **old** `@wordpress` line while transitive caret ranges floated to a 130 + **newer** one — producing duplicate `data` / `core-data` registries. Removing the old pin 131 + and letting the whole tree float to **one current line** resolves to a single copy of 132 + every store singleton (`data@10.48.1`, `core-data@7.48.1`, `element@8.0.1`, 133 + `blocks`/`block-editor@15.21.1`, `compose@8.1.1`, `sync@1.48.1`). The collision the 134 + override map existed to reconcile no longer happens, so the map can go. 135 + 136 + ## Test / build config changes 137 + 138 + - **`vitest.config.ts`** 139 + - `ssr.noExternal: [/@wordpress\//]` — let Vite (not Node's native ESM loader) 140 + transform the `@wordpress` tree. Node rejects `@wordpress/blocks`' attribute-less 141 + `import … from './i18n-block.json'`, and a single inlined graph keeps the 142 + `@wordpress/data` + blocks store singletons consistent for the fidelity tests. 143 + - **`moment` / `moment-timezone` stay EXTERNAL** (native CJS). `moment-timezone` 144 + augments `moment` via `require('moment')`, which only reaches `@wordpress/date`'s 145 + default import when both resolve to Node's single CJS instance; inlining them splits 146 + the instance and `moment.tz` becomes undefined. 147 + - a `define` for the `IS_GUTENBERG_PLUGIN` / `IS_WORDPRESS_CORE` globals. 148 + - **Intentional divergence:** `astro.config.mjs` (Cloudflare build) still *inlines* 149 + `moment` — there is no native `require` at the edge — so the two configs differ on 150 + purpose. 151 + - **`src/types/wordpress.d.ts`:** add an ambient 152 + `declare module '@wordpress/block-editor'` (the package ships no type declarations — no 153 + `types` field, missing build-types) covering the imported components. 154 + - **`src/styles/editor-chrome.css`:** re-point from IBE's `.iso-editor` / 155 + `.interface-interface-skeleton__*` / `.edit-post-*` DOM to 156 + `.skypress-editor__toolbar` / `__body` / `__inspector` + the standard `.block-editor-*` 157 + classes. 158 + 159 + ## Risks 160 + 161 + - **Owning more composition.** The provider/toolbar/canvas wiring IBE hid now lives in 162 + `SkyEditor.tsx`, including undo/redo. Mitigation: app-level `useStateWithHistory` is 163 + small and the prop contract is unchanged, so the blast radius is confined to the island. 164 + - **Future `@wordpress` bumps could re-introduce a registry split** if a subset is bumped 165 + while the rest lags. Mitigation: bump the `@wordpress` packages **together** to one 166 + line; the dedupe is a property of a single coherent line, not of the override map. 167 + - **CJS/ESM `moment` fragility in tests.** Captured explicitly above and in Decision 0021: 168 + keep `moment`/`moment-timezone` external in vitest. 169 + - **No upstream types for `@wordpress/block-editor`.** Covered by the ambient module 170 + declaration; it must be extended when SkyEditor starts importing new components. 171 + 172 + ## Verification 173 + 174 + All green: `npm test` (82 files, 592 tests incl. the render/serialize fidelity lock), 175 + `npm run check` (0 errors), `npm run build` (editor island bundles; reading pages still 176 + ship ~0 JS — homepage only loads a ~2 KB `AccountMenu` island), and a real browser smoke 177 + test of `/write` (editor boots; insertion + typing work; live block tree forwards to the 178 + publish flow as "Draft saved · N block(s)"; undo/redo enable; Publish enables). 179 + 180 + ## Out of scope 181 + 182 + - Reader/render path, block allowlist, iframe canvas, React 19, undo/redo UX — see 183 + Non-goals. Durable rationale graduates to Decision 0021.
+1268 -2426
package-lock.json
··· 14 14 "@atproto/api": "^0.20.9", 15 15 "@atproto/common-web": "^0.5.0", 16 16 "@atproto/oauth-client-browser": "^0.4.1", 17 - "@automattic/isolated-block-editor": "2.30.0", 18 17 "@fontsource/ibm-plex-mono": "^5.2.7", 19 - "@wordpress/block-library": "9.24.0", 20 - "@wordpress/blocks": "14.13.0", 21 - "@wordpress/element": "6.24.0", 18 + "@wordpress/block-editor": "15.21.1", 19 + "@wordpress/block-library": "9.48.1", 20 + "@wordpress/blocks": "15.21.1", 21 + "@wordpress/components": "35.0.1", 22 + "@wordpress/compose": "8.1.1", 23 + "@wordpress/data": "10.48.1", 24 + "@wordpress/element": "8.0.1", 25 + "@wordpress/format-library": "5.48.1", 26 + "@wordpress/hooks": "4.48.1", 27 + "@wordpress/icons": "14.0.1", 28 + "@wordpress/keyboard-shortcuts": "5.48.1", 29 + "@wordpress/rich-text": "7.48.1", 22 30 "astro": "6.4.4", 23 31 "highlight.js": "^11.11.1", 24 32 "react": "18.3.1", ··· 27 35 }, 28 36 "devDependencies": { 29 37 "@astrojs/check": "^0.9.9", 38 + "@types/node": "25.9.2", 30 39 "@types/react": "18.3.12", 31 40 "@types/react-dom": "18.3.1", 32 41 "@types/sanitize-html": "^2.16.1", 33 42 "jsdom": "25.0.1", 34 - "sass": "^1.100.0", 35 43 "typescript": "5.7.2", 36 44 "vitest": "2.1.8" 37 45 }, ··· 126 134 "resolved": "https://registry.npmjs.org/@ariakit/utils/-/utils-0.1.2.tgz", 127 135 "integrity": "sha512-lBJhtBWpKjIck/9i7G8cahvaUgLsyGklI/Pjv+VtY9KTzyuzX5GpRbbLKMS/e1qLnFPS4C3CybYB70b1bVcAkw==", 128 136 "license": "MIT" 137 + }, 138 + "node_modules/@arraypress/waveform-player": { 139 + "version": "1.7.1", 140 + "resolved": "https://registry.npmjs.org/@arraypress/waveform-player/-/waveform-player-1.7.1.tgz", 141 + "integrity": "sha512-SDXTuHXSqRzSeVShETY2BKXoDCiKQqBicQ+3j2VqH3w9nEXHrFa41ImiHAcdECYFDNbtgiytGQ4zfzZJ/1Rq0w==", 142 + "license": "MIT", 143 + "engines": { 144 + "node": ">=14.0.0" 145 + }, 146 + "funding": { 147 + "type": "github", 148 + "url": "https://github.com/sponsors/arraypress" 149 + } 129 150 }, 130 151 "node_modules/@asamuzakjp/css-color": { 131 152 "version": "3.2.0", ··· 946 967 "url": "https://github.com/sponsors/colinhacks" 947 968 } 948 969 }, 949 - "node_modules/@automattic/isolated-block-editor": { 950 - "version": "2.30.0", 951 - "resolved": "https://registry.npmjs.org/@automattic/isolated-block-editor/-/isolated-block-editor-2.30.0.tgz", 952 - "integrity": "sha512-iLzHPaVfS8+DSsPhiW74VU6CW/fh/aAPDgM8uvEHNZvKLqK2RmDMTP7IffwWOdV80XyqBmcGR13y1shHYG5hxA==", 953 - "license": "GPL-2.0-or-later", 954 - "dependencies": { 955 - "@wordpress/a11y": "4.24.0", 956 - "@wordpress/annotations": "3.24.0", 957 - "@wordpress/api-fetch": "7.24.0", 958 - "@wordpress/autop": "4.24.0", 959 - "@wordpress/base-styles": "6.0.0", 960 - "@wordpress/blob": "4.24.0", 961 - "@wordpress/block-editor": "14.19.0", 962 - "@wordpress/block-library": "9.24.0", 963 - "@wordpress/block-serialization-default-parser": "5.24.0", 964 - "@wordpress/block-serialization-spec-parser": "5.24.0", 965 - "@wordpress/blocks": "14.13.0", 966 - "@wordpress/components": "29.10.0", 967 - "@wordpress/compose": "7.24.0", 968 - "@wordpress/core-data": "7.24.0", 969 - "@wordpress/data": "10.24.0", 970 - "@wordpress/data-controls": "4.24.0", 971 - "@wordpress/date": "5.24.0", 972 - "@wordpress/deprecated": "4.24.0", 973 - "@wordpress/dom": "4.24.0", 974 - "@wordpress/dom-ready": "4.24.0", 975 - "@wordpress/edit-post": "8.24.0", 976 - "@wordpress/editor": "14.24.0", 977 - "@wordpress/element": "6.24.0", 978 - "@wordpress/escape-html": "3.24.0", 979 - "@wordpress/format-library": "5.24.0", 980 - "@wordpress/hooks": "4.24.0", 981 - "@wordpress/html-entities": "4.24.0", 982 - "@wordpress/i18n": "5.24.0", 983 - "@wordpress/icons": "10.24.0", 984 - "@wordpress/interface": "9.9.0", 985 - "@wordpress/is-shallow-equal": "5.24.0", 986 - "@wordpress/keyboard-shortcuts": "5.24.0", 987 - "@wordpress/keycodes": "4.24.0", 988 - "@wordpress/list-reusable-blocks": "5.24.0", 989 - "@wordpress/media-utils": "5.24.0", 990 - "@wordpress/notices": "5.24.0", 991 - "@wordpress/plugins": "7.24.0", 992 - "@wordpress/primitives": "4.24.0", 993 - "@wordpress/priority-queue": "3.24.0", 994 - "@wordpress/react-i18n": "4.24.0", 995 - "@wordpress/redux-routine": "5.24.0", 996 - "@wordpress/reusable-blocks": "5.24.0", 997 - "@wordpress/rich-text": "7.24.0", 998 - "@wordpress/server-side-render": "6.0.0", 999 - "@wordpress/shortcode": "4.24.0", 1000 - "@wordpress/token-list": "3.24.0", 1001 - "@wordpress/url": "4.24.0", 1002 - "@wordpress/viewport": "6.24.0", 1003 - "@wordpress/warning": "3.24.0", 1004 - "@wordpress/wordcount": "4.24.0", 1005 - "classnames": "^2.5.1", 1006 - "debug": "^4.3.4", 1007 - "lib0": "^0.2.87", 1008 - "lodash": "^4.17.21", 1009 - "memize": "^2.1.0", 1010 - "react-autosize-textarea": "^7.1.0", 1011 - "redux-undo": "^1.1.0", 1012 - "uuid": "^9.0.1" 1013 - }, 1014 - "engines": { 1015 - "node": ">=14" 1016 - } 1017 - }, 1018 970 "node_modules/@babel/code-frame": { 1019 971 "version": "7.29.7", 1020 972 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", ··· 1234 1186 } 1235 1187 }, 1236 1188 "node_modules/@babel/runtime": { 1237 - "version": "7.25.7", 1238 - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", 1239 - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", 1189 + "version": "7.29.7", 1190 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", 1191 + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", 1240 1192 "license": "MIT", 1241 - "dependencies": { 1242 - "regenerator-runtime": "^0.14.0" 1243 - }, 1244 1193 "engines": { 1245 1194 "node": ">=6.9.0" 1246 1195 } ··· 1290 1239 "node": ">=6.9.0" 1291 1240 } 1292 1241 }, 1242 + "node_modules/@base-ui/utils": { 1243 + "version": "0.2.9", 1244 + "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.2.9.tgz", 1245 + "integrity": "sha512-x/PDDCYzoqPpjrdyb3VcyylTI2IjUXEtYDGi5foh7KsnmNJIIaVwA2GLgDH1dps1GgXiJbA60hM+AyuTfQzIvw==", 1246 + "license": "MIT", 1247 + "dependencies": { 1248 + "@babel/runtime": "^7.29.2", 1249 + "@floating-ui/utils": "^0.2.11", 1250 + "reselect": "^5.1.1", 1251 + "use-sync-external-store": "^1.6.0" 1252 + }, 1253 + "peerDependencies": { 1254 + "@types/react": "^17 || ^18 || ^19", 1255 + "react": "^17 || ^18 || ^19", 1256 + "react-dom": "^17 || ^18 || ^19" 1257 + }, 1258 + "peerDependenciesMeta": { 1259 + "@types/react": { 1260 + "optional": true 1261 + } 1262 + } 1263 + }, 1293 1264 "node_modules/@capsizecss/unpack": { 1294 1265 "version": "4.0.0", 1295 1266 "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.0.tgz", ··· 1374 1345 "wrangler": "^4.98.0" 1375 1346 } 1376 1347 }, 1377 - "node_modules/@cloudflare/vite-plugin/node_modules/ws": { 1378 - "version": "8.20.1", 1379 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", 1380 - "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", 1381 - "license": "MIT", 1382 - "engines": { 1383 - "node": ">=10.0.0" 1384 - }, 1385 - "peerDependencies": { 1386 - "bufferutil": "^4.0.1", 1387 - "utf-8-validate": ">=5.0.2" 1388 - }, 1389 - "peerDependenciesMeta": { 1390 - "bufferutil": { 1391 - "optional": true 1392 - }, 1393 - "utf-8-validate": { 1394 - "optional": true 1395 - } 1396 - } 1397 - }, 1398 1348 "node_modules/@cloudflare/workerd-darwin-64": { 1399 1349 "version": "1.20260603.1", 1400 1350 "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260603.1.tgz", ··· 1612 1562 "node": ">=18" 1613 1563 } 1614 1564 }, 1565 + "node_modules/@date-fns/tz": { 1566 + "version": "1.5.0", 1567 + "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.5.0.tgz", 1568 + "integrity": "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==", 1569 + "license": "MIT" 1570 + }, 1571 + "node_modules/@date-fns/utc": { 1572 + "version": "2.1.1", 1573 + "resolved": "https://registry.npmjs.org/@date-fns/utc/-/utc-2.1.1.tgz", 1574 + "integrity": "sha512-SlJDfG6RPeEX8wEVv6ZB3kak4MmbtyiI2qX/5zuKdordbrhB/iaJ58GVMZgJ6P1sJaM1gMgENFYYeg1JWrCFrA==", 1575 + "license": "MIT" 1576 + }, 1615 1577 "node_modules/@emmetio/abbreviation": { 1616 1578 "version": "2.3.3", 1617 1579 "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", ··· 1850 1812 "license": "MIT" 1851 1813 }, 1852 1814 "node_modules/@esbuild/aix-ppc64": { 1853 - "version": "0.27.7", 1854 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", 1855 - "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", 1815 + "version": "0.27.3", 1816 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", 1817 + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", 1856 1818 "cpu": [ 1857 1819 "ppc64" 1858 1820 ], ··· 1866 1828 } 1867 1829 }, 1868 1830 "node_modules/@esbuild/android-arm": { 1869 - "version": "0.27.7", 1870 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", 1871 - "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", 1831 + "version": "0.27.3", 1832 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", 1833 + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", 1872 1834 "cpu": [ 1873 1835 "arm" 1874 1836 ], ··· 1882 1844 } 1883 1845 }, 1884 1846 "node_modules/@esbuild/android-arm64": { 1885 - "version": "0.27.7", 1886 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", 1887 - "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", 1847 + "version": "0.27.3", 1848 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", 1849 + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", 1888 1850 "cpu": [ 1889 1851 "arm64" 1890 1852 ], ··· 1898 1860 } 1899 1861 }, 1900 1862 "node_modules/@esbuild/android-x64": { 1901 - "version": "0.27.7", 1902 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", 1903 - "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", 1863 + "version": "0.27.3", 1864 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", 1865 + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", 1904 1866 "cpu": [ 1905 1867 "x64" 1906 1868 ], ··· 1914 1876 } 1915 1877 }, 1916 1878 "node_modules/@esbuild/darwin-arm64": { 1917 - "version": "0.27.7", 1918 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", 1919 - "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", 1879 + "version": "0.27.3", 1880 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", 1881 + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", 1920 1882 "cpu": [ 1921 1883 "arm64" 1922 1884 ], ··· 1930 1892 } 1931 1893 }, 1932 1894 "node_modules/@esbuild/darwin-x64": { 1933 - "version": "0.27.7", 1934 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", 1935 - "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", 1895 + "version": "0.27.3", 1896 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", 1897 + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", 1936 1898 "cpu": [ 1937 1899 "x64" 1938 1900 ], ··· 1946 1908 } 1947 1909 }, 1948 1910 "node_modules/@esbuild/freebsd-arm64": { 1949 - "version": "0.27.7", 1950 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", 1951 - "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", 1911 + "version": "0.27.3", 1912 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", 1913 + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", 1952 1914 "cpu": [ 1953 1915 "arm64" 1954 1916 ], ··· 1962 1924 } 1963 1925 }, 1964 1926 "node_modules/@esbuild/freebsd-x64": { 1965 - "version": "0.27.7", 1966 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", 1967 - "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", 1927 + "version": "0.27.3", 1928 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", 1929 + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", 1968 1930 "cpu": [ 1969 1931 "x64" 1970 1932 ], ··· 1978 1940 } 1979 1941 }, 1980 1942 "node_modules/@esbuild/linux-arm": { 1981 - "version": "0.27.7", 1982 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", 1983 - "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", 1943 + "version": "0.27.3", 1944 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", 1945 + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", 1984 1946 "cpu": [ 1985 1947 "arm" 1986 1948 ], ··· 1994 1956 } 1995 1957 }, 1996 1958 "node_modules/@esbuild/linux-arm64": { 1997 - "version": "0.27.7", 1998 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", 1999 - "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", 1959 + "version": "0.27.3", 1960 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", 1961 + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", 2000 1962 "cpu": [ 2001 1963 "arm64" 2002 1964 ], ··· 2010 1972 } 2011 1973 }, 2012 1974 "node_modules/@esbuild/linux-ia32": { 2013 - "version": "0.27.7", 2014 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", 2015 - "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", 1975 + "version": "0.27.3", 1976 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", 1977 + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", 2016 1978 "cpu": [ 2017 1979 "ia32" 2018 1980 ], ··· 2026 1988 } 2027 1989 }, 2028 1990 "node_modules/@esbuild/linux-loong64": { 2029 - "version": "0.27.7", 2030 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", 2031 - "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", 1991 + "version": "0.27.3", 1992 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", 1993 + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", 2032 1994 "cpu": [ 2033 1995 "loong64" 2034 1996 ], ··· 2042 2004 } 2043 2005 }, 2044 2006 "node_modules/@esbuild/linux-mips64el": { 2045 - "version": "0.27.7", 2046 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", 2047 - "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", 2007 + "version": "0.27.3", 2008 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", 2009 + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", 2048 2010 "cpu": [ 2049 2011 "mips64el" 2050 2012 ], ··· 2058 2020 } 2059 2021 }, 2060 2022 "node_modules/@esbuild/linux-ppc64": { 2061 - "version": "0.27.7", 2062 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", 2063 - "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", 2023 + "version": "0.27.3", 2024 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", 2025 + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", 2064 2026 "cpu": [ 2065 2027 "ppc64" 2066 2028 ], ··· 2074 2036 } 2075 2037 }, 2076 2038 "node_modules/@esbuild/linux-riscv64": { 2077 - "version": "0.27.7", 2078 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", 2079 - "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", 2039 + "version": "0.27.3", 2040 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", 2041 + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", 2080 2042 "cpu": [ 2081 2043 "riscv64" 2082 2044 ], ··· 2090 2052 } 2091 2053 }, 2092 2054 "node_modules/@esbuild/linux-s390x": { 2093 - "version": "0.27.7", 2094 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", 2095 - "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", 2055 + "version": "0.27.3", 2056 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", 2057 + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", 2096 2058 "cpu": [ 2097 2059 "s390x" 2098 2060 ], ··· 2106 2068 } 2107 2069 }, 2108 2070 "node_modules/@esbuild/linux-x64": { 2109 - "version": "0.27.7", 2110 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", 2111 - "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", 2071 + "version": "0.27.3", 2072 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", 2073 + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", 2112 2074 "cpu": [ 2113 2075 "x64" 2114 2076 ], ··· 2122 2084 } 2123 2085 }, 2124 2086 "node_modules/@esbuild/netbsd-arm64": { 2125 - "version": "0.27.7", 2126 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", 2127 - "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", 2087 + "version": "0.27.3", 2088 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", 2089 + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", 2128 2090 "cpu": [ 2129 2091 "arm64" 2130 2092 ], ··· 2138 2100 } 2139 2101 }, 2140 2102 "node_modules/@esbuild/netbsd-x64": { 2141 - "version": "0.27.7", 2142 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", 2143 - "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", 2103 + "version": "0.27.3", 2104 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", 2105 + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", 2144 2106 "cpu": [ 2145 2107 "x64" 2146 2108 ], ··· 2154 2116 } 2155 2117 }, 2156 2118 "node_modules/@esbuild/openbsd-arm64": { 2157 - "version": "0.27.7", 2158 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", 2159 - "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", 2119 + "version": "0.27.3", 2120 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", 2121 + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", 2160 2122 "cpu": [ 2161 2123 "arm64" 2162 2124 ], ··· 2170 2132 } 2171 2133 }, 2172 2134 "node_modules/@esbuild/openbsd-x64": { 2173 - "version": "0.27.7", 2174 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", 2175 - "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", 2135 + "version": "0.27.3", 2136 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", 2137 + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", 2176 2138 "cpu": [ 2177 2139 "x64" 2178 2140 ], ··· 2186 2148 } 2187 2149 }, 2188 2150 "node_modules/@esbuild/openharmony-arm64": { 2189 - "version": "0.27.7", 2190 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", 2191 - "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", 2151 + "version": "0.27.3", 2152 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", 2153 + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", 2192 2154 "cpu": [ 2193 2155 "arm64" 2194 2156 ], ··· 2202 2164 } 2203 2165 }, 2204 2166 "node_modules/@esbuild/sunos-x64": { 2205 - "version": "0.27.7", 2206 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", 2207 - "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", 2167 + "version": "0.27.3", 2168 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", 2169 + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", 2208 2170 "cpu": [ 2209 2171 "x64" 2210 2172 ], ··· 2218 2180 } 2219 2181 }, 2220 2182 "node_modules/@esbuild/win32-arm64": { 2221 - "version": "0.27.7", 2222 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", 2223 - "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", 2183 + "version": "0.27.3", 2184 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", 2185 + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", 2224 2186 "cpu": [ 2225 2187 "arm64" 2226 2188 ], ··· 2234 2196 } 2235 2197 }, 2236 2198 "node_modules/@esbuild/win32-ia32": { 2237 - "version": "0.27.7", 2238 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", 2239 - "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", 2199 + "version": "0.27.3", 2200 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", 2201 + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", 2240 2202 "cpu": [ 2241 2203 "ia32" 2242 2204 ], ··· 2250 2212 } 2251 2213 }, 2252 2214 "node_modules/@esbuild/win32-x64": { 2253 - "version": "0.27.7", 2254 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", 2255 - "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", 2215 + "version": "0.27.3", 2216 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", 2217 + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", 2256 2218 "cpu": [ 2257 2219 "x64" 2258 2220 ], ··· 2876 2838 "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", 2877 2839 "license": "MIT" 2878 2840 }, 2879 - "node_modules/@parcel/watcher": { 2880 - "version": "2.5.6", 2881 - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", 2882 - "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", 2883 - "hasInstallScript": true, 2884 - "license": "MIT", 2885 - "optional": true, 2886 - "dependencies": { 2887 - "detect-libc": "^2.0.3", 2888 - "is-glob": "^4.0.3", 2889 - "node-addon-api": "^7.0.0", 2890 - "picomatch": "^4.0.3" 2891 - }, 2892 - "engines": { 2893 - "node": ">= 10.0.0" 2894 - }, 2895 - "funding": { 2896 - "type": "opencollective", 2897 - "url": "https://opencollective.com/parcel" 2898 - }, 2899 - "optionalDependencies": { 2900 - "@parcel/watcher-android-arm64": "2.5.6", 2901 - "@parcel/watcher-darwin-arm64": "2.5.6", 2902 - "@parcel/watcher-darwin-x64": "2.5.6", 2903 - "@parcel/watcher-freebsd-x64": "2.5.6", 2904 - "@parcel/watcher-linux-arm-glibc": "2.5.6", 2905 - "@parcel/watcher-linux-arm-musl": "2.5.6", 2906 - "@parcel/watcher-linux-arm64-glibc": "2.5.6", 2907 - "@parcel/watcher-linux-arm64-musl": "2.5.6", 2908 - "@parcel/watcher-linux-x64-glibc": "2.5.6", 2909 - "@parcel/watcher-linux-x64-musl": "2.5.6", 2910 - "@parcel/watcher-win32-arm64": "2.5.6", 2911 - "@parcel/watcher-win32-ia32": "2.5.6", 2912 - "@parcel/watcher-win32-x64": "2.5.6" 2913 - } 2914 - }, 2915 - "node_modules/@parcel/watcher-android-arm64": { 2916 - "version": "2.5.6", 2917 - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", 2918 - "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", 2919 - "cpu": [ 2920 - "arm64" 2921 - ], 2922 - "license": "MIT", 2923 - "optional": true, 2924 - "os": [ 2925 - "android" 2926 - ], 2927 - "engines": { 2928 - "node": ">= 10.0.0" 2929 - }, 2930 - "funding": { 2931 - "type": "opencollective", 2932 - "url": "https://opencollective.com/parcel" 2933 - } 2934 - }, 2935 - "node_modules/@parcel/watcher-darwin-arm64": { 2936 - "version": "2.5.6", 2937 - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", 2938 - "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", 2939 - "cpu": [ 2940 - "arm64" 2941 - ], 2942 - "license": "MIT", 2943 - "optional": true, 2944 - "os": [ 2945 - "darwin" 2946 - ], 2947 - "engines": { 2948 - "node": ">= 10.0.0" 2949 - }, 2950 - "funding": { 2951 - "type": "opencollective", 2952 - "url": "https://opencollective.com/parcel" 2953 - } 2954 - }, 2955 - "node_modules/@parcel/watcher-darwin-x64": { 2956 - "version": "2.5.6", 2957 - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", 2958 - "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", 2959 - "cpu": [ 2960 - "x64" 2961 - ], 2962 - "license": "MIT", 2963 - "optional": true, 2964 - "os": [ 2965 - "darwin" 2966 - ], 2967 - "engines": { 2968 - "node": ">= 10.0.0" 2969 - }, 2970 - "funding": { 2971 - "type": "opencollective", 2972 - "url": "https://opencollective.com/parcel" 2973 - } 2974 - }, 2975 - "node_modules/@parcel/watcher-freebsd-x64": { 2976 - "version": "2.5.6", 2977 - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", 2978 - "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", 2979 - "cpu": [ 2980 - "x64" 2981 - ], 2982 - "license": "MIT", 2983 - "optional": true, 2984 - "os": [ 2985 - "freebsd" 2986 - ], 2987 - "engines": { 2988 - "node": ">= 10.0.0" 2989 - }, 2990 - "funding": { 2991 - "type": "opencollective", 2992 - "url": "https://opencollective.com/parcel" 2993 - } 2994 - }, 2995 - "node_modules/@parcel/watcher-linux-arm-glibc": { 2996 - "version": "2.5.6", 2997 - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", 2998 - "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", 2999 - "cpu": [ 3000 - "arm" 3001 - ], 3002 - "libc": [ 3003 - "glibc" 3004 - ], 3005 - "license": "MIT", 3006 - "optional": true, 3007 - "os": [ 3008 - "linux" 3009 - ], 3010 - "engines": { 3011 - "node": ">= 10.0.0" 3012 - }, 3013 - "funding": { 3014 - "type": "opencollective", 3015 - "url": "https://opencollective.com/parcel" 3016 - } 3017 - }, 3018 - "node_modules/@parcel/watcher-linux-arm-musl": { 3019 - "version": "2.5.6", 3020 - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", 3021 - "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", 3022 - "cpu": [ 3023 - "arm" 3024 - ], 3025 - "libc": [ 3026 - "musl" 3027 - ], 3028 - "license": "MIT", 3029 - "optional": true, 3030 - "os": [ 3031 - "linux" 3032 - ], 3033 - "engines": { 3034 - "node": ">= 10.0.0" 3035 - }, 3036 - "funding": { 3037 - "type": "opencollective", 3038 - "url": "https://opencollective.com/parcel" 3039 - } 3040 - }, 3041 - "node_modules/@parcel/watcher-linux-arm64-glibc": { 3042 - "version": "2.5.6", 3043 - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", 3044 - "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", 3045 - "cpu": [ 3046 - "arm64" 3047 - ], 3048 - "libc": [ 3049 - "glibc" 3050 - ], 3051 - "license": "MIT", 3052 - "optional": true, 3053 - "os": [ 3054 - "linux" 3055 - ], 3056 - "engines": { 3057 - "node": ">= 10.0.0" 3058 - }, 3059 - "funding": { 3060 - "type": "opencollective", 3061 - "url": "https://opencollective.com/parcel" 3062 - } 3063 - }, 3064 - "node_modules/@parcel/watcher-linux-arm64-musl": { 3065 - "version": "2.5.6", 3066 - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", 3067 - "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", 3068 - "cpu": [ 3069 - "arm64" 3070 - ], 3071 - "libc": [ 3072 - "musl" 3073 - ], 3074 - "license": "MIT", 3075 - "optional": true, 3076 - "os": [ 3077 - "linux" 3078 - ], 3079 - "engines": { 3080 - "node": ">= 10.0.0" 3081 - }, 3082 - "funding": { 3083 - "type": "opencollective", 3084 - "url": "https://opencollective.com/parcel" 3085 - } 3086 - }, 3087 - "node_modules/@parcel/watcher-linux-x64-glibc": { 3088 - "version": "2.5.6", 3089 - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", 3090 - "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", 3091 - "cpu": [ 3092 - "x64" 3093 - ], 3094 - "libc": [ 3095 - "glibc" 3096 - ], 3097 - "license": "MIT", 3098 - "optional": true, 3099 - "os": [ 3100 - "linux" 3101 - ], 3102 - "engines": { 3103 - "node": ">= 10.0.0" 3104 - }, 3105 - "funding": { 3106 - "type": "opencollective", 3107 - "url": "https://opencollective.com/parcel" 3108 - } 3109 - }, 3110 - "node_modules/@parcel/watcher-linux-x64-musl": { 3111 - "version": "2.5.6", 3112 - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", 3113 - "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", 3114 - "cpu": [ 3115 - "x64" 3116 - ], 3117 - "libc": [ 3118 - "musl" 3119 - ], 3120 - "license": "MIT", 3121 - "optional": true, 3122 - "os": [ 3123 - "linux" 3124 - ], 3125 - "engines": { 3126 - "node": ">= 10.0.0" 3127 - }, 3128 - "funding": { 3129 - "type": "opencollective", 3130 - "url": "https://opencollective.com/parcel" 3131 - } 3132 - }, 3133 - "node_modules/@parcel/watcher-win32-arm64": { 3134 - "version": "2.5.6", 3135 - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", 3136 - "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", 3137 - "cpu": [ 3138 - "arm64" 3139 - ], 3140 - "license": "MIT", 3141 - "optional": true, 3142 - "os": [ 3143 - "win32" 3144 - ], 3145 - "engines": { 3146 - "node": ">= 10.0.0" 3147 - }, 3148 - "funding": { 3149 - "type": "opencollective", 3150 - "url": "https://opencollective.com/parcel" 3151 - } 3152 - }, 3153 - "node_modules/@parcel/watcher-win32-ia32": { 3154 - "version": "2.5.6", 3155 - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", 3156 - "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", 3157 - "cpu": [ 3158 - "ia32" 3159 - ], 3160 - "license": "MIT", 3161 - "optional": true, 3162 - "os": [ 3163 - "win32" 3164 - ], 3165 - "engines": { 3166 - "node": ">= 10.0.0" 3167 - }, 3168 - "funding": { 3169 - "type": "opencollective", 3170 - "url": "https://opencollective.com/parcel" 3171 - } 3172 - }, 3173 - "node_modules/@parcel/watcher-win32-x64": { 3174 - "version": "2.5.6", 3175 - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", 3176 - "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", 3177 - "cpu": [ 3178 - "x64" 3179 - ], 3180 - "license": "MIT", 3181 - "optional": true, 3182 - "os": [ 3183 - "win32" 3184 - ], 3185 - "engines": { 3186 - "node": ">= 10.0.0" 3187 - }, 3188 - "funding": { 3189 - "type": "opencollective", 3190 - "url": "https://opencollective.com/parcel" 3191 - } 3192 - }, 3193 2841 "node_modules/@poppinss/colors": { 3194 2842 "version": "4.1.6", 3195 2843 "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", ··· 3233 2881 } 3234 2882 }, 3235 2883 "node_modules/@preact/signals-core": { 3236 - "version": "1.14.2", 3237 - "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.14.2.tgz", 3238 - "integrity": "sha512-RZHdBj9ZF4n40Rp4jS052EHHjBWf96P9oNdXPfhQTovCuWY9iQn3Gq+gOTJSgBO9A/JBuPfMOWsSX/lIU9Pc/A==", 2884 + "version": "1.14.3", 2885 + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.14.3.tgz", 2886 + "integrity": "sha512-m0K3vnbSLC5rHs2ZVfeAMvBtT1zIyq4mxx5OlNncSgMj5Iz6W5Rn3kPrDxAC+iIKmiVe0lSl6U37t5ZkEWoVAw==", 3239 2887 "license": "MIT", 3240 2888 "funding": { 3241 2889 "type": "opencollective", ··· 4154 3802 "integrity": "sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==", 4155 3803 "license": "CC0-1.0" 4156 3804 }, 3805 + "node_modules/@tabby_ai/hijri-converter": { 3806 + "version": "1.0.5", 3807 + "resolved": "https://registry.npmjs.org/@tabby_ai/hijri-converter/-/hijri-converter-1.0.5.tgz", 3808 + "integrity": "sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ==", 3809 + "license": "MIT", 3810 + "engines": { 3811 + "node": ">=16.0.0" 3812 + } 3813 + }, 4157 3814 "node_modules/@tannin/compile": { 4158 3815 "version": "1.1.0", 4159 3816 "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz", ··· 4183 3840 "version": "1.1.0", 4184 3841 "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz", 4185 3842 "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==", 3843 + "license": "MIT" 3844 + }, 3845 + "node_modules/@tannin/sprintf": { 3846 + "version": "1.3.3", 3847 + "resolved": "https://registry.npmjs.org/@tannin/sprintf/-/sprintf-1.3.3.tgz", 3848 + "integrity": "sha512-RwARl+hFwhzy0tg9atWcchLFvoQiOh4rrP7uG2N5E4W80BPCUX0ElcUR9St43fxB9EfjsW2df9Qp+UsTbvQDjA==", 4186 3849 "license": "MIT" 4187 3850 }, 4188 3851 "node_modules/@types/babel__core": { ··· 4242 3905 "license": "MIT" 4243 3906 }, 4244 3907 "node_modules/@types/gradient-parser": { 4245 - "version": "0.1.3", 4246 - "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-0.1.3.tgz", 4247 - "integrity": "sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ==", 3908 + "version": "1.1.0", 3909 + "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-1.1.0.tgz", 3910 + "integrity": "sha512-SaEcbgQscHtGJ1QL+ajgDTmmqU2f6T+00jZRcFlVHUW2Asivc84LNUev/UQFyu117AsdyrtI+qpwLvgjJXJxmw==", 4248 3911 "license": "MIT" 4249 3912 }, 4250 3913 "node_modules/@types/hast": { ··· 4296 3959 "version": "25.9.2", 4297 3960 "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.2.tgz", 4298 3961 "integrity": "sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw==", 3962 + "devOptional": true, 4299 3963 "license": "MIT", 4300 3964 "dependencies": { 4301 3965 "undici-types": ">=7.24.0 <7.24.7" ··· 4342 4006 "htmlparser2": "^10.1" 4343 4007 } 4344 4008 }, 4345 - "node_modules/@types/simple-peer": { 4346 - "version": "9.11.9", 4347 - "resolved": "https://registry.npmjs.org/@types/simple-peer/-/simple-peer-9.11.9.tgz", 4348 - "integrity": "sha512-6Gdl7TSS5oh9nuwKD4Pl8cSmaxWycYeZz9HLnJBNvIwWjZuGVsmHe9RwW3+9RxfhC1aIR9Z83DvaJoMw6rhkbg==", 4349 - "license": "MIT", 4350 - "dependencies": { 4351 - "@types/node": "*" 4352 - } 4353 - }, 4354 4009 "node_modules/@types/unist": { 4355 4010 "version": "3.0.3", 4356 4011 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", ··· 4418 4073 } 4419 4074 }, 4420 4075 "node_modules/@vitest/pretty-format": { 4421 - "version": "2.1.9", 4422 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", 4423 - "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", 4076 + "version": "2.1.8", 4077 + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", 4078 + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", 4424 4079 "dev": true, 4425 4080 "license": "MIT", 4426 4081 "dependencies": { ··· 4454 4109 "@vitest/pretty-format": "2.1.8", 4455 4110 "magic-string": "^0.30.12", 4456 4111 "pathe": "^1.1.2" 4457 - }, 4458 - "funding": { 4459 - "url": "https://opencollective.com/vitest" 4460 - } 4461 - }, 4462 - "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { 4463 - "version": "2.1.8", 4464 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", 4465 - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", 4466 - "dev": true, 4467 - "license": "MIT", 4468 - "dependencies": { 4469 - "tinyrainbow": "^1.2.0" 4470 4112 }, 4471 4113 "funding": { 4472 4114 "url": "https://opencollective.com/vitest" ··· 4494 4136 "dependencies": { 4495 4137 "@vitest/pretty-format": "2.1.8", 4496 4138 "loupe": "^3.1.2", 4497 - "tinyrainbow": "^1.2.0" 4498 - }, 4499 - "funding": { 4500 - "url": "https://opencollective.com/vitest" 4501 - } 4502 - }, 4503 - "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": { 4504 - "version": "2.1.8", 4505 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", 4506 - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", 4507 - "dev": true, 4508 - "license": "MIT", 4509 - "dependencies": { 4510 4139 "tinyrainbow": "^1.2.0" 4511 4140 }, 4512 4141 "funding": { ··· 4619 4248 "license": "MIT" 4620 4249 }, 4621 4250 "node_modules/@wordpress/a11y": { 4622 - "version": "4.24.0", 4623 - "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.24.0.tgz", 4624 - "integrity": "sha512-Iv6/f9u94wKZHzbhyIqI1k6Q2Vl6Fv2da5MpuBC6o49Sykx2uy8/+ch00k+1KDXmgS4PhqqcQb8RMg5C4c/dpw==", 4625 - "license": "GPL-2.0-or-later", 4626 - "dependencies": { 4627 - "@babel/runtime": "7.25.7", 4628 - "@wordpress/dom-ready": "^4.24.0", 4629 - "@wordpress/i18n": "^5.24.0" 4630 - }, 4631 - "engines": { 4632 - "node": ">=18.12.0", 4633 - "npm": ">=8.19.2" 4634 - } 4635 - }, 4636 - "node_modules/@wordpress/annotations": { 4637 - "version": "3.24.0", 4638 - "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-3.24.0.tgz", 4639 - "integrity": "sha512-UiULC0HsEP2cneiwn/YfwpX8czWHVNWLXSLHgpR4TgWjafk9xXY5nymFeJdf69t2+5/9bU+0ihTGV0AkpjQfZQ==", 4251 + "version": "4.48.1", 4252 + "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.48.1.tgz", 4253 + "integrity": "sha512-BPU7wRoz2XRmP3ZgVtENPKS4iO5/+bKNid/xLrvD6cP1qMhIGowQsBNqmkP1V5+q71hQM/ID6tpFjeLhmogfPg==", 4640 4254 "license": "GPL-2.0-or-later", 4641 4255 "dependencies": { 4642 - "@babel/runtime": "7.25.7", 4643 - "@wordpress/data": "^10.24.0", 4644 - "@wordpress/hooks": "^4.24.0", 4645 - "@wordpress/i18n": "^5.24.0", 4646 - "@wordpress/rich-text": "^7.24.0", 4647 - "uuid": "^9.0.1" 4256 + "@wordpress/dom-ready": "^4.48.1", 4257 + "@wordpress/i18n": "^6.21.1" 4648 4258 }, 4649 4259 "engines": { 4650 4260 "node": ">=18.12.0", 4651 4261 "npm": ">=8.19.2" 4652 - }, 4653 - "peerDependencies": { 4654 - "react": "^18.0.0" 4655 4262 } 4656 4263 }, 4657 4264 "node_modules/@wordpress/api-fetch": { 4658 - "version": "7.24.0", 4659 - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-7.24.0.tgz", 4660 - "integrity": "sha512-2JGfSH4HW2j3avjH4ERTcvTRKFwuxlI57rw4JuSVPg2OOgHBqUHAXeJW6wzzM3IDjlgUWSd42QcWiyPuCtYy0A==", 4265 + "version": "7.48.1", 4266 + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-7.48.1.tgz", 4267 + "integrity": "sha512-RyEEY5C1XGLxJnluYFGVz4xFiw0jFjwL9Oiu4rDZjCGcxyu0sD6HPBcG6sIRpFKv062cwLccwpCeD8rc8U6Ctg==", 4661 4268 "license": "GPL-2.0-or-later", 4662 4269 "dependencies": { 4663 - "@babel/runtime": "7.25.7", 4664 - "@wordpress/i18n": "^5.24.0", 4665 - "@wordpress/url": "^4.24.0" 4270 + "@wordpress/i18n": "^6.21.1", 4271 + "@wordpress/private-apis": "^1.48.1", 4272 + "@wordpress/url": "^4.48.1" 4666 4273 }, 4667 4274 "engines": { 4668 4275 "node": ">=18.12.0", ··· 4670 4277 } 4671 4278 }, 4672 4279 "node_modules/@wordpress/autop": { 4673 - "version": "4.24.0", 4674 - "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-4.24.0.tgz", 4675 - "integrity": "sha512-hqJ8aLo5drl2n/sFYrkpUNh+Vt0Lbu1LC6TpOIcsauiVIFr6xPELePdKwUswrAPT0EQ/Hf7gmkysu7e05jZ21A==", 4280 + "version": "4.48.1", 4281 + "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-4.48.1.tgz", 4282 + "integrity": "sha512-vMOdHhXIv559fYsg72AnWACblxZdojIerVeWxlX7a/ptoZK8MjqA0ZVhFsHezTBqdfiFyoRtiRECSFYLXWlSZg==", 4676 4283 "license": "GPL-2.0-or-later", 4677 - "dependencies": { 4678 - "@babel/runtime": "7.25.7" 4679 - }, 4680 4284 "engines": { 4681 4285 "node": ">=18.12.0", 4682 4286 "npm": ">=8.19.2" 4683 4287 } 4684 4288 }, 4685 4289 "node_modules/@wordpress/base-styles": { 4686 - "version": "6.0.0", 4687 - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.0.0.tgz", 4688 - "integrity": "sha512-+/7ZojzWiC5TqXT6l+59NhjxPKoTALo9zkqSkphWDTkl/eNrZH7T99/btrak48sBcxmxV5SOpTe4OoV5QYl0nA==", 4290 + "version": "10.0.1", 4291 + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-10.0.1.tgz", 4292 + "integrity": "sha512-Kkayj4f6KzcMW2TFaahADE0aoDpYeqadIinvIp0hxY6+zn/uqK1Ml7x5idLZ/jbyzzbVlI31eid3HtblGY3+og==", 4689 4293 "license": "GPL-2.0-or-later", 4690 4294 "engines": { 4691 4295 "node": ">=18.12.0", ··· 4693 4297 } 4694 4298 }, 4695 4299 "node_modules/@wordpress/blob": { 4696 - "version": "4.24.0", 4697 - "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.24.0.tgz", 4698 - "integrity": "sha512-Hw1DfbGzkd6wb8tP2fqAp9KUCaN9My0CjhUGvq03fsYlGCcNlDwl/pJoBQuVWRrDc+9ZzU7Dbo8LZBADDQMC/Q==", 4300 + "version": "4.48.1", 4301 + "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.48.1.tgz", 4302 + "integrity": "sha512-iK3dtZu/UtnYpKfQ2aGZM2xrLXK5ff88QNU77XlraipaGV/C7zK2M0+sWY6cVL50TfMR7VX9prZ2XCpE5aRzSg==", 4699 4303 "license": "GPL-2.0-or-later", 4700 - "dependencies": { 4701 - "@babel/runtime": "7.25.7" 4702 - }, 4703 4304 "engines": { 4704 4305 "node": ">=18.12.0", 4705 4306 "npm": ">=8.19.2" 4706 4307 } 4707 4308 }, 4708 4309 "node_modules/@wordpress/block-editor": { 4709 - "version": "14.19.0", 4710 - "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-14.19.0.tgz", 4711 - "integrity": "sha512-08l5pLV/ARCdEg7bZsksGnMXihXZRYG5vyhtQ8zmmYRUgDJFoH0ku8edfdOurBHnpXrVqZs5NSnwiz+vxupd4g==", 4310 + "version": "15.21.1", 4311 + "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-15.21.1.tgz", 4312 + "integrity": "sha512-LCHp/NoYsR7MV0e7vPNBAgtjHqK3ST4VtduxF5nOgxl0K0zuyvDvanb14EQtY4KmR2Gjndgo72/aZ/kfdQbddg==", 4712 4313 "license": "GPL-2.0-or-later", 4713 4314 "dependencies": { 4714 - "@babel/runtime": "7.25.7", 4715 - "@emotion/react": "^11.7.1", 4716 - "@emotion/styled": "^11.6.0", 4717 4315 "@react-spring/web": "^9.4.5", 4718 - "@wordpress/a11y": "^4.24.0", 4719 - "@wordpress/api-fetch": "^7.24.0", 4720 - "@wordpress/blob": "^4.24.0", 4721 - "@wordpress/block-serialization-default-parser": "^5.24.0", 4722 - "@wordpress/blocks": "^14.13.0", 4723 - "@wordpress/commands": "^1.24.0", 4724 - "@wordpress/components": "^29.10.0", 4725 - "@wordpress/compose": "^7.24.0", 4726 - "@wordpress/data": "^10.24.0", 4727 - "@wordpress/date": "^5.24.0", 4728 - "@wordpress/deprecated": "^4.24.0", 4729 - "@wordpress/dom": "^4.24.0", 4730 - "@wordpress/element": "^6.24.0", 4731 - "@wordpress/escape-html": "^3.24.0", 4732 - "@wordpress/hooks": "^4.24.0", 4733 - "@wordpress/html-entities": "^4.24.0", 4734 - "@wordpress/i18n": "^5.24.0", 4735 - "@wordpress/icons": "^10.24.0", 4736 - "@wordpress/is-shallow-equal": "^5.24.0", 4737 - "@wordpress/keyboard-shortcuts": "^5.24.0", 4738 - "@wordpress/keycodes": "^4.24.0", 4739 - "@wordpress/notices": "^5.24.0", 4740 - "@wordpress/preferences": "^4.24.0", 4741 - "@wordpress/priority-queue": "^3.24.0", 4742 - "@wordpress/private-apis": "^1.24.0", 4743 - "@wordpress/rich-text": "^7.24.0", 4744 - "@wordpress/style-engine": "^2.24.0", 4745 - "@wordpress/token-list": "^3.24.0", 4746 - "@wordpress/upload-media": "^0.9.0", 4747 - "@wordpress/url": "^4.24.0", 4748 - "@wordpress/warning": "^3.24.0", 4749 - "@wordpress/wordcount": "^4.24.0", 4316 + "@types/react": "^18.3.27", 4317 + "@wordpress/a11y": "^4.48.1", 4318 + "@wordpress/base-styles": "^10.0.1", 4319 + "@wordpress/blob": "^4.48.1", 4320 + "@wordpress/block-serialization-default-parser": "^5.48.1", 4321 + "@wordpress/blocks": "^15.21.1", 4322 + "@wordpress/commands": "^1.48.1", 4323 + "@wordpress/components": "^35.0.1", 4324 + "@wordpress/compose": "^8.1.1", 4325 + "@wordpress/data": "^10.48.1", 4326 + "@wordpress/dataviews": "^16.0.1", 4327 + "@wordpress/date": "^5.48.1", 4328 + "@wordpress/deprecated": "^4.48.1", 4329 + "@wordpress/dom": "^4.48.1", 4330 + "@wordpress/element": "^8.0.1", 4331 + "@wordpress/escape-html": "^3.48.1", 4332 + "@wordpress/global-styles-engine": "^1.15.1", 4333 + "@wordpress/hooks": "^4.48.1", 4334 + "@wordpress/html-entities": "^4.48.1", 4335 + "@wordpress/i18n": "^6.21.1", 4336 + "@wordpress/icons": "^14.0.1", 4337 + "@wordpress/image-cropper": "^1.12.1", 4338 + "@wordpress/interactivity": "^6.48.1", 4339 + "@wordpress/is-shallow-equal": "^5.48.1", 4340 + "@wordpress/keyboard-shortcuts": "^5.48.1", 4341 + "@wordpress/keycodes": "^4.48.1", 4342 + "@wordpress/notices": "^5.48.1", 4343 + "@wordpress/preferences": "^4.48.1", 4344 + "@wordpress/priority-queue": "^3.48.1", 4345 + "@wordpress/private-apis": "^1.48.1", 4346 + "@wordpress/rich-text": "^7.48.1", 4347 + "@wordpress/style-engine": "^2.48.1", 4348 + "@wordpress/token-list": "^3.48.1", 4349 + "@wordpress/ui": "^0.15.1", 4350 + "@wordpress/upload-media": "^0.33.1", 4351 + "@wordpress/url": "^4.48.1", 4352 + "@wordpress/warning": "^3.48.1", 4353 + "@wordpress/wordcount": "^4.48.1", 4750 4354 "change-case": "^4.1.2", 4751 4355 "clsx": "^2.1.1", 4752 - "colord": "^2.7.0", 4753 - "deepmerge": "^4.3.0", 4754 - "diff": "^4.0.2", 4356 + "colord": "^2.9.3", 4357 + "deepmerge": "^4.3.1", 4358 + "diff": "^8.0.3", 4755 4359 "fast-deep-equal": "^3.1.3", 4756 4360 "memize": "^2.1.0", 4757 4361 "parsel-js": "^1.1.2", 4758 - "postcss": "^8.4.21", 4362 + "postcss": "^8.4.38", 4759 4363 "postcss-prefix-selector": "^1.16.0", 4760 4364 "postcss-urlrebase": "^1.4.0", 4761 4365 "react-autosize-textarea": "^7.1.0", 4762 - "react-easy-crop": "^5.0.6", 4366 + "react-easy-crop": "^5.4.2", 4367 + "remove-accents": "^0.5.0" 4368 + }, 4369 + "engines": { 4370 + "node": ">=18.12.0", 4371 + "npm": ">=8.19.2" 4372 + }, 4373 + "peerDependencies": { 4374 + "react": "^18.0.0", 4375 + "react-dom": "^18.0.0" 4376 + } 4377 + }, 4378 + "node_modules/@wordpress/block-editor/node_modules/@types/react": { 4379 + "version": "18.3.31", 4380 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4381 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4382 + "license": "MIT", 4383 + "dependencies": { 4384 + "@types/prop-types": "*", 4385 + "csstype": "^3.2.2" 4386 + } 4387 + }, 4388 + "node_modules/@wordpress/block-editor/node_modules/@wordpress/dataviews": { 4389 + "version": "16.0.1", 4390 + "resolved": "https://registry.npmjs.org/@wordpress/dataviews/-/dataviews-16.0.1.tgz", 4391 + "integrity": "sha512-OyDOPvtCIL0AV4wTGSrFHhBVEYwkBJvmfleSjXzGWc09u3BPIiefazoGN4GvtJPJbvieSyelXuVyN+JARIRUug==", 4392 + "license": "GPL-2.0-or-later", 4393 + "dependencies": { 4394 + "@ariakit/react": "^0.4.21", 4395 + "@types/react": "^18.3.27", 4396 + "@wordpress/base-styles": "^10.0.1", 4397 + "@wordpress/components": "^35.0.1", 4398 + "@wordpress/compose": "^8.1.1", 4399 + "@wordpress/data": "^10.48.1", 4400 + "@wordpress/date": "^5.48.1", 4401 + "@wordpress/deprecated": "^4.48.1", 4402 + "@wordpress/element": "^8.0.1", 4403 + "@wordpress/i18n": "^6.21.1", 4404 + "@wordpress/icons": "^14.0.1", 4405 + "@wordpress/keycodes": "^4.48.1", 4406 + "@wordpress/primitives": "^4.48.1", 4407 + "@wordpress/private-apis": "^1.48.1", 4408 + "@wordpress/ui": "^0.15.1", 4409 + "@wordpress/warning": "^3.48.1", 4410 + "clsx": "^2.1.1", 4411 + "colord": "^2.9.3", 4412 + "date-fns": "^4.1.0", 4413 + "deepmerge": "^4.3.1", 4414 + "fast-deep-equal": "^3.1.3", 4763 4415 "remove-accents": "^0.5.0" 4764 4416 }, 4765 4417 "engines": { ··· 4771 4423 "react-dom": "^18.0.0" 4772 4424 } 4773 4425 }, 4426 + "node_modules/@wordpress/block-editor/node_modules/@wordpress/token-list": { 4427 + "version": "3.48.1", 4428 + "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-3.48.1.tgz", 4429 + "integrity": "sha512-hFAqE8xmTpq/4IVs3AHXxVA2FTrQ2BcOQHsdXJ9kELfcazTZWZsPU2hampfIGYZzyzLnTX06dUubuuy2++LUSQ==", 4430 + "license": "GPL-2.0-or-later", 4431 + "engines": { 4432 + "node": ">=18.12.0", 4433 + "npm": ">=8.19.2" 4434 + } 4435 + }, 4774 4436 "node_modules/@wordpress/block-library": { 4775 - "version": "9.24.0", 4776 - "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-9.24.0.tgz", 4777 - "integrity": "sha512-OLzrWgst6l1xMo4I5/HtU2HBFFtvVyJy4Kg9D7byj6TS0Lm8RyBVs9uso1XIq90mZTb4d/ZHjjKrSRG9BdGmhA==", 4437 + "version": "9.48.1", 4438 + "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-9.48.1.tgz", 4439 + "integrity": "sha512-QtXvP9vIwS4Hl84n3yh/eL1t7Zo2kdu6UsGCFoRC17NaJA0Stp6jSAI7Zcr/AwSwwrQZ3zfpuTQ37qQMhAWAPw==", 4778 4440 "license": "GPL-2.0-or-later", 4779 4441 "dependencies": { 4780 - "@babel/runtime": "7.25.7", 4781 - "@wordpress/a11y": "^4.24.0", 4782 - "@wordpress/api-fetch": "^7.24.0", 4783 - "@wordpress/autop": "^4.24.0", 4784 - "@wordpress/blob": "^4.24.0", 4785 - "@wordpress/block-editor": "^14.19.0", 4786 - "@wordpress/blocks": "^14.13.0", 4787 - "@wordpress/components": "^29.10.0", 4788 - "@wordpress/compose": "^7.24.0", 4789 - "@wordpress/core-data": "^7.24.0", 4790 - "@wordpress/data": "^10.24.0", 4791 - "@wordpress/date": "^5.24.0", 4792 - "@wordpress/deprecated": "^4.24.0", 4793 - "@wordpress/dom": "^4.24.0", 4794 - "@wordpress/element": "^6.24.0", 4795 - "@wordpress/escape-html": "^3.24.0", 4796 - "@wordpress/hooks": "^4.24.0", 4797 - "@wordpress/html-entities": "^4.24.0", 4798 - "@wordpress/i18n": "^5.24.0", 4799 - "@wordpress/icons": "^10.24.0", 4800 - "@wordpress/interactivity": "^6.24.0", 4801 - "@wordpress/interactivity-router": "^2.24.0", 4802 - "@wordpress/keyboard-shortcuts": "^5.24.0", 4803 - "@wordpress/keycodes": "^4.24.0", 4804 - "@wordpress/notices": "^5.24.0", 4805 - "@wordpress/patterns": "^2.24.0", 4806 - "@wordpress/primitives": "^4.24.0", 4807 - "@wordpress/private-apis": "^1.24.0", 4808 - "@wordpress/reusable-blocks": "^5.24.0", 4809 - "@wordpress/rich-text": "^7.24.0", 4810 - "@wordpress/server-side-render": "^6.0.0", 4811 - "@wordpress/url": "^4.24.0", 4812 - "@wordpress/viewport": "^6.24.0", 4813 - "@wordpress/wordcount": "^4.24.0", 4442 + "@arraypress/waveform-player": "^1.2.1", 4443 + "@types/react": "^18.3.27", 4444 + "@wordpress/a11y": "^4.48.1", 4445 + "@wordpress/api-fetch": "^7.48.1", 4446 + "@wordpress/autop": "^4.48.1", 4447 + "@wordpress/base-styles": "^10.0.1", 4448 + "@wordpress/blob": "^4.48.1", 4449 + "@wordpress/block-editor": "^15.21.1", 4450 + "@wordpress/blocks": "^15.21.1", 4451 + "@wordpress/components": "^35.0.1", 4452 + "@wordpress/compose": "^8.1.1", 4453 + "@wordpress/core-data": "^7.48.1", 4454 + "@wordpress/data": "^10.48.1", 4455 + "@wordpress/date": "^5.48.1", 4456 + "@wordpress/deprecated": "^4.48.1", 4457 + "@wordpress/dom": "^4.48.1", 4458 + "@wordpress/element": "^8.0.1", 4459 + "@wordpress/escape-html": "^3.48.1", 4460 + "@wordpress/hooks": "^4.48.1", 4461 + "@wordpress/html-entities": "^4.48.1", 4462 + "@wordpress/i18n": "^6.21.1", 4463 + "@wordpress/icons": "^14.0.1", 4464 + "@wordpress/interactivity": "^6.48.1", 4465 + "@wordpress/interactivity-router": "^2.48.1", 4466 + "@wordpress/keyboard-shortcuts": "^5.48.1", 4467 + "@wordpress/keycodes": "^4.48.1", 4468 + "@wordpress/latex-to-mathml": "^1.16.1", 4469 + "@wordpress/notices": "^5.48.1", 4470 + "@wordpress/patterns": "^2.48.1", 4471 + "@wordpress/primitives": "^4.48.1", 4472 + "@wordpress/private-apis": "^1.48.1", 4473 + "@wordpress/reusable-blocks": "^5.48.1", 4474 + "@wordpress/rich-text": "^7.48.1", 4475 + "@wordpress/server-side-render": "^6.24.1", 4476 + "@wordpress/shortcode": "^4.48.1", 4477 + "@wordpress/ui": "^0.15.1", 4478 + "@wordpress/upload-media": "^0.33.1", 4479 + "@wordpress/url": "^4.48.1", 4480 + "@wordpress/viewport": "^6.48.1", 4481 + "@wordpress/wordcount": "^4.48.1", 4814 4482 "change-case": "^4.1.2", 4815 4483 "clsx": "^2.1.1", 4816 - "colord": "^2.7.0", 4817 - "escape-html": "^1.0.3", 4484 + "colord": "^2.9.3", 4818 4485 "fast-average-color": "^9.1.1", 4819 4486 "fast-deep-equal": "^3.1.3", 4487 + "html-react-parser": "^5.2.11", 4820 4488 "memize": "^2.1.0", 4821 4489 "remove-accents": "^0.5.0", 4822 - "uuid": "^9.0.1" 4490 + "uuid": "^14.0.0" 4491 + }, 4492 + "engines": { 4493 + "node": ">=18.12.0", 4494 + "npm": ">=8.19.2" 4495 + }, 4496 + "peerDependencies": { 4497 + "react": "^18.0.0", 4498 + "react-dom": "^18.0.0" 4499 + } 4500 + }, 4501 + "node_modules/@wordpress/block-library/node_modules/@types/react": { 4502 + "version": "18.3.31", 4503 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4504 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4505 + "license": "MIT", 4506 + "dependencies": { 4507 + "@types/prop-types": "*", 4508 + "csstype": "^3.2.2" 4509 + } 4510 + }, 4511 + "node_modules/@wordpress/block-library/node_modules/@wordpress/reusable-blocks": { 4512 + "version": "5.48.1", 4513 + "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-5.48.1.tgz", 4514 + "integrity": "sha512-7QVnJlm4u8goWh/0uvmvkb96gBAG6K33WTWluWFTuBmROB3bOc7Ei2PH9brqQms+cu0HkzCQzpL0oytTpFNf2g==", 4515 + "license": "GPL-2.0-or-later", 4516 + "dependencies": { 4517 + "@wordpress/base-styles": "^10.0.1", 4518 + "@wordpress/block-editor": "^15.21.1", 4519 + "@wordpress/blocks": "^15.21.1", 4520 + "@wordpress/components": "^35.0.1", 4521 + "@wordpress/core-data": "^7.48.1", 4522 + "@wordpress/data": "^10.48.1", 4523 + "@wordpress/element": "^8.0.1", 4524 + "@wordpress/i18n": "^6.21.1", 4525 + "@wordpress/icons": "^14.0.1", 4526 + "@wordpress/notices": "^5.48.1", 4527 + "@wordpress/private-apis": "^1.48.1", 4528 + "@wordpress/url": "^4.48.1" 4823 4529 }, 4824 4530 "engines": { 4825 4531 "node": ">=18.12.0", ··· 4830 4536 "react-dom": "^18.0.0" 4831 4537 } 4832 4538 }, 4833 - "node_modules/@wordpress/block-serialization-default-parser": { 4834 - "version": "5.24.0", 4835 - "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-5.24.0.tgz", 4836 - "integrity": "sha512-7lJVcG8N6Gcepyf0hPA/hDNUDp3cEca9ARtI+cb3l1ymAgEOJqTEqXv7B/BusT098LgWdM2QpPFBjfFSXNmxcw==", 4539 + "node_modules/@wordpress/block-library/node_modules/@wordpress/server-side-render": { 4540 + "version": "6.24.1", 4541 + "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-6.24.1.tgz", 4542 + "integrity": "sha512-ZlmtAdJQ3QEmNlvbpfdD0f0mq/eesSMziqKYvmnjS3eS6t12/S7a7fIiOpKxvRzHzgtRi/f+8u4f+IEoPJm8hA==", 4837 4543 "license": "GPL-2.0-or-later", 4838 4544 "dependencies": { 4839 - "@babel/runtime": "7.25.7" 4545 + "@types/react": "^18.3.27", 4546 + "@wordpress/api-fetch": "^7.48.1", 4547 + "@wordpress/blocks": "^15.21.1", 4548 + "@wordpress/components": "^35.0.1", 4549 + "@wordpress/compose": "^8.1.1", 4550 + "@wordpress/data": "^10.48.1", 4551 + "@wordpress/deprecated": "^4.48.1", 4552 + "@wordpress/element": "^8.0.1", 4553 + "@wordpress/i18n": "^6.21.1", 4554 + "@wordpress/url": "^4.48.1" 4840 4555 }, 4841 4556 "engines": { 4842 4557 "node": ">=18.12.0", 4843 4558 "npm": ">=8.19.2" 4559 + }, 4560 + "peerDependencies": { 4561 + "react": "^18.0.0", 4562 + "react-dom": "^18.0.0" 4844 4563 } 4845 4564 }, 4846 - "node_modules/@wordpress/block-serialization-spec-parser": { 4847 - "version": "5.24.0", 4848 - "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-spec-parser/-/block-serialization-spec-parser-5.24.0.tgz", 4849 - "integrity": "sha512-QCn3MoVd8cYFIo4Oivthqh7jK4wndwZf+5M9Xsw/I96iaoxOTPf7w87FwkiFu6QeVhqpuTQRU3HXk75p3umlBg==", 4565 + "node_modules/@wordpress/block-library/node_modules/@wordpress/viewport": { 4566 + "version": "6.48.1", 4567 + "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-6.48.1.tgz", 4568 + "integrity": "sha512-W/bpuh4ndoNUdH2Cfuq2N+vBWU5mSyPdG5bQOaHeK31c2YQfti/3sQTbGZ9h+wHCoUGfI1az87kimPMbqr9GqQ==", 4850 4569 "license": "GPL-2.0-or-later", 4851 4570 "dependencies": { 4852 - "pegjs": "^0.10.0", 4853 - "phpegjs": "^1.0.0-beta7" 4571 + "@types/react": "^18.3.27", 4572 + "@wordpress/compose": "^8.1.1", 4573 + "@wordpress/data": "^10.48.1", 4574 + "@wordpress/element": "^8.0.1" 4854 4575 }, 4855 4576 "engines": { 4856 4577 "node": ">=18.12.0", 4857 4578 "npm": ">=8.19.2" 4579 + }, 4580 + "peerDependencies": { 4581 + "react": "^18.0.0" 4582 + } 4583 + }, 4584 + "node_modules/@wordpress/block-serialization-default-parser": { 4585 + "version": "5.48.1", 4586 + "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-5.48.1.tgz", 4587 + "integrity": "sha512-REsjN6tT2lXekrjuiu2O0+FYW13QHhy23j7C458zzSjpYcxROtl/T8AozOJYRvG9SkdC9Og3PkEP/9/nGC4IVw==", 4588 + "license": "GPL-2.0-or-later", 4589 + "engines": { 4590 + "node": ">=18.12.0", 4591 + "npm": ">=8.19.2" 4858 4592 } 4859 4593 }, 4860 4594 "node_modules/@wordpress/blocks": { 4861 - "version": "14.13.0", 4862 - "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-14.13.0.tgz", 4863 - "integrity": "sha512-Hu2inKZzDZu/mL2Eu2FsWzG7xOBFTpafj8NCXisjdDoUs2uEnEpr1KpDO7w55c3Txh1LaEYA5YinVx6Fh2bxHw==", 4595 + "version": "15.21.1", 4596 + "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-15.21.1.tgz", 4597 + "integrity": "sha512-9VOQGCuDbmyBEp7/+HNgLKscOJfrqMEV6LYpOjF+LehZ7RwolqR03UGuU+xLSPKSVZw0wvmA0SjTm3a2GBxwjg==", 4864 4598 "license": "GPL-2.0-or-later", 4865 4599 "dependencies": { 4866 - "@babel/runtime": "7.25.7", 4867 - "@wordpress/autop": "^4.24.0", 4868 - "@wordpress/blob": "^4.24.0", 4869 - "@wordpress/block-serialization-default-parser": "^5.24.0", 4870 - "@wordpress/data": "^10.24.0", 4871 - "@wordpress/deprecated": "^4.24.0", 4872 - "@wordpress/dom": "^4.24.0", 4873 - "@wordpress/element": "^6.24.0", 4874 - "@wordpress/hooks": "^4.24.0", 4875 - "@wordpress/html-entities": "^4.24.0", 4876 - "@wordpress/i18n": "^5.24.0", 4877 - "@wordpress/is-shallow-equal": "^5.24.0", 4878 - "@wordpress/private-apis": "^1.24.0", 4879 - "@wordpress/rich-text": "^7.24.0", 4880 - "@wordpress/shortcode": "^4.24.0", 4881 - "@wordpress/warning": "^3.24.0", 4600 + "@types/react": "^18.3.27", 4601 + "@wordpress/autop": "^4.48.1", 4602 + "@wordpress/blob": "^4.48.1", 4603 + "@wordpress/block-serialization-default-parser": "^5.48.1", 4604 + "@wordpress/data": "^10.48.1", 4605 + "@wordpress/deprecated": "^4.48.1", 4606 + "@wordpress/dom": "^4.48.1", 4607 + "@wordpress/element": "^8.0.1", 4608 + "@wordpress/hooks": "^4.48.1", 4609 + "@wordpress/html-entities": "^4.48.1", 4610 + "@wordpress/i18n": "^6.21.1", 4611 + "@wordpress/is-shallow-equal": "^5.48.1", 4612 + "@wordpress/private-apis": "^1.48.1", 4613 + "@wordpress/rich-text": "^7.48.1", 4614 + "@wordpress/shortcode": "^4.48.1", 4615 + "@wordpress/warning": "^3.48.1", 4882 4616 "change-case": "^4.1.2", 4883 - "colord": "^2.7.0", 4617 + "colord": "^2.9.3", 4884 4618 "fast-deep-equal": "^3.1.3", 4885 4619 "hpq": "^1.3.0", 4886 4620 "is-plain-object": "^5.0.0", ··· 4889 4623 "remove-accents": "^0.5.0", 4890 4624 "showdown": "^1.9.1", 4891 4625 "simple-html-tokenizer": "^0.5.7", 4892 - "uuid": "^9.0.1" 4626 + "uuid": "^14.0.0" 4893 4627 }, 4894 4628 "engines": { 4895 4629 "node": ">=18.12.0", ··· 4899 4633 "react": "^18.0.0" 4900 4634 } 4901 4635 }, 4636 + "node_modules/@wordpress/blocks/node_modules/@types/react": { 4637 + "version": "18.3.31", 4638 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4639 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4640 + "license": "MIT", 4641 + "dependencies": { 4642 + "@types/prop-types": "*", 4643 + "csstype": "^3.2.2" 4644 + } 4645 + }, 4902 4646 "node_modules/@wordpress/commands": { 4903 - "version": "1.24.0", 4904 - "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-1.24.0.tgz", 4905 - "integrity": "sha512-MlhiWsy7Ve45dIV/QAZL6QfywK7OetijidAA5/4ZZTclY3a2OPvBmbGnW3n1wmrI60w3NKj2yJG+df+NOkHqgg==", 4647 + "version": "1.48.1", 4648 + "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-1.48.1.tgz", 4649 + "integrity": "sha512-yFmQ2yB4tOWPqhO+tE8uYyFqcGwxtOJ9uc1yHYfH40oMls3p+TswktsdbBM2gEmoYxfD+d3Nhp/mXGS38pdTdw==", 4906 4650 "license": "GPL-2.0-or-later", 4907 4651 "dependencies": { 4908 - "@babel/runtime": "7.25.7", 4909 - "@wordpress/components": "^29.10.0", 4910 - "@wordpress/data": "^10.24.0", 4911 - "@wordpress/element": "^6.24.0", 4912 - "@wordpress/i18n": "^5.24.0", 4913 - "@wordpress/icons": "^10.24.0", 4914 - "@wordpress/keyboard-shortcuts": "^5.24.0", 4915 - "@wordpress/private-apis": "^1.24.0", 4652 + "@wordpress/base-styles": "^10.0.1", 4653 + "@wordpress/components": "^35.0.1", 4654 + "@wordpress/data": "^10.48.1", 4655 + "@wordpress/element": "^8.0.1", 4656 + "@wordpress/i18n": "^6.21.1", 4657 + "@wordpress/icons": "^14.0.1", 4658 + "@wordpress/keyboard-shortcuts": "^5.48.1", 4659 + "@wordpress/preferences": "^4.48.1", 4660 + "@wordpress/private-apis": "^1.48.1", 4661 + "@wordpress/warning": "^3.48.1", 4916 4662 "clsx": "^2.1.1", 4917 4663 "cmdk": "^1.0.0" 4918 4664 }, ··· 4926 4672 } 4927 4673 }, 4928 4674 "node_modules/@wordpress/components": { 4929 - "version": "29.10.0", 4930 - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-29.10.0.tgz", 4931 - "integrity": "sha512-PvEKB8E/bOxdmZkVENxyStAUck4TEJYnEKtEv/03HQ0NYmIVWewseSzVujb6ceKmxXSR49Ob0o69TIOm4to2eQ==", 4675 + "version": "35.0.1", 4676 + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-35.0.1.tgz", 4677 + "integrity": "sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A==", 4932 4678 "license": "GPL-2.0-or-later", 4933 4679 "dependencies": { 4934 - "@ariakit/react": "^0.4.15", 4935 - "@babel/runtime": "7.25.7", 4936 - "@emotion/cache": "^11.7.1", 4937 - "@emotion/css": "^11.7.1", 4938 - "@emotion/react": "^11.7.1", 4939 - "@emotion/serialize": "^1.0.2", 4940 - "@emotion/styled": "^11.6.0", 4941 - "@emotion/utils": "^1.0.0", 4680 + "@ariakit/react": "^0.4.21", 4681 + "@date-fns/utc": "^2.1.1", 4682 + "@emotion/cache": "^11.14.0", 4683 + "@emotion/css": "^11.13.5", 4684 + "@emotion/react": "^11.14.0", 4685 + "@emotion/serialize": "^1.3.3", 4686 + "@emotion/styled": "^11.14.1", 4687 + "@emotion/utils": "^1.4.2", 4942 4688 "@floating-ui/react-dom": "^2.0.8", 4943 - "@types/gradient-parser": "0.1.3", 4944 - "@types/highlight-words-core": "1.2.1", 4689 + "@types/gradient-parser": "^1.1.0", 4690 + "@types/highlight-words-core": "^1.2.1", 4691 + "@types/react": "^18.3.27", 4945 4692 "@use-gesture/react": "^10.3.1", 4946 - "@wordpress/a11y": "^4.24.0", 4947 - "@wordpress/compose": "^7.24.0", 4948 - "@wordpress/date": "^5.24.0", 4949 - "@wordpress/deprecated": "^4.24.0", 4950 - "@wordpress/dom": "^4.24.0", 4951 - "@wordpress/element": "^6.24.0", 4952 - "@wordpress/escape-html": "^3.24.0", 4953 - "@wordpress/hooks": "^4.24.0", 4954 - "@wordpress/html-entities": "^4.24.0", 4955 - "@wordpress/i18n": "^5.24.0", 4956 - "@wordpress/icons": "^10.24.0", 4957 - "@wordpress/is-shallow-equal": "^5.24.0", 4958 - "@wordpress/keycodes": "^4.24.0", 4959 - "@wordpress/primitives": "^4.24.0", 4960 - "@wordpress/private-apis": "^1.24.0", 4961 - "@wordpress/rich-text": "^7.24.0", 4962 - "@wordpress/warning": "^3.24.0", 4693 + "@wordpress/a11y": "^4.48.1", 4694 + "@wordpress/base-styles": "^10.0.1", 4695 + "@wordpress/compose": "^8.1.1", 4696 + "@wordpress/date": "^5.48.1", 4697 + "@wordpress/deprecated": "^4.48.1", 4698 + "@wordpress/dom": "^4.48.1", 4699 + "@wordpress/element": "^8.0.1", 4700 + "@wordpress/escape-html": "^3.48.1", 4701 + "@wordpress/hooks": "^4.48.1", 4702 + "@wordpress/html-entities": "^4.48.1", 4703 + "@wordpress/i18n": "^6.21.1", 4704 + "@wordpress/icons": "^14.0.1", 4705 + "@wordpress/is-shallow-equal": "^5.48.1", 4706 + "@wordpress/keycodes": "^4.48.1", 4707 + "@wordpress/primitives": "^4.48.1", 4708 + "@wordpress/private-apis": "^1.48.1", 4709 + "@wordpress/rich-text": "^7.48.1", 4710 + "@wordpress/style-runtime": "^0.4.1", 4711 + "@wordpress/ui": "^0.15.1", 4712 + "@wordpress/warning": "^3.48.1", 4963 4713 "change-case": "^4.1.2", 4964 4714 "clsx": "^2.1.1", 4965 - "colord": "^2.7.0", 4966 - "date-fns": "^3.6.0", 4967 - "deepmerge": "^4.3.0", 4715 + "colord": "^2.9.3", 4716 + "csstype": "^3.2.3", 4717 + "date-fns": "^4.1.0", 4718 + "deepmerge": "^4.3.1", 4968 4719 "fast-deep-equal": "^3.1.3", 4969 - "framer-motion": "^11.1.9", 4970 - "gradient-parser": "1.0.2", 4720 + "framer-motion": "^11.15.0", 4721 + "gradient-parser": "^1.1.1", 4971 4722 "highlight-words-core": "^1.2.2", 4972 4723 "is-plain-object": "^5.0.0", 4973 4724 "memize": "^2.1.0", 4974 4725 "path-to-regexp": "^6.2.1", 4975 4726 "re-resizable": "^6.4.0", 4976 - "react-colorful": "^5.3.1", 4727 + "react-colorful": "^5.6.1", 4728 + "react-day-picker": "^9.7.0", 4977 4729 "remove-accents": "^0.5.0", 4978 - "uuid": "^9.0.1" 4730 + "uuid": "^14.0.0" 4979 4731 }, 4980 4732 "engines": { 4981 4733 "node": ">=18.12.0", ··· 4986 4738 "react-dom": "^18.0.0" 4987 4739 } 4988 4740 }, 4741 + "node_modules/@wordpress/components/node_modules/@types/react": { 4742 + "version": "18.3.31", 4743 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4744 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4745 + "license": "MIT", 4746 + "dependencies": { 4747 + "@types/prop-types": "*", 4748 + "csstype": "^3.2.2" 4749 + } 4750 + }, 4989 4751 "node_modules/@wordpress/compose": { 4990 - "version": "7.24.0", 4991 - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.24.0.tgz", 4992 - "integrity": "sha512-mM7WNTZrmq3Cy2vvZmkxpNYWtwg9NlviIEbnhQUMY5LJUXEa8/jN7pLfPwQ8AYAKilO0FAPv3Yrt82jEKOv1YQ==", 4752 + "version": "8.1.1", 4753 + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.1.1.tgz", 4754 + "integrity": "sha512-AEC9yOS5CuTk34F+oiWebhQrxgICnb/v/KScQBUVm6zbs1AMFtu5ku+Zk0A3YTD0tO/hNzXLbvsXhJdh1bGkRA==", 4993 4755 "license": "GPL-2.0-or-later", 4994 4756 "dependencies": { 4995 - "@babel/runtime": "7.25.7", 4996 4757 "@types/mousetrap": "^1.6.8", 4997 - "@wordpress/deprecated": "^4.24.0", 4998 - "@wordpress/dom": "^4.24.0", 4999 - "@wordpress/element": "^6.24.0", 5000 - "@wordpress/is-shallow-equal": "^5.24.0", 5001 - "@wordpress/keycodes": "^4.24.0", 5002 - "@wordpress/priority-queue": "^3.24.0", 5003 - "@wordpress/undo-manager": "^1.24.0", 4758 + "@types/react": "^18.3.27", 4759 + "@wordpress/deprecated": "^4.48.1", 4760 + "@wordpress/dom": "^4.48.1", 4761 + "@wordpress/element": "^8.0.1", 4762 + "@wordpress/is-shallow-equal": "^5.48.1", 4763 + "@wordpress/keycodes": "^4.48.1", 4764 + "@wordpress/priority-queue": "^3.48.1", 4765 + "@wordpress/private-apis": "^1.48.1", 4766 + "@wordpress/undo-manager": "^1.48.1", 5004 4767 "change-case": "^4.1.2", 5005 - "clipboard": "^2.0.11", 5006 4768 "mousetrap": "^1.6.5", 5007 4769 "use-memo-one": "^1.1.1" 5008 4770 }, ··· 5014 4776 "react": "^18.0.0" 5015 4777 } 5016 4778 }, 5017 - "node_modules/@wordpress/core-commands": { 5018 - "version": "1.24.0", 5019 - "resolved": "https://registry.npmjs.org/@wordpress/core-commands/-/core-commands-1.24.0.tgz", 5020 - "integrity": "sha512-phwABRznx5M5CVj69/Od0SRRnyNWf3+FfjphHnVLjLfAvnuA/1EQdM6TosaYimwAh2Dm8XmU9AARpJaLh2jHRA==", 5021 - "license": "GPL-2.0-or-later", 4779 + "node_modules/@wordpress/compose/node_modules/@types/react": { 4780 + "version": "18.3.31", 4781 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4782 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4783 + "license": "MIT", 5022 4784 "dependencies": { 5023 - "@babel/runtime": "7.25.7", 5024 - "@wordpress/block-editor": "^14.19.0", 5025 - "@wordpress/commands": "^1.24.0", 5026 - "@wordpress/compose": "^7.24.0", 5027 - "@wordpress/core-data": "^7.24.0", 5028 - "@wordpress/data": "^10.24.0", 5029 - "@wordpress/element": "^6.24.0", 5030 - "@wordpress/html-entities": "^4.24.0", 5031 - "@wordpress/i18n": "^5.24.0", 5032 - "@wordpress/icons": "^10.24.0", 5033 - "@wordpress/notices": "^5.24.0", 5034 - "@wordpress/private-apis": "^1.24.0", 5035 - "@wordpress/router": "^1.24.0", 5036 - "@wordpress/url": "^4.24.0" 5037 - }, 5038 - "engines": { 5039 - "node": ">=18.12.0", 5040 - "npm": ">=8.19.2" 5041 - }, 5042 - "peerDependencies": { 5043 - "react": "^18.0.0", 5044 - "react-dom": "^18.0.0" 4785 + "@types/prop-types": "*", 4786 + "csstype": "^3.2.2" 5045 4787 } 5046 4788 }, 5047 4789 "node_modules/@wordpress/core-data": { 5048 - "version": "7.24.0", 5049 - "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-7.24.0.tgz", 5050 - "integrity": "sha512-4UZOYRnmN89VTMC0Fc9vpLF3xGaE10qbKFMjmR0qS3IxBlCsGviX6oloH9WvkQyJG4aIeSK71DaRKKmnFtb3Hg==", 4790 + "version": "7.48.1", 4791 + "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-7.48.1.tgz", 4792 + "integrity": "sha512-ITnh9M8RStzvl4+zSlz0ORPWih3VXChN5X+hYEHj80KlB+pBBOuE+JghTPF3wYEH/VmYxDV1IJmsuOC2luor+w==", 5051 4793 "license": "GPL-2.0-or-later", 5052 4794 "dependencies": { 5053 - "@babel/runtime": "7.25.7", 5054 - "@wordpress/api-fetch": "^7.24.0", 5055 - "@wordpress/block-editor": "^14.19.0", 5056 - "@wordpress/blocks": "^14.13.0", 5057 - "@wordpress/compose": "^7.24.0", 5058 - "@wordpress/data": "^10.24.0", 5059 - "@wordpress/deprecated": "^4.24.0", 5060 - "@wordpress/element": "^6.24.0", 5061 - "@wordpress/html-entities": "^4.24.0", 5062 - "@wordpress/i18n": "^5.24.0", 5063 - "@wordpress/is-shallow-equal": "^5.24.0", 5064 - "@wordpress/private-apis": "^1.24.0", 5065 - "@wordpress/rich-text": "^7.24.0", 5066 - "@wordpress/sync": "^1.24.0", 5067 - "@wordpress/undo-manager": "^1.24.0", 5068 - "@wordpress/url": "^4.24.0", 5069 - "@wordpress/warning": "^3.24.0", 4795 + "@types/react": "^18.3.27", 4796 + "@wordpress/api-fetch": "^7.48.1", 4797 + "@wordpress/block-editor": "^15.21.1", 4798 + "@wordpress/blocks": "^15.21.1", 4799 + "@wordpress/compose": "^8.1.1", 4800 + "@wordpress/data": "^10.48.1", 4801 + "@wordpress/deprecated": "^4.48.1", 4802 + "@wordpress/element": "^8.0.1", 4803 + "@wordpress/html-entities": "^4.48.1", 4804 + "@wordpress/i18n": "^6.21.1", 4805 + "@wordpress/is-shallow-equal": "^5.48.1", 4806 + "@wordpress/private-apis": "^1.48.1", 4807 + "@wordpress/rich-text": "^7.48.1", 4808 + "@wordpress/sync": "^1.48.1", 4809 + "@wordpress/undo-manager": "^1.48.1", 4810 + "@wordpress/url": "^4.48.1", 4811 + "@wordpress/warning": "^3.48.1", 5070 4812 "change-case": "^4.1.2", 5071 4813 "equivalent-key-map": "^0.2.2", 5072 4814 "fast-deep-equal": "^3.1.3", 5073 4815 "memize": "^2.1.0", 5074 - "uuid": "^9.0.1" 4816 + "uuid": "^14.0.0" 5075 4817 }, 5076 4818 "engines": { 5077 4819 "node": ">=18.12.0", ··· 5082 4824 "react-dom": "^18.0.0" 5083 4825 } 5084 4826 }, 4827 + "node_modules/@wordpress/core-data/node_modules/@types/react": { 4828 + "version": "18.3.31", 4829 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4830 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4831 + "license": "MIT", 4832 + "dependencies": { 4833 + "@types/prop-types": "*", 4834 + "csstype": "^3.2.2" 4835 + } 4836 + }, 5085 4837 "node_modules/@wordpress/data": { 5086 - "version": "10.24.0", 5087 - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.24.0.tgz", 5088 - "integrity": "sha512-9VipobqmWK/wqhBT/xMNV1g+SwAxzXX2N45+w+vieuVbSkXMeq3RF7OyU7dQYvNWYKAF6ApmamRaIKrS56UiLQ==", 4838 + "version": "10.48.1", 4839 + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.48.1.tgz", 4840 + "integrity": "sha512-74p4PiDLxS0SAd4tdkPEUF5rtHVtdRzoXExfhkZaumviE56tEceG07YbLjQWpZ+Vl1tZCvkyqLbMHK+Wj6ZerQ==", 5089 4841 "license": "GPL-2.0-or-later", 5090 4842 "dependencies": { 5091 - "@babel/runtime": "7.25.7", 5092 - "@wordpress/compose": "^7.24.0", 5093 - "@wordpress/deprecated": "^4.24.0", 5094 - "@wordpress/element": "^6.24.0", 5095 - "@wordpress/is-shallow-equal": "^5.24.0", 5096 - "@wordpress/priority-queue": "^3.24.0", 5097 - "@wordpress/private-apis": "^1.24.0", 5098 - "@wordpress/redux-routine": "^5.24.0", 5099 - "deepmerge": "^4.3.0", 4843 + "@types/react": "^18.3.27", 4844 + "@wordpress/compose": "^8.1.1", 4845 + "@wordpress/deprecated": "^4.48.1", 4846 + "@wordpress/element": "^8.0.1", 4847 + "@wordpress/is-shallow-equal": "^5.48.1", 4848 + "@wordpress/priority-queue": "^3.48.1", 4849 + "@wordpress/private-apis": "^1.48.1", 4850 + "@wordpress/redux-routine": "^5.48.1", 4851 + "deepmerge": "^4.3.1", 5100 4852 "equivalent-key-map": "^0.2.2", 5101 4853 "is-plain-object": "^5.0.0", 5102 4854 "is-promise": "^4.0.0", ··· 5112 4864 "react": "^18.0.0" 5113 4865 } 5114 4866 }, 5115 - "node_modules/@wordpress/data-controls": { 5116 - "version": "4.24.0", 5117 - "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-4.24.0.tgz", 5118 - "integrity": "sha512-PIRPJoDuWyvosc1XF8HOJZKA294mQjIotb0LSRDEJzz/wE6IAVDJrW2Lgm5dN3JtcUYumZmgV88sa9M0UwXfJg==", 5119 - "license": "GPL-2.0-or-later", 4867 + "node_modules/@wordpress/data/node_modules/@types/react": { 4868 + "version": "18.3.31", 4869 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4870 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4871 + "license": "MIT", 5120 4872 "dependencies": { 5121 - "@babel/runtime": "7.25.7", 5122 - "@wordpress/api-fetch": "^7.24.0", 5123 - "@wordpress/data": "^10.24.0", 5124 - "@wordpress/deprecated": "^4.24.0" 5125 - }, 5126 - "engines": { 5127 - "node": ">=18.12.0", 5128 - "npm": ">=8.19.2" 5129 - }, 5130 - "peerDependencies": { 5131 - "react": "^18.0.0" 4873 + "@types/prop-types": "*", 4874 + "csstype": "^3.2.2" 5132 4875 } 5133 4876 }, 5134 - "node_modules/@wordpress/dataviews": { 5135 - "version": "4.22.0", 5136 - "resolved": "https://registry.npmjs.org/@wordpress/dataviews/-/dataviews-4.22.0.tgz", 5137 - "integrity": "sha512-6nUE2vWjf4W0JueLhwLFyhhc+vQJWE/blavGdcpI+WfWCOTDlYPPiotIdadIwazUDFiy0Hf9VNNai0/6jAsCIw==", 4877 + "node_modules/@wordpress/data/node_modules/@wordpress/redux-routine": { 4878 + "version": "5.48.1", 4879 + "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.48.1.tgz", 4880 + "integrity": "sha512-+mUHB2DxfqGODfc9Lwdhz8D7jjojjWqhoa8w0ckUCzh84ZERiR3BcoiGhCkiWVSl9XedKu9itLFna5Q4gilEZw==", 5138 4881 "license": "GPL-2.0-or-later", 5139 4882 "dependencies": { 5140 - "@ariakit/react": "^0.4.15", 5141 - "@babel/runtime": "7.25.7", 5142 - "@wordpress/components": "^29.12.0", 5143 - "@wordpress/compose": "^7.26.0", 5144 - "@wordpress/data": "^10.26.0", 5145 - "@wordpress/element": "^6.26.0", 5146 - "@wordpress/i18n": "^5.26.0", 5147 - "@wordpress/icons": "^10.26.0", 5148 - "@wordpress/primitives": "^4.26.0", 5149 - "@wordpress/private-apis": "^1.26.0", 5150 - "@wordpress/warning": "^3.26.0", 5151 - "clsx": "^2.1.1", 5152 - "remove-accents": "^0.5.0" 4883 + "is-plain-object": "^5.0.0", 4884 + "is-promise": "^4.0.0", 4885 + "rungen": "^0.3.2" 5153 4886 }, 5154 4887 "engines": { 5155 4888 "node": ">=18.12.0", 5156 4889 "npm": ">=8.19.2" 5157 4890 }, 5158 4891 "peerDependencies": { 5159 - "react": "^18.0.0" 4892 + "redux": ">=4" 5160 4893 } 5161 4894 }, 5162 4895 "node_modules/@wordpress/date": { 5163 - "version": "5.24.0", 5164 - "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.24.0.tgz", 5165 - "integrity": "sha512-0MppCxV0GQZ6jZyfS21eCks26a4NZIDywcQf2maRVbbyRUptAxnuYCCdbXJhmDXYuNNZpZ1BoG/zzA15JIcqzA==", 4896 + "version": "5.48.1", 4897 + "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.48.1.tgz", 4898 + "integrity": "sha512-SD6AzzmxtsrTbSkZFV6nklYzYgZFDuCxX41kxRmIQGTBNP0f4DvLjwlUCpLN/lHEerctx4XdkZAghvGOHOKvbg==", 5166 4899 "license": "GPL-2.0-or-later", 5167 4900 "dependencies": { 5168 - "@babel/runtime": "7.25.7", 5169 - "@wordpress/deprecated": "^4.24.0", 4901 + "@wordpress/deprecated": "^4.48.1", 5170 4902 "moment": "^2.29.4", 5171 4903 "moment-timezone": "^0.5.40" 5172 4904 }, ··· 5176 4908 } 5177 4909 }, 5178 4910 "node_modules/@wordpress/deprecated": { 5179 - "version": "4.24.0", 5180 - "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.24.0.tgz", 5181 - "integrity": "sha512-08e4mf1H1F9yjMBn8Mh3359u6alF04D2BVCw4xWGhFcBehW1UjtTjNY6xwMXo8cy+Mx+BeAEctGwurLU1bxcqA==", 4911 + "version": "4.48.1", 4912 + "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.48.1.tgz", 4913 + "integrity": "sha512-ZfJSCxWr4Ss5qGja9W7L6+8vcrbX0n+tKDe2TrYvTq6GiqEc+0MrajIl4vi/58jhceHbSze1ITX/ocC3Ed3NLg==", 5182 4914 "license": "GPL-2.0-or-later", 5183 4915 "dependencies": { 5184 - "@babel/runtime": "7.25.7", 5185 - "@wordpress/hooks": "^4.24.0" 4916 + "@wordpress/hooks": "^4.48.1" 5186 4917 }, 5187 4918 "engines": { 5188 4919 "node": ">=18.12.0", ··· 5190 4921 } 5191 4922 }, 5192 4923 "node_modules/@wordpress/dom": { 5193 - "version": "4.24.0", 5194 - "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.24.0.tgz", 5195 - "integrity": "sha512-E5GNGcKyAH5Grrcrb37XLKkj4el20MdaSgIly9OiBvMWkRBMybU/Ug13r0Ya7Jl7YANnVebI6qpKn+RtkKf6sQ==", 4924 + "version": "4.48.1", 4925 + "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.48.1.tgz", 4926 + "integrity": "sha512-UmouS3KAAUf6q90adAM37FZ3Tq+w+5UfNVUEKRtZjzbH3gMZJTKmYXpG9dkYyLLmicXgOrcG1GQ0qTX91MjAuA==", 5196 4927 "license": "GPL-2.0-or-later", 5197 4928 "dependencies": { 5198 - "@babel/runtime": "7.25.7", 5199 - "@wordpress/deprecated": "^4.24.0" 4929 + "@wordpress/deprecated": "^4.48.1" 5200 4930 }, 5201 4931 "engines": { 5202 4932 "node": ">=18.12.0", ··· 5204 4934 } 5205 4935 }, 5206 4936 "node_modules/@wordpress/dom-ready": { 5207 - "version": "4.24.0", 5208 - "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.24.0.tgz", 5209 - "integrity": "sha512-lGPx4ZCXflOodpab/ai0yKdfjbV7vY/YjMCt85xRBUmOP93Um2fK8urGDCLOBLveTHXJuvACysS+tyE3K6TLmA==", 4937 + "version": "4.48.1", 4938 + "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.48.1.tgz", 4939 + "integrity": "sha512-EYd2H8cYSk8H3wSnTK1wTtuC+hOCmMmZrCEBWzgHevs1n3B9g0nwBafSiRWpzc0vA2vculkNNtlSfy3ByJ2hag==", 5210 4940 "license": "GPL-2.0-or-later", 5211 - "dependencies": { 5212 - "@babel/runtime": "7.25.7" 5213 - }, 5214 4941 "engines": { 5215 4942 "node": ">=18.12.0", 5216 4943 "npm": ">=8.19.2" 5217 4944 } 5218 4945 }, 5219 - "node_modules/@wordpress/edit-post": { 5220 - "version": "8.24.0", 5221 - "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-8.24.0.tgz", 5222 - "integrity": "sha512-eOx8TFf6uD7Gkk+CqW/QApV29/UfMopw3MMpSc5EgdAsmpmxzwAAsvBAnLhgsAaJiHmv6TnlVNcUKkRhdGeCnw==", 4946 + "node_modules/@wordpress/element": { 4947 + "version": "8.0.1", 4948 + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.0.1.tgz", 4949 + "integrity": "sha512-otYhxfm6ZKkcLCl/tI1rB70z6MVDvTL+RiPOWXi4qm0niJf4isSXCcB91ffj1gzJXKbEpszHfysIoU9L2gCSGQ==", 5223 4950 "license": "GPL-2.0-or-later", 5224 4951 "dependencies": { 5225 - "@babel/runtime": "7.25.7", 5226 - "@wordpress/a11y": "^4.24.0", 5227 - "@wordpress/api-fetch": "^7.24.0", 5228 - "@wordpress/block-editor": "^14.19.0", 5229 - "@wordpress/block-library": "^9.24.0", 5230 - "@wordpress/blocks": "^14.13.0", 5231 - "@wordpress/commands": "^1.24.0", 5232 - "@wordpress/components": "^29.10.0", 5233 - "@wordpress/compose": "^7.24.0", 5234 - "@wordpress/core-commands": "^1.24.0", 5235 - "@wordpress/core-data": "^7.24.0", 5236 - "@wordpress/data": "^10.24.0", 5237 - "@wordpress/deprecated": "^4.24.0", 5238 - "@wordpress/dom": "^4.24.0", 5239 - "@wordpress/editor": "^14.24.0", 5240 - "@wordpress/element": "^6.24.0", 5241 - "@wordpress/hooks": "^4.24.0", 5242 - "@wordpress/html-entities": "^4.24.0", 5243 - "@wordpress/i18n": "^5.24.0", 5244 - "@wordpress/icons": "^10.24.0", 5245 - "@wordpress/keyboard-shortcuts": "^5.24.0", 5246 - "@wordpress/keycodes": "^4.24.0", 5247 - "@wordpress/notices": "^5.24.0", 5248 - "@wordpress/plugins": "^7.24.0", 5249 - "@wordpress/preferences": "^4.24.0", 5250 - "@wordpress/private-apis": "^1.24.0", 5251 - "@wordpress/url": "^4.24.0", 5252 - "@wordpress/viewport": "^6.24.0", 5253 - "@wordpress/warning": "^3.24.0", 5254 - "@wordpress/widgets": "^4.24.0", 5255 - "clsx": "^2.1.1", 5256 - "memize": "^2.1.0" 5257 - }, 5258 - "engines": { 5259 - "node": ">=18.12.0", 5260 - "npm": ">=8.19.2" 5261 - }, 5262 - "peerDependencies": { 5263 - "react": "^18.0.0", 5264 - "react-dom": "^18.0.0" 5265 - } 5266 - }, 5267 - "node_modules/@wordpress/editor": { 5268 - "version": "14.24.0", 5269 - "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-14.24.0.tgz", 5270 - "integrity": "sha512-6TVGiNxZiTas58O8NeSXeJFlCC3973qMv/k4TFMqfkL1hhDFuxBwV02vYfwg7Il0t3sKcMVgg3pH0rIuKtpLqg==", 5271 - "license": "GPL-2.0-or-later", 5272 - "dependencies": { 5273 - "@babel/runtime": "7.25.7", 5274 - "@wordpress/a11y": "^4.24.0", 5275 - "@wordpress/api-fetch": "^7.24.0", 5276 - "@wordpress/blob": "^4.24.0", 5277 - "@wordpress/block-editor": "^14.19.0", 5278 - "@wordpress/blocks": "^14.13.0", 5279 - "@wordpress/commands": "^1.24.0", 5280 - "@wordpress/components": "^29.10.0", 5281 - "@wordpress/compose": "^7.24.0", 5282 - "@wordpress/core-data": "^7.24.0", 5283 - "@wordpress/data": "^10.24.0", 5284 - "@wordpress/dataviews": "^4.20.0", 5285 - "@wordpress/date": "^5.24.0", 5286 - "@wordpress/deprecated": "^4.24.0", 5287 - "@wordpress/dom": "^4.24.0", 5288 - "@wordpress/element": "^6.24.0", 5289 - "@wordpress/fields": "^0.16.0", 5290 - "@wordpress/hooks": "^4.24.0", 5291 - "@wordpress/html-entities": "^4.24.0", 5292 - "@wordpress/i18n": "^5.24.0", 5293 - "@wordpress/icons": "^10.24.0", 5294 - "@wordpress/interface": "^9.9.0", 5295 - "@wordpress/keyboard-shortcuts": "^5.24.0", 5296 - "@wordpress/keycodes": "^4.24.0", 5297 - "@wordpress/media-utils": "^5.24.0", 5298 - "@wordpress/notices": "^5.24.0", 5299 - "@wordpress/patterns": "^2.24.0", 5300 - "@wordpress/plugins": "^7.24.0", 5301 - "@wordpress/preferences": "^4.24.0", 5302 - "@wordpress/private-apis": "^1.24.0", 5303 - "@wordpress/reusable-blocks": "^5.24.0", 5304 - "@wordpress/rich-text": "^7.24.0", 5305 - "@wordpress/server-side-render": "^6.0.0", 5306 - "@wordpress/url": "^4.24.0", 5307 - "@wordpress/warning": "^3.24.0", 5308 - "@wordpress/wordcount": "^4.24.0", 4952 + "@types/react": "^18.3.27", 4953 + "@types/react-dom": "^18.3.1", 4954 + "@wordpress/deprecated": "^4.48.1", 4955 + "@wordpress/escape-html": "^3.48.1", 5309 4956 "change-case": "^4.1.2", 5310 - "client-zip": "^2.4.5", 5311 - "clsx": "^2.1.1", 5312 - "date-fns": "^3.6.0", 5313 - "deepmerge": "^4.3.0", 5314 - "fast-deep-equal": "^3.1.3", 5315 4957 "is-plain-object": "^5.0.0", 5316 - "memize": "^2.1.0", 5317 - "react-autosize-textarea": "^7.1.0", 5318 - "remove-accents": "^0.5.0", 5319 - "uuid": "^9.0.1" 4958 + "react": "^18.3.1", 4959 + "react-dom": "^18.3.1" 5320 4960 }, 5321 4961 "engines": { 5322 4962 "node": ">=18.12.0", 5323 4963 "npm": ">=8.19.2" 5324 - }, 5325 - "peerDependencies": { 5326 - "react": "^18.0.0", 5327 - "react-dom": "^18.0.0" 5328 4964 } 5329 4965 }, 5330 - "node_modules/@wordpress/element": { 5331 - "version": "6.24.0", 5332 - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.24.0.tgz", 5333 - "integrity": "sha512-jWje7U5n8oFYqR9Fbcs1KFicjh0846AwVSshSK+xyCNMywuNZ3G3NI7Dp7HmhXf5B8kXxGRcd1MBzVw7A3PRag==", 5334 - "license": "GPL-2.0-or-later", 4966 + "node_modules/@wordpress/element/node_modules/@types/react": { 4967 + "version": "18.3.31", 4968 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 4969 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 4970 + "license": "MIT", 5335 4971 "dependencies": { 5336 - "@babel/runtime": "7.25.7", 5337 - "@types/react": "^18.2.79", 5338 - "@types/react-dom": "^18.2.25", 5339 - "@wordpress/escape-html": "^3.24.0", 5340 - "change-case": "^4.1.2", 5341 - "is-plain-object": "^5.0.0", 5342 - "react": "^18.3.0", 5343 - "react-dom": "^18.3.0" 5344 - }, 5345 - "engines": { 5346 - "node": ">=18.12.0", 5347 - "npm": ">=8.19.2" 4972 + "@types/prop-types": "*", 4973 + "csstype": "^3.2.2" 5348 4974 } 5349 4975 }, 5350 4976 "node_modules/@wordpress/escape-html": { 5351 - "version": "3.24.0", 5352 - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.24.0.tgz", 5353 - "integrity": "sha512-UwSRTC+1XSY1oRbCiBei7Lk9WO/X8ZdUc2+3agC1MxScuMpnHGOOtyGvtFxb+39BJRZGaXSA8lquJyDOh7Nhog==", 4977 + "version": "3.48.1", 4978 + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.48.1.tgz", 4979 + "integrity": "sha512-TQJK6sBcmMA5+xMjiAFuivcZ27wUgAfVCgB/fGf7YoxVC+BnCCIanAsHgpY0d4juGUK6LXzDEhU6ZgOpGkGqIQ==", 5354 4980 "license": "GPL-2.0-or-later", 5355 - "dependencies": { 5356 - "@babel/runtime": "7.25.7" 5357 - }, 5358 4981 "engines": { 5359 4982 "node": ">=18.12.0", 5360 4983 "npm": ">=8.19.2" 5361 4984 } 5362 4985 }, 5363 - "node_modules/@wordpress/fields": { 5364 - "version": "0.16.0", 5365 - "resolved": "https://registry.npmjs.org/@wordpress/fields/-/fields-0.16.0.tgz", 5366 - "integrity": "sha512-1Rk4o7bsl5U3nwxZapRlh4Bh8Qp3Wy8GncgNDluK5qY8L8mJjy4hjOhIjTiCgbyb+iy5Bufn/LvjPcSQGpXu1g==", 4986 + "node_modules/@wordpress/format-library": { 4987 + "version": "5.48.1", 4988 + "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-5.48.1.tgz", 4989 + "integrity": "sha512-GM7ppGLzNclPHMg/sYcX1yCA0KwEwunEHm5LVaB2Y7znXaubkg/0q9IrnF5zHWvlYJpNYLIqKO2+20ui5uGm3Q==", 5367 4990 "license": "GPL-2.0-or-later", 5368 4991 "dependencies": { 5369 - "@babel/runtime": "7.25.7", 5370 - "@wordpress/api-fetch": "^7.24.0", 5371 - "@wordpress/blob": "^4.24.0", 5372 - "@wordpress/block-editor": "^14.19.0", 5373 - "@wordpress/blocks": "^14.13.0", 5374 - "@wordpress/components": "^29.10.0", 5375 - "@wordpress/compose": "^7.24.0", 5376 - "@wordpress/core-data": "^7.24.0", 5377 - "@wordpress/data": "^10.24.0", 5378 - "@wordpress/dataviews": "^4.20.0", 5379 - "@wordpress/date": "^5.24.0", 5380 - "@wordpress/element": "^6.24.0", 5381 - "@wordpress/hooks": "^4.24.0", 5382 - "@wordpress/html-entities": "^4.24.0", 5383 - "@wordpress/i18n": "^5.24.0", 5384 - "@wordpress/icons": "^10.24.0", 5385 - "@wordpress/media-utils": "^5.24.0", 5386 - "@wordpress/notices": "^5.24.0", 5387 - "@wordpress/patterns": "^2.24.0", 5388 - "@wordpress/primitives": "^4.24.0", 5389 - "@wordpress/private-apis": "^1.24.0", 5390 - "@wordpress/router": "^1.24.0", 5391 - "@wordpress/url": "^4.24.0", 5392 - "@wordpress/warning": "^3.24.0", 5393 - "change-case": "4.1.2", 5394 - "client-zip": "^2.4.5", 5395 - "clsx": "2.1.1", 5396 - "remove-accents": "^0.5.0" 4992 + "@wordpress/a11y": "^4.48.1", 4993 + "@wordpress/base-styles": "^10.0.1", 4994 + "@wordpress/block-editor": "^15.21.1", 4995 + "@wordpress/components": "^35.0.1", 4996 + "@wordpress/compose": "^8.1.1", 4997 + "@wordpress/data": "^10.48.1", 4998 + "@wordpress/element": "^8.0.1", 4999 + "@wordpress/html-entities": "^4.48.1", 5000 + "@wordpress/i18n": "^6.21.1", 5001 + "@wordpress/icons": "^14.0.1", 5002 + "@wordpress/latex-to-mathml": "^1.16.1", 5003 + "@wordpress/private-apis": "^1.48.1", 5004 + "@wordpress/rich-text": "^7.48.1", 5005 + "@wordpress/ui": "^0.15.1", 5006 + "@wordpress/url": "^4.48.1" 5397 5007 }, 5398 5008 "engines": { 5399 5009 "node": ">=18.12.0", 5400 5010 "npm": ">=8.19.2" 5401 5011 }, 5402 5012 "peerDependencies": { 5403 - "react": "^18.0.0" 5013 + "react": "^18.0.0", 5014 + "react-dom": "^18.0.0" 5404 5015 } 5405 5016 }, 5406 - "node_modules/@wordpress/format-library": { 5407 - "version": "5.24.0", 5408 - "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-5.24.0.tgz", 5409 - "integrity": "sha512-mFkdPUGk8kjoYhdhciYLiINJCD2ckEREz01G9r2ygVRe1vkIzlmVFnM72uMmAEFXimp06uMkZIG/dLry41qAvw==", 5017 + "node_modules/@wordpress/global-styles-engine": { 5018 + "version": "1.15.1", 5019 + "resolved": "https://registry.npmjs.org/@wordpress/global-styles-engine/-/global-styles-engine-1.15.1.tgz", 5020 + "integrity": "sha512-jpMnDkAE1stcoSV19hyet0b2wySMz1kaplNivruKwUyQilkQRIhqlJFiEKBVt513m9I9CbEPA0WKcTpfqJxIMA==", 5410 5021 "license": "GPL-2.0-or-later", 5411 5022 "dependencies": { 5412 - "@babel/runtime": "7.25.7", 5413 - "@wordpress/a11y": "^4.24.0", 5414 - "@wordpress/block-editor": "^14.19.0", 5415 - "@wordpress/components": "^29.10.0", 5416 - "@wordpress/compose": "^7.24.0", 5417 - "@wordpress/data": "^10.24.0", 5418 - "@wordpress/element": "^6.24.0", 5419 - "@wordpress/html-entities": "^4.24.0", 5420 - "@wordpress/i18n": "^5.24.0", 5421 - "@wordpress/icons": "^10.24.0", 5422 - "@wordpress/private-apis": "^1.24.0", 5423 - "@wordpress/rich-text": "^7.24.0", 5424 - "@wordpress/url": "^4.24.0" 5023 + "@wordpress/blocks": "^15.21.1", 5024 + "@wordpress/data": "^10.48.1", 5025 + "@wordpress/i18n": "^6.21.1", 5026 + "@wordpress/style-engine": "^2.48.1", 5027 + "colord": "^2.9.3", 5028 + "deepmerge": "^4.3.1", 5029 + "fast-deep-equal": "^3.1.3", 5030 + "is-plain-object": "^5.0.0", 5031 + "memize": "^2.1.0" 5425 5032 }, 5426 5033 "engines": { 5427 5034 "node": ">=18.12.0", 5428 5035 "npm": ">=8.19.2" 5429 - }, 5430 - "peerDependencies": { 5431 - "react": "^18.0.0", 5432 - "react-dom": "^18.0.0" 5433 5036 } 5434 5037 }, 5435 5038 "node_modules/@wordpress/hooks": { 5436 - "version": "4.24.0", 5437 - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.24.0.tgz", 5438 - "integrity": "sha512-QSnGLgs7MnDcFXgC2kctEuQXpq4lFyGHPvQa848FLPiM4HUnlUfV75rsdsOvlTGQojHD+z+LHhWl9c4SIupKiw==", 5039 + "version": "4.48.1", 5040 + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.48.1.tgz", 5041 + "integrity": "sha512-QZh3Cv9TMJkrCQikuZSsDKTgX+6BBzYJe0MFKp7yP8drj/dtRpkqo5+eYmovBq3pk+HoyP7UJ1vTOb3GPJeU6Q==", 5439 5042 "license": "GPL-2.0-or-later", 5440 - "dependencies": { 5441 - "@babel/runtime": "7.25.7" 5442 - }, 5443 5043 "engines": { 5444 5044 "node": ">=18.12.0", 5445 5045 "npm": ">=8.19.2" 5446 5046 } 5447 5047 }, 5448 5048 "node_modules/@wordpress/html-entities": { 5449 - "version": "4.24.0", 5450 - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.24.0.tgz", 5451 - "integrity": "sha512-MDA5m6JWMY2H5uilL0548IEf87uvIxBkNdI+czDBlKFKE6IaHMMIVrWGpPpB+LmjDahEvzQ5t8/NeMi2V45vRA==", 5049 + "version": "4.48.1", 5050 + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.48.1.tgz", 5051 + "integrity": "sha512-Gq6j3yl+m0pc0989jFjAgYbtdwHyUS/5PR39zg+hQfq1IWiqCwfhFlJAqc8ymwx/gSklrxf9mmyhBwmUPWtMcw==", 5452 5052 "license": "GPL-2.0-or-later", 5453 - "dependencies": { 5454 - "@babel/runtime": "7.25.7" 5455 - }, 5456 5053 "engines": { 5457 5054 "node": ">=18.12.0", 5458 5055 "npm": ">=8.19.2" 5459 5056 } 5460 5057 }, 5461 5058 "node_modules/@wordpress/i18n": { 5462 - "version": "5.24.0", 5463 - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-5.24.0.tgz", 5464 - "integrity": "sha512-o1MDZJPxZq/SPNlOY7EzKVCw32f6buZZ/VvxLXRNcC+O/bcOfvY+RQtknGRfKIKdkfLd1OS9xvjL1QikpljxwA==", 5059 + "version": "6.21.1", 5060 + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.21.1.tgz", 5061 + "integrity": "sha512-qBbDJTRCtMfEzTVtzOa/fZf8XlU/JY3nI4MSdxyRQKduFanbXvzTRqJSSEIpZS4ACJTyUqafZX8zEZIH5CrNHQ==", 5465 5062 "license": "GPL-2.0-or-later", 5466 5063 "dependencies": { 5467 - "@babel/runtime": "7.25.7", 5468 - "@wordpress/hooks": "^4.24.0", 5064 + "@tannin/sprintf": "^1.3.2", 5065 + "@wordpress/hooks": "^4.48.1", 5469 5066 "gettext-parser": "^1.3.1", 5470 5067 "memize": "^2.1.0", 5471 - "sprintf-js": "^1.1.1", 5472 5068 "tannin": "^1.2.0" 5473 5069 }, 5474 5070 "bin": { ··· 5480 5076 } 5481 5077 }, 5482 5078 "node_modules/@wordpress/icons": { 5483 - "version": "10.24.0", 5484 - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.24.0.tgz", 5485 - "integrity": "sha512-SZ+/rU8lWAGsCtNofx0/IanJ277cHVfDppgQTRaHWrl21Aka3DZn3bAMSFOKTkWyhllRSENqtObcyRV+iHq7CQ==", 5079 + "version": "14.0.1", 5080 + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-14.0.1.tgz", 5081 + "integrity": "sha512-Vf3wXrS8JWwozKGQ3vS8WQBwmzZyk0ih3W92kE+xPDK2K5QPrlW4MjbSV8gYbNAHC6NECPSWrEGI3DmbgvAP3w==", 5486 5082 "license": "GPL-2.0-or-later", 5487 5083 "dependencies": { 5488 - "@babel/runtime": "7.25.7", 5489 - "@wordpress/element": "^6.24.0", 5490 - "@wordpress/primitives": "^4.24.0" 5084 + "@types/react": "^18.3.27", 5085 + "@wordpress/element": "^8.0.1", 5086 + "@wordpress/primitives": "^4.48.1", 5087 + "change-case": "^4.1.2" 5491 5088 }, 5492 5089 "engines": { 5493 5090 "node": ">=18.12.0", 5494 5091 "npm": ">=8.19.2" 5092 + }, 5093 + "peerDependencies": { 5094 + "react": "^18.0.0" 5495 5095 } 5496 5096 }, 5497 - "node_modules/@wordpress/interactivity": { 5498 - "version": "6.24.0", 5499 - "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.24.0.tgz", 5500 - "integrity": "sha512-r2oDlmLiY0JG0vdK+vHEriUkaxdzBCAXmGsVRteHGcgA/hvkaAQUcXTl0DcSLHt4slPqnU+rmdrnxd0TdUJxzA==", 5097 + "node_modules/@wordpress/icons/node_modules/@types/react": { 5098 + "version": "18.3.31", 5099 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5100 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5101 + "license": "MIT", 5102 + "dependencies": { 5103 + "@types/prop-types": "*", 5104 + "csstype": "^3.2.2" 5105 + } 5106 + }, 5107 + "node_modules/@wordpress/image-cropper": { 5108 + "version": "1.12.1", 5109 + "resolved": "https://registry.npmjs.org/@wordpress/image-cropper/-/image-cropper-1.12.1.tgz", 5110 + "integrity": "sha512-r7t5fzUGzeCt2Pkkp6lgh/a2UKsgW+okeR7Ldw29snE96JZcjYJHyJfRfqOGFZVxrCcoDe2XaEy+Q6PdL+aJhw==", 5501 5111 "license": "GPL-2.0-or-later", 5502 5112 "dependencies": { 5503 - "@preact/signals": "^1.3.0", 5504 - "preact": "^10.24.2" 5113 + "@types/react": "^18.3.27", 5114 + "@wordpress/components": "^35.0.1", 5115 + "@wordpress/element": "^8.0.1", 5116 + "@wordpress/i18n": "^6.21.1", 5117 + "clsx": "^2.1.1", 5118 + "dequal": "^2.0.3", 5119 + "react-easy-crop": "^5.4.2" 5505 5120 }, 5506 5121 "engines": { 5507 5122 "node": ">=18.12.0", 5508 5123 "npm": ">=8.19.2" 5124 + }, 5125 + "peerDependencies": { 5126 + "react": "^18.0.0", 5127 + "react-dom": "^18.0.0" 5509 5128 } 5510 5129 }, 5511 - "node_modules/@wordpress/interactivity-router": { 5512 - "version": "2.24.0", 5513 - "resolved": "https://registry.npmjs.org/@wordpress/interactivity-router/-/interactivity-router-2.24.0.tgz", 5514 - "integrity": "sha512-d2cKZtBgeqIhs9s1czAxQQv0jwU5gnuNwNXNP85N1aDerMxnUy/G9JfpjpxwOAIXuSfkCiod+1K+KtHPBWtJTQ==", 5130 + "node_modules/@wordpress/image-cropper/node_modules/@types/react": { 5131 + "version": "18.3.31", 5132 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5133 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5134 + "license": "MIT", 5135 + "dependencies": { 5136 + "@types/prop-types": "*", 5137 + "csstype": "^3.2.2" 5138 + } 5139 + }, 5140 + "node_modules/@wordpress/interactivity": { 5141 + "version": "6.48.1", 5142 + "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.48.1.tgz", 5143 + "integrity": "sha512-Qc+VoBt2XNoOuVMZwjQtZJ8iQfh7mJsSjPlxzSMyYRHGPa+WqfWO50LY/vyXYPs5s5FoMsb3S64ty/p//1DI2w==", 5515 5144 "license": "GPL-2.0-or-later", 5516 5145 "dependencies": { 5517 - "@wordpress/a11y": "^4.24.0", 5518 - "@wordpress/interactivity": "^6.24.0" 5146 + "@preact/signals": "^1.3.0", 5147 + "preact": "^10.29.1" 5519 5148 }, 5520 5149 "engines": { 5521 5150 "node": ">=18.12.0", 5522 5151 "npm": ">=8.19.2" 5523 5152 } 5524 5153 }, 5525 - "node_modules/@wordpress/interface": { 5526 - "version": "9.9.0", 5527 - "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-9.9.0.tgz", 5528 - "integrity": "sha512-vOsMPut5rH1cxuPZixIVKVTo0KY+FFMldGChAkaCi46/WwXcRku5r4HJV541FanshOvfPVD5Defq8v8w4uvzcw==", 5154 + "node_modules/@wordpress/interactivity-router": { 5155 + "version": "2.48.1", 5156 + "resolved": "https://registry.npmjs.org/@wordpress/interactivity-router/-/interactivity-router-2.48.1.tgz", 5157 + "integrity": "sha512-bMGGPK279FzP367ro5/nMPifvurAQDEHF5sZZpt/lktRIgQ1JJfEMiKMb92Q5S71Sj2CSQMSNmxKKNGU24FilA==", 5529 5158 "license": "GPL-2.0-or-later", 5530 5159 "dependencies": { 5531 - "@babel/runtime": "7.25.7", 5532 - "@wordpress/a11y": "^4.24.0", 5533 - "@wordpress/components": "^29.10.0", 5534 - "@wordpress/compose": "^7.24.0", 5535 - "@wordpress/data": "^10.24.0", 5536 - "@wordpress/deprecated": "^4.24.0", 5537 - "@wordpress/element": "^6.24.0", 5538 - "@wordpress/i18n": "^5.24.0", 5539 - "@wordpress/icons": "^10.24.0", 5540 - "@wordpress/plugins": "^7.24.0", 5541 - "@wordpress/preferences": "^4.24.0", 5542 - "@wordpress/viewport": "^6.24.0", 5543 - "clsx": "^2.1.1" 5160 + "@wordpress/a11y": "^4.48.1", 5161 + "@wordpress/interactivity": "^6.48.1", 5162 + "es-module-lexer": "^1.5.4" 5544 5163 }, 5545 5164 "engines": { 5546 5165 "node": ">=18.12.0", 5547 5166 "npm": ">=8.19.2" 5548 - }, 5549 - "peerDependencies": { 5550 - "react": "^18.0.0", 5551 - "react-dom": "^18.0.0" 5552 5167 } 5553 5168 }, 5169 + "node_modules/@wordpress/interactivity-router/node_modules/es-module-lexer": { 5170 + "version": "1.7.0", 5171 + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", 5172 + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", 5173 + "license": "MIT" 5174 + }, 5554 5175 "node_modules/@wordpress/is-shallow-equal": { 5555 - "version": "5.24.0", 5556 - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.24.0.tgz", 5557 - "integrity": "sha512-9mnuoRJlkSJgRhoLyZI6/dogV/sK1dJeGhjb0TUnFDznqriS90toFoKJ+zgJ68KbGMFuYJMhPRBiKkZH/DQvDQ==", 5176 + "version": "5.48.1", 5177 + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.48.1.tgz", 5178 + "integrity": "sha512-qOn4doqp8Xr5vOdF7kni5BThkMLxFA9fZIUVZo/lzs+/rwV7rwdQQXtq/PXnHcOWDOqHSXBVlUciV7clDE6aeA==", 5558 5179 "license": "GPL-2.0-or-later", 5559 - "dependencies": { 5560 - "@babel/runtime": "7.25.7" 5561 - }, 5562 5180 "engines": { 5563 5181 "node": ">=18.12.0", 5564 5182 "npm": ">=8.19.2" 5565 5183 } 5566 5184 }, 5567 5185 "node_modules/@wordpress/keyboard-shortcuts": { 5568 - "version": "5.24.0", 5569 - "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.24.0.tgz", 5570 - "integrity": "sha512-KnUFBXSVklIVsi+l9Pw4oLsAJL1XcKgeHrWwkH0CPIN/1MxMh+OSil2RqYAkMdYl/oUuJlX8cqwWD+xSUDqubA==", 5186 + "version": "5.48.1", 5187 + "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.48.1.tgz", 5188 + "integrity": "sha512-HYm/Q52G5UvF4rOleWWJaRvsRjWBOyqhcCdlXXtVAWn7qEq5V2Lm5RSdI4L66EVFqRAHAPsz9ouwwiU98N5NFQ==", 5571 5189 "license": "GPL-2.0-or-later", 5572 5190 "dependencies": { 5573 - "@babel/runtime": "7.25.7", 5574 - "@wordpress/data": "^10.24.0", 5575 - "@wordpress/element": "^6.24.0", 5576 - "@wordpress/keycodes": "^4.24.0" 5191 + "@types/react": "^18.3.27", 5192 + "@wordpress/data": "^10.48.1", 5193 + "@wordpress/element": "^8.0.1", 5194 + "@wordpress/keycodes": "^4.48.1" 5577 5195 }, 5578 5196 "engines": { 5579 5197 "node": ">=18.12.0", ··· 5583 5201 "react": "^18.0.0" 5584 5202 } 5585 5203 }, 5204 + "node_modules/@wordpress/keyboard-shortcuts/node_modules/@types/react": { 5205 + "version": "18.3.31", 5206 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5207 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5208 + "license": "MIT", 5209 + "dependencies": { 5210 + "@types/prop-types": "*", 5211 + "csstype": "^3.2.2" 5212 + } 5213 + }, 5586 5214 "node_modules/@wordpress/keycodes": { 5587 - "version": "4.24.0", 5588 - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.24.0.tgz", 5589 - "integrity": "sha512-o5Dol9zyThAG8TDgx8ptJQmf7TgglHE2CB/p2HpsOflhytl1ToInwcdP+9/gLayHfs1Z7SBeEOrHlu+JTnpdHQ==", 5215 + "version": "4.48.1", 5216 + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.48.1.tgz", 5217 + "integrity": "sha512-mVNex4sY0APJj69kxFfCmaoJVOaNd9Bu7oNecuXKEAI4sp/jvvn0x+IGwLt1lMrLqC3+bPEo+q+JV3KNXMOJIQ==", 5590 5218 "license": "GPL-2.0-or-later", 5591 5219 "dependencies": { 5592 - "@babel/runtime": "7.25.7", 5593 - "@wordpress/i18n": "^5.24.0" 5220 + "@types/react": "^18.3.27", 5221 + "@wordpress/i18n": "^6.21.1" 5594 5222 }, 5595 5223 "engines": { 5596 5224 "node": ">=18.12.0", 5597 5225 "npm": ">=8.19.2" 5598 5226 } 5599 5227 }, 5600 - "node_modules/@wordpress/list-reusable-blocks": { 5601 - "version": "5.24.0", 5602 - "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-5.24.0.tgz", 5603 - "integrity": "sha512-IBvP8c/wRoSz09ogWxq0ZKTaq2oXmfkO+9AQq/b1rcPE3I3xwMhtEMvTAJZrM3Pp/fCZ/8gcsmdyjQn3jqLprw==", 5604 - "license": "GPL-2.0-or-later", 5228 + "node_modules/@wordpress/keycodes/node_modules/@types/react": { 5229 + "version": "18.3.31", 5230 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5231 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5232 + "license": "MIT", 5605 5233 "dependencies": { 5606 - "@babel/runtime": "7.25.7", 5607 - "@wordpress/api-fetch": "^7.24.0", 5608 - "@wordpress/blob": "^4.24.0", 5609 - "@wordpress/components": "^29.10.0", 5610 - "@wordpress/compose": "^7.24.0", 5611 - "@wordpress/element": "^6.24.0", 5612 - "@wordpress/i18n": "^5.24.0", 5613 - "change-case": "^4.1.2" 5614 - }, 5615 - "engines": { 5616 - "node": ">=18.12.0", 5617 - "npm": ">=8.19.2" 5618 - }, 5619 - "peerDependencies": { 5620 - "react": "^18.0.0", 5621 - "react-dom": "^18.0.0" 5234 + "@types/prop-types": "*", 5235 + "csstype": "^3.2.2" 5622 5236 } 5623 5237 }, 5624 - "node_modules/@wordpress/media-utils": { 5625 - "version": "5.24.0", 5626 - "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-5.24.0.tgz", 5627 - "integrity": "sha512-9NR/F+pPUv9GgyL9Ht3r3laA0cMXoY9rFqcqVL9jJnVHKcYKWRTF1MKVqrAvD+wS2TqO4XX38It9NDPcYfqcHA==", 5238 + "node_modules/@wordpress/latex-to-mathml": { 5239 + "version": "1.16.1", 5240 + "resolved": "https://registry.npmjs.org/@wordpress/latex-to-mathml/-/latex-to-mathml-1.16.1.tgz", 5241 + "integrity": "sha512-6/3m9muj5Y1nyyZAoelcEfDjtIZyAJFA0cmyPfZXQPieu+eAbtea2GeEIyW3m6vfyX64dylwxZuUdM9EF6OFKA==", 5628 5242 "license": "GPL-2.0-or-later", 5629 5243 "dependencies": { 5630 - "@babel/runtime": "7.25.7", 5631 - "@wordpress/api-fetch": "^7.24.0", 5632 - "@wordpress/blob": "^4.24.0", 5633 - "@wordpress/element": "^6.24.0", 5634 - "@wordpress/i18n": "^5.24.0", 5635 - "@wordpress/private-apis": "^1.24.0" 5244 + "temml": "^0.10.33" 5636 5245 }, 5637 5246 "engines": { 5638 5247 "node": ">=18.12.0", ··· 5640 5249 } 5641 5250 }, 5642 5251 "node_modules/@wordpress/notices": { 5643 - "version": "5.24.0", 5644 - "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.24.0.tgz", 5645 - "integrity": "sha512-OThFuTYJnvYlEgbigQXU2fqHKAeQ9h4dN/GXAIeDehuuqFw8GJ13JymMIlyiNO24DHP1rVHNlsXl7QBl7jlhow==", 5252 + "version": "5.48.1", 5253 + "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.48.1.tgz", 5254 + "integrity": "sha512-igkUhvyvp+C61HcE7OBiCPkPYMae8k0BQBZblepXghkX82zlqVe5NiueepWTwY7pFDDEsZlxl9sYF2DWf6HF3w==", 5646 5255 "license": "GPL-2.0-or-later", 5647 5256 "dependencies": { 5648 - "@babel/runtime": "7.25.7", 5649 - "@wordpress/a11y": "^4.24.0", 5650 - "@wordpress/data": "^10.24.0" 5257 + "@types/react": "^18.3.27", 5258 + "@wordpress/a11y": "^4.48.1", 5259 + "@wordpress/components": "^35.0.1", 5260 + "@wordpress/data": "^10.48.1", 5261 + "clsx": "^2.1.1" 5651 5262 }, 5652 5263 "engines": { 5653 5264 "node": ">=18.12.0", ··· 5657 5268 "react": "^18.0.0" 5658 5269 } 5659 5270 }, 5660 - "node_modules/@wordpress/patterns": { 5661 - "version": "2.24.0", 5662 - "resolved": "https://registry.npmjs.org/@wordpress/patterns/-/patterns-2.24.0.tgz", 5663 - "integrity": "sha512-ORPmxTzLfasCuDdDgVXJCmDVgkRSHi0xSG6KWHuOxhNktCNSJl9p5/r8kYbChjsmBPKXLSDPqIOCB1+BUTemHg==", 5664 - "license": "GPL-2.0-or-later", 5271 + "node_modules/@wordpress/notices/node_modules/@types/react": { 5272 + "version": "18.3.31", 5273 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5274 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5275 + "license": "MIT", 5665 5276 "dependencies": { 5666 - "@babel/runtime": "7.25.7", 5667 - "@wordpress/a11y": "^4.24.0", 5668 - "@wordpress/block-editor": "^14.19.0", 5669 - "@wordpress/blocks": "^14.13.0", 5670 - "@wordpress/components": "^29.10.0", 5671 - "@wordpress/compose": "^7.24.0", 5672 - "@wordpress/core-data": "^7.24.0", 5673 - "@wordpress/data": "^10.24.0", 5674 - "@wordpress/element": "^6.24.0", 5675 - "@wordpress/html-entities": "^4.24.0", 5676 - "@wordpress/i18n": "^5.24.0", 5677 - "@wordpress/icons": "^10.24.0", 5678 - "@wordpress/notices": "^5.24.0", 5679 - "@wordpress/private-apis": "^1.24.0", 5680 - "@wordpress/url": "^4.24.0" 5681 - }, 5682 - "engines": { 5683 - "node": ">=18.12.0", 5684 - "npm": ">=8.19.2" 5685 - }, 5686 - "peerDependencies": { 5687 - "react": "^18.0.0", 5688 - "react-dom": "^18.0.0" 5277 + "@types/prop-types": "*", 5278 + "csstype": "^3.2.2" 5689 5279 } 5690 5280 }, 5691 - "node_modules/@wordpress/plugins": { 5692 - "version": "7.24.0", 5693 - "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-7.24.0.tgz", 5694 - "integrity": "sha512-9DL1vZ2DqLDPU8oKNpW+prmkWCWZh8/+EGK0sIYFD7prJKJztGXRnS3lUhaNDBwTw/zWqj1i3GUzBxlZpGkKHQ==", 5281 + "node_modules/@wordpress/patterns": { 5282 + "version": "2.48.1", 5283 + "resolved": "https://registry.npmjs.org/@wordpress/patterns/-/patterns-2.48.1.tgz", 5284 + "integrity": "sha512-/Y3CgMXqGLMOBgDUeWpWm9DtK3Z3Thdwn3i83q6NLaHLx8Ihbqlva78qotrkXH3Bigj45qFC1QwYLpKneZDwKQ==", 5695 5285 "license": "GPL-2.0-or-later", 5696 5286 "dependencies": { 5697 - "@babel/runtime": "7.25.7", 5698 - "@wordpress/components": "^29.10.0", 5699 - "@wordpress/compose": "^7.24.0", 5700 - "@wordpress/deprecated": "^4.24.0", 5701 - "@wordpress/element": "^6.24.0", 5702 - "@wordpress/hooks": "^4.24.0", 5703 - "@wordpress/icons": "^10.24.0", 5704 - "@wordpress/is-shallow-equal": "^5.24.0", 5705 - "memize": "^2.0.1" 5287 + "@wordpress/a11y": "^4.48.1", 5288 + "@wordpress/base-styles": "^10.0.1", 5289 + "@wordpress/block-editor": "^15.21.1", 5290 + "@wordpress/blocks": "^15.21.1", 5291 + "@wordpress/components": "^35.0.1", 5292 + "@wordpress/compose": "^8.1.1", 5293 + "@wordpress/core-data": "^7.48.1", 5294 + "@wordpress/data": "^10.48.1", 5295 + "@wordpress/element": "^8.0.1", 5296 + "@wordpress/html-entities": "^4.48.1", 5297 + "@wordpress/i18n": "^6.21.1", 5298 + "@wordpress/icons": "^14.0.1", 5299 + "@wordpress/notices": "^5.48.1", 5300 + "@wordpress/private-apis": "^1.48.1", 5301 + "@wordpress/url": "^4.48.1" 5706 5302 }, 5707 5303 "engines": { 5708 5304 "node": ">=18.12.0", ··· 5714 5310 } 5715 5311 }, 5716 5312 "node_modules/@wordpress/preferences": { 5717 - "version": "4.24.0", 5718 - "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.24.0.tgz", 5719 - "integrity": "sha512-tJGXIuPF607bFEE8dXUsbVUX1cdyV4STv1JMOvgKNWI3GVnj9Ac58JwacMxyGKaEenB0OUOakyXnG4qlHRkVbg==", 5313 + "version": "4.48.1", 5314 + "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.48.1.tgz", 5315 + "integrity": "sha512-ETRFHFXRJ80UYXwjy5FQlAHlVZQjC3PUqvrW6KT8aJT/nsy8+uMLV0FUE1e37QqeAwdwMDj9jC/MNz0m3eRmOw==", 5720 5316 "license": "GPL-2.0-or-later", 5721 5317 "dependencies": { 5722 - "@babel/runtime": "7.25.7", 5723 - "@wordpress/a11y": "^4.24.0", 5724 - "@wordpress/components": "^29.10.0", 5725 - "@wordpress/compose": "^7.24.0", 5726 - "@wordpress/data": "^10.24.0", 5727 - "@wordpress/deprecated": "^4.24.0", 5728 - "@wordpress/element": "^6.24.0", 5729 - "@wordpress/i18n": "^5.24.0", 5730 - "@wordpress/icons": "^10.24.0", 5731 - "@wordpress/private-apis": "^1.24.0", 5318 + "@types/react": "^18.3.27", 5319 + "@wordpress/a11y": "^4.48.1", 5320 + "@wordpress/base-styles": "^10.0.1", 5321 + "@wordpress/components": "^35.0.1", 5322 + "@wordpress/compose": "^8.1.1", 5323 + "@wordpress/data": "^10.48.1", 5324 + "@wordpress/deprecated": "^4.48.1", 5325 + "@wordpress/element": "^8.0.1", 5326 + "@wordpress/i18n": "^6.21.1", 5327 + "@wordpress/icons": "^14.0.1", 5328 + "@wordpress/private-apis": "^1.48.1", 5732 5329 "clsx": "^2.1.1" 5733 5330 }, 5734 5331 "engines": { ··· 5740 5337 "react-dom": "^18.0.0" 5741 5338 } 5742 5339 }, 5340 + "node_modules/@wordpress/preferences/node_modules/@types/react": { 5341 + "version": "18.3.31", 5342 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5343 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5344 + "license": "MIT", 5345 + "dependencies": { 5346 + "@types/prop-types": "*", 5347 + "csstype": "^3.2.2" 5348 + } 5349 + }, 5743 5350 "node_modules/@wordpress/primitives": { 5744 - "version": "4.24.0", 5745 - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.24.0.tgz", 5746 - "integrity": "sha512-sR8w3FmeE48Housk1jue/GjhMrBW2OOx+lHQ+hSEqFwOk3nyUFnER70Q5WhT+PhMFrdK3hBmOH8+3p6aPQgxSA==", 5351 + "version": "4.48.1", 5352 + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.48.1.tgz", 5353 + "integrity": "sha512-nzAcsXhBxw9x2q/ImVa45Ft80TO+e/WgCDmWaU3Zb2trogwThxZTezkE0oeQ6PSxSeGYM6nBgk+qqFCG8wyMhQ==", 5747 5354 "license": "GPL-2.0-or-later", 5748 5355 "dependencies": { 5749 - "@babel/runtime": "7.25.7", 5750 - "@wordpress/element": "^6.24.0", 5356 + "@types/react": "^18.3.27", 5357 + "@wordpress/element": "^8.0.1", 5751 5358 "clsx": "^2.1.1" 5752 5359 }, 5753 5360 "engines": { ··· 5758 5365 "react": "^18.0.0" 5759 5366 } 5760 5367 }, 5368 + "node_modules/@wordpress/primitives/node_modules/@types/react": { 5369 + "version": "18.3.31", 5370 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5371 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5372 + "license": "MIT", 5373 + "dependencies": { 5374 + "@types/prop-types": "*", 5375 + "csstype": "^3.2.2" 5376 + } 5377 + }, 5761 5378 "node_modules/@wordpress/priority-queue": { 5762 - "version": "3.24.0", 5763 - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.24.0.tgz", 5764 - "integrity": "sha512-vF5HCXVdasObLxNIsYbmR/P3VpWs8lZoPvBAY7HJD5F2dtwhp2P5ycsi1neD+zjs6Pq3PW3cA4Shl7d35A9ucA==", 5379 + "version": "3.48.1", 5380 + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.48.1.tgz", 5381 + "integrity": "sha512-6nPO/FU1f9r9Zilaz7TOFSTIH5ojPqk/mmDFofo0h2kIljqik/mLwBOIls6WdDrQ2kti+BRNohbjGElAcws7kg==", 5765 5382 "license": "GPL-2.0-or-later", 5766 5383 "dependencies": { 5767 - "@babel/runtime": "7.25.7", 5768 5384 "requestidlecallback": "^0.3.0" 5769 5385 }, 5770 5386 "engines": { ··· 5773 5389 } 5774 5390 }, 5775 5391 "node_modules/@wordpress/private-apis": { 5776 - "version": "1.24.0", 5777 - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.24.0.tgz", 5778 - "integrity": "sha512-h3stcm0ZjtODWugHdgdMFokFRQRuUgOuxUBtUovdIlvKh9bpePlSJbXPPt7pxli0/otkCARmp8h9cF1aR568+Q==", 5392 + "version": "1.48.1", 5393 + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.48.1.tgz", 5394 + "integrity": "sha512-KddQQq+qboNnc4fROsy9bsX4JENRfvBMtuBg5CjOq11hScFyh169ozoHozMEtNGXou4XFykEHCRwzM5MfSHjiA==", 5779 5395 "license": "GPL-2.0-or-later", 5780 - "dependencies": { 5781 - "@babel/runtime": "7.25.7" 5782 - }, 5783 5396 "engines": { 5784 5397 "node": ">=18.12.0", 5785 5398 "npm": ">=8.19.2" 5786 5399 } 5787 5400 }, 5788 - "node_modules/@wordpress/react-i18n": { 5789 - "version": "4.24.0", 5790 - "resolved": "https://registry.npmjs.org/@wordpress/react-i18n/-/react-i18n-4.24.0.tgz", 5791 - "integrity": "sha512-G0rFiUYW6db+BKJAvDQ7xQSPhr1MjBDRAiEdTrjs6WDZC/D9Tsv2REO0N7OD4lgNy/ZGiQFp2Slbpr/fyRJLTQ==", 5401 + "node_modules/@wordpress/rich-text": { 5402 + "version": "7.48.1", 5403 + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.48.1.tgz", 5404 + "integrity": "sha512-pj+S2d2p4EUJ03V/tOhlvb9qGPixft7v1zj9KEyM70VY6nHD5mmVp95Q5ALtlioyDFWYhzSo609PEd9fJ8FTsQ==", 5792 5405 "license": "GPL-2.0-or-later", 5793 5406 "dependencies": { 5794 - "@babel/runtime": "7.25.7", 5795 - "@wordpress/element": "^6.24.0", 5796 - "@wordpress/i18n": "^5.24.0", 5797 - "utility-types": "^3.10.0" 5407 + "@types/react": "^18.3.27", 5408 + "@wordpress/a11y": "^4.48.1", 5409 + "@wordpress/compose": "^8.1.1", 5410 + "@wordpress/data": "^10.48.1", 5411 + "@wordpress/deprecated": "^4.48.1", 5412 + "@wordpress/dom": "^4.48.1", 5413 + "@wordpress/element": "^8.0.1", 5414 + "@wordpress/escape-html": "^3.48.1", 5415 + "@wordpress/i18n": "^6.21.1", 5416 + "@wordpress/keycodes": "^4.48.1", 5417 + "@wordpress/private-apis": "^1.48.1", 5418 + "colord": "^2.9.3", 5419 + "memize": "^2.1.0" 5798 5420 }, 5799 5421 "engines": { 5800 5422 "node": ">=18.12.0", 5801 5423 "npm": ">=8.19.2" 5424 + }, 5425 + "peerDependencies": { 5426 + "react": "^18.0.0" 5802 5427 } 5803 5428 }, 5804 - "node_modules/@wordpress/redux-routine": { 5805 - "version": "5.24.0", 5806 - "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.24.0.tgz", 5807 - "integrity": "sha512-d/ZZeDne9Ka7jRywB3zqE+f9KJV7201bYn0pN7pDjZFEgrpWQp8t9zSEBxxuoQueuSDoYEwz627+Qpc7yzcq3w==", 5429 + "node_modules/@wordpress/rich-text/node_modules/@types/react": { 5430 + "version": "18.3.31", 5431 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5432 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5433 + "license": "MIT", 5434 + "dependencies": { 5435 + "@types/prop-types": "*", 5436 + "csstype": "^3.2.2" 5437 + } 5438 + }, 5439 + "node_modules/@wordpress/shortcode": { 5440 + "version": "4.48.1", 5441 + "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-4.48.1.tgz", 5442 + "integrity": "sha512-zfOz45verEOIf3YIE4zOlMcQoZ2za+OFuJ4SKE+nmglUFLmF2I0iLGlNQO0BNLPI26+krSVZ8kclzJRaB5Z6Kw==", 5808 5443 "license": "GPL-2.0-or-later", 5809 5444 "dependencies": { 5810 - "@babel/runtime": "7.25.7", 5811 - "is-plain-object": "^5.0.0", 5812 - "is-promise": "^4.0.0", 5813 - "rungen": "^0.3.2" 5445 + "memize": "^2.1.0" 5814 5446 }, 5815 5447 "engines": { 5816 5448 "node": ">=18.12.0", 5817 5449 "npm": ">=8.19.2" 5818 - }, 5819 - "peerDependencies": { 5820 - "redux": ">=4" 5821 5450 } 5822 5451 }, 5823 - "node_modules/@wordpress/reusable-blocks": { 5824 - "version": "5.24.0", 5825 - "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-5.24.0.tgz", 5826 - "integrity": "sha512-QH4IiJDmK3w8FllvwzwCLdExNGDvtQ/Wn0e1wdCRAhEYKePEwslE8yyl1biaa/Y3+C5k6uUYhztMmF9FaqiPIQ==", 5452 + "node_modules/@wordpress/style-engine": { 5453 + "version": "2.48.1", 5454 + "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-2.48.1.tgz", 5455 + "integrity": "sha512-biMD3eTjoUj5hlmA261kLAlgCN/bjxeeRe7XFrjG/bxQErmYp+hmMSejNTuLpg3j8I11eQ3Vo0iRCjGzn4xFEQ==", 5827 5456 "license": "GPL-2.0-or-later", 5828 5457 "dependencies": { 5829 - "@babel/runtime": "7.25.7", 5830 - "@wordpress/block-editor": "^14.19.0", 5831 - "@wordpress/blocks": "^14.13.0", 5832 - "@wordpress/components": "^29.10.0", 5833 - "@wordpress/core-data": "^7.24.0", 5834 - "@wordpress/data": "^10.24.0", 5835 - "@wordpress/element": "^6.24.0", 5836 - "@wordpress/i18n": "^5.24.0", 5837 - "@wordpress/icons": "^10.24.0", 5838 - "@wordpress/notices": "^5.24.0", 5839 - "@wordpress/private-apis": "^1.24.0", 5840 - "@wordpress/url": "^4.24.0" 5458 + "@types/react": "^18.3.27", 5459 + "change-case": "^4.1.2" 5841 5460 }, 5842 5461 "engines": { 5843 5462 "node": ">=18.12.0", 5844 5463 "npm": ">=8.19.2" 5845 - }, 5846 - "peerDependencies": { 5847 - "react": "^18.0.0", 5848 - "react-dom": "^18.0.0" 5849 5464 } 5850 5465 }, 5851 - "node_modules/@wordpress/rich-text": { 5852 - "version": "7.24.0", 5853 - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.24.0.tgz", 5854 - "integrity": "sha512-7BeCe8uOwXb6rQt+Lz1nzM0R0eAjNPlyo78EhK42RGK59UrSfPKBCNHXorNJpRL9N6i66Sd+QsnfhdfenzcDIw==", 5466 + "node_modules/@wordpress/style-engine/node_modules/@types/react": { 5467 + "version": "18.3.31", 5468 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5469 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5470 + "license": "MIT", 5471 + "dependencies": { 5472 + "@types/prop-types": "*", 5473 + "csstype": "^3.2.2" 5474 + } 5475 + }, 5476 + "node_modules/@wordpress/style-runtime": { 5477 + "version": "0.4.1", 5478 + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.4.1.tgz", 5479 + "integrity": "sha512-guZ0p9a5ZQyyCFPwVqDkhDNVXdXAhIqNkPGSNIGguEtt3OtSOskEMwYJHyXZYX8nlbH0FyKflGJhE4G6QlIWlw==", 5855 5480 "license": "GPL-2.0-or-later", 5856 - "dependencies": { 5857 - "@babel/runtime": "7.25.7", 5858 - "@wordpress/a11y": "^4.24.0", 5859 - "@wordpress/compose": "^7.24.0", 5860 - "@wordpress/data": "^10.24.0", 5861 - "@wordpress/deprecated": "^4.24.0", 5862 - "@wordpress/element": "^6.24.0", 5863 - "@wordpress/escape-html": "^3.24.0", 5864 - "@wordpress/i18n": "^5.24.0", 5865 - "@wordpress/keycodes": "^4.24.0", 5866 - "memize": "^2.1.0" 5867 - }, 5868 5481 "engines": { 5869 - "node": ">=18.12.0", 5870 - "npm": ">=8.19.2" 5871 - }, 5872 - "peerDependencies": { 5873 - "react": "^18.0.0" 5482 + "node": ">=20.10.0", 5483 + "npm": ">=10.2.3" 5874 5484 } 5875 5485 }, 5876 - "node_modules/@wordpress/router": { 5877 - "version": "1.24.0", 5878 - "resolved": "https://registry.npmjs.org/@wordpress/router/-/router-1.24.0.tgz", 5879 - "integrity": "sha512-lOb7frNOr0pJnbUZyw5EiRGgfbU6tc2BvPq9O1n9+d3opSof8iu/HP+68wZuTLQeiPm4S6wgX4WNR9RbYGMWtg==", 5486 + "node_modules/@wordpress/sync": { 5487 + "version": "1.48.1", 5488 + "resolved": "https://registry.npmjs.org/@wordpress/sync/-/sync-1.48.1.tgz", 5489 + "integrity": "sha512-RLPTX9f7KdGPyzYDyxwMdnPTEqcAskjOt6AVEb/XJ0gzBmbtqxnoQVrBk/cVcKjaIPTAg2lJkM82RnvnopmoQw==", 5880 5490 "license": "GPL-2.0-or-later", 5881 5491 "dependencies": { 5882 - "@babel/runtime": "7.25.7", 5883 - "@wordpress/compose": "^7.24.0", 5884 - "@wordpress/element": "^6.24.0", 5885 - "@wordpress/private-apis": "^1.24.0", 5886 - "@wordpress/url": "^4.24.0", 5887 - "history": "^5.3.0", 5888 - "route-recognizer": "^0.3.4" 5492 + "@wordpress/api-fetch": "^7.48.1", 5493 + "@wordpress/hooks": "^4.48.1", 5494 + "@wordpress/private-apis": "^1.48.1", 5495 + "@wordpress/undo-manager": "^1.48.1", 5496 + "diff": "^8.0.3", 5497 + "fast-deep-equal": "^3.1.3", 5498 + "lib0": "^0.2.99", 5499 + "y-protocols": "^1.0.7", 5500 + "yjs": "^13.6.29" 5889 5501 }, 5890 5502 "engines": { 5891 5503 "node": ">=18.12.0", 5892 5504 "npm": ">=8.19.2" 5893 - }, 5894 - "peerDependencies": { 5895 - "react": "^18.0.0" 5896 5505 } 5897 5506 }, 5898 - "node_modules/@wordpress/server-side-render": { 5899 - "version": "6.0.0", 5900 - "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-6.0.0.tgz", 5901 - "integrity": "sha512-9VzixNJdx9IQ6ePoC5Ey+D1JTyfClUBO3y3qtxQycLNJ7cdSNueZrrLFRc6bG0Lj9GoVUrX3A+EbxmB3f4x6LA==", 5507 + "node_modules/@wordpress/theme": { 5508 + "version": "0.15.1", 5509 + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.15.1.tgz", 5510 + "integrity": "sha512-0SqH40Sd4pKH8YkDjQ4JM2NJzdhliO19QTPHAOAGA+tXuh+YwHOwFxX8Mg0v/vvI4XJD11zuiKGr+grBI7icTQ==", 5902 5511 "license": "GPL-2.0-or-later", 5903 5512 "dependencies": { 5904 - "@babel/runtime": "7.25.7", 5905 - "@wordpress/api-fetch": "^7.24.0", 5906 - "@wordpress/blocks": "^14.13.0", 5907 - "@wordpress/components": "^29.10.0", 5908 - "@wordpress/compose": "^7.24.0", 5909 - "@wordpress/data": "^10.24.0", 5910 - "@wordpress/deprecated": "^4.24.0", 5911 - "@wordpress/element": "^6.24.0", 5912 - "@wordpress/i18n": "^5.24.0", 5913 - "@wordpress/url": "^4.24.0", 5914 - "fast-deep-equal": "^3.1.3" 5513 + "@types/react": "^18.3.27", 5514 + "@wordpress/element": "^8.0.1", 5515 + "@wordpress/private-apis": "^1.48.1", 5516 + "@wordpress/style-runtime": "^0.4.1", 5517 + "colorjs.io": "^0.6.0", 5518 + "memize": "^2.1.0" 5915 5519 }, 5916 5520 "engines": { 5917 5521 "node": ">=18.12.0", ··· 5919 5523 }, 5920 5524 "peerDependencies": { 5921 5525 "react": "^18.0.0", 5922 - "react-dom": "^18.0.0" 5526 + "react-dom": "^18.0.0", 5527 + "stylelint": "^16.8.2" 5528 + }, 5529 + "peerDependenciesMeta": { 5530 + "stylelint": { 5531 + "optional": true 5532 + } 5923 5533 } 5924 5534 }, 5925 - "node_modules/@wordpress/shortcode": { 5926 - "version": "4.24.0", 5927 - "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-4.24.0.tgz", 5928 - "integrity": "sha512-81K4AvTpXV2+j+a7HEVFVyETI+BIBd1lHYrnT/auCqWMIdqIzlOr4nrhs8FnYRohW6jgTdQheuq51dCsA7tTLQ==", 5929 - "license": "GPL-2.0-or-later", 5535 + "node_modules/@wordpress/theme/node_modules/@types/react": { 5536 + "version": "18.3.31", 5537 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5538 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5539 + "license": "MIT", 5930 5540 "dependencies": { 5931 - "@babel/runtime": "7.25.7", 5932 - "memize": "^2.0.1" 5933 - }, 5934 - "engines": { 5935 - "node": ">=18.12.0", 5936 - "npm": ">=8.19.2" 5541 + "@types/prop-types": "*", 5542 + "csstype": "^3.2.2" 5937 5543 } 5938 5544 }, 5939 - "node_modules/@wordpress/style-engine": { 5940 - "version": "2.24.0", 5941 - "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-2.24.0.tgz", 5942 - "integrity": "sha512-lm4P48mtFDBz+2Is3q+tON22sV0KqX98VIabtyjsK298IwKTXX5jf0JUFX1phk8HjitNzS9FdrUJgI84H351PQ==", 5545 + "node_modules/@wordpress/ui": { 5546 + "version": "0.15.1", 5547 + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.15.1.tgz", 5548 + "integrity": "sha512-zFErzf84zc7dGXrCa9fPKUpMhYx86B8n5GeshC7Ut/nfE7yp09g/Bono5S7KhY1OJx7Z1Jur9t+4vnv5cocBbA==", 5943 5549 "license": "GPL-2.0-or-later", 5944 5550 "dependencies": { 5945 - "@babel/runtime": "7.25.7", 5946 - "change-case": "^4.1.2" 5551 + "@base-ui/react": "^1.5.0", 5552 + "@types/react": "^18.3.27", 5553 + "@wordpress/a11y": "^4.48.1", 5554 + "@wordpress/compose": "^8.1.1", 5555 + "@wordpress/element": "^8.0.1", 5556 + "@wordpress/i18n": "^6.21.1", 5557 + "@wordpress/icons": "^14.0.1", 5558 + "@wordpress/keycodes": "^4.48.1", 5559 + "@wordpress/primitives": "^4.48.1", 5560 + "@wordpress/private-apis": "^1.48.1", 5561 + "@wordpress/style-runtime": "^0.4.1", 5562 + "@wordpress/theme": "^0.15.1", 5563 + "clsx": "^2.1.1", 5564 + "tabbable": "^6.4.0" 5947 5565 }, 5948 5566 "engines": { 5949 - "node": ">=18.12.0", 5950 - "npm": ">=8.19.2" 5567 + "node": ">=20.10.0", 5568 + "npm": ">=10.2.3" 5569 + }, 5570 + "peerDependencies": { 5571 + "react": "^18.0.0", 5572 + "react-dom": "^18.0.0" 5951 5573 } 5952 5574 }, 5953 - "node_modules/@wordpress/sync": { 5954 - "version": "1.24.0", 5955 - "resolved": "https://registry.npmjs.org/@wordpress/sync/-/sync-1.24.0.tgz", 5956 - "integrity": "sha512-ZsN8V5Px060lnZAYfdpUos0tIlVP0cYVfxAxtjZfVLSxgD5Zopw8ur3rdgf/dxKy28bmrfDUYKDWXlOhar4hPg==", 5957 - "license": "GPL-2.0-or-later", 5575 + "node_modules/@wordpress/ui/node_modules/@base-ui/react": { 5576 + "version": "1.5.0", 5577 + "resolved": "https://registry.npmjs.org/@base-ui/react/-/react-1.5.0.tgz", 5578 + "integrity": "sha512-z1gSAlced1yY+iM+mHDEtIkD8UI3Ebs52MuBPxvV6f5hRutk+xvCH/wuB7hDqDzK9JG5FoMz5nhrqtSs1wjt1A==", 5579 + "license": "MIT", 5958 5580 "dependencies": { 5959 - "@babel/runtime": "7.25.7", 5960 - "@types/simple-peer": "^9.11.5", 5961 - "@wordpress/url": "^4.24.0", 5962 - "import-locals": "^2.0.0", 5963 - "lib0": "^0.2.42", 5964 - "simple-peer": "^9.11.0", 5965 - "y-indexeddb": "~9.0.11", 5966 - "y-protocols": "^1.0.5", 5967 - "y-webrtc": "~10.2.5", 5968 - "yjs": "~13.6.6" 5581 + "@babel/runtime": "^7.29.2", 5582 + "@base-ui/utils": "0.2.9", 5583 + "@floating-ui/react-dom": "^2.1.8", 5584 + "@floating-ui/utils": "^0.2.11", 5585 + "use-sync-external-store": "^1.6.0" 5969 5586 }, 5970 5587 "engines": { 5971 - "node": ">=18.12.0", 5972 - "npm": ">=8.19.2" 5588 + "node": ">=14.0.0" 5589 + }, 5590 + "funding": { 5591 + "type": "opencollective", 5592 + "url": "https://opencollective.com/mui-org" 5593 + }, 5594 + "peerDependencies": { 5595 + "@date-fns/tz": "^1.2.0", 5596 + "@types/react": "^17 || ^18 || ^19", 5597 + "date-fns": "^4.0.0", 5598 + "react": "^17 || ^18 || ^19", 5599 + "react-dom": "^17 || ^18 || ^19" 5600 + }, 5601 + "peerDependenciesMeta": { 5602 + "@date-fns/tz": { 5603 + "optional": true 5604 + }, 5605 + "@types/react": { 5606 + "optional": true 5607 + }, 5608 + "date-fns": { 5609 + "optional": true 5610 + } 5973 5611 } 5974 5612 }, 5975 - "node_modules/@wordpress/token-list": { 5976 - "version": "3.24.0", 5977 - "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-3.24.0.tgz", 5978 - "integrity": "sha512-0rv+ORMDlJPkp4PcfOhJrLkRjtIpkzZmwRpIJNXRdYJ8mUbF3TAjfvujZESkadGirwQw6vqmaNKtPaxCSAuDbg==", 5979 - "license": "GPL-2.0-or-later", 5613 + "node_modules/@wordpress/ui/node_modules/@types/react": { 5614 + "version": "18.3.31", 5615 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5616 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5617 + "license": "MIT", 5980 5618 "dependencies": { 5981 - "@babel/runtime": "7.25.7" 5982 - }, 5983 - "engines": { 5984 - "node": ">=18.12.0", 5985 - "npm": ">=8.19.2" 5619 + "@types/prop-types": "*", 5620 + "csstype": "^3.2.2" 5986 5621 } 5987 5622 }, 5988 5623 "node_modules/@wordpress/undo-manager": { 5989 - "version": "1.24.0", 5990 - "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.24.0.tgz", 5991 - "integrity": "sha512-dXZaPRxsH4DaPMXJ1OjKrxC+hDYK4fS6c64P4/01b1dFJ06okTp7YBd10YpW46Yiok0GwgStG+4mhrOwJbptBQ==", 5624 + "version": "1.48.1", 5625 + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.48.1.tgz", 5626 + "integrity": "sha512-i/yHiUQ5S47yong7FXxIRpJgO1MbItEKfcyp1a3rRe66rw1RVPmAlJxyeKaQg9eZbCXOmmDz5cLzZNPyUDN6uA==", 5992 5627 "license": "GPL-2.0-or-later", 5993 5628 "dependencies": { 5994 - "@babel/runtime": "7.25.7", 5995 - "@wordpress/is-shallow-equal": "^5.24.0" 5629 + "@wordpress/is-shallow-equal": "^5.48.1" 5996 5630 }, 5997 5631 "engines": { 5998 5632 "node": ">=18.12.0", ··· 6000 5634 } 6001 5635 }, 6002 5636 "node_modules/@wordpress/upload-media": { 6003 - "version": "0.9.0", 6004 - "resolved": "https://registry.npmjs.org/@wordpress/upload-media/-/upload-media-0.9.0.tgz", 6005 - "integrity": "sha512-hDl5FY7y0aq5ASw5TnCduQIXOOymvsl+F/+q1cHcPCeLxTrZABIIRm5nzobIiggox2FcSM5t8fXle9WHGFvXmw==", 5637 + "version": "0.33.1", 5638 + "resolved": "https://registry.npmjs.org/@wordpress/upload-media/-/upload-media-0.33.1.tgz", 5639 + "integrity": "sha512-FjHJGZh7tjUyMbHXiPPHT8oRpM24ENwCOYG7OEoWRGP3NSU5v9Ff4TCksI25Ws420TkrNCFnHlU+xmALQAu30w==", 6006 5640 "license": "GPL-2.0-or-later", 6007 5641 "dependencies": { 6008 - "@babel/runtime": "7.25.7", 6009 - "@wordpress/api-fetch": "^7.24.0", 6010 - "@wordpress/blob": "^4.24.0", 6011 - "@wordpress/compose": "^7.24.0", 6012 - "@wordpress/data": "^10.24.0", 6013 - "@wordpress/element": "^6.24.0", 6014 - "@wordpress/i18n": "^5.24.0", 6015 - "@wordpress/preferences": "^4.24.0", 6016 - "@wordpress/private-apis": "^1.24.0", 6017 - "@wordpress/url": "^4.24.0", 6018 - "uuid": "^9.0.1" 5642 + "@types/react": "^18.3.27", 5643 + "@wordpress/blob": "^4.48.1", 5644 + "@wordpress/compose": "^8.1.1", 5645 + "@wordpress/data": "^10.48.1", 5646 + "@wordpress/element": "^8.0.1", 5647 + "@wordpress/i18n": "^6.21.1", 5648 + "@wordpress/preferences": "^4.48.1", 5649 + "@wordpress/private-apis": "^1.48.1", 5650 + "@wordpress/url": "^4.48.1", 5651 + "@wordpress/vips": "^2.1.1", 5652 + "uuid": "^14.0.0" 6019 5653 }, 6020 5654 "engines": { 6021 5655 "node": ">=18.12.0", ··· 6026 5660 "react-dom": "^18.0.0" 6027 5661 } 6028 5662 }, 5663 + "node_modules/@wordpress/upload-media/node_modules/@types/react": { 5664 + "version": "18.3.31", 5665 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", 5666 + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", 5667 + "license": "MIT", 5668 + "dependencies": { 5669 + "@types/prop-types": "*", 5670 + "csstype": "^3.2.2" 5671 + } 5672 + }, 6029 5673 "node_modules/@wordpress/url": { 6030 - "version": "4.24.0", 6031 - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.24.0.tgz", 6032 - "integrity": "sha512-gxnswtTVYVa3RSTQw2qs/Z0yuS0t9IDXnWbVYC9RAhELz3WN0YqGqxGNBtL3yUQEhisyxGupnqjuXCovpCU9lg==", 5674 + "version": "4.48.1", 5675 + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.48.1.tgz", 5676 + "integrity": "sha512-EiTMmEwotXY4Cu6casJ10HEe0ocsdVujkm1iZyA0vvu2qtR5IIQqlSVGxDx96cJBP6cB2b8x2ebGLWfnwow4/Q==", 6033 5677 "license": "GPL-2.0-or-later", 6034 5678 "dependencies": { 6035 - "@babel/runtime": "7.25.7", 6036 5679 "remove-accents": "^0.5.0" 6037 5680 }, 6038 5681 "engines": { ··· 6040 5683 "npm": ">=8.19.2" 6041 5684 } 6042 5685 }, 6043 - "node_modules/@wordpress/viewport": { 6044 - "version": "6.24.0", 6045 - "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-6.24.0.tgz", 6046 - "integrity": "sha512-JxNy09dLZXJc4yKnRSNpD1XA9vRSzpg+RwD5oVlkBgaGKrJ2wE88AEed9/5hZ5NTBCVWJCtRSL1YbhB7sqas9A==", 5686 + "node_modules/@wordpress/vips": { 5687 + "version": "2.1.1", 5688 + "resolved": "https://registry.npmjs.org/@wordpress/vips/-/vips-2.1.1.tgz", 5689 + "integrity": "sha512-3NvM0Bk4xrNhYI8Xgn9+dphE3FbJANhe9aNoU1J/Wqmqt3EpUJY5KoykFkfpHJWbdiLohSMkKIyVylGMdHpP7g==", 6047 5690 "license": "GPL-2.0-or-later", 6048 5691 "dependencies": { 6049 - "@babel/runtime": "7.25.7", 6050 - "@wordpress/compose": "^7.24.0", 6051 - "@wordpress/data": "^10.24.0", 6052 - "@wordpress/element": "^6.24.0" 5692 + "@wordpress/worker-threads": "^1.8.1", 5693 + "wasm-vips": "^0.0.17" 6053 5694 }, 6054 5695 "engines": { 6055 5696 "node": ">=18.12.0", 6056 5697 "npm": ">=8.19.2" 6057 - }, 6058 - "peerDependencies": { 6059 - "react": "^18.0.0" 6060 5698 } 6061 5699 }, 6062 5700 "node_modules/@wordpress/warning": { 6063 - "version": "3.24.0", 6064 - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.24.0.tgz", 6065 - "integrity": "sha512-gDlTyyCpjGQi9VAJKkaigLvQdp3SOM2GT/RjbGzRFRWab7N9U7LDV1HViBw99QRBI/PNakJSRAWa8DponDtinA==", 5701 + "version": "3.48.1", 5702 + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.48.1.tgz", 5703 + "integrity": "sha512-5YyMCOHycuHG+AjsVEUafpTqV4b4qjVv/tel5m1L8k8g8dUW5T/XKguFo1nhCqQc4HqoGBrJtKjaf6dMmg8uWg==", 6066 5704 "license": "GPL-2.0-or-later", 6067 5705 "engines": { 6068 5706 "node": ">=18.12.0", 6069 5707 "npm": ">=8.19.2" 6070 5708 } 6071 5709 }, 6072 - "node_modules/@wordpress/widgets": { 6073 - "version": "4.24.0", 6074 - "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-4.24.0.tgz", 6075 - "integrity": "sha512-8L61BXr/cROTocEby9JuqRLKuRaPx6QZEVSpZxlP+wcIe2vuSxI0VSXigNZ1sZVI1sgTzO1apQYxlnzJYa4CSQ==", 5710 + "node_modules/@wordpress/wordcount": { 5711 + "version": "4.48.1", 5712 + "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-4.48.1.tgz", 5713 + "integrity": "sha512-/IdYqxbvAFgAf3O72lUj5ybeWMglG2dYwL8wz17koSHqH5XKlbIQrNGvz4XIvQueiewd4MvLOqIFt2TVHHU6/A==", 6076 5714 "license": "GPL-2.0-or-later", 6077 - "dependencies": { 6078 - "@babel/runtime": "7.25.7", 6079 - "@wordpress/api-fetch": "^7.24.0", 6080 - "@wordpress/block-editor": "^14.19.0", 6081 - "@wordpress/blocks": "^14.13.0", 6082 - "@wordpress/components": "^29.10.0", 6083 - "@wordpress/compose": "^7.24.0", 6084 - "@wordpress/core-data": "^7.24.0", 6085 - "@wordpress/data": "^10.24.0", 6086 - "@wordpress/element": "^6.24.0", 6087 - "@wordpress/i18n": "^5.24.0", 6088 - "@wordpress/icons": "^10.24.0", 6089 - "@wordpress/notices": "^5.24.0", 6090 - "clsx": "^2.1.1" 6091 - }, 6092 5715 "engines": { 6093 5716 "node": ">=18.12.0", 6094 5717 "npm": ">=8.19.2" 6095 - }, 6096 - "peerDependencies": { 6097 - "react": "^18.0.0", 6098 - "react-dom": "^18.0.0" 6099 5718 } 6100 5719 }, 6101 - "node_modules/@wordpress/wordcount": { 6102 - "version": "4.24.0", 6103 - "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-4.24.0.tgz", 6104 - "integrity": "sha512-q8doxQ7Sof+c4om9NxdsZ5jwF0nBPxd47cgnuYxWNfytt89Osr1P9oPZr4D8W+ZN8MV5VvtBhsGONu1ZvkwwRQ==", 5720 + "node_modules/@wordpress/worker-threads": { 5721 + "version": "1.8.1", 5722 + "resolved": "https://registry.npmjs.org/@wordpress/worker-threads/-/worker-threads-1.8.1.tgz", 5723 + "integrity": "sha512-xrVypgVxciFPyc704/0fdQ6bf5BZrf2EXtTPQ4BSU0ylnvfSvgvTCYWdVzlI4VySq+FNfHgLHTCxKiKT23CrSQ==", 6105 5724 "license": "GPL-2.0-or-later", 6106 5725 "dependencies": { 6107 - "@babel/runtime": "7.25.7" 5726 + "comctx": "^1.4.3" 6108 5727 }, 6109 5728 "engines": { 6110 5729 "node": ">=18.12.0", ··· 6324 5943 "sharp": "^0.34.0" 6325 5944 } 6326 5945 }, 6327 - "node_modules/astro/node_modules/diff": { 6328 - "version": "8.0.4", 6329 - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", 6330 - "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", 6331 - "license": "BSD-3-Clause", 6332 - "engines": { 6333 - "node": ">=0.3.1" 6334 - } 6335 - }, 6336 5946 "node_modules/astro/node_modules/lru-cache": { 6337 5947 "version": "11.5.1", 6338 5948 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", ··· 6343 5953 } 6344 5954 }, 6345 5955 "node_modules/astro/node_modules/semver": { 6346 - "version": "7.8.2", 6347 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", 6348 - "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", 5956 + "version": "7.8.4", 5957 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", 5958 + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", 6349 5959 "license": "ISC", 6350 5960 "bin": { 6351 5961 "semver": "bin/semver.js" ··· 6503 6113 "url": "https://github.com/sponsors/wooorm" 6504 6114 } 6505 6115 }, 6506 - "node_modules/base64-js": { 6507 - "version": "1.5.1", 6508 - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 6509 - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 6510 - "funding": [ 6511 - { 6512 - "type": "github", 6513 - "url": "https://github.com/sponsors/feross" 6514 - }, 6515 - { 6516 - "type": "patreon", 6517 - "url": "https://www.patreon.com/feross" 6518 - }, 6519 - { 6520 - "type": "consulting", 6521 - "url": "https://feross.org/support" 6522 - } 6523 - ], 6524 - "license": "MIT" 6525 - }, 6526 6116 "node_modules/baseline-browser-mapping": { 6527 6117 "version": "2.10.34", 6528 6118 "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz", ··· 6580 6170 "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 6581 6171 } 6582 6172 }, 6583 - "node_modules/buffer": { 6584 - "version": "6.0.3", 6585 - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 6586 - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 6587 - "funding": [ 6588 - { 6589 - "type": "github", 6590 - "url": "https://github.com/sponsors/feross" 6591 - }, 6592 - { 6593 - "type": "patreon", 6594 - "url": "https://www.patreon.com/feross" 6595 - }, 6596 - { 6597 - "type": "consulting", 6598 - "url": "https://feross.org/support" 6599 - } 6600 - ], 6601 - "license": "MIT", 6602 - "dependencies": { 6603 - "base64-js": "^1.3.1", 6604 - "ieee754": "^1.2.1" 6605 - } 6606 - }, 6607 6173 "node_modules/cac": { 6608 6174 "version": "6.7.14", 6609 6175 "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", ··· 6804 6370 "node": ">=8" 6805 6371 } 6806 6372 }, 6807 - "node_modules/classnames": { 6808 - "version": "2.5.1", 6809 - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", 6810 - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", 6811 - "license": "MIT" 6812 - }, 6813 - "node_modules/client-zip": { 6814 - "version": "2.5.0", 6815 - "resolved": "https://registry.npmjs.org/client-zip/-/client-zip-2.5.0.tgz", 6816 - "integrity": "sha512-ydG4nDZesbFurnNq0VVCp/yyomIBh+X/1fZPI/P24zbnG4dtC4tQAfI5uQsomigsUMeiRO2wiTPizLWQh+IAyQ==", 6817 - "license": "MIT" 6818 - }, 6819 - "node_modules/clipboard": { 6820 - "version": "2.0.11", 6821 - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", 6822 - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", 6823 - "license": "MIT", 6824 - "dependencies": { 6825 - "good-listener": "^1.2.2", 6826 - "select": "^1.1.2", 6827 - "tiny-emitter": "^2.0.0" 6828 - } 6829 - }, 6830 6373 "node_modules/cliui": { 6831 6374 "version": "5.0.0", 6832 6375 "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", ··· 6884 6427 "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", 6885 6428 "license": "MIT" 6886 6429 }, 6430 + "node_modules/colorjs.io": { 6431 + "version": "0.6.1", 6432 + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz", 6433 + "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==", 6434 + "license": "MIT", 6435 + "funding": { 6436 + "type": "opencollective", 6437 + "url": "https://opencollective.com/color" 6438 + } 6439 + }, 6887 6440 "node_modules/combined-stream": { 6888 6441 "version": "1.0.8", 6889 6442 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", ··· 6896 6449 "engines": { 6897 6450 "node": ">= 0.8" 6898 6451 } 6452 + }, 6453 + "node_modules/comctx": { 6454 + "version": "1.7.5", 6455 + "resolved": "https://registry.npmjs.org/comctx/-/comctx-1.7.5.tgz", 6456 + "integrity": "sha512-0fsxsxr1Hg2T99wOIteUbsJOX6jMmnhAJepcVRqNRMWpcbxRhbm2+0R8qEuQEaE4gWjfdXaKeAGYAn0yeElylQ==", 6457 + "license": "MIT" 6899 6458 }, 6900 6459 "node_modules/comma-separated-tokens": { 6901 6460 "version": "2.0.3", ··· 7127 6686 } 7128 6687 }, 7129 6688 "node_modules/date-fns": { 7130 - "version": "3.6.0", 7131 - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", 7132 - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", 6689 + "version": "4.4.0", 6690 + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", 6691 + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", 7133 6692 "license": "MIT", 7134 6693 "funding": { 7135 6694 "type": "github", 7136 6695 "url": "https://github.com/sponsors/kossnocorp" 7137 6696 } 7138 6697 }, 6698 + "node_modules/date-fns-jalali": { 6699 + "version": "4.1.0-0", 6700 + "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz", 6701 + "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==", 6702 + "license": "MIT" 6703 + }, 7139 6704 "node_modules/dayjs": { 7140 6705 "version": "1.11.21", 7141 6706 "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.21.tgz", ··· 7223 6788 "node": ">=0.4.0" 7224 6789 } 7225 6790 }, 7226 - "node_modules/delegate": { 7227 - "version": "3.2.0", 7228 - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", 7229 - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", 7230 - "license": "MIT" 7231 - }, 7232 6791 "node_modules/dequal": { 7233 6792 "version": "2.0.3", 7234 6793 "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", ··· 7279 6838 } 7280 6839 }, 7281 6840 "node_modules/diff": { 7282 - "version": "4.0.4", 7283 - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", 7284 - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", 6841 + "version": "8.0.4", 6842 + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", 6843 + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", 7285 6844 "license": "BSD-3-Clause", 7286 6845 "engines": { 7287 6846 "node": ">=0.3.1" ··· 7444 7003 "integrity": "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew==", 7445 7004 "license": "MIT" 7446 7005 }, 7447 - "node_modules/err-code": { 7448 - "version": "3.0.1", 7449 - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", 7450 - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", 7451 - "license": "MIT" 7452 - }, 7453 7006 "node_modules/error-ex": { 7454 7007 "version": "1.3.4", 7455 7008 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", ··· 7523 7076 } 7524 7077 }, 7525 7078 "node_modules/esbuild": { 7526 - "version": "0.27.7", 7527 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", 7528 - "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", 7079 + "version": "0.27.3", 7080 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", 7081 + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", 7529 7082 "hasInstallScript": true, 7530 7083 "license": "MIT", 7531 7084 "bin": { ··· 7535 7088 "node": ">=18" 7536 7089 }, 7537 7090 "optionalDependencies": { 7538 - "@esbuild/aix-ppc64": "0.27.7", 7539 - "@esbuild/android-arm": "0.27.7", 7540 - "@esbuild/android-arm64": "0.27.7", 7541 - "@esbuild/android-x64": "0.27.7", 7542 - "@esbuild/darwin-arm64": "0.27.7", 7543 - "@esbuild/darwin-x64": "0.27.7", 7544 - "@esbuild/freebsd-arm64": "0.27.7", 7545 - "@esbuild/freebsd-x64": "0.27.7", 7546 - "@esbuild/linux-arm": "0.27.7", 7547 - "@esbuild/linux-arm64": "0.27.7", 7548 - "@esbuild/linux-ia32": "0.27.7", 7549 - "@esbuild/linux-loong64": "0.27.7", 7550 - "@esbuild/linux-mips64el": "0.27.7", 7551 - "@esbuild/linux-ppc64": "0.27.7", 7552 - "@esbuild/linux-riscv64": "0.27.7", 7553 - "@esbuild/linux-s390x": "0.27.7", 7554 - "@esbuild/linux-x64": "0.27.7", 7555 - "@esbuild/netbsd-arm64": "0.27.7", 7556 - "@esbuild/netbsd-x64": "0.27.7", 7557 - "@esbuild/openbsd-arm64": "0.27.7", 7558 - "@esbuild/openbsd-x64": "0.27.7", 7559 - "@esbuild/openharmony-arm64": "0.27.7", 7560 - "@esbuild/sunos-x64": "0.27.7", 7561 - "@esbuild/win32-arm64": "0.27.7", 7562 - "@esbuild/win32-ia32": "0.27.7", 7563 - "@esbuild/win32-x64": "0.27.7" 7091 + "@esbuild/aix-ppc64": "0.27.3", 7092 + "@esbuild/android-arm": "0.27.3", 7093 + "@esbuild/android-arm64": "0.27.3", 7094 + "@esbuild/android-x64": "0.27.3", 7095 + "@esbuild/darwin-arm64": "0.27.3", 7096 + "@esbuild/darwin-x64": "0.27.3", 7097 + "@esbuild/freebsd-arm64": "0.27.3", 7098 + "@esbuild/freebsd-x64": "0.27.3", 7099 + "@esbuild/linux-arm": "0.27.3", 7100 + "@esbuild/linux-arm64": "0.27.3", 7101 + "@esbuild/linux-ia32": "0.27.3", 7102 + "@esbuild/linux-loong64": "0.27.3", 7103 + "@esbuild/linux-mips64el": "0.27.3", 7104 + "@esbuild/linux-ppc64": "0.27.3", 7105 + "@esbuild/linux-riscv64": "0.27.3", 7106 + "@esbuild/linux-s390x": "0.27.3", 7107 + "@esbuild/linux-x64": "0.27.3", 7108 + "@esbuild/netbsd-arm64": "0.27.3", 7109 + "@esbuild/netbsd-x64": "0.27.3", 7110 + "@esbuild/openbsd-arm64": "0.27.3", 7111 + "@esbuild/openbsd-x64": "0.27.3", 7112 + "@esbuild/openharmony-arm64": "0.27.3", 7113 + "@esbuild/sunos-x64": "0.27.3", 7114 + "@esbuild/win32-arm64": "0.27.3", 7115 + "@esbuild/win32-ia32": "0.27.3", 7116 + "@esbuild/win32-x64": "0.27.3" 7564 7117 } 7565 7118 }, 7566 7119 "node_modules/escalade": { ··· 7571 7124 "engines": { 7572 7125 "node": ">=6" 7573 7126 } 7574 - }, 7575 - "node_modules/escape-html": { 7576 - "version": "1.0.3", 7577 - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 7578 - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", 7579 - "license": "MIT" 7580 7127 }, 7581 7128 "node_modules/escape-string-regexp": { 7582 7129 "version": "4.0.0", ··· 7815 7362 "node": ">=6.9.0" 7816 7363 } 7817 7364 }, 7818 - "node_modules/get-browser-rtc": { 7819 - "version": "1.1.0", 7820 - "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz", 7821 - "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==", 7822 - "license": "MIT" 7823 - }, 7824 7365 "node_modules/get-caller-file": { 7825 7366 "version": "2.0.5", 7826 7367 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", ··· 7909 7450 "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", 7910 7451 "license": "ISC" 7911 7452 }, 7912 - "node_modules/good-listener": { 7913 - "version": "1.2.2", 7914 - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", 7915 - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", 7916 - "license": "MIT", 7917 - "dependencies": { 7918 - "delegate": "^3.1.2" 7919 - } 7920 - }, 7921 7453 "node_modules/gopd": { 7922 7454 "version": "1.2.0", 7923 7455 "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", ··· 7932 7464 } 7933 7465 }, 7934 7466 "node_modules/gradient-parser": { 7935 - "version": "1.0.2", 7936 - "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-1.0.2.tgz", 7937 - "integrity": "sha512-gR6nY33xC9yJoH4wGLQtZQMXDi6RI3H37ERu7kQCVUzlXjNedpZM7xcA489Opwbq0BSGohtWGsWsntupmxelMg==", 7467 + "version": "1.2.0", 7468 + "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-1.2.0.tgz", 7469 + "integrity": "sha512-6ABGa9CR7WR/0pAJicBy5SJkiikbFM6kf/JjykwX7x+t+s8ORWVnlbi6FkHeFFb36yWsjUpHqSYrygd7ofEUqA==", 7938 7470 "engines": { 7939 7471 "node": ">=0.10.0" 7940 7472 } ··· 8199 7731 "node": ">=12.0.0" 8200 7732 } 8201 7733 }, 8202 - "node_modules/history": { 8203 - "version": "5.3.0", 8204 - "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", 8205 - "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", 8206 - "license": "MIT", 8207 - "dependencies": { 8208 - "@babel/runtime": "^7.7.6" 8209 - } 8210 - }, 8211 7734 "node_modules/hoist-non-react-statics": { 8212 7735 "version": "3.3.2", 8213 7736 "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", ··· 8229 7752 "integrity": "sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==", 8230 7753 "license": "MIT" 8231 7754 }, 7755 + "node_modules/html-dom-parser": { 7756 + "version": "5.1.8", 7757 + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.1.8.tgz", 7758 + "integrity": "sha512-MCIUng//mF2qTtGHXJWr6OLfHWmg3Pm8ezpfiltF83tizPWY17JxT4dRLE8lykJ5bChJELoY3onQKPbufJHxYA==", 7759 + "funding": [ 7760 + { 7761 + "type": "github", 7762 + "url": "https://github.com/sponsors/remarkablemark" 7763 + } 7764 + ], 7765 + "license": "MIT", 7766 + "dependencies": { 7767 + "domhandler": "5.0.3", 7768 + "htmlparser2": "10.1.0" 7769 + } 7770 + }, 8232 7771 "node_modules/html-encoding-sniffer": { 8233 7772 "version": "4.0.0", 8234 7773 "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", ··· 8247 7786 "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", 8248 7787 "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", 8249 7788 "license": "MIT" 7789 + }, 7790 + "node_modules/html-react-parser": { 7791 + "version": "5.2.17", 7792 + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.2.17.tgz", 7793 + "integrity": "sha512-m+K/7Moq1jodAB4VL0RXSOmtwLUYoAsikZhwd+hGQe5Vtw2dbWfpFd60poxojMU0Tsh9w59mN1QLEcoHz0Dx9w==", 7794 + "funding": [ 7795 + { 7796 + "type": "github", 7797 + "url": "https://github.com/sponsors/remarkablemark" 7798 + }, 7799 + { 7800 + "type": "opencollective", 7801 + "url": "https://opencollective.com/html-react-parser" 7802 + } 7803 + ], 7804 + "license": "MIT", 7805 + "dependencies": { 7806 + "domhandler": "5.0.3", 7807 + "html-dom-parser": "5.1.8", 7808 + "react-property": "2.0.2", 7809 + "style-to-js": "1.1.21" 7810 + }, 7811 + "peerDependencies": { 7812 + "@types/react": "0.14 || 15 || 16 || 17 || 18 || 19", 7813 + "react": "0.14 || 15 || 16 || 17 || 18 || 19" 7814 + }, 7815 + "peerDependenciesMeta": { 7816 + "@types/react": { 7817 + "optional": true 7818 + } 7819 + } 8250 7820 }, 8251 7821 "node_modules/html-void-elements": { 8252 7822 "version": "3.0.0", ··· 8335 7905 "node": ">=0.10.0" 8336 7906 } 8337 7907 }, 8338 - "node_modules/ieee754": { 8339 - "version": "1.2.1", 8340 - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 8341 - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 8342 - "funding": [ 8343 - { 8344 - "type": "github", 8345 - "url": "https://github.com/sponsors/feross" 8346 - }, 8347 - { 8348 - "type": "patreon", 8349 - "url": "https://www.patreon.com/feross" 8350 - }, 8351 - { 8352 - "type": "consulting", 8353 - "url": "https://feross.org/support" 8354 - } 8355 - ], 8356 - "license": "BSD-3-Clause" 8357 - }, 8358 - "node_modules/immutable": { 8359 - "version": "5.1.6", 8360 - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.6.tgz", 8361 - "integrity": "sha512-q1swsS8K7L8usSHuOqF2TAoCCkonYz0SG38wLAggaa4Wml70zixIvt2ql4coQ2C2B3hTjltJry4r6bULwgAXLQ==", 8362 - "devOptional": true, 8363 - "license": "MIT" 8364 - }, 8365 7908 "node_modules/import-fresh": { 8366 7909 "version": "3.3.1", 8367 7910 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", ··· 8378 7921 "url": "https://github.com/sponsors/sindresorhus" 8379 7922 } 8380 7923 }, 8381 - "node_modules/import-locals": { 8382 - "version": "2.0.0", 8383 - "resolved": "https://registry.npmjs.org/import-locals/-/import-locals-2.0.0.tgz", 8384 - "integrity": "sha512-1/bPE89IZhyf7dr5Pkz7b4UyVXy5pEt7PTEfye15UEn3AK8+2zwcDCfKk9Pwun4ltfhOSszOrReSsFcDKw/yoA==", 7924 + "node_modules/inline-style-parser": { 7925 + "version": "0.2.7", 7926 + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", 7927 + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", 8385 7928 "license": "MIT" 8386 7929 }, 8387 - "node_modules/inherits": { 8388 - "version": "2.0.4", 8389 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 8390 - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 8391 - "license": "ISC" 8392 - }, 8393 7930 "node_modules/iron-webcrypto": { 8394 7931 "version": "1.2.1", 8395 7932 "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", ··· 8435 7972 "url": "https://github.com/sponsors/sindresorhus" 8436 7973 } 8437 7974 }, 8438 - "node_modules/is-extglob": { 8439 - "version": "2.1.1", 8440 - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 8441 - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 8442 - "license": "MIT", 8443 - "optional": true, 8444 - "engines": { 8445 - "node": ">=0.10.0" 8446 - } 8447 - }, 8448 7975 "node_modules/is-fullwidth-code-point": { 8449 7976 "version": "2.0.0", 8450 7977 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", ··· 8452 7979 "license": "MIT", 8453 7980 "engines": { 8454 7981 "node": ">=4" 8455 - } 8456 - }, 8457 - "node_modules/is-glob": { 8458 - "version": "4.0.3", 8459 - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 8460 - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 8461 - "license": "MIT", 8462 - "optional": true, 8463 - "dependencies": { 8464 - "is-extglob": "^2.1.1" 8465 - }, 8466 - "engines": { 8467 - "node": ">=0.10.0" 8468 7982 } 8469 7983 }, 8470 7984 "node_modules/is-inside-container": { ··· 8755 8269 "engines": { 8756 8270 "node": ">=6" 8757 8271 } 8758 - }, 8759 - "node_modules/lodash": { 8760 - "version": "4.18.1", 8761 - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", 8762 - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", 8763 - "license": "MIT" 8764 8272 }, 8765 8273 "node_modules/longest-streak": { 8766 8274 "version": "3.1.0", ··· 9704 9212 "node": ">=22.0.0" 9705 9213 } 9706 9214 }, 9707 - "node_modules/miniflare/node_modules/ws": { 9708 - "version": "8.20.1", 9709 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", 9710 - "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", 9711 - "license": "MIT", 9712 - "engines": { 9713 - "node": ">=10.0.0" 9714 - }, 9715 - "peerDependencies": { 9716 - "bufferutil": "^4.0.1", 9717 - "utf-8-validate": ">=5.0.2" 9718 - }, 9719 - "peerDependenciesMeta": { 9720 - "bufferutil": { 9721 - "optional": true 9722 - }, 9723 - "utf-8-validate": { 9724 - "optional": true 9725 - } 9726 - } 9727 - }, 9728 9215 "node_modules/moment": { 9729 9216 "version": "2.30.1", 9730 9217 "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", ··· 9844 9331 "lower-case": "^2.0.2", 9845 9332 "tslib": "^2.0.3" 9846 9333 } 9847 - }, 9848 - "node_modules/node-addon-api": { 9849 - "version": "7.1.1", 9850 - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", 9851 - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", 9852 - "license": "MIT", 9853 - "optional": true 9854 9334 }, 9855 9335 "node_modules/node-fetch-native": { 9856 9336 "version": "1.6.7", ··· 10214 9694 "node": ">= 14.16" 10215 9695 } 10216 9696 }, 10217 - "node_modules/pegjs": { 10218 - "version": "0.10.0", 10219 - "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", 10220 - "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", 10221 - "license": "MIT", 10222 - "bin": { 10223 - "pegjs": "bin/pegjs" 10224 - }, 10225 - "engines": { 10226 - "node": ">=0.10" 10227 - } 10228 - }, 10229 - "node_modules/phpegjs": { 10230 - "version": "1.0.0-beta7", 10231 - "resolved": "https://registry.npmjs.org/phpegjs/-/phpegjs-1.0.0-beta7.tgz", 10232 - "integrity": "sha512-SO+NP5argMoJVCWcYiOofPUeEWDIM47FNCBJtp6uJ8PpjtBcudYJTzCbCMit5dzmfSLCoijzEwIXOqPqD45xQg==", 10233 - "license": "MIT", 10234 - "peerDependencies": { 10235 - "pegjs": "^0.10.0" 10236 - } 10237 - }, 10238 9697 "node_modules/piccolore": { 10239 9698 "version": "0.1.3", 10240 9699 "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", ··· 10386 9845 "node": ">=6" 10387 9846 } 10388 9847 }, 10389 - "node_modules/queue-microtask": { 10390 - "version": "1.2.3", 10391 - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 10392 - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 10393 - "funding": [ 10394 - { 10395 - "type": "github", 10396 - "url": "https://github.com/sponsors/feross" 10397 - }, 10398 - { 10399 - "type": "patreon", 10400 - "url": "https://www.patreon.com/feross" 10401 - }, 10402 - { 10403 - "type": "consulting", 10404 - "url": "https://feross.org/support" 10405 - } 10406 - ], 10407 - "license": "MIT" 10408 - }, 10409 9848 "node_modules/radix3": { 10410 9849 "version": "1.1.2", 10411 9850 "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", 10412 9851 "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", 10413 9852 "license": "MIT" 10414 - }, 10415 - "node_modules/randombytes": { 10416 - "version": "2.1.0", 10417 - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 10418 - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 10419 - "license": "MIT", 10420 - "dependencies": { 10421 - "safe-buffer": "^5.1.0" 10422 - } 10423 9853 }, 10424 9854 "node_modules/re-resizable": { 10425 9855 "version": "6.11.2", ··· 10468 9898 "react-dom": ">=16.8.0" 10469 9899 } 10470 9900 }, 9901 + "node_modules/react-day-picker": { 9902 + "version": "9.14.0", 9903 + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.14.0.tgz", 9904 + "integrity": "sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA==", 9905 + "license": "MIT", 9906 + "dependencies": { 9907 + "@date-fns/tz": "^1.4.1", 9908 + "@tabby_ai/hijri-converter": "1.0.5", 9909 + "date-fns": "^4.1.0", 9910 + "date-fns-jalali": "4.1.0-0" 9911 + }, 9912 + "engines": { 9913 + "node": ">=18" 9914 + }, 9915 + "funding": { 9916 + "type": "individual", 9917 + "url": "https://github.com/sponsors/gpbl" 9918 + }, 9919 + "peerDependencies": { 9920 + "react": ">=16.8.0" 9921 + } 9922 + }, 10471 9923 "node_modules/react-dom": { 10472 9924 "version": "18.3.1", 10473 9925 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", ··· 10499 9951 "version": "18.3.1", 10500 9952 "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", 10501 9953 "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", 9954 + "license": "MIT" 9955 + }, 9956 + "node_modules/react-property": { 9957 + "version": "2.0.2", 9958 + "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", 9959 + "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==", 10502 9960 "license": "MIT" 10503 9961 }, 10504 9962 "node_modules/react-refresh": { ··· 10579 10037 } 10580 10038 } 10581 10039 }, 10582 - "node_modules/readable-stream": { 10583 - "version": "3.6.2", 10584 - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 10585 - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 10586 - "license": "MIT", 10587 - "dependencies": { 10588 - "inherits": "^2.0.3", 10589 - "string_decoder": "^1.1.1", 10590 - "util-deprecate": "^1.0.1" 10591 - }, 10592 - "engines": { 10593 - "node": ">= 6" 10594 - } 10595 - }, 10596 10040 "node_modules/readdirp": { 10597 10041 "version": "5.0.0", 10598 10042 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", ··· 10610 10054 "version": "5.0.1", 10611 10055 "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", 10612 10056 "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", 10613 - "license": "MIT" 10614 - }, 10615 - "node_modules/redux-undo": { 10616 - "version": "1.1.0", 10617 - "resolved": "https://registry.npmjs.org/redux-undo/-/redux-undo-1.1.0.tgz", 10618 - "integrity": "sha512-zzLFh2qeF0MTIlzDhDLm9NtkfBqCllQJ3OCuIl5RKlG/ayHw6GUdIFdMhzMS9NnrnWdBX5u//ExMOHpfudGGOg==", 10619 - "license": "MIT" 10620 - }, 10621 - "node_modules/regenerator-runtime": { 10622 - "version": "0.14.1", 10623 - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", 10624 - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", 10625 10057 "license": "MIT" 10626 10058 }, 10627 10059 "node_modules/regex": { ··· 10840 10272 "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 10841 10273 "license": "ISC" 10842 10274 }, 10275 + "node_modules/reselect": { 10276 + "version": "5.2.0", 10277 + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", 10278 + "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==", 10279 + "license": "MIT" 10280 + }, 10843 10281 "node_modules/resolve": { 10844 10282 "version": "1.22.12", 10845 10283 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", ··· 10984 10422 "fsevents": "~2.3.2" 10985 10423 } 10986 10424 }, 10987 - "node_modules/route-recognizer": { 10988 - "version": "0.3.4", 10989 - "resolved": "https://registry.npmjs.org/route-recognizer/-/route-recognizer-0.3.4.tgz", 10990 - "integrity": "sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==", 10991 - "license": "MIT" 10992 - }, 10993 10425 "node_modules/rrweb-cssom": { 10994 10426 "version": "0.7.1", 10995 10427 "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", ··· 11044 10476 "postcss": "^8.3.11" 11045 10477 } 11046 10478 }, 11047 - "node_modules/sass": { 11048 - "version": "1.100.0", 11049 - "resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz", 11050 - "integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==", 11051 - "devOptional": true, 11052 - "license": "MIT", 11053 - "dependencies": { 11054 - "chokidar": "^5.0.0", 11055 - "immutable": "^5.1.5", 11056 - "source-map-js": ">=0.6.2 <2.0.0" 11057 - }, 11058 - "bin": { 11059 - "sass": "sass.js" 11060 - }, 11061 - "engines": { 11062 - "node": ">=20.19.0" 11063 - }, 11064 - "optionalDependencies": { 11065 - "@parcel/watcher": "^2.4.1" 11066 - } 11067 - }, 11068 10479 "node_modules/sax": { 11069 10480 "version": "1.6.0", 11070 10481 "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", ··· 11095 10506 "dependencies": { 11096 10507 "loose-envify": "^1.1.0" 11097 10508 } 11098 - }, 11099 - "node_modules/select": { 11100 - "version": "1.1.2", 11101 - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", 11102 - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", 11103 - "license": "MIT" 11104 10509 }, 11105 10510 "node_modules/semver": { 11106 10511 "version": "6.3.1", ··· 11173 10578 } 11174 10579 }, 11175 10580 "node_modules/sharp/node_modules/semver": { 11176 - "version": "7.8.2", 11177 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", 11178 - "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", 10581 + "version": "7.8.4", 10582 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", 10583 + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", 11179 10584 "license": "ISC", 11180 10585 "bin": { 11181 10586 "semver": "bin/semver.js" ··· 11228 10633 "integrity": "sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==", 11229 10634 "license": "MIT" 11230 10635 }, 11231 - "node_modules/simple-peer": { 11232 - "version": "9.11.1", 11233 - "resolved": "https://registry.npmjs.org/simple-peer/-/simple-peer-9.11.1.tgz", 11234 - "integrity": "sha512-D1SaWpOW8afq1CZGWB8xTfrT3FekjQmPValrqncJMX7QFl8YwhrPTZvMCANLtgBwwdS+7zURyqxDDEmY558tTw==", 11235 - "funding": [ 11236 - { 11237 - "type": "github", 11238 - "url": "https://github.com/sponsors/feross" 11239 - }, 11240 - { 11241 - "type": "patreon", 11242 - "url": "https://www.patreon.com/feross" 11243 - }, 11244 - { 11245 - "type": "consulting", 11246 - "url": "https://feross.org/support" 11247 - } 11248 - ], 11249 - "license": "MIT", 11250 - "dependencies": { 11251 - "buffer": "^6.0.3", 11252 - "debug": "^4.3.2", 11253 - "err-code": "^3.0.1", 11254 - "get-browser-rtc": "^1.1.0", 11255 - "queue-microtask": "^1.2.3", 11256 - "randombytes": "^2.1.0", 11257 - "readable-stream": "^3.6.0" 11258 - } 11259 - }, 11260 10636 "node_modules/sisteransi": { 11261 10637 "version": "1.0.5", 11262 10638 "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", ··· 11313 10689 "url": "https://github.com/sponsors/wooorm" 11314 10690 } 11315 10691 }, 11316 - "node_modules/sprintf-js": { 11317 - "version": "1.1.3", 11318 - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", 11319 - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", 11320 - "license": "BSD-3-Clause" 11321 - }, 11322 10692 "node_modules/stackback": { 11323 10693 "version": "0.0.2", 11324 10694 "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", ··· 11333 10703 "dev": true, 11334 10704 "license": "MIT" 11335 10705 }, 11336 - "node_modules/string_decoder": { 11337 - "version": "1.3.0", 11338 - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 11339 - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 11340 - "license": "MIT", 11341 - "dependencies": { 11342 - "safe-buffer": "~5.2.0" 11343 - } 11344 - }, 11345 10706 "node_modules/string-width": { 11346 10707 "version": "3.1.0", 11347 10708 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", ··· 11382 10743 "node": ">=6" 11383 10744 } 11384 10745 }, 10746 + "node_modules/style-to-js": { 10747 + "version": "1.1.21", 10748 + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", 10749 + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", 10750 + "license": "MIT", 10751 + "dependencies": { 10752 + "style-to-object": "1.0.14" 10753 + } 10754 + }, 10755 + "node_modules/style-to-object": { 10756 + "version": "1.0.14", 10757 + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", 10758 + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", 10759 + "license": "MIT", 10760 + "dependencies": { 10761 + "inline-style-parser": "0.2.7" 10762 + } 10763 + }, 11385 10764 "node_modules/stylis": { 11386 10765 "version": "4.2.0", 11387 10766 "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", ··· 11444 10823 "dev": true, 11445 10824 "license": "MIT" 11446 10825 }, 10826 + "node_modules/tabbable": { 10827 + "version": "6.4.0", 10828 + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", 10829 + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", 10830 + "license": "MIT" 10831 + }, 11447 10832 "node_modules/tannin": { 11448 10833 "version": "1.2.0", 11449 10834 "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", ··· 11453 10838 "@tannin/plural-forms": "^1.1.0" 11454 10839 } 11455 10840 }, 11456 - "node_modules/tiny-emitter": { 11457 - "version": "2.1.0", 11458 - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", 11459 - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", 11460 - "license": "MIT" 10841 + "node_modules/temml": { 10842 + "version": "0.10.34", 10843 + "resolved": "https://registry.npmjs.org/temml/-/temml-0.10.34.tgz", 10844 + "integrity": "sha512-f3b5CaPwPvMviA+CtHy0qoIGWvzpRrNpXmGRc/Y1jc9gAYy+xOlndJFyn7Vfcz7cBcS8QRvv8z0EEH59sHCQxg==", 10845 + "license": "MIT", 10846 + "engines": { 10847 + "node": ">=18.13.0" 10848 + } 11461 10849 }, 11462 10850 "node_modules/tiny-inflate": { 11463 10851 "version": "1.0.3", ··· 11649 11037 } 11650 11038 }, 11651 11039 "node_modules/typescript-auto-import-cache/node_modules/semver": { 11652 - "version": "7.8.2", 11653 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", 11654 - "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", 11040 + "version": "7.8.4", 11041 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", 11042 + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", 11655 11043 "dev": true, 11656 11044 "license": "ISC", 11657 11045 "bin": { ··· 11701 11089 "version": "7.24.6", 11702 11090 "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", 11703 11091 "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", 11092 + "devOptional": true, 11704 11093 "license": "MIT" 11705 11094 }, 11706 11095 "node_modules/unenv": { ··· 11986 11375 "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 11987 11376 } 11988 11377 }, 11989 - "node_modules/util-deprecate": { 11990 - "version": "1.0.2", 11991 - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 11992 - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 11993 - "license": "MIT" 11994 - }, 11995 - "node_modules/utility-types": { 11996 - "version": "3.11.0", 11997 - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", 11998 - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", 11999 - "license": "MIT", 12000 - "engines": { 12001 - "node": ">= 4" 12002 - } 12003 - }, 12004 11378 "node_modules/uuid": { 12005 - "version": "9.0.1", 12006 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", 12007 - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", 12008 - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", 11379 + "version": "14.0.0", 11380 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.0.tgz", 11381 + "integrity": "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==", 12009 11382 "funding": [ 12010 11383 "https://github.com/sponsors/broofa", 12011 11384 "https://github.com/sponsors/ctavan" 12012 11385 ], 12013 11386 "license": "MIT", 12014 11387 "bin": { 12015 - "uuid": "dist/bin/uuid" 11388 + "uuid": "dist-node/bin/uuid" 12016 11389 } 12017 11390 }, 12018 11391 "node_modules/vfile": { ··· 13395 12768 } 13396 12769 }, 13397 12770 "node_modules/volar-service-typescript/node_modules/semver": { 13398 - "version": "7.8.2", 13399 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", 13400 - "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", 12771 + "version": "7.8.4", 12772 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", 12773 + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", 13401 12774 "dev": true, 13402 12775 "license": "ISC", 13403 12776 "bin": { ··· 13439 12812 "vscode-uri": "^3.1.0" 13440 12813 } 13441 12814 }, 13442 - "node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types": { 13443 - "version": "3.17.5", 13444 - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", 13445 - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", 13446 - "dev": true, 13447 - "license": "MIT" 13448 - }, 13449 12815 "node_modules/vscode-html-languageservice": { 13450 12816 "version": "5.6.2", 13451 12817 "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.6.2.tgz", ··· 13477 12843 } 13478 12844 }, 13479 12845 "node_modules/vscode-jsonrpc": { 13480 - "version": "9.0.0", 13481 - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.0.tgz", 13482 - "integrity": "sha512-+VvMmQPJhtvJ+8O+zu2JKIRiLxXF8NW7krWgyMGeOHrp4Cn23T5hc0v2LknNeopDOB70wghHAds7mKtcZ0I4Sg==", 12846 + "version": "8.2.0", 12847 + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", 12848 + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", 13483 12849 "dev": true, 13484 12850 "license": "MIT", 13485 12851 "engines": { ··· 13500 12866 } 13501 12867 }, 13502 12868 "node_modules/vscode-languageserver-protocol": { 13503 - "version": "3.18.0", 13504 - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.0.tgz", 13505 - "integrity": "sha512-Zdz+kJ12Iz6tc11xfZyEo501bBATHXrCjmMfnaR3pMnf1CoqZBKIynba3P+/bi9VEdrMbNtAVKYpKhbODvqy+Q==", 12869 + "version": "3.17.5", 12870 + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", 12871 + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", 13506 12872 "dev": true, 13507 12873 "license": "MIT", 13508 12874 "dependencies": { 13509 - "vscode-jsonrpc": "9.0.0", 13510 - "vscode-languageserver-types": "3.18.0" 12875 + "vscode-jsonrpc": "8.2.0", 12876 + "vscode-languageserver-types": "3.17.5" 13511 12877 } 13512 12878 }, 13513 12879 "node_modules/vscode-languageserver-textdocument": { ··· 13518 12884 "license": "MIT" 13519 12885 }, 13520 12886 "node_modules/vscode-languageserver-types": { 13521 - "version": "3.18.0", 13522 - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.0.tgz", 13523 - "integrity": "sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g==", 13524 - "dev": true, 13525 - "license": "MIT" 13526 - }, 13527 - "node_modules/vscode-languageserver/node_modules/vscode-jsonrpc": { 13528 - "version": "8.2.0", 13529 - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", 13530 - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", 13531 - "dev": true, 13532 - "license": "MIT", 13533 - "engines": { 13534 - "node": ">=14.0.0" 13535 - } 13536 - }, 13537 - "node_modules/vscode-languageserver/node_modules/vscode-languageserver-protocol": { 13538 - "version": "3.17.5", 13539 - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", 13540 - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", 13541 - "dev": true, 13542 - "license": "MIT", 13543 - "dependencies": { 13544 - "vscode-jsonrpc": "8.2.0", 13545 - "vscode-languageserver-types": "3.17.5" 13546 - } 13547 - }, 13548 - "node_modules/vscode-languageserver/node_modules/vscode-languageserver-types": { 13549 12887 "version": "3.17.5", 13550 12888 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", 13551 12889 "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", ··· 13579 12917 "node": ">=18" 13580 12918 } 13581 12919 }, 12920 + "node_modules/wasm-vips": { 12921 + "version": "0.0.17", 12922 + "resolved": "https://registry.npmjs.org/wasm-vips/-/wasm-vips-0.0.17.tgz", 12923 + "integrity": "sha512-nhkqUNJDUymImoXGrVfImC4wzIFTb9KfBpAngb7dcEQNPP1gVTx4+WL3VVVDSXQpMsyeacsQDOx0+DM33Rpurg==", 12924 + "license": "MIT", 12925 + "engines": { 12926 + "node": ">=16.4.0" 12927 + } 12928 + }, 13582 12929 "node_modules/web-namespaces": { 13583 12930 "version": "2.0.1", 13584 12931 "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", ··· 13723 13070 } 13724 13071 } 13725 13072 }, 13726 - "node_modules/wrangler/node_modules/@esbuild/aix-ppc64": { 13727 - "version": "0.27.3", 13728 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", 13729 - "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", 13730 - "cpu": [ 13731 - "ppc64" 13732 - ], 13733 - "license": "MIT", 13734 - "optional": true, 13735 - "os": [ 13736 - "aix" 13737 - ], 13738 - "engines": { 13739 - "node": ">=18" 13740 - } 13741 - }, 13742 - "node_modules/wrangler/node_modules/@esbuild/android-arm": { 13743 - "version": "0.27.3", 13744 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", 13745 - "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", 13746 - "cpu": [ 13747 - "arm" 13748 - ], 13749 - "license": "MIT", 13750 - "optional": true, 13751 - "os": [ 13752 - "android" 13753 - ], 13754 - "engines": { 13755 - "node": ">=18" 13756 - } 13757 - }, 13758 - "node_modules/wrangler/node_modules/@esbuild/android-arm64": { 13759 - "version": "0.27.3", 13760 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", 13761 - "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", 13762 - "cpu": [ 13763 - "arm64" 13764 - ], 13765 - "license": "MIT", 13766 - "optional": true, 13767 - "os": [ 13768 - "android" 13769 - ], 13770 - "engines": { 13771 - "node": ">=18" 13772 - } 13773 - }, 13774 - "node_modules/wrangler/node_modules/@esbuild/android-x64": { 13775 - "version": "0.27.3", 13776 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", 13777 - "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", 13778 - "cpu": [ 13779 - "x64" 13780 - ], 13781 - "license": "MIT", 13782 - "optional": true, 13783 - "os": [ 13784 - "android" 13785 - ], 13786 - "engines": { 13787 - "node": ">=18" 13788 - } 13789 - }, 13790 - "node_modules/wrangler/node_modules/@esbuild/darwin-arm64": { 13791 - "version": "0.27.3", 13792 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", 13793 - "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", 13794 - "cpu": [ 13795 - "arm64" 13796 - ], 13797 - "license": "MIT", 13798 - "optional": true, 13799 - "os": [ 13800 - "darwin" 13801 - ], 13802 - "engines": { 13803 - "node": ">=18" 13804 - } 13805 - }, 13806 - "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { 13807 - "version": "0.27.3", 13808 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", 13809 - "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", 13810 - "cpu": [ 13811 - "x64" 13812 - ], 13813 - "license": "MIT", 13814 - "optional": true, 13815 - "os": [ 13816 - "darwin" 13817 - ], 13818 - "engines": { 13819 - "node": ">=18" 13820 - } 13821 - }, 13822 - "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { 13823 - "version": "0.27.3", 13824 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", 13825 - "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", 13826 - "cpu": [ 13827 - "arm64" 13828 - ], 13829 - "license": "MIT", 13830 - "optional": true, 13831 - "os": [ 13832 - "freebsd" 13833 - ], 13834 - "engines": { 13835 - "node": ">=18" 13836 - } 13837 - }, 13838 - "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { 13839 - "version": "0.27.3", 13840 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", 13841 - "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", 13842 - "cpu": [ 13843 - "x64" 13844 - ], 13845 - "license": "MIT", 13846 - "optional": true, 13847 - "os": [ 13848 - "freebsd" 13849 - ], 13850 - "engines": { 13851 - "node": ">=18" 13852 - } 13853 - }, 13854 - "node_modules/wrangler/node_modules/@esbuild/linux-arm": { 13855 - "version": "0.27.3", 13856 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", 13857 - "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", 13858 - "cpu": [ 13859 - "arm" 13860 - ], 13861 - "license": "MIT", 13862 - "optional": true, 13863 - "os": [ 13864 - "linux" 13865 - ], 13866 - "engines": { 13867 - "node": ">=18" 13868 - } 13869 - }, 13870 - "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { 13871 - "version": "0.27.3", 13872 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", 13873 - "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", 13874 - "cpu": [ 13875 - "arm64" 13876 - ], 13877 - "license": "MIT", 13878 - "optional": true, 13879 - "os": [ 13880 - "linux" 13881 - ], 13882 - "engines": { 13883 - "node": ">=18" 13884 - } 13885 - }, 13886 - "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { 13887 - "version": "0.27.3", 13888 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", 13889 - "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", 13890 - "cpu": [ 13891 - "ia32" 13892 - ], 13893 - "license": "MIT", 13894 - "optional": true, 13895 - "os": [ 13896 - "linux" 13897 - ], 13898 - "engines": { 13899 - "node": ">=18" 13900 - } 13901 - }, 13902 - "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { 13903 - "version": "0.27.3", 13904 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", 13905 - "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", 13906 - "cpu": [ 13907 - "loong64" 13908 - ], 13909 - "license": "MIT", 13910 - "optional": true, 13911 - "os": [ 13912 - "linux" 13913 - ], 13914 - "engines": { 13915 - "node": ">=18" 13916 - } 13917 - }, 13918 - "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { 13919 - "version": "0.27.3", 13920 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", 13921 - "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", 13922 - "cpu": [ 13923 - "mips64el" 13924 - ], 13925 - "license": "MIT", 13926 - "optional": true, 13927 - "os": [ 13928 - "linux" 13929 - ], 13930 - "engines": { 13931 - "node": ">=18" 13932 - } 13933 - }, 13934 - "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { 13935 - "version": "0.27.3", 13936 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", 13937 - "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", 13938 - "cpu": [ 13939 - "ppc64" 13940 - ], 13941 - "license": "MIT", 13942 - "optional": true, 13943 - "os": [ 13944 - "linux" 13945 - ], 13946 - "engines": { 13947 - "node": ">=18" 13948 - } 13949 - }, 13950 - "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { 13951 - "version": "0.27.3", 13952 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", 13953 - "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", 13954 - "cpu": [ 13955 - "riscv64" 13956 - ], 13957 - "license": "MIT", 13958 - "optional": true, 13959 - "os": [ 13960 - "linux" 13961 - ], 13962 - "engines": { 13963 - "node": ">=18" 13964 - } 13965 - }, 13966 - "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { 13967 - "version": "0.27.3", 13968 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", 13969 - "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", 13970 - "cpu": [ 13971 - "s390x" 13972 - ], 13973 - "license": "MIT", 13974 - "optional": true, 13975 - "os": [ 13976 - "linux" 13977 - ], 13978 - "engines": { 13979 - "node": ">=18" 13980 - } 13981 - }, 13982 - "node_modules/wrangler/node_modules/@esbuild/linux-x64": { 13983 - "version": "0.27.3", 13984 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", 13985 - "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", 13986 - "cpu": [ 13987 - "x64" 13988 - ], 13989 - "license": "MIT", 13990 - "optional": true, 13991 - "os": [ 13992 - "linux" 13993 - ], 13994 - "engines": { 13995 - "node": ">=18" 13996 - } 13997 - }, 13998 - "node_modules/wrangler/node_modules/@esbuild/netbsd-arm64": { 13999 - "version": "0.27.3", 14000 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", 14001 - "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", 14002 - "cpu": [ 14003 - "arm64" 14004 - ], 14005 - "license": "MIT", 14006 - "optional": true, 14007 - "os": [ 14008 - "netbsd" 14009 - ], 14010 - "engines": { 14011 - "node": ">=18" 14012 - } 14013 - }, 14014 - "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { 14015 - "version": "0.27.3", 14016 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", 14017 - "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", 14018 - "cpu": [ 14019 - "x64" 14020 - ], 14021 - "license": "MIT", 14022 - "optional": true, 14023 - "os": [ 14024 - "netbsd" 14025 - ], 14026 - "engines": { 14027 - "node": ">=18" 14028 - } 14029 - }, 14030 - "node_modules/wrangler/node_modules/@esbuild/openbsd-arm64": { 14031 - "version": "0.27.3", 14032 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", 14033 - "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", 14034 - "cpu": [ 14035 - "arm64" 14036 - ], 14037 - "license": "MIT", 14038 - "optional": true, 14039 - "os": [ 14040 - "openbsd" 14041 - ], 14042 - "engines": { 14043 - "node": ">=18" 14044 - } 14045 - }, 14046 - "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { 14047 - "version": "0.27.3", 14048 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", 14049 - "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", 14050 - "cpu": [ 14051 - "x64" 14052 - ], 14053 - "license": "MIT", 14054 - "optional": true, 14055 - "os": [ 14056 - "openbsd" 14057 - ], 14058 - "engines": { 14059 - "node": ">=18" 14060 - } 14061 - }, 14062 - "node_modules/wrangler/node_modules/@esbuild/openharmony-arm64": { 14063 - "version": "0.27.3", 14064 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", 14065 - "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", 14066 - "cpu": [ 14067 - "arm64" 14068 - ], 14069 - "license": "MIT", 14070 - "optional": true, 14071 - "os": [ 14072 - "openharmony" 14073 - ], 14074 - "engines": { 14075 - "node": ">=18" 14076 - } 14077 - }, 14078 - "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { 14079 - "version": "0.27.3", 14080 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", 14081 - "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", 14082 - "cpu": [ 14083 - "x64" 14084 - ], 14085 - "license": "MIT", 14086 - "optional": true, 14087 - "os": [ 14088 - "sunos" 14089 - ], 14090 - "engines": { 14091 - "node": ">=18" 14092 - } 14093 - }, 14094 - "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { 14095 - "version": "0.27.3", 14096 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", 14097 - "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", 14098 - "cpu": [ 14099 - "arm64" 14100 - ], 14101 - "license": "MIT", 14102 - "optional": true, 14103 - "os": [ 14104 - "win32" 14105 - ], 14106 - "engines": { 14107 - "node": ">=18" 14108 - } 14109 - }, 14110 - "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { 14111 - "version": "0.27.3", 14112 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", 14113 - "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", 14114 - "cpu": [ 14115 - "ia32" 14116 - ], 14117 - "license": "MIT", 14118 - "optional": true, 14119 - "os": [ 14120 - "win32" 14121 - ], 14122 - "engines": { 14123 - "node": ">=18" 14124 - } 14125 - }, 14126 - "node_modules/wrangler/node_modules/@esbuild/win32-x64": { 14127 - "version": "0.27.3", 14128 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", 14129 - "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", 14130 - "cpu": [ 14131 - "x64" 14132 - ], 14133 - "license": "MIT", 14134 - "optional": true, 14135 - "os": [ 14136 - "win32" 14137 - ], 14138 - "engines": { 14139 - "node": ">=18" 14140 - } 14141 - }, 14142 - "node_modules/wrangler/node_modules/esbuild": { 14143 - "version": "0.27.3", 14144 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", 14145 - "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", 14146 - "hasInstallScript": true, 14147 - "license": "MIT", 14148 - "bin": { 14149 - "esbuild": "bin/esbuild" 14150 - }, 14151 - "engines": { 14152 - "node": ">=18" 14153 - }, 14154 - "optionalDependencies": { 14155 - "@esbuild/aix-ppc64": "0.27.3", 14156 - "@esbuild/android-arm": "0.27.3", 14157 - "@esbuild/android-arm64": "0.27.3", 14158 - "@esbuild/android-x64": "0.27.3", 14159 - "@esbuild/darwin-arm64": "0.27.3", 14160 - "@esbuild/darwin-x64": "0.27.3", 14161 - "@esbuild/freebsd-arm64": "0.27.3", 14162 - "@esbuild/freebsd-x64": "0.27.3", 14163 - "@esbuild/linux-arm": "0.27.3", 14164 - "@esbuild/linux-arm64": "0.27.3", 14165 - "@esbuild/linux-ia32": "0.27.3", 14166 - "@esbuild/linux-loong64": "0.27.3", 14167 - "@esbuild/linux-mips64el": "0.27.3", 14168 - "@esbuild/linux-ppc64": "0.27.3", 14169 - "@esbuild/linux-riscv64": "0.27.3", 14170 - "@esbuild/linux-s390x": "0.27.3", 14171 - "@esbuild/linux-x64": "0.27.3", 14172 - "@esbuild/netbsd-arm64": "0.27.3", 14173 - "@esbuild/netbsd-x64": "0.27.3", 14174 - "@esbuild/openbsd-arm64": "0.27.3", 14175 - "@esbuild/openbsd-x64": "0.27.3", 14176 - "@esbuild/openharmony-arm64": "0.27.3", 14177 - "@esbuild/sunos-x64": "0.27.3", 14178 - "@esbuild/win32-arm64": "0.27.3", 14179 - "@esbuild/win32-ia32": "0.27.3", 14180 - "@esbuild/win32-x64": "0.27.3" 14181 - } 14182 - }, 14183 13073 "node_modules/wrap-ansi": { 14184 13074 "version": "5.1.0", 14185 13075 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", ··· 14195 13085 } 14196 13086 }, 14197 13087 "node_modules/ws": { 14198 - "version": "8.21.0", 14199 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", 14200 - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", 14201 - "devOptional": true, 13088 + "version": "8.20.1", 13089 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", 13090 + "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", 14202 13091 "license": "MIT", 14203 13092 "engines": { 14204 13093 "node": ">=10.0.0" ··· 14239 13128 "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", 14240 13129 "license": "MIT" 14241 13130 }, 14242 - "node_modules/y-indexeddb": { 14243 - "version": "9.0.12", 14244 - "resolved": "https://registry.npmjs.org/y-indexeddb/-/y-indexeddb-9.0.12.tgz", 14245 - "integrity": "sha512-9oCFRSPPzBK7/w5vOkJBaVCQZKHXB/v6SIT+WYhnJxlEC61juqG0hBrAf+y3gmSMLFLwICNH9nQ53uscuse6Hg==", 14246 - "license": "MIT", 14247 - "dependencies": { 14248 - "lib0": "^0.2.74" 14249 - }, 14250 - "engines": { 14251 - "node": ">=16.0.0", 14252 - "npm": ">=8.0.0" 14253 - }, 14254 - "funding": { 14255 - "type": "GitHub Sponsors ❤", 14256 - "url": "https://github.com/sponsors/dmonad" 14257 - }, 14258 - "peerDependencies": { 14259 - "yjs": "^13.0.0" 14260 - } 14261 - }, 14262 13131 "node_modules/y-protocols": { 14263 13132 "version": "1.0.7", 14264 13133 "resolved": "https://registry.npmjs.org/y-protocols/-/y-protocols-1.0.7.tgz", ··· 14277 13146 }, 14278 13147 "peerDependencies": { 14279 13148 "yjs": "^13.0.0" 14280 - } 14281 - }, 14282 - "node_modules/y-webrtc": { 14283 - "version": "10.2.6", 14284 - "resolved": "https://registry.npmjs.org/y-webrtc/-/y-webrtc-10.2.6.tgz", 14285 - "integrity": "sha512-1kZ4YYwksFZi8+l8mTebVX9vW6Q5MnqxMkvNU700X5dBE38usurt/JgeXSIQRpK3NwUYYb9y63Jn9FMpMH6/vA==", 14286 - "license": "MIT", 14287 - "dependencies": { 14288 - "lib0": "^0.2.42", 14289 - "simple-peer": "^9.11.0", 14290 - "y-protocols": "^1.0.6" 14291 - }, 14292 - "bin": { 14293 - "y-webrtc-signaling": "bin/server.js" 14294 - }, 14295 - "engines": { 14296 - "node": ">=12" 14297 - }, 14298 - "funding": { 14299 - "type": "GitHub Sponsors ❤", 14300 - "url": "https://github.com/sponsors/dmonad" 14301 - }, 14302 - "optionalDependencies": { 14303 - "ws": "^8.14.2" 14304 - }, 14305 - "peerDependencies": { 14306 - "yjs": "^13.6.8" 14307 13149 } 14308 13150 }, 14309 13151 "node_modules/y18n": {
+16 -70
package.json
··· 23 23 "@atproto/api": "^0.20.9", 24 24 "@atproto/common-web": "^0.5.0", 25 25 "@atproto/oauth-client-browser": "^0.4.1", 26 - "@automattic/isolated-block-editor": "2.30.0", 27 26 "@fontsource/ibm-plex-mono": "^5.2.7", 28 - "@wordpress/block-library": "9.24.0", 29 - "@wordpress/blocks": "14.13.0", 30 - "@wordpress/element": "6.24.0", 27 + "@wordpress/block-editor": "15.21.1", 28 + "@wordpress/block-library": "9.48.1", 29 + "@wordpress/blocks": "15.21.1", 30 + "@wordpress/components": "35.0.1", 31 + "@wordpress/compose": "8.1.1", 32 + "@wordpress/data": "10.48.1", 33 + "@wordpress/element": "8.0.1", 34 + "@wordpress/format-library": "5.48.1", 35 + "@wordpress/hooks": "4.48.1", 36 + "@wordpress/icons": "14.0.1", 37 + "@wordpress/keyboard-shortcuts": "5.48.1", 38 + "@wordpress/rich-text": "7.48.1", 31 39 "astro": "6.4.4", 32 40 "highlight.js": "^11.11.1", 33 41 "react": "18.3.1", ··· 36 44 }, 37 45 "devDependencies": { 38 46 "@astrojs/check": "^0.9.9", 47 + "@types/node": "25.9.2", 39 48 "@types/react": "18.3.12", 40 49 "@types/react-dom": "18.3.1", 41 50 "@types/sanitize-html": "^2.16.1", 42 51 "jsdom": "25.0.1", 43 - "sass": "^1.100.0", 44 52 "typescript": "5.7.2", 45 53 "vitest": "2.1.8" 46 54 }, 47 - "comment:overrides": "Pin the ENTIRE @wordpress tree to the exact versions @automattic/isolated-block-editor@2.30.0 bundles. Caret ranges otherwise resolve transitive packages to a newer line, producing duplicate registries (@wordpress/data, core-data) and CJS/ESM interop breaks (sync, is-shallow-equal) — a fatal 'reading get of undefined' in BlockEditor. One consistent version set is the only robust fix. (Decision 0003.)", 48 55 "overrides": { 49 56 "react": "18.3.1", 50 - "react-dom": "18.3.1", 51 - "@wordpress/a11y": "4.24.0", 52 - "@wordpress/annotations": "3.24.0", 53 - "@wordpress/api-fetch": "7.24.0", 54 - "@wordpress/autop": "4.24.0", 55 - "@wordpress/base-styles": "6.0.0", 56 - "@wordpress/blob": "4.24.0", 57 - "@wordpress/block-editor": "14.19.0", 58 - "@wordpress/block-library": "9.24.0", 59 - "@wordpress/block-serialization-default-parser": "5.24.0", 60 - "@wordpress/block-serialization-spec-parser": "5.24.0", 61 - "@wordpress/blocks": "14.13.0", 62 - "@wordpress/commands": "1.24.0", 63 - "@wordpress/components": "29.10.0", 64 - "@wordpress/compose": "7.24.0", 65 - "@wordpress/core-commands": "1.24.0", 66 - "@wordpress/core-data": "7.24.0", 67 - "@wordpress/data": "10.24.0", 68 - "@wordpress/data-controls": "4.24.0", 69 - "@wordpress/date": "5.24.0", 70 - "@wordpress/deprecated": "4.24.0", 71 - "@wordpress/dom": "4.24.0", 72 - "@wordpress/dom-ready": "4.24.0", 73 - "@wordpress/edit-post": "8.24.0", 74 - "@wordpress/editor": "14.24.0", 75 - "@wordpress/element": "6.24.0", 76 - "@wordpress/escape-html": "3.24.0", 77 - "@wordpress/format-library": "5.24.0", 78 - "@wordpress/hooks": "4.24.0", 79 - "@wordpress/html-entities": "4.24.0", 80 - "@wordpress/i18n": "5.24.0", 81 - "@wordpress/icons": "10.24.0", 82 - "@wordpress/interactivity": "6.24.0", 83 - "@wordpress/interactivity-router": "2.24.0", 84 - "@wordpress/interface": "9.9.0", 85 - "@wordpress/is-shallow-equal": "5.24.0", 86 - "@wordpress/keyboard-shortcuts": "5.24.0", 87 - "@wordpress/keycodes": "4.24.0", 88 - "@wordpress/list-reusable-blocks": "5.24.0", 89 - "@wordpress/media-utils": "5.24.0", 90 - "@wordpress/notices": "5.24.0", 91 - "@wordpress/patterns": "2.24.0", 92 - "@wordpress/plugins": "7.24.0", 93 - "@wordpress/preferences": "4.24.0", 94 - "@wordpress/primitives": "4.24.0", 95 - "@wordpress/priority-queue": "3.24.0", 96 - "@wordpress/private-apis": "1.24.0", 97 - "@wordpress/react-i18n": "4.24.0", 98 - "@wordpress/redux-routine": "5.24.0", 99 - "@wordpress/reusable-blocks": "5.24.0", 100 - "@wordpress/rich-text": "7.24.0", 101 - "@wordpress/router": "1.24.0", 102 - "@wordpress/server-side-render": "6.0.0", 103 - "@wordpress/shortcode": "4.24.0", 104 - "@wordpress/style-engine": "2.24.0", 105 - "@wordpress/sync": "1.24.0", 106 - "@wordpress/token-list": "3.24.0", 107 - "@wordpress/undo-manager": "1.24.0", 108 - "@wordpress/url": "4.24.0", 109 - "@wordpress/viewport": "6.24.0", 110 - "@wordpress/warning": "3.24.0", 111 - "@wordpress/widgets": "4.24.0", 112 - "@wordpress/wordcount": "4.24.0" 113 - } 57 + "react-dom": "18.3.1" 58 + }, 59 + "comment:overrides": "React stays on 18.3.1 (Decision 0001) and we force a single copy of each @wordpress store singleton. The whole-tree pin to isolated-block-editor@2.30.0 bundled versions is gone: we now depend on @wordpress/block-editor directly at the current release line, so the tree resolves coherently without the old override map. (Decision 0021.)" 114 60 }
+213 -76
src/components/SkyEditor.tsx
··· 1 - import { useCallback, useState } from 'react'; 2 - import IsolatedBlockEditor from '@automattic/isolated-block-editor'; 3 - // Side-effect import: must run AFTER isolated-block-editor so our editor.MediaUpload 4 - // filter registers last and replaces the bundled wp.media-based one (see the module). 1 + import { 2 + useCallback, 3 + useMemo, 4 + useRef, 5 + useState, 6 + type KeyboardEvent as ReactKeyboardEvent, 7 + } from 'react'; 8 + import { createBlock, type BlockInstance } from '@wordpress/blocks'; 9 + import { 10 + BlockEditorProvider, 11 + BlockList, 12 + BlockTools, 13 + BlockToolbar, 14 + BlockInspector, 15 + Inserter, 16 + WritingFlow, 17 + ObserveTyping, 18 + BlockEditorKeyboardShortcuts, 19 + } from '@wordpress/block-editor'; 20 + import { Button, Popover, SlotFillProvider } from '@wordpress/components'; 21 + import { ShortcutProvider } from '@wordpress/keyboard-shortcuts'; 22 + import { useStateWithHistory } from '@wordpress/compose'; 23 + import { cog, undo as undoIcon, redo as redoIcon } from '@wordpress/icons'; 24 + 25 + // Default rich-text formats (bold, italic, link, inline code, …) register as a 26 + // side effect of importing the package. 27 + import '@wordpress/format-library'; 28 + 29 + // Side-effect import: must run AFTER @wordpress/block-editor so our 30 + // editor.MediaUpload filter registers last and replaces the bundled 31 + // wp.media-based one (see the module). 5 32 import '../lib/media/registerMediaUpload'; 6 - import { createBlock, type BlockInstance } from '@wordpress/blocks'; 33 + 34 + // The editor island owns the editor + component + block styles. Reading pages 35 + // import only the *frontend* block styles (Decision 0003) — never these. 36 + import '@wordpress/components/build-style/style.css'; 37 + import '@wordpress/block-editor/build-style/style.css'; 38 + import '@wordpress/block-editor/build-style/content.css'; 39 + // (@wordpress/format-library ships no `build-style` export subpath; the inline 40 + // format UI is styled by the components + block-editor stylesheets above.) 41 + import '@wordpress/block-library/build-style/common.css'; 42 + import '@wordpress/block-library/build-style/style.css'; 43 + import '@wordpress/block-library/build-style/editor.css'; 44 + import '@wordpress/block-library/build-style/theme.css'; 45 + 46 + import { registerSkyPressBlocks } from '../lib/blocks/serialize'; 47 + import { ALLOWED_BLOCKS } from '../lib/blocks/allowlist'; 48 + import type { MediaUploadHandler } from '../lib/media/mediaUpload'; 49 + import { registerMentionFormat } from '../lib/editor/mention-format'; 50 + import { registerMentionAutocompleter } from '../lib/editor/mention-autocompleter'; 7 51 import type { BlockNode } from '../lib/blocks/render'; 8 52 53 + export const SPIKE_BLOCKS_KEY = 'skypress:spike:blocks'; 54 + 9 55 /** Rebuild editor block instances from stored block nodes (for editing, SP5). */ 10 56 function toEditorBlocks( nodes: BlockNode[] ): BlockInstance[] { 11 57 return nodes.map( ( node ) => ··· 17 63 ); 18 64 } 19 65 20 - // Compiled editor-chrome styles (prebuilt — no Sass needed for these). 21 - import '@automattic/isolated-block-editor/build-browser/core.css'; 22 - import '@automattic/isolated-block-editor/build-browser/isolated-block-editor.css'; 23 - 24 - import { ALLOWED_BLOCKS } from '../lib/blocks/allowlist'; 25 - import type { MediaUploadHandler } from '../lib/media/mediaUpload'; 26 - import { registerMentionFormat } from '../lib/editor/mention-format'; 27 - import { registerMentionAutocompleter } from '../lib/editor/mention-autocompleter'; 28 - 29 - export const SPIKE_BLOCKS_KEY = 'skypress:spike:blocks'; 30 - 31 66 interface SkyEditorProps { 32 67 /** Receives the live block tree on every change (for the publish flow, SP2). */ 33 68 onChange?: ( blocks: BlockInstance[] ) => void; ··· 38 73 } 39 74 40 75 /** 41 - * Standalone Gutenberg editor restricted to the curated SkyPress block set. 42 - * `onSaveBlocks` fires on every change with the live block tree (the structured 43 - * array — not HTML); we persist a local draft and forward it via `onChange` so the 44 - * Studio can publish it (SP2). 76 + * Standalone Gutenberg editor, composed directly from `@wordpress/block-editor` 77 + * (Decision 0021 — we no longer wrap `@automattic/isolated-block-editor`). The 78 + * `BlockEditorProvider` holds the block tree; `BlockTools` + `WritingFlow` + 79 + * `ObserveTyping` + `BlockList` are the canvas; undo/redo is app-level via 80 + * `useStateWithHistory`. Restricted to the curated block set (Decision 0002). 81 + * 82 + * The live block tree is forwarded on every change via `onChange` (the structured 83 + * array — not HTML) so the Studio can publish it, and persisted as a local draft. 45 84 * 46 - * Rendered with `client:only="react"` so its (heavy) bundle never reaches 47 - * reading pages (Decision 0001). 85 + * Rendered with `client:only="react"` so its (heavy) bundle never reaches reading 86 + * pages (Decision 0001 / 0003). 48 87 */ 49 88 export default function SkyEditor( { onChange, mediaUpload, initialBlocks }: SkyEditorProps ) { 50 - // Empty until the first autosave. The in-editor placeholder already prompts 51 - // the writer; this line is reserved for save feedback ("Draft saved · …"). 52 - // Kept in the DOM as an `aria-live` region so updates are announced; the 53 - // `:empty` rule clips it out of view (not `display: none`, which would drop 54 - // it from the accessibility tree and suppress the announcement) while idle. 55 - const [ status, setStatus ] = useState< string >( '' ); 56 - 57 - // Runs once per editor mount, after the isolated editor has registered its 58 - // `@wordpress` stores and core blocks globally. We use it to activate the 59 - // `@`-mention format + autocompleter (both idempotent) and, when editing, to 60 - // rebuild block instances from the stored tree. 61 - const onLoad = useCallback( (): BlockInstance[] => { 89 + // Register the curated block set + the `@`-mention format/autocompleter, and 90 + // build the initial editor blocks — once per mount, before `BlockList` first 91 + // renders (all idempotent). Studio remounts SkyEditor (keyed) when switching 92 + // articles, so reading `initialBlocks` at mount is sufficient. 93 + const initialValue = useMemo( () => { 94 + registerSkyPressBlocks(); 62 95 registerMentionFormat(); 63 96 registerMentionAutocompleter(); 64 - return initialBlocks && initialBlocks.length > 0 65 - ? toEditorBlocks( initialBlocks ) 66 - : []; 67 - }, [ initialBlocks ] ); 97 + return initialBlocks && initialBlocks.length > 0 ? toEditorBlocks( initialBlocks ) : []; 98 + // eslint-disable-next-line react-hooks/exhaustive-deps 99 + }, [] ); 68 100 69 - const onSaveBlocks = useCallback( 70 - ( blocks: BlockInstance[] ) => { 71 - window.localStorage.setItem( SPIKE_BLOCKS_KEY, JSON.stringify( blocks ) ); 72 - setStatus( `Draft saved · ${ blocks.length } block(s)` ); 73 - onChange?.( blocks ); 101 + const { 102 + value, 103 + setValue: setBlocks, 104 + undo, 105 + redo, 106 + hasUndo, 107 + hasRedo, 108 + } = useStateWithHistory< BlockInstance[] >( initialValue ); 109 + // `@wordpress/compose` types `value` as `unknown` (its generic isn't propagated 110 + // to the return) even though it round-trips exactly what `setValue` was given. 111 + const blocks = value as BlockInstance[]; 112 + 113 + // Empty until the first change. Kept in the DOM as an `aria-live` region so 114 + // "Draft saved" updates are announced; the `:empty` rule clips it out of view 115 + // (not `display: none`, which would drop it from the a11y tree) while idle. 116 + const [ status, setStatus ] = useState< string >( '' ); 117 + const [ showInspector, setShowInspector ] = useState( false ); 118 + const inspectorToggleRef = useRef< HTMLButtonElement >( null ); 119 + 120 + // Persist a local draft and forward the live tree to the publish flow. 121 + const forward = useCallback( 122 + ( next: BlockInstance[] ) => { 123 + window.localStorage.setItem( SPIKE_BLOCKS_KEY, JSON.stringify( next ) ); 124 + setStatus( `Draft saved · ${ next.length } block(s)` ); 125 + onChange?.( next ); 74 126 }, 75 127 [ onChange ] 76 128 ); 77 129 78 - const settings = { 79 - // Core block-editor settings: a custom mediaUpload routes uploads to the PDS (SP3). 80 - editor: { 81 - ...( mediaUpload ? { mediaUpload } : {} ), 82 - // isolated-block-editor defaults to a fixed top toolbar (the block tools 83 - // dock into the header). Turn that off so the contextual block toolbar 84 - // floats with — and follows — the selected block as you write. 85 - hasFixedToolbar: false, 130 + // `onInput` = transient edits (typing) → staged into the pending history record; 131 + // `onChange` = persistent edits (insert/remove/move) → a new undo step. Both keep 132 + // the publish state current. 133 + const onInput = useCallback( 134 + ( next: BlockInstance[] ) => { 135 + setBlocks( next, true ); 136 + forward( next ); 86 137 }, 87 - iso: { 88 - moreMenu: false, 89 - footer: true, 90 - // Adds a settings (gear) button to the toolbar that opens the block 91 - // inspector as a popover (e.g. an image block's Alt text field). 92 - toolbar: { 93 - inspector: true, 94 - }, 95 - blocks: { 96 - allowBlocks: [ ...ALLOWED_BLOCKS ], 97 - }, 138 + [ setBlocks, forward ] 139 + ); 140 + const onChangeBlocks = useCallback( 141 + ( next: BlockInstance[] ) => { 142 + setBlocks( next, false ); 143 + forward( next ); 98 144 }, 99 - }; 145 + [ setBlocks, forward ] 146 + ); 147 + 148 + const settings = useMemo( 149 + () => ( { 150 + // A custom mediaUpload routes uploads to the PDS as a blob (SP3). 151 + ...( mediaUpload ? { mediaUpload } : {} ), 152 + // Restrict the inserter/transforms to the curated set. The registry is 153 + // already pruned to it (registerSkyPressBlocks); this scopes the UI too. 154 + allowedBlockTypes: [ ...ALLOWED_BLOCKS ], 155 + // Render the selected block's tools in a fixed `<BlockToolbar>` we place in 156 + // the header (vs. a popover that floats by the block). The framework 157 + // recommends this for a custom-composed editor — the floating toolbar needs 158 + // iframe/content-ref plumbing that a bespoke inline canvas doesn't provide. 159 + hasFixedToolbar: true, 160 + } ), 161 + [ mediaUpload ] 162 + ); 163 + 164 + // Undo/redo from the keyboard. Capture phase so we win over contentEditable's 165 + // native history before rich-text handles the key. 166 + const onKeyDownCapture = useCallback( 167 + ( event: ReactKeyboardEvent ) => { 168 + const mod = event.metaKey || event.ctrlKey; 169 + if ( ! mod || event.key.toLowerCase() !== 'z' ) { 170 + return; 171 + } 172 + event.preventDefault(); 173 + if ( event.shiftKey ) { 174 + redo(); 175 + } else { 176 + undo(); 177 + } 178 + }, 179 + [ undo, redo ] 180 + ); 100 181 101 182 return ( 102 - <div className="skypress-editor"> 103 - <IsolatedBlockEditor 104 - settings={ settings } 105 - onSaveBlocks={ onSaveBlocks } 106 - onLoad={ onLoad } 107 - onError={ () => ( 108 - <p role="alert">The editor hit an error. Reload to try again.</p> 109 - ) } 110 - /> 111 - <p className="skypress-editor__status" aria-live="polite"> 112 - { status } 113 - </p> 114 - </div> 183 + <ShortcutProvider> 184 + <SlotFillProvider> 185 + <BlockEditorProvider 186 + value={ blocks } 187 + onInput={ onInput } 188 + onChange={ onChangeBlocks } 189 + settings={ settings } 190 + > 191 + { /* eslint-disable-next-line jsx-a11y/no-static-element-interactions */ } 192 + <div className="skypress-editor" onKeyDownCapture={ onKeyDownCapture }> 193 + <div className="skypress-editor__toolbar"> 194 + <Inserter rootClientId={ undefined } /> 195 + { /* The selected block's formatting/transform tools (bold, 196 + italic, link, the @-mention format, …). Empty when no 197 + block is selected. */ } 198 + <BlockToolbar hideDragHandle /> 199 + <div className="skypress-editor__toolbar-spacer" /> 200 + <Button 201 + icon={ undoIcon } 202 + label="Undo" 203 + onClick={ undo } 204 + disabled={ ! hasUndo } 205 + /> 206 + <Button 207 + icon={ redoIcon } 208 + label="Redo" 209 + onClick={ redo } 210 + disabled={ ! hasRedo } 211 + /> 212 + <Button 213 + ref={ inspectorToggleRef } 214 + icon={ cog } 215 + label="Block settings" 216 + isPressed={ showInspector } 217 + aria-expanded={ showInspector } 218 + onClick={ () => setShowInspector( ( open ) => ! open ) } 219 + /> 220 + { showInspector && ( 221 + <Popover 222 + anchor={ inspectorToggleRef.current } 223 + placement="bottom-end" 224 + onClose={ () => setShowInspector( false ) } 225 + className="skypress-editor__inspector" 226 + > 227 + <BlockInspector /> 228 + </Popover> 229 + ) } 230 + </div> 231 + 232 + <div className="skypress-editor__body editor-styles-wrapper"> 233 + <BlockTools> 234 + <BlockEditorKeyboardShortcuts.Register /> 235 + <WritingFlow> 236 + <ObserveTyping> 237 + <BlockList /> 238 + </ObserveTyping> 239 + </WritingFlow> 240 + </BlockTools> 241 + </div> 242 + 243 + <Popover.Slot /> 244 + 245 + <p className="skypress-editor__status" aria-live="polite"> 246 + { status } 247 + </p> 248 + </div> 249 + </BlockEditorProvider> 250 + </SlotFillProvider> 251 + </ShortcutProvider> 115 252 ); 116 253 }
+1 -1
src/lib/media/registerMediaUpload.test.ts
··· 6 6 describe( 'registerMediaUpload', () => { 7 7 it( 'replaces editor.MediaUpload with an inert, non-rendering component', () => { 8 8 // A stand-in for whatever component was registered before us (in the app, the 9 - // wp.media-based one from isolated-block-editor). 9 + // wp.media-based default from @wordpress/block-editor's MediaUpload). 10 10 const Bundled = () => 'wp.media frame'; 11 11 const Filtered = applyFilters( 'editor.MediaUpload', Bundled ) as () => unknown; 12 12
+8 -9
src/lib/media/registerMediaUpload.ts
··· 3 3 /** 4 4 * Disable Gutenberg's WordPress media library in the SkyPress editor. 5 5 * 6 - * `@automattic/isolated-block-editor` bundles `@wordpress/editor`'s media-upload hook, 7 - * which registers the `@wordpress/media-utils` `MediaUpload` component on the 8 - * `editor.MediaUpload` filter. That component opens the legacy Backbone media frame via 9 - * `wp.media(...)` — a global SkyPress never loads — so the Image block's "Media Library" 10 - * button throws (`can't access property "media", … is undefined`). 6 + * `@wordpress/block-editor`'s `MediaUpload` component renders the Image block's "Media 7 + * Library" button by resolving the `editor.MediaUpload` filter. The default component 8 + * opens the legacy Backbone media frame via `wp.media(...)` — a global SkyPress never 9 + * loads — so that button throws (`can't access property "media", … is undefined`). 11 10 * 12 11 * SkyPress has no media library: images upload straight to the writer's PDS as blobs 13 12 * (Decision 0006) through the "Upload" / drop-zone path, which uses the custom 14 - * `settings.editor.mediaUpload` handler and is independent of this component. So we 15 - * override the filter with a no-render component, removing the broken (and inapplicable) 16 - * "Media Library" button everywhere it appears (placeholder, Replace flow). 13 + * `settings.mediaUpload` handler and is independent of this component. So we override the 14 + * filter with a no-render component, removing the broken (and inapplicable) "Media 15 + * Library" button everywhere it appears (placeholder, Replace flow). 17 16 * 18 17 * Importing this module registers the filter as a side effect. It must be imported AFTER 19 - * `isolated-block-editor` so our filter runs last and wins. 18 + * `@wordpress/block-editor` so our filter runs last and wins. 20 19 */ 21 20 const NoMediaLibrary = (): null => null; 22 21
+38 -69
src/styles/editor-chrome.css
··· 216 216 margin-top: 0.75rem; 217 217 } 218 218 219 - /* Editor surface. The bundled isolated-block-editor CSS hard-codes a 220 - full-width white surface that ignores `prefers-color-scheme`. Constrain 221 - and frame it as a contained writing panel, and drive its colours from the 222 - design tokens so it follows light/dark like the rest of the app. */ 219 + /* Editor surface. We compose @wordpress/block-editor directly (Decision 0021), 220 + so these rules target our own chrome (`.skypress-editor__*`) plus the standard 221 + `.block-editor-*`/`.components-*` classes — not isolated-block-editor's old 222 + `.iso-*` DOM. The bundled block CSS hard-codes light surfaces and near-black 223 + ink that ignore `prefers-color-scheme`; we frame the editor as a contained 224 + writing panel and drive every colour from the design tokens so it follows 225 + light/dark like the rest of the app. */ 223 226 .skypress-editor { 224 227 max-width: var(--studio-measure); 225 228 margin: 1.5rem auto 3rem; 226 - padding: 0 var(--studio-gutter); 227 - } 228 - .skypress-editor .iso-editor { 229 229 background-color: var(--paper-raised); 230 230 border: 1px solid var(--line-strong); 231 231 border-radius: var(--radius); 232 232 color: var(--ink); 233 233 box-shadow: var(--shadow); 234 - min-height: 70vh; 235 234 } 236 - /* With `has-fixed-toolbar`, the fixed toolbar sits at the top of the layout, 237 - flush against the framed surface's top edge. Pad the header region (which 238 - holds the toolbar) so the tools aren't pinned to the border. Keeping the 239 - breathing room on the header — rather than on the layout root or the content 240 - below — gives a single, predictable source of top spacing. */ 241 - .skypress-editor .iso-editor .interface-interface-skeleton__header { 242 - padding-top: 1rem; 243 - } 244 - /* isolated-block-editor doesn't bundle `@wordpress/edit-post`'s header layout, so 245 - `.editor-header` ships with no flex rule — the right-hand settings region (which 246 - holds the Settings cog) has nothing pushing it to the top-right and reads as 247 - missing. Lay the header out ourselves: tools on the left, settings on the right. */ 248 - .skypress-editor .iso-editor .editor-header { 235 + /* Toolbar (our chrome): the block inserter on the left; undo/redo and the 236 + block-settings cog pushed to the right by the spacer. Block-editor SVG icons 237 + use `fill: currentColor`, so tinting the buttons to the ink token themes them 238 + too — including the cog and inserter, which sit outside the floating toolbar. */ 239 + .skypress-editor__toolbar { 249 240 display: flex; 250 241 align-items: center; 251 - justify-content: space-between; 242 + gap: 0.25rem; 243 + padding: 0.5rem 0.75rem; 244 + border-bottom: 1px solid var(--line); 252 245 } 253 - .skypress-editor .iso-editor .edit-post-visual-editor { 254 - background-color: transparent; 246 + .skypress-editor__toolbar-spacer { 247 + flex: 1 1 auto; 248 + } 249 + .skypress-editor__toolbar .components-button { 250 + color: var(--ink); 255 251 } 256 - /* Gutenberg sets `background: white` inline on the device-preview wrapper; 257 - only !important lets the paper surface show through (esp. in dark mode). */ 258 - .skypress-editor .iso-editor .edit-post-visual-editor .is-desktop-preview { 259 - background: transparent !important; 252 + /* The writing canvas. `min-height` keeps the panel tall enough to invite writing 253 + even when empty; the gutter matches the title/lede column above. */ 254 + .skypress-editor__body { 255 + min-height: 60vh; 256 + padding: 1rem var(--studio-gutter) 2rem; 260 257 } 261 258 262 - /* Editor toolbar. The bundled chrome hard-codes white (#fff) surfaces and 263 - near-black (#1e1e1e) ink/borders that ignore `prefers-color-scheme`, so the 264 - toolbar reads as a white slab in dark mode. Re-skin it from the tokens. SVG 265 - icons use `fill: currentColor`, so setting the button colour tints them too. */ 266 - .skypress-editor .iso-editor .components-accessible-toolbar, 267 - .skypress-editor .iso-editor .components-toolbar, 268 - .skypress-editor .iso-editor .components-toolbar-group { 259 + /* The fixed `<BlockToolbar>` sits in our header, and toolbar popovers (link 260 + editing, the "more" format menu) portal into the `Popover.Slot` inside 261 + `.skypress-editor`. Both re-skin from the tokens here — without this the 262 + toolbar reads as a light slab in dark mode. */ 263 + .skypress-editor .components-accessible-toolbar, 264 + .skypress-editor .components-toolbar, 265 + .skypress-editor .components-toolbar-group { 269 266 background-color: var(--paper-raised); 270 267 border-color: var(--line-strong); 271 268 color: var(--ink); 272 269 } 273 - .skypress-editor .iso-editor .components-toolbar-group { 270 + .skypress-editor .components-toolbar-group { 274 271 border-right-color: var(--line); 275 272 } 276 - .skypress-editor .iso-editor .components-accessible-toolbar .components-button { 273 + .skypress-editor .components-accessible-toolbar .components-button { 277 274 color: var(--ink); 278 275 } 279 - /* The Settings (cog) button lives in the header's settings region — outside the 280 - toolbar groups re-skinned above — so it keeps Gutenberg's hard-coded near-black 281 - (#1e1e1e) icon colour and disappears against the dark paper surface. Tint it 282 - from the ink token like the toolbar buttons. */ 283 - .skypress-editor .iso-editor .editor-header__settings .components-button { 284 - color: var(--ink); 285 - } 286 - /* The block-inspector popover opened by that cog (`.iso-inspector`) collapses to 287 - its content width: isolated-block-editor doesn't bundle `@wordpress/interface`'s 288 - complementary-area sizing, so the panel has no width of its own. Give it the 289 - standard editor sidebar width. The popover portals out of `.skypress-editor`, 290 - so this rule is deliberately unscoped (the class is unique to this editor). */ 291 - .iso-inspector .components-popover__content { 276 + /* Block-settings inspector, opened as a popover by the cog. The bare 277 + `BlockInspector` has no width of its own, so give it the standard editor 278 + sidebar width. The class is unique to this editor, so the rule is unscoped. */ 279 + .skypress-editor__inspector .components-popover__content { 292 280 width: 280px; 293 281 max-width: calc( 100vw - 2rem ); 294 - } 295 - /* Both toolbar rows (document tools: insert/undo/redo; and the block tools that 296 - appear on selection) sat flush against the editor's left edge — and the block 297 - row carried no inline padding at all, so it didn't line up with the row above. 298 - Give them a matching gutter. */ 299 - .skypress-editor .iso-editor .editor-document-tools, 300 - .skypress-editor .iso-editor .block-editor-block-contextual-toolbar { 301 - padding-left: 0.75rem; 302 - padding-right: 0.75rem; 303 - } 304 - /* We run the editor with `hasFixedToolbar: false` so the block tools float with 305 - the selected block. But the package still renders a *docked* copy of the block 306 - toolbar in the header (gated only by viewport, not by the fixed-toolbar setting), 307 - so we'd get two block toolbars at once. Hide the docked one — the floating 308 - contextual toolbar is the single source of block tools — along with its now- 309 - pointless "Show/Hide block tools" collapse toggle (`<<`/`>>`). */ 310 - .skypress-editor .iso-editor .editor-collapsible-block-toolbar, 311 - .skypress-editor .iso-editor .edit-post-header__block-tools-toggle { 312 - display: none; 313 282 } 314 283 315 284 .skypress-editor__status {
+23
src/types/wordpress.d.ts
··· 29 29 export function registerCoreBlocks(): void; 30 30 } 31 31 32 + declare module '@wordpress/block-editor' { 33 + import type { ComponentType, ReactNode } from 'react'; 34 + import type { BlockInstance } from '@wordpress/blocks'; 35 + 36 + export const BlockEditorProvider: ComponentType< { 37 + value: BlockInstance[]; 38 + onInput?: ( blocks: BlockInstance[] ) => void; 39 + onChange?: ( blocks: BlockInstance[] ) => void; 40 + settings?: Record< string, unknown >; 41 + children?: ReactNode; 42 + } >; 43 + export const BlockList: ComponentType< Record< string, unknown > >; 44 + export const BlockTools: ComponentType< { children?: ReactNode } >; 45 + export const BlockToolbar: ComponentType< { hideDragHandle?: boolean } >; 46 + export const BlockInspector: ComponentType< Record< string, unknown > >; 47 + export const Inserter: ComponentType< { rootClientId?: string } >; 48 + export const WritingFlow: ComponentType< { children?: ReactNode } >; 49 + export const ObserveTyping: ComponentType< { children?: ReactNode } >; 50 + export const BlockEditorKeyboardShortcuts: ComponentType< 51 + Record< string, unknown > 52 + > & { Register: ComponentType< Record< string, unknown > > }; 53 + } 54 + 32 55 declare module '@wordpress/hooks' { 33 56 export function addFilter( 34 57 hookName: string,
+32 -1
vitest.config.ts
··· 1 1 import { defineConfig } from 'vitest/config'; 2 2 3 3 export default defineConfig( { 4 + // @wordpress/* packages guard WordPress-only branches behind these globals. 5 + define: { 6 + 'process.env.IS_GUTENBERG_PLUGIN': 'undefined', 7 + 'process.env.IS_WORDPRESS_CORE': 'undefined', 8 + }, 4 9 test: { 5 10 globals: true, 6 11 // jsdom: @wordpress/block-library block registration touches browser globals. 7 12 environment: 'jsdom', 8 13 include: [ 'src/**/*.test.ts', 'src/**/*.test.tsx' ], 9 14 }, 15 + // Let Vite transform the @wordpress tree instead of Node's native ESM loader, 16 + // which rejects their attribute-less JSON imports (e.g. @wordpress/blocks' 17 + // `import … from './i18n-block.json'`). One inlined graph also keeps the 18 + // @wordpress/data + blocks store singletons consistent for the fidelity tests. 19 + // 20 + // moment / moment-timezone stay EXTERNAL (native CJS): moment-timezone augments 21 + // moment via `require('moment')`, which only lands on @wordpress/date's default 22 + // import when both resolve to Node's single CJS instance. Inlining them splits 23 + // that instance under Vite's interop → `moment.tz` undefined (Decision 0003). 24 + // The Cloudflare build still inlines moment (no native require at the edge); 25 + // these configs intentionally differ. 26 + ssr: { 27 + noExternal: [ /@wordpress\// ], 28 + }, 10 29 resolve: { 11 - dedupe: [ 'react', 'react-dom', '@wordpress/element' ], 30 + // Mirror astro.config.mjs: collapse the multiply-nested @wordpress store 31 + // singletons to one copy each so they register exactly once. 32 + dedupe: [ 33 + 'react', 34 + 'react-dom', 35 + '@wordpress/element', 36 + '@wordpress/data', 37 + '@wordpress/core-data', 38 + '@wordpress/notices', 39 + '@wordpress/date', 40 + '@wordpress/blocks', 41 + '@wordpress/block-editor', 42 + ], 12 43 }, 13 44 } );